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

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

情報基礎実習 I (第6回) 木曜4・5限 担当:北川 晃. Stream クラスを用いたファイルの接続 … Dim インスタンス名 As New IO.StreamReader( _ “ ファイルの絶対パス ”, _ System.Text.Encoding.Default) … s = インスタンス名.
情報基礎実習 I (第3回) 木曜4・5限 担当:北川 晃. プログラミング演習 2 つの数を入力し,「計算」ボタンをクリック すると,それぞれの計算結果を次のように 表示するプログラムを作れ.
5.制御構造と配列 場合分け( If Then Else , Select Case ) 繰返し( Do While ) 繰返しその2( For Next )
プログラミング演習( 2 組) 第 9 回
Fortran と有限差分法の 入門の入門の…
情報基礎実習I (第4回) 木曜4・5限 担当:北川 晃.
情報基礎実習I (第2回) 木曜4・5限 担当:北川 晃.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
VBAを通して プログラム言語の基本構造を学ぶ
情報基礎実習I (第7回) 木曜4・5限 担当:北川 晃.
12.3,E,-15, 12.3,E5,+,=, >,<,…,
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
数値計算及び実習 第3回 プログラミングの基礎(1).
VBA H106077 寺沢友宏.
第2回ネットワークプログラミング 中村 修.
情報基礎A 第13週 VBAプログラミング VBAの基本文法7・実際のデータ処理
情報基礎実習I (第5回) 木曜4・5限 担当:北川 晃.
プログラミング序論演習.
情報基礎A 第10週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
C言語 配列 2016年 吉田研究室.
情報基礎A 第7週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
4.2 連立非線形方程式 (1)繰返し法による方法
問題 1 キーボードから入力した数の合計を計算するプログラムを 作成せよ。最初に、何個の数を入力するかその数を入力 するようにする。
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
情報基礎実習I (第1回) 木曜4・5限 担当:北川 晃.
スクリプト言語を用いたPHITSの連続実行
テキストボックス、チェックボックス×2、コマンドボタンを配置する。 コマンドボタンに機能を与える
第7回 条件による繰り返し.
プログラミング 2 ファイル処理.
本時の目標 「簡単なプログラム言語の意味を理解し、マクロ機能を使って簡単なプログラムを作ることができる。」
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
繰り返し計算 while文, for文.
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
地域情報学演習 VBAプログラミング 第3回 2017年10月24日
情報実習I (第7回) 木曜4・5限 担当:北川 晃.
高度プログラミング演習 (03).
第7回 条件による繰り返し.
ルンゲクッタ法 となる微分方程式の解を数値的に解く方法.
情報基礎Ⅱ (第11回) 月曜4限 担当:北川 晃.
VBで始めるプログラミング 第三回 コードを書こう!! まきはた@ナーク ’04/05/21.
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
情報基礎Ⅱ (第5回) 月曜4限 担当:北川 晃.
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
プログラムの基本構造と 構造化チャート(PAD)
Cプログラミング演習資料.
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
先週の復習 2重ループを用いた、 表の記入と読み込み.
情報実習I (第2回) 木曜4・5限 担当:北川 晃.
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
プログラミングⅡ 第2回.
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
情報工学Ⅱ (第2回) 月曜4限 担当:北川 晃.
13.ニュートン法.
情報実習I (第6回) 木曜4・5限 担当:北川 晃.
情報工学Ⅱ (第8回) 月曜4限 担当:北川 晃.
cp-15. 疑似乱数とシミュレーション (C プログラミング演習,Visual Studio 2019 対応)
Cプログラミング演習 ニュートン法による方程式の求解.
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
コンピュータープログラミング (C言語)(10) 1.ファイル入出力
ねらい 数値積分を例題に、擬似コードのアルゴリズムをプログラムにする。
場合分け(If Then Else,Select Case) 繰返し(Do While) 繰返しその2(For Next)
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
コンピュータの高速化により, 即座に計算できるようになってきたが, 手法的にはコンピュータ出現以前に考え出された 方法が数多く使われている。
プログラミング言語によっては,複素数が使えない。
情報基礎A 第14週プログラミング 実際のデータ処理での応用(2)
5.2 グレゴリー・ニュートン(Gregory-Newton)の補間式 (1)導入
8.数値微分・積分・微分方程式 工学的問題においては 解析的に微分値や積分値を求めたり, 微分方程式を解くことが難しいケースも多い。
Presentation transcript:

情報実習I (第6回) 木曜4・5限 担当:北川 晃

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

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

不定回数の繰り返し:プログラム例(つづき) 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 While sum < 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 sumがtを超える まで繰り返す

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

プログラミング演習 高知大学の各学部を入力し,どこのキャンパスに あるかを表示するプログラムを作れ.

各学部の所在地:プログラム例 Label1~3,TextBox1,2, Button1の貼り付け

