ADMIN MENU ≫ | IMAGE | WRITES | ADMIN
スポンサーサイト 
--.--.--.-- / --:-- 
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
TA中です 
2005.10.18.Tue / 15:31 
情報処理学同演習IIのTA勤務中です~

今日の授業からいよいよプログラミングらしくなってきました!!ココがひとつ頑張りどころなので是非是非ついてきてもらいたいと思います。

今日のテーマは制御構文の1回目ということで条件分岐(ifステートメントとcaseステートメント)でした。

TAの視点としてはアルゴリズムも大事だと思うんですけど、まずはそれぞれの書式に慣れてもらいたいところですね。そのためにはひたすら自分で書いてみるしかないんで課題意外にも色々弄ってみてもらいたいです。

↓は今日の課題の解答速報&解説です。
■課題3-1:ソースコードその1
この書き方が一番スタンダードな書き方かと思います。ここでのポイントはifステートメントの使い方です。else以下をさらに条件分岐をさせる場合は「else if」と改行で区切って書かずに「elseif」と1語で書くと最後の「end if」が1回で済むのでスッキリと書けると思います。
Sub kadai3_1_1()

    Dim n As Integer
    
    n = Val(InputBox("Input number form 0 to 100."))

    'ifの条件を文字通り記述
    If 90 <= n And n <= 100 Then
        MsgBox ("A")
    ElseIf 80 <= n And n <= 89 Then
        MsgBox ("B")
    ElseIf 70 <= n And n <= 79 Then
        MsgBox ("C")
    ElseIf 60 <= n And n <= 69 Then
        MsgBox ("D")
    ElseIf 50 <= n And n <= 59 Then
        MsgBox ("F")
    Else
        MsgBox ("G")
    End If
    
End Sub


■課題3-1:ソースコードその2
このプログラムは上記のifステートメントの条件を簡素化したものです。ポイントはifステートメントの条件の与える順番です。初めの条件は入力された数字が49以下なら「G」と表示するで、その次は59以下ならで、以下順次値を10大きくしていきます。

何故これでOKかというと、例えば初めの条件では「nが49以下ならば…」なのでそうじゃない場合はn>49になるはずです。そこで次の条件は「nが59以下ならば…」となるわけですから、このとき条件を満たすnの値の範囲は必然的に49<n<60となって見事にnの下限と上限が決まります。これで上手く条件を設定できるわけですね。
Sub kadai3_1_2()
    
    Dim n As Integer
    
    n = Val(InputBox("Input number form 0 to 100."))

    'ifの条件を簡略化して記述(kadai3_1_1と等価)
    If n <= 49 Then
        MsgBox ("G")
    ElseIf n <= 59 Then
        MsgBox ("F")
    ElseIf n <= 69 Then
        MsgBox ("D")
    ElseIf n <= 79 Then
        MsgBox ("C")
    ElseIf n <= 89 Then
        MsgBox ("B")
    Else
        MsgBox ("A")
    End If

End Sub


■課題3-1:ソースコードその3
これは条件分岐にcaseステートメントを利用したものです。ポイントは「case A to B」とすることでA~Bまで一括して条件を設定できる点です。
Sub kadai3_1_3()

    Dim n As Integer
    
    n = Val(InputBox("Input number form 0 to 100."))
    
    'Select Case文を利用して記述
    Select Case n
        Case 90 To 100
            MsgBox ("A")
        Case 80 To 89
            MsgBox ("B")
        Case 70 To 79
            MsgBox ("C")
        Case 60 To 69
            MsgBox ("D")
        Case 50 To 59
            MsgBox ("F")
        Case Else
            MsgBox ("G")
    End Select

End Sub


■課題3-2:ソースコード
アルゴリズムに関しては講義資料を参照してください。基本的には条件分岐の大小関係を入れ替えればOKです。来週の試験では恐らくこの問題が狙われると思うのでよく処理の流れや構文を理解しておいてくさいね。
Sub kadai3_2()

    Dim n1, n2, n3, min As Integer
    
    n1 = Val(InputBox("Input n1."))
    n2 = Val(InputBox("Input n2."))
    n3 = Val(InputBox("Input n3."))

    If n1 < n2 Then
        min = n1
    Else
        min = n2
    End If

    If min < n3 Then
        MsgBox (min)
    Else
        MsgBox (n3)
    End If

End Sub
スポンサーサイト
* テーマ:日記 - ジャンル:日記 *
COMMENT TO THIS ENTRY
   非公開コメント  
スポンサーサイトTA中ですのトラックバックURL

この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Lin Minase

Author:Lin Minase
私はこんな人ですv(・_・) ブイッ

・生まれ
 1980年7月17日生まれ
 蟹座O型

・住まい
 神奈川県川崎市

・お仕事
 IT関係の会社に勤務(新人さん)
 SEの卵さんらしいです。

・趣味
 テニス、コーヒー、
 音楽鑑賞(インスト系が多いです)

・好きなもの
 食べ物:
  甘いお菓子、パスタ、サラダ
 色:
  PCCSで言うと、
  pかltトーンで12~18くらいの色
  中間色~寒色系の淡い色
 アーティスト:
  岡本真夜さん、
  植村花菜さん、
  西村由紀江さん、
  加羽沢美濃さん、
  高嶋ちさ子さん

ブロとも申請フォーム

ブログ内検索

CopyRight 2006 Minase's Blog All rights reserved.
Photo material by <ivory> / Designed by Il mio diario
Powered by FC2BLOG / 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。