Download presentation
Presentation is loading. Please wait.
1
情報基礎Ⅱ (第5回) 月曜4限 担当:北川 晃
2
Microsoftアカウントの取得
3
Microsoftアカウントの取得
4
For……Next文の基本的な表式 For 制御変数 [As 型] = 初期値 To 終了値 [Step 増分] 文ブロック
制御変数の値が初期値から終了値の間,ループを繰り返す. 1回ループするたびに,制御変数の値は増分だけ増加する. 増分が負の場合は,減少する. 増分が1の場合のみ,”Step 1”は省略可. ループ内でのみ用いる制御変数を,Asで宣言できる. […]内は省略可.
5
For……Next文の例文 整数nを読み込んで,1+2+…+nの値を計算せよ. Console.Title = "1~nまでの和"
Dim n As Integer, sum As Integer = 0 Console.Write("n=") n = Console.ReadLine() For i As Integer = 1 To n sum = sum + i Next i Console.WriteLine("1+2+…+n={0}", sum) 変数iは,ループ内 でのみ用いる. 増分”1”は省略 繰り返し 構造 繰り返し構造の終了 (iは省略可)
6
For……Next文の入れ子構造 文頭でi,jの型を For j = 1 To n 宣言している場合 For i = 1 To n
文ブロック Next 繰り返し構造の中に繰り返し 構造を作ることもできる. “Next i”などと書けば,どの 変数のループかはっきりする For j = 1 To n For i = 1 To n 文ブロック Next j Next i 右のようなループの 組み合わせは許されない.
7
例題:フィボナッチ数列 フィボナッチ数列の最初の40項を求めて 出力するプログラムを作れ. …
8
フィボナッチ数列:アルゴリズム 求めたい項を’n_new’,ひとつ前の項を’n_last’, 二つ前の項を’n_old’とする.
初期値としてn_old=0,n_last=1を代入し, 第一項と第二項をそれぞれ書き出す. 第三項をn_new=n_old+n_lastにより計算し,書き出す. 次の第四項を求めるために, n_old=n_last,n_last=n_newの置き換えを行う. この手順を,第40項が求まるまで繰り返す.
9
フィボナッチ数列:出力例
10
フィボナッチ数列:プログラム例 項の数 初項 第二項 i=1~num(=40)まで繰り返し 増分”Step 1” は省略 これらの文を
Dim i, num, n_old, n_last, n_new As Integer num = 40 n_old = 0 Console.WriteLine("{0}", n_old) n_last = 1 Console.WriteLine("{0}", n_last) For i = 3 To num n_new = n_last + n_old Console.WriteLine("{0}", n_new) n_old = n_last n_last = n_new Next 項の数 初項 第二項 i=1~num(=40)まで繰り返し 増分”Step 1” は省略 これらの文を 逆にしてはならない
11
さまざまな組み込み関数 Math.Abs(x): xの絶対値 Math.Sign(-5)→-1 Math.Sign(0)→0
Math.Sign(x): xの符号 Int(x): xを超えない最大の整数 Fix(x): xの整数部分 Math.Sqrt(x): xの平方根 Math.Log(x): xの自然対数 Math.Exp(x): xの指数関数 Math.Sin(x): xの正弦(ラジアン単位) Math.Cos(x): xの余弦(ラジアン単位) Math.Tan(x): xの正接(ラジアン単位) Math.Sign(-5)→-1 Math.Sign(0)→0 Math.Sign(30)→1 Int(-4.3)→-5 Int(4.3)→4 Fix(-4.3)→-4 Fix(4.3)→4
12
例題:平方根の計算 a=1, 2, …, 50に対して,その平方根 を求め, 表を出力するプログラムを作れ. : Math.Sqrt(a)
補正値:
13
平方根の計算:アルゴリズム 整数 について,以下の手順を繰り返す. 初期値として, roota=1を代入する. 補正値 の計算を行う.
整数 について,以下の手順を繰り返す. 初期値として, roota=1を代入する. 補正値 の計算を行う. roota=roota+cにより補正を行う. 補正した値の相対値 を設定した値 と比較して 小さくなるまで補正を繰り返す.
14
平方根の計算:出力例
15
平方根の計算:プログラム例 許容誤差 単精度実数型の限界
Dim a As Integer, eps As Single = Dim roota, c As Single For a = 1 To 50 roota = 1 c = 1 While Math.Abs(c) / roota > eps c = (a / roota - roota) / 2 roota = roota + c End While Console.WriteLine("√{0}={1}", a, roota) Next 整数a=1~50に ついて繰り返す √aの初期値 補正値の計算 √aの値を補正 補正値が許容誤差より 小さくなるまで繰り返す
16
例題:4次式の数表 4次式 の値を,0から0.2きざみで5.0までのxに対して計算し, 順に書き出すプログラムを作れ.
Dim y As Single For x As Single = 0.0 To 5.0 Step 0.2 y = 1.5 * x ^ * x ^ 3 _ + 6.2 * x ^ * x + 2.1 Console.WriteLine("{0,8},{1,16}", x, y) Next “x”を書き出すために, 8文字分確保する
17
書き換えが煩雑!!関数として定義できないか?
例題:4次式の数表(改) 4次式 について, の値を,0から0.2きざみで5.0までの xに対して計算し,順に書き出すプログラムを作れ. xをMath.Sqrt(x)で置き換え Dim y As Single For x As Single = 0.0 To 5.0 Step 0.2 y = 1.5 * x ^ * x ^ 3 _ + 6.2 * x ^ * x + 2.1 Console.WriteLine("{0,8},{1,16}", x, y) Next 書き換えが煩雑!!関数として定義できないか?
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.