各学部の所在地:プログラム例(つづき) 「検索」ボタン Dim faculty As String faculty = TextBox1.Text Select Case faculty Case "人文" TextBox2.Text = "朝倉" Case "教育" Case "理" Case "医" TextBox2.Text = "岡豊" Case "農" TextBox2.Text = "物部" Case Else TextBox2.Text = "(存在しない)" End Select

プログラミング演習 ラジオボタンで高知大学の各学部を選択し, どこのキャンパスにあるかを表示するプログラムを作れ.

Label1~4,TextBox1,2,Button1,2, 学部の場所:プログラム例 Label1~4,TextBox1,2,Button1,2, RadioButton1~5の貼り付け

学部の場所:プログラム例(つづき) 「検索」ボタン If RadioButton1.Checked Then TextBox1.Text = "人文" TextBox2.Text = "朝倉" ElseIf RadioButton2.Checked Then TextBox1.Text = "教育" ElseIf RadioButton3.Checked Then TextBox1.Text = "理" ElseIf RadioButton4.Checked Then TextBox1.Text = "医" TextBox2.Text = "岡豊" ElseIf RadioButton5.Checked Then TextBox1.Text = "農" TextBox2.Text = "物部" End If

学部の場所:プログラム例(つづき) 「クリア」ボタン RadioButton1.Checked = False TextBox1.Text = "" : TextBox2.Text = ""

Streamクラスを用いたファイルの接続 プログラム中における ファイルの名前 … Dim インスタンス名 As New IO.StreamReader( _ “ファイルの絶対パス”, _ System.Text.Encoding.Default) s = インスタンス名. インスタンス名.Close() ReadToEnd:ファイルの内容すべてを取得 ReadLine:ファイルから1行読み込む Read :ファイルから1文字読み込む ファイルを閉じる

外部ファイルからのデータの読み込み:例文 Dim a, b, c As Single Dim ReadText As New IO.StreamReader( _ “D:\read_test\data.txt”, _ System.Text.Encoding.Default) a = ReadText.ReadLine() b = ReadText.ReadLine() c = ReadText.ReadLine() Console.WriteLine(“a={0}”,a) Console.WriteLine(“b={0}”,b) Console.WriteLine(“c={0}”,c) ReadText.Close() 1行ずつ 読み込み ファイル名”data.txt”として “D:\read_test\”に保存 3.141592656 2.718281828 1 ファイル を閉じる

Streamクラスを用いたファイルの接続 外部ファイルにデータを書き込む場合 プログラム中における ファイルの名前 … Dim インスタンス名 As New IO.StreamWriter( _ “ファイルの絶対パス”, _ [True または False], [文字コードの指定]) インスタンス名. インスタンス名.Close() ‘True’のときは追記 WriteLine:ファイルに書き込む(改行) Write :ファイルに書き込む(改行無し) ファイルを閉じる

外部ファイルへのデータの書き出し:例文 Writerとして,ファイル “D:\...\result.txt”を接続 Dim Writer As New IO.StreamWriter( _ "D:\...\result.txt") Dim x As Single = 3, y As Single y = Math.Sqrt(x) Writer.Write(y) Writer.Close() ‘True’と書かれていないので,ファイルは上書きされる ‘y’の値を,Writerとして接続したファイルに書き込む ファイルを閉じる

例題:フィボナッチ数列(改) フィボナッチ数列の最初の40項を求めて外部ファイル ’result.txt’へ出力するプログラムを作れ. …

フィボナッチ数列:アルゴリズム 求めたい項を’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項が求まるまで繰り返す.

フィボナッチ数列:プログラム例 Writerとして,ファイル “D:\...\result.txt”を接続 項の数 初項 第二項 Dim i, num, n_old, n_last, n_new As Integer Dim Writer As New IO.StreamWriter( _ "D:\...\result.txt") num = 40 n_old = 0 Writer.WriteLine("{0}", n_old) n_last = 1 Writer.WriteLine("{0}", n_last) For i = 3 To num n_new = n_last + n_old Writer.WriteLine("{0}", n_new) n_old = n_last : n_last = n_new Next Writer.Close() Console.WriteLine("ファイル書き込み完了しました.") Writerとして,ファイル “D:\...\result.txt”を接続 項の数 Writerとして 接続した ファイルに 書き込む 初項 第二項 i=1~num(=40)まで繰り返し ファイルを 閉じる 増分”Step 1” は省略 これらの文を 逆にしてはならない 完了を 知らせる出力

例題:関数のグラフの作成 区間 において,正弦関数の グラフを作成せよ. 考え方: x0をキーボードから読み込み,x=x0から0.1刻みで 区間 において,正弦関数の グラフを作成せよ. 考え方: x0をキーボードから読み込み,x=x0から0.1刻みで x=x0+1まで変化させる. それぞれのxについて,y=Math.Sin(x)を計算する. x,yの組をCSV (Comma Separated Value) 形式で ファイルに書き出す⇒Excelで読み込み

