1 情報基礎 A プログラムやソフトウエアの 構造 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
2 プログラムとソフトウエア コンピュータが行える基本演算 – スイッチのオンオフ ( ビットの01の反転) – 四則演算 – 大小比較 – 記憶領域からのデータ読みとり – 記憶領域へのデータ書き込み – 入出力 ( 画面などへの) プログラム: コンピュータに作業させるために基 本演算を組み立てたもの プログラミング: プログラムの組み立て作業 ソフトウエア: 複雑なアプリケーション ( ワープ ロ、メールなどの目的と、そのための計算機利用)を 便利に実行するためにプログラムやその周辺環境 ( 使 い方やユーザインターフェースなど ) をまとめたシス テム
3 簡単なプログラム 1 データを書く – データが数値であるか文字であるか指定す る – エクセルでの直接入力だと自動的に判定す る A1 に数値を書こう –A1=250 B1 に文字列を書こう –B1=“ カレーライス ” C1 に A1 をコピーしよう –C1=A1
4 簡単なプログラム 2 四則演算を行う – A1= – B1= 20*40 – C1= ( )*2 -10 格納したデータを読み取って計算する –D2=250 –D3 =120 –D4= D2 +D3 –D5= D4 * D3 – D6 = (D4 + D2 )*2 -100
5 簡単なプログラム 3 大小比較を行う – A1= 3>2 – B1= 2>3 – C1= (2*2) >5 スイッチのオンオフ –True は on False は off – True と False での動作選択( Branching, 分岐) –If 文を用いたプログラム E1=True E2= False E3 =If (E1, “ 正解 ”, “ 不正解 ” ) E4=If (E2, “ 正解 ”, “ 不正解 ” )
6 プログラムの構造 プログラム=アルゴリズムの記述 手続き型プログラム – 時系列で手続きを行い、データを変化させてい く – アルゴリズムの自然な記述 – コンピュータの実際の動作に近い – 大規模システムだと、プログラムの手間は多い 手続き型プログラムを記述する言語:アセ ンブラ言語、 Basic 、 COBOL, Pascal, Fortran など
7 アルゴリズムと手続き アルゴリズム: ある作業をするための手続き – コロッケを作る A1= ジャガイモの皮をむく A2= A1 をゆでる B1= たまねぎを刻む B2= B1 とひき肉を混ぜて炒め、下味をつける C1= キャベツを刻む A3= A2 をすり鉢でつぶし、塩と胡椒をふる A4= B2 と A3 を混ぜて手の平大に丸める A5= A4 を小麦粉、溶き卵、パン粉でまぶす A6= A5 を 170 度の油に入れ、 3 分で取り出す A7= A6 と C1 を皿に盛り付け、ソースをかける – 成績表を作る – 4 月の家計簿を作成する あなた方はアルゴリズムを考えるはずです。
8 プログラムの構造 関数型プログラム – データ処理を関数で記述する – 関数の組み合わせでプログラムを書く – 関数が多数準備されていれば使いやすい – 再利用しやすく、安全性は高い 関数型プログラム言語: Lisp, ML など Excel で作った表は関数型プログラムの一種 – データの関連 (relation) を関数で記述する – データ変化 ( イベントという)にしたがって関 連する 関数の値を計算しなおす
9 関数とは 関数: 入力に対し出力を出す機構 – 算術関数、統計関数 C1= sum (A1, B1) A21 = sum (A1: A20) 最大値関数 max ( A1: A10) 平均値関数 average ( A1:A10) – 論理関数 (特に大切) If : 判定関数。 IF ( 判定式, 動作1, 動作2) – 判定式が True なら動作1を、 False なら動作2を行う – IF(C20>C21, “ 今月は黒字 ”, “ 今月は赤字 ” ) – IF(A1>B1, A1-B1, B1-A1) これは何でしょうか? – 検索関数 VLOOKUP(“ りんご ”, A1:C8, 2)
10 If 文を使った計算 成績が 90 点以上なら秀、 80 点以上 90 点未満は 優、 70 点以上 80 点未満は良、 60 点以上 70 点未満 は可, 60 点未満は不可 >=90 >=80 >=70 >=60 true false 秀 優 良 可
11 If 文を使った計算 成績が 90 点以上なら秀、 80 点以上 90 点未 満は優、 70 点以上 80 点未満は良、 60 点以上 70 点未満は可, 60 点未満は不可 成績が A1 に蓄えられていれば、 B1= If (A1>=90, “ 秀 ”, If(A1>=80, “ 優 ”,” そ の他 “ )) C1= If (A1>=90, “ 秀 ”, If(A1>=80, “ 優 ”, If(A1>=70,“ 良 ”, If(A1>=60,” 可 “, “ 不可 ”))))
12 アルゴリズムの問題 税金の計算 – A1 に年収を書く – A2 に控除額を計算する – A3= A1 - A2 – B1 に税率を計算する – A4 に税金額を計算する 税率: 年収が 500 万円未満なら 10% 、 500 万 円以上 900 万円未満なら 20% 、 900 万円以上な ら 30% 控除額: 年収が 500 万円未満なら 100 万円、 500 万円以上 900 万円未満なら 300 万円、 900 万 円以上なら 500 万円
13 宿題 最大値関数 Max を使わないで最大 値を計算できるでしょうか? 使っていい関数は論理関数 IF と大小 比較のみ A1 から A10 まで数値が入っている そのうちの最大を B11 に出力する