授業計画 14.アプリケーションの作成 アプリケーションの作成を通したプログラムの理解 14.1 確認・提出事項 レポート提出 14.2 授業内容 移動平均法の応用 プログラムの復習 14.3 移動平均法の応用 移動平均法を用いたノイズの除去 14.4 プログラムの復習 演習 基本的なプログラムの例 14.5 レポート課題 本日のレポートが最後になります。 すべてのレポートの提出期限 1月24日 火曜日 これ以降はレポートを受け取りません! 14.6 その他 試験は 2 月 7 日(火)の 1 限、301 号教室で行います。 出題範囲は配布したプリントです。 印刷されていないもの(パワーポイントのみで紹介したテクニックなど)は、 テスト範囲に含みません。 語句、演習、例題、レポート等をよく見直しておいてください。 最初の Excel に関する部分も復習しておくこと。 ※これまでの授業用資料、レポート課題等は http://ace.cen.kagoshima-u.ac.jp/bunseki/proex/proex.htm にアップロードしてあります。 レポート提出先 満塩([email protected]) 14.アプリケーションの作成 【移動平均法の応用】 科学にエクセルを利用する利点は、大量のデータを統計的に処理出来る点である。 計算精度はMathmatica等よりも劣るが、簡単にデータを視覚化することができる。 コントロールの利用やセルを使用した基本的なプログラミングについて、 これまで勉強してもらったが、ここからはプログラムを使った データ処理について勉強する。 【3点移動平均法を用いたノイズの平滑化】 【演習1】コマンドボタンを配置し、以下のプログラムを入力せよ。 (コメントは省略しても良い) Dim i As Integer 'i For~Next用のカウンタ Dim a As Integer, b As Integer, rad As Single 'a,b Sinの値代入用、rad ラジアン変換用係数 rad = 3.1415 / 360 'ラジアン変換用係数 For i = 1 To 360 a = Sin(i * rad) '短波 b = Sin(i * rad * 6) '長波 Cells(i, 1).Value = a + b '合成 Next 【演習2】コマンドボタンを配置し、以下のプログラムを入力せよ Dim a As String 'セルのチェック用 Dim b As Single 'セルの読み込み用 Dim i As Integer 'カウンタ(Do~Loop内で使用) i = 0 '変数の初期化 Do i = i + 1 a = Cells(i, 1).Value 'セルのチェック If a = "" Then Exit Do '空白だったら終了 b = Cells(i, 1).Value '今度は小数の数字としてbに読み込み b = b + Rnd(1) * 0.4 - 0.2 'ノイズを混入 Cells(i, 1).Value = b 'セルに書き戻し Loop 【演習3】コマンドボタンを配置し、以下のプログラムを入力せよ Dim a As String 'セルのチェック用 Dim aa, bb, cc, ave As Single 'aa,bb,cc セルの読み込み用、ave 平均用 Dim i As Integer 'カウンタ(Do~Loop内で使用) i = 1 '変数の初期化、一段下から始める Do i = i + 1 a = Cells(i + 1, 1).Value 'セルのチェック If a = "" Then Exit Do '空白だったら終了 aa = Cells(i - 1, 1).Value '注目点のひとつ上 bb = Cells(i, 1).Value '注目点 cc = Cells(i + 1, 1).Value '注目点のひとつ下 ave = (aa + bb + cc) / 3 '平均算出 Cells(i, 2).Value = ave '平均を注目点の隣のセルに書き込み Loop アナログデータは、いくらノイズ除去を行っても元のデータに戻ることはない。 しかし、統計的な意味を持ったノイズ除去を行うことで、その後の解析を 容易にすることができる。 【プログラムの作成の復習】 ・基本的なプログラムの例 ・繰り返す For i = 1 To 10 Next :iが1~10になるまで繰り返す。 iの数字が1から10まで変化していくので、 これを利用すると連続的な処理が容易になる。 For i = 10 To 1 Step -1 :iが10~1になるまでを繰り返す。 iの数字が10から1とカウントダウンしていくので、 Next これを利用すると連続的な処理が容易になる。 ・条件判断 If [条件] Then [処理] または If [条件] Then [処理] End If :条件が満たされると、処理が実行される [条件] i = 3 :iが3のとき i = v :iとvが等しいとき v <> i :iとvが等しくないとき v < 2 :vが2より小さいとき v >= 2 :vが2以上のとき ・セルから入力 a = Cells(1, 1).Value :A1の内容を変数aに入力 a = Cells(y, x).Value :x列y行の内容を変数aに入力 For i = 1 To 5 :A1~A5の内容を配列変数a(1)~a(5)に入力 a(i) = Cells(i, 1).Value Next ・セルへ出力 Cells(1, 1).Value = a :変数aの内容をA1に出力 Cells(1, 1).Value = "文字列" :「文字列」をA1に出力 Cells(x, y).Value = a :変数aの内容をx列y行に出力 For i = 1 To 5 :配列変数a(1)~a(5)の内容をA1~A5に出力 Cells(i, 2).Value = a(i) Next ・インプットボックスからの入力 a = InputBox("質問文", "タイトル") :インプットボックスで入力を促す ・メッセージボックスの出力 MsgBox a :変数aの内容をメッセージボックスで表示 re = MsgBox("メッセージ", 1, "タイトル") :メッセージを表示し、返答を変数reに入力 プログラムを作成せよ。内容、コントロールの使用は全て自由とする。 ※ただし、入力→処理→出力の流れを持ったものであること。 配点は20点で、内容10点、プログラム技術10点で採点する。 特にアイデアがない場合は例を参考にせよ。 (例と同程度でアイデア、プログラムともに8前後) ※プログラムによっては「入力」不要。 ただし、必ず何らかの処理→出力の動きを持たせること。
© Copyright 2025 ExpyDoc