情報基礎Ⅱ (第11回) 月曜4限 担当:北川 晃.

Slides:



Advertisements
Similar presentations
情報基礎実習 I (第6回) 木曜4・5限 担当:北川 晃. Stream クラスを用いたファイルの接続 … Dim インスタンス名 As New IO.StreamReader( _ “ ファイルの絶対パス ”, _ System.Text.Encoding.Default) … s = インスタンス名.
Advertisements

情報基礎実習 I (第3回) 木曜4・5限 担当:北川 晃. プログラミング演習 2 つの数を入力し,「計算」ボタンをクリック すると,それぞれの計算結果を次のように 表示するプログラムを作れ.
5.制御構造と配列 場合分け( If Then Else , Select Case ) 繰返し( Do While ) 繰返しその2( For Next )
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
情報基礎実習I (第4回) 木曜4・5限 担当:北川 晃.
徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
プログラミング言語としてのR 情報知能学科 白井 英俊.
VBAを通して プログラム言語の基本構造を学ぶ
情報基礎実習I (第7回) 木曜4・5限 担当:北川 晃.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
情報基礎A 第13週 VBAプログラミング VBAの基本文法7・実際のデータ処理
情報基礎実習I (第5回) 木曜4・5限 担当:北川 晃.
C言語 配列 2016年 吉田研究室.
問題 1 フィボナッチ数列 xn は次で定義される。
プログラミング言語論 第4回 手続きの引数機構 変数の有効範囲
情報基礎A 第14週プログラミング 実際のデータ処理での応用(2)
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
情報基礎実習I (第1回) 木曜4・5限 担当:北川 晃.
関数 関数とスタック.
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
C言語講座 第3回 ポインタ、配列.
プログラミング2 関数
図書館職員のための アプリケーション開発講習会
本時の目標 「簡単なプログラム言語の意味を理解し、マクロ機能を使って簡単なプログラムを作ることができる。」
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
関数の定義.
第10回関数 Ⅱ (ローカル変数とスコープ).
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
情報実習I (第6回) 木曜4・5限 担当:北川 晃.
情報実習I (第7回) 木曜4・5限 担当:北川 晃.
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
プログラミング言語論 第五回 理工学部 情報システム工学科 新田直也.
地域情報学 C言語プログラミング 第5回 ポインタ、関数、ファイル入出力 2017年11月17日
情報基礎Ⅱ (第5回) 月曜4限 担当:北川 晃.
プログラミング言語論 第5回 手続きの引数機構 変数の有効範囲
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
Cプログラミング演習資料.
情報とコンピュータ 静岡大学工学部 安藤和敏
先週の復習 2重ループを用いた、 表の記入と読み込み.
プログラミング序論演習.
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
プログラミング入門2 第13回、14回 総合演習 情報工学科 篠埜 功.
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
情報工学Ⅱ (第2回) 月曜4限 担当:北川 晃.
第5回 プログラミングⅡ 第5回
精密工学科プログラミング基礎 第7回資料 (11/27実施)
情報実習I (第6回) 木曜4・5限 担当:北川 晃.
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
情報工学Ⅱ (第8回) 月曜4限 担当:北川 晃.
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
プログラミング演習I 2003年6月11日(第9回) 木村巌.
Cプログラミング演習資料.
場合分け(If Then Else,Select Case) 繰返し(Do While) 繰返しその2(For Next)
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
計算技術研究会 第5回 C言語勉強会 関数(function)を使う
プログラミング言語によっては,複素数が使えない。
情報基礎A 第14週プログラミング 実際のデータ処理での応用(2)
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
5.2 グレゴリー・ニュートン(Gregory-Newton)の補間式 (1)導入
8.数値微分・積分・微分方程式 工学的問題においては 解析的に微分値や積分値を求めたり, 微分方程式を解くことが難しいケースも多い。
Presentation transcript:

情報基礎Ⅱ (第11回) 月曜4限 担当:北川 晃

平均値と標準偏差 平均値: 標準偏差: n個のデータx1, x2, …, xnが与えられている. データを逐次読み込んで,その平均値と 標準偏差を求めよ. 平均値: 標準偏差:

平均値と標準偏差:具体例 (i) N≧2のとき :平均値 :標準偏差

プログラミング演習 外部データ’normal_data.txt’よりデータ点数および各データを読み込んで,それらの平均値を計算するプログラムを作れ. ‘normal_data.txt’を読み込みファイルとして接続する. データ点数を読み込み,nに代入する. すべてのデータを配列a(i)に代入する. すべてのデータの和sを計算する. 平均値aveを計算し,表示する.

出力例:平均値の計算

プログラム例:平均値の計算 データ点数の読み込み データを配列へ読み込む データの和の計算 平均値の計算 Dim a(10000), ave As Single, s As Single = 0, n As Integer Dim ReadText As New IO.StreamReader( _ "D:\…\normal_data.txt", System.Text.Encoding.Default) n = ReadText.ReadLine() For i As Integer = 1 To n a(i) = ReadText.ReadLine() Next s = s + a(i) ave = s / n Console.WriteLine("平均はE={0,8}", ave) ReadText.Close() データ点数の読み込み データを配列へ読み込む データの和の計算 平均値の計算

プログラミング演習 外部データ’normal_data.txt’よりデータ点数および各データを読み込んで,それらの平均値を計算するプログラムを作れ. 上記のプログラムをFunctionプロシージャに書き直し,平均値を計算するプログラムを作れ.

