1 / 19

情報基礎実習 I ( 第 12 回)

情報基礎実習 I ( 第 12 回). 木 曜4・5限 担当 :北川 晃. 例題: 10 人の点数の平均点. 10 人のテストの点数データをキーボードから 1 つずつ 入力 し,その平均点を計算して表示するプログラムを作れ.. 入力のためのフォーム ( InputBox 関数を使用). 10 人の点数の平均点:プログラム例. Label1 , Textbox1 , Button1 , 2 の貼り付け. Label1 に「ここにデータが表示されます」と入力. 10 人の点数の平均点:プログラム例(つづき).

Download Presentation

情報基礎実習 I ( 第 12 回)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 情報基礎実習I(第12回) 木曜4・5限 担当:北川 晃

  2. 例題:10人の点数の平均点 10人のテストの点数データをキーボードから1つずつ 入力し,その平均点を計算して表示するプログラムを作れ. 入力のためのフォーム (InputBox関数を使用)

  3. 10人の点数の平均点:プログラム例 Label1,Textbox1, Button1,2の貼り付け Label1に「ここにデータが表示されます」と入力

  4. 10人の点数の平均点:プログラム例(つづき)10人の点数の平均点:プログラム例(つづき) Private Sub Button1_Click(sender As Object, e As EventArgs) … Dim goukei, n, ten As Integer : Dim heikin As Single goukei = 0 : Label1.Text = "入力データ"& vbLf For n = 1 To 10 ten = InputBox("点数を入力してください", "点数") Label1.Text = Label1.Text & Format(ten, "##0") goukei = goukei + ten Next n heikin = goukei / 10 TextBox1.Text = Format(heikin, "平均点は###.0点") End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) … End End Sub

  5. 例題:多重ループ 2から20までの数について,1を除くすべての約数を ラベルに表示するプログラムを作れ.

  6. 多重ループ:プログラム例 Label1,Button1,2 の貼り付け

  7. 多重ループ:プログラム例(つづき) Private Sub Button1_Click(sender As Object, e As EventArgs) … Dim n, m As Integer Label1.Text = "" For n = 2 To 20 Label1.Text = Label1.Text & Format(n, "##の約数は:") For m = 2 To n If n Mod m = 0 Then Label1.Text = Label1.Text & Format(m, " ## ") End If Next m Label1.Text = Label1.Text & vbLf Next n End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) … End End Sub nをmで割って,余りがゼロなら約数なので書き出す 次のnの評価に移る前に改行コードを入れる

  8. 例題:不定回数の繰り返し 1日目に1円,2日目に2円,…,n日目にはd=2n-1円の ように,毎日倍額を貯金するとする.ある金額tを読み 込んで,貯金の合計がtを超えるのは何日目で,その 時の合計金額がいくらになるか,表示するプログラム を作れ.

  9. 不定回数の繰り返し:プログラム例 Label1~3,Textbox1~3, Button1,2の貼り付け

  10. 不定回数の繰り返し:プログラム例(つづき)不定回数の繰り返し:プログラム例(つづき) Private Sub Button1_Click(sender As Object, e As EventArgs) … Dim n, d, t, sum As Integer t = Val(TextBox1.Text) n = 0 : d = 1 : sum = 0 Whilesum < t sum = sum + d d = d * 2 n = n + 1 End While TextBox2.Text = Format(n, "###") TextBox3.Text = Format(sum, "###,###,###") End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) … End End Sub sumがtを超える まで繰り返す

  11. 不定回数の繰り返し:出力例

  12. 例題:Subプロシージャによる並べ替え 3つの整数を入力し,これを小さい順に並べ替えて 表示するプログラムを作れ. • 考え方: • 二つの数a, bを入れ替えるSubプロシージャを作る. • Subプロシージャの中で並べ替えた変数を, • 主プログラムにどのように反映させるか?

  13. Subプロシージャにおける仮引数の指定 Subプロシージャ(サブルーチン)は,主プログラムから 変数を引き渡されて動作する. … Sbrtn(a, b, c) … Sub Sbrtn(x, y, z) … End Sub • 引数の指定の仕方 • 値渡し (ByVal: Call by Value): • データのコピーが受け渡され, • Subプロシージャ内で仮引数の • 値を変更しても,実引数には影響を与えない. • 参照渡し(ByRef: Call by Reference): • データの参照先が受け渡され,Subプロシージャ内でデータを変更 • すると,参照先のデータも置き換えられ,同時に実引数も変更される. 仮引数

  14. Subプロシージャにおける仮引数の指定(つづき)Subプロシージャにおける仮引数の指定(つづき) • 値渡し (ByVal: Call by Value): • 渡されて来るもの(プロシージャ側) • 与えるもの(呼び出し側) • 参照渡し(ByRef: Call by Reference): • 渡されて,加工して,返すもの(プロシージャ側) • 預けて,返ってきたら中身が加工されていたもの(呼び出し側) Sub Sbrtn(ByVal x As Integer, …) … End Sub 指定がない場合は, 値渡しとして扱われる Sub Sbrtn(ByRef x As Integer, …) … End Sub

  15. Subプロシージャによる並べ替え:プログラム例Subプロシージャによる並べ替え:プログラム例 Label1, 2,Textbox1~6, Button1の貼り付け

  16. Subプロシージャによる並べ替え:プログラム例(つづき)Subプロシージャによる並べ替え:プログラム例(つづき) Private Sub Button1_Click(sender As Object, e As EventArgs) … Dim a, b, c As Integer a = Val(TextBox1.Text) b = Val(TextBox2.Text) c = Val(TextBox3.Text) If a > b Then exchange(a, b) If a > c Then exchange(a, c) If b > c Then exchange(b, c) TextBox4.Text = a TextBox5.Text = b TextBox6.Text = c End Sub Sub exchange(ByRef a As Integer, ByRef b As Integer) Dim work As Integer work = a a = b b = work End Sub a, bが戻ってきたとき, 送ったa, bとは異なっている 参照渡し

  17. 課題:電卓のフォームアプリ作成 • 0~9および小数点のキーを備えていること. • ACキー(すべてを初期化する)を備えていること. • キー入力と連動したディスプレイを一つ以上備えていること. • 正の実数の四則演算ができること • (答えは負の数になる場合もある). • 追加要素の例: • 平方根 • クリアーキー • 正負変換

  18. 数字列の表示:応用 先の例題のプログラムを応用すれば, 簡単な電卓を作成することもできる. 製品として販売されている電卓を研究し, どのような動作をするか考えてみよう

  19. 電卓のフォームアプリ作成:ヒント • TextBoxに表示される数字の文字列を • 数字のデータに変えたり,また文字列に戻したり. • 四則演算をさせるためには,二つの数字を • 記憶させなければならない.どのボタンに, • どのタイミングで動作させるか. • 四則演算のボタンを押したとき,最後にイコール • キーを押すまで,どの演算を行うかをどうやって • 記憶しておくか • ボタンが多くなるので,それぞれの動作の • 関連付けを間違えないこと.

More Related