130 likes | 294 Views
情報基礎 II ( 第1 2 回). 月 曜4限 担当 :北川 晃. 例題:文字列の文字を取り出す. 文字列 ” 風林火山 ” をテキストボックスから読み込み, 別のテキストボックス に正順のまま縦に表示し,逆順 にして横に表示するプログラムを作れ.. 文字列の文字を取り出す:プログラム例. TextBox1 ~ 3 , Button1, 2 の貼り付け. TextBox2 の ” MultiLine ” オプション を True にする. 文字列の文字を取り出す:プログラム例 (つづき). Dim M As String
E N D
情報基礎II(第12回) 月曜4限 担当:北川 晃
例題:文字列の文字を取り出す 文字列”風林火山”をテキストボックスから読み込み, 別のテキストボックスに正順のまま縦に表示し,逆順 にして横に表示するプログラムを作れ.
文字列の文字を取り出す:プログラム例 TextBox1~3, Button1, 2の貼り付け TextBox2の”MultiLine” オプションをTrueにする
文字列の文字を取り出す:プログラム例(つづき)文字列の文字を取り出す:プログラム例(つづき) Dim M As String Private Sub Button1_Click(sender As Object, e As EventArgs) … Dim L As Integer M = TextBox1.Text L = Len(M) For i As Integer = 1 To L TextBox2.Text = TextBox2.Text & Mid(M, i, 1) & vbCrLf Next i For i As Integer = L To 1 Step -1 TextBox3.Text = TextBox3.Text & Mid(M, i, 1) Next i End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) … TextBox1.Text = "": TextBox2.Text = "" TextBox3.Text = "" : M = "" End Sub 文字列Mの長さを求める 改行コード 文字列Mの i文字目から 一文字分 文字列Mを逆に書き出す
例題:文字列とリストボックス 誕生月と誕生日を選び,その星座を表示するプログラムを作れ. • 1/20~2/18:水瓶 • 2/19~3/20:魚 • 3/21~4/19:牡羊 • 4/20~5/20:牡牛 • 5/21~6/21:双子 • 6/22~7/22:蟹 • 7/23~8/22:獅子 • 8/23~9/22:乙女 • 9/23~10/23:天秤 • 10/24~11/22:蠍 • 11/23~12/21:射手 • 12/22~1/19:山羊
文字列とリストボックス:プログラム例 Label1,TextBox1, Button1の貼り付け ListBox1の貼り付け, プロパティの”Items”に 生年月日を入力
文字列とリストボックス:プログラム例(つづき)文字列とリストボックス:プログラム例(つづき) Dim n As Integer : Dim hoshi As Object hoshi= New Object() {"水瓶", "魚", "牡羊", "牡牛", "双子", _ "蟹", "獅子", "乙女", "天秤", "蠍", "射手", "山羊"} n = ListBox1.SelectedIndex TextBox1.Text = hoshi(n) & "座" • Objectクラスは,任意の型に対応する. • 変数”hoshi”を,12個の要素を持つ配列として, • それぞれの要素を指定している.
例題:文字の検索とカウント 英文をテキストボックスから入力して,aからzまでの 各英字の個数を求め,ラベル上に表示するプログラム を作れ.ただし,英字はすべて小文字とし,空白,句読点 は数えない. 英文を入力 句読点などは飛ばされる 「実行」を押すと,各文字の 出てきた回数を勘定して表示
文字の検索とカウント:プログラム例 Label1~7,TextBox1, 2, Button1, 2の貼り付け TextBox1の”MultiLine” オプションをTrueにする ① ⑤ ③ ⑥ ④ ⑦ ② 縦書きのため, エディターを起動
文字の検索とカウント:プログラム例(つづき)文字の検索とカウント:プログラム例(つづき) Dim i, k, u, L, co(25) As Integer Dim A, C, W(), WW As Object A = New Object() {"a", "b", "c", "d", "e", "f", "g", "h", _ "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", _ "t", "u", "v", "w", "x", "y", "z"} Label5.Text = "" Label6.Text = "" Label7.Text = "" u = Val(TextBox2.Text) - 1 ReDimW(u) WW = 0 For i = 0 To u W(i) = TextBox1.Lines(i) WW = WW & W(i) Next i L = Len(WW) 配列W(u)の要素数未確定 Aを一般の”Object”として宣言, 後で配列として要素の入力 英文の行数を入力 W(u):テキストのu行目の文字列 ここで配列の要素数を確定する テキストボックスのi行目1行 すべてを1行にまとめる 「実行」 ボタン 文字列の長さを求める
文字の検索とカウント:プログラム例(つづき)文字の検索とカウント:プログラム例(つづき) For i = 1 To L C = Mid(WW, i, 1) For k = 0 To 25 If C = A(k) Then co(k) = co(k) + 1 End If Next k Next i For i = 0 To 8 Label5.Text = Label5.Text & co(i) & vbLf Next i For i = 9 To 17 Label6.Text = Label6.Text & co(i) & vbLf Next i For i = 18 To 25 Label7.Text = Label7.Text & co(i) & vbLf Next i 文字列WWの, i文字目から一文字分 もしその文字がA(k)に等しければ, カウントを一つ増やす 「実行」 ボタン
文字の検索とカウント:プログラム例(つづき)文字の検索とカウント:プログラム例(つづき) TextBox1.Text = "" Label5.Text = "頻度" Label6.Text = "頻度" Label7.Text = "頻度" TextBox2.Text = "" 「消去」 ボタン
文字の検索とカウント:プログラムの改良 • 大文字も入力可能とできないか. • 空白はカウントできないだろうか. • ピリオド,コンマなどの句読点のカウントはどうか. • そのほかの記号”!”,”?”,”;”,”:”,” ’ ”なども含めてみよう. • すべての文字数に対して,各文字はどれくらいの • 頻度で現れるか,計算してみよう.