例題:平均値を求める関数副プログラム データ点数nとa(i) (i=1,…,n)を引数として,それらの 平均値を返す関数副プログラムを作れ. 関数プロシージャの引数には,配列を取ることも可能. 配列 Sub Main() Dim a(10), ave As Single, n As Integer … ave = ave_func(n,a) End Sub Function ave_func(n,a) Return ave End Function 配列 配列

平均値を求める関数副プログラム:プログラム例 Sub Main() Dim a(10000), ave As Single, n As Integer Dim ReadText As New IO.StreamReader( _ "D:\…\normal_data.txt", System.Text.Encoding.Default) n = ReadText.ReadLine() For i As Integer = 1 To n a(i) = ReadText.ReadLine() Next ReadText.Close() ave = ave_func(n, a) Console.WriteLine("平均はE={0,8}", ave) End Sub

平均値を求める関数副プログラム:プログラム例 Function ave_func(n, a) Dim s As Single = 0, ave As Single For i As Integer = 1 To n s = s + a(i) Next ave = s / n Return ave End Function 関数副プロシージャで, 以下のものは宣言不要 共通に宣言した変数 関数の仮引数

プログラミング演習 外部データ’normal_data.txt’よりデータ点数および各データを読み込んで,それらの平均値を計算するプログラムを作れ. 上記のプログラムをFunctionプロシージャに書き直し,平均値を計算するプログラムを作れ. さらに標準偏差を計算するプログラムを,Functionプロシージャを用いて作れ.

平均値を求める関数副プログラム:プログラム例 Sub Main() Dim a(10000), ave, sd As Single, n As Integer Dim ReadText As New IO.StreamReader( _ "D:\…\normal_data.txt", System.Text.Encoding.Default) n = ReadText.ReadLine() For i As Integer = 1 To n a(i) = ReadText.ReadLine() Next ReadText.Close() ave = ave_func(n, a) sd = sd_func(n, a, ave) Console.WriteLine("平均はE={0,8}", ave) Console.WriteLine(“標準偏差はσ={0,8}", sd) End Sub

平均値を求める関数副プログラム:プログラム例 Function ave_func(n, a) … Return ave End Function Function sd_func(a, ave, n) Dim s2 As Single = 0.0 Dim var, sd As Single For i As Integer = 1 To n s2 = s2 + a(i) ^ 2 Next var = s2 / n - ave ^ 2 sd = Math.Sqrt(var) Return sd

プログラミング演習 外部データ’normal_data.txt’よりデータ点数および各データを読み込んで,それらの平均値および標準偏差を計算するサブルーチン・プログラムを作れ.

Subプロシージャとは 主プログラムの一部を外部の副プログラムに移す 繰り返し同じ記述をする場合などに有効 Functionプロシージャとは異なり, 主プログラムに値は返さない 主プログラムと変数のやりとりをすることもできる プログラムで 共有する変数は,Mainよりも外で 宣言する Mainプログラムも, Subプロシージャの一つ Sub Main() … プロシージャ名(変数) End Sub Sub プロシージャ名(変数) 文ブロック 値は返さないので, “Return *”はいらない

通常サブルーチンは値を返せないので,サブルーチン内で結果を表示する 平均値を求めるサブルーチン:プログラム例 Sub Main() Dim a(10000), ave, sd As Single Dim n As Integer Dim ReadText As New IO.StreamReader("d:\normal_data.txt", _ System.Text.Encoding.Default) n = ReadText.ReadLine() For i As Integer = 1 To n a(i) = ReadText.ReadLine() Next ReadText.Close() ave_sub(n,a) sd_sub(n,a,ave) End Sub 通常サブルーチンは値を返せないので,サブルーチン内で結果を表示する (主プログラムの変数を書き換える ことができない)

平均値を求めるサブルーチン:プログラム例 Sub ave_sub(n,a) Dim s As Single = 0.0 For i As Integer = 1 To n s = s + a(i) Next ave = s / n Console.WriteLine("平均はE={0,8}", ave) End Sub Sub sd_sub(n,a,ave) Dim s2 As Single = 0.0, var As Single s2 = s2 + a(i) ^ 2 var = s2 / n - ave ^ 2 sd = Math.Sqrt(var) Console.WriteLine("標準偏差はσ={0,8}", sd) サブルーチンは,プログラムの 一部を外部に分割. 値を返すことができない.

平均値を求めるサブルーチン:プログラム例 Dim a(10000), ave, sd As Single Sub Main() Dim n As Integer Dim ReadText As New IO.StreamReader("d:\normal_data.txt", _ System.Text.Encoding.Default) n = ReadText.ReadLine() For i As Integer = 1 To n a(i) = ReadText.ReadLine() Next ReadText.Close() ave_sub(n) sd_sub(n) Console.WriteLine("平均はE={0,8}", ave) Console.WriteLine("標準偏差はσ={0,8}", sd) End Sub 主プログラムの外で変数を宣言する 主プログラムの変数を 書き換えているわけではない (サブルーチンで計算した 値が使える)

平均値を求めるサブルーチン:プログラム例 Sub ave_sub(n) Dim s As Single = 0.0 For i As Integer = 1 To n s = s + a(i) Next ave = s / n End Sub Sub sd_sub(n) Dim s2 As Single = 0.0, var As Single s2 = s2 + a(i) ^ 2 var = s2 / n - ave ^ 2 sd = Math.Sqrt(var)