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