CSV形式のファイル テキストエディタで開くと… Excelで開くと…

三角関数のグラフ:プログラム例 Writerとして,ファイル “D:\...\result.csv”を接続 Dim x0, x, y As Single Dim Writer As New IO.StreamWriter( _ "D:\...\result.csv",True) Console.Write("初期値x0を入力してください:x0=") x0 = Console.ReadLine() For x = x0 To x0 + 1.0 Step 0.1 y = Math.Sin(x) Writer.WriteLine(" {0,10}, {1,10}", x, y) Next Writer.Close() Console.WriteLine("ファイル書き込み完了しました.") ファイルがある場合は追記 Writerとして接続した ファイルに書き込む コンマで区切る ファイルを閉じる 完了を知らせる出力

三角関数のグラフ:出力例 追記されている

三角関数のグラフ:出力例(続き) データの列を選択

三角関数のグラフ:出力例(続き)

プログラミング演習 区間 において,正弦関数 およびその導関数,2階導関数のグラフを作成せよ. 考え方: オイラーの差分公式を用いる. 区間        において,正弦関数     およびその導関数,2階導関数のグラフを作成せよ. 考え方: オイラーの差分公式を用いる. x, y, dy, d2yの各値を,CSV形式で 外部ファイルに書き出す. y ⇒ dy ⇒ d2y ⇒

三角関数の導関数:出力例

三角関数の導関数:プログラム例 Writerとして,ファイル “D:\...\result.csv”を接続 微小量を定める 導関数の計算 Dim x, y, dy, d2y, h As Single Dim Writer As New IO.StreamWriter("D:\...\result.csv") h = 0.01 For x = 0 To 10 Step 0.1 y = Math.Sin(x) dy = (Math.Sin(x + h) - Math.Sin(x)) / h d2y = (Math.Sin(x + h) - 2 * Math.Sin(x) _ + Math.Sin(x - h)) / h ^ 2 Writer.WriteLine("{0,10},{1,10},{2,10},{3,10}", _ x, y, dy, d2y) Next Console.WriteLine("ファイルの書き込み終了しました.") Writer.Close() 微小量を定める 導関数の計算 コンマで区切る 完了を知らせる出力 ファイルを閉じる

プログラミング演習 区間 において,矩形波を 出力するプログラムを作れ. 考え方: 矩形波 を Functionプロシージャとして作成する. 区間 において,矩形波を 出力するプログラムを作れ. 考え方: 矩形波                       を Functionプロシージャとして作成する. x,yの組をCSV (Comma Separated Value) 形式で ファイルに書き出す⇒Excelで読み込み

矩形波のグラフ:出力例

矩形波のグラフ:プログラム例 Writerとして,ファイル “D:\...\result.csv”を接続 Sub Main() Dim x, y As Single Dim Writer As New IO.StreamWriter( _ "D:\...\result.csv") For x = 0 To 10 Step 0.01 y = rect(x) Writer.WriteLine(" {0,10}, {1,10}", x, y) Next Writer.Close() Console.WriteLine("ファイル書き込み完了しました.") End Sub Writerとして接続した ファイルに書き込む コンマで区切る ファイルを閉じる 完了を知らせる出力

矩形波のグラフ:プログラム例(続き) Function rect(x) Dim y As Single If x - Fix(x / 2) * 2 < 1 Then y = 0 Else y = 1 End If Return y End Function x=0.5のとき,   0.5-Fix(0.25)*2=0.5<1 x=1.5のとき,   1.5-Fix(0.75)*2=1.5>1 x=2.5のとき,   2.5-Fix(1.25)*2=0.5<1        … yの値を返す

プログラミング演習 次の微分方程式の初期値問題をオイラー法により数値的に解け. 考え方: オイラーの差分公式を利用する.        について,繰り返し計算を行う. x=0のとき,   =y0=2として, =yを計算する. xとyを書き出し,y0=yと置き直して 次のxについて計算を続ける. ⇒

微分方程式(オイラー法):出力例

微分方程式(オイラー法):プログラム例 Writerとして,ファイル “D:\...\result.csv”を接続 Dim x, y, y0, h As Single Dim Writer As New IO.StreamWriter("D:\...\result.csv") h = 0.01 : y0 = 2 For x = 0 To 2 Step h y = y0 + h * f(x, y0) Writer.WriteLine("{0,10}, {1,10}", x, y) y0 = y Next Console.WriteLine("ファイルの書き込み終了しました.") Writer.Close() 刻み幅,初期値の設定 Writerとして接続した ファイルに書き込む コンマで区切る 次の計算のための置き直し ファイルを閉じる 完了を知らせる出力

微分方程式(オイラー法):プログラム例(続き) Function f(x, y0) Dim y As Single y = -x / y0 Return y End Function 関数プロシージャ部分