◎第3回 基本的な構造

下へ一覧へ
○テキスト第2章(2.2-)

○コンピュータが直接に実行できることは何か 数値、文字、記号で表されたデータの処理だけ。 ^^^^^^^^^^^ 日常問題は実際には非常に複雑 行く、顔を洗うなどはできない。 データの処理: 1つの形からより目的に合った別の形へ変換すること。 広い意味での "計算"
下へ上へ ○変数と代入の概念 ・変数 値を変更できるデータ。この意味では数学の変数と同じ。 しかし、以下の違いがある 数値または文字を記憶する場所 機械語では場所はアドレス(番地)で表す アドレス(番地)=記憶装置内の位置を表す数値 高級言語またはアルゴリズムでは変数につけた「名前」で表す ある値(一定の値、変数の値、計算結果)を変数に記憶させる。 ・添字つき変数(配列) : 一連のデータを扱う ( 数学では下つき添字で表すことが多いが、 ここでは C の配列の表記 x[i] を用いる ) (配列の詳しい説明はあとで行なう) ・代入(転送) =の右辺の値を左辺にある名前の記憶場所に格納すること。 代入すると前の値は消える。そろばんのよう。 テキストでは := で表す。 多くのプログラミング言語では = で表す。 !等しいという意味ではない! i=j 変数 j の値を変数 i に代入する。 i=j+2 変数 j の値に2を加えた値を変数 i に代入する。 i=i+1 変数 i の値に1を加えた値を新たに変数 i に代入する。 i+1=j+2 左辺が変数でないので間違い(多くのプログラミング言語)
下へ上へ ○反復構造の詳細 例:(添字つき変数の総和)重要 重要概念:初期化、初期設定、増分処理、後処理 よくある間違い 総和の場合 「初期設定忘れ」 「s=0 をしない」 「一つ違いの誤り」 「i=0 から始める」「i <n の間繰り返す」 繰り返し条件判断 前判定 (後判定) フローチャートによる表現前判定(後判定)
下へ上へ ○アルゴリズムの定義 与えられた基本命令 転送(代入) 算術演算 論理演算(論理積論理和 否定) 大小相等の比較 参考:演算 ( 数学関数 ) と与えられた制御構造 逐次 選択 反復 (分岐) で構成されている アルゴリズムの要件 一般性 特定のデータだけで正しい答がでるようなものはだめ 明確性 いつだれがやっても同じデータに対しては同じ結果がでる。 停止性 基本命令の有限回の実行で終る 以下、実際にコンピュータが実行可能なアルゴリズムを学ぶ。
下へ上へ ○演習3 3.1 2つの整数の最大値、最小値をもとめるアルゴリズム これとテキスト p29 で読んで”変数”、”代入”の意味を確認せよ。 3.2 3つの整数 L,M,N の最大値、最小値をもとめるアルゴリズムを 手書きの PAD で書いてみよ。できたら4通りの解答と比べよ。 3.3 3.2 の答えの1つを参考に4つの数 K,L,M,N の最大値と最小値を求める アルゴリズムを考えよ。( ヒント)
一覧へ上へ ○レポート課題3 <(解答)> 3.1 三つの数 L,M,N の 中央値(median)を求めるアルゴリズムを PAD で 表せ。(テキスト演習2.17)( 大ヒント ) 適当な名前の pad ファイルをつくり、pad2ps を用いて出力せよ。 3.2 演習 3.2, 3.3 を参考に n 個の数 x[1]〜x[n]の最大値と最小値を 求めるアルゴリズムを PAD で表せ。 大ヒント を熟読、理解した後、 各自 pad ファイルを作成し、pad2ps を用いて出力すること。 3.3 n (n は負でない整数)の 階乗 f を求め、それを表示するアルゴ リズムを PAD で表せ。最後の処理は”f を表示する" とすること。 ヒント、n の場合分け必要、反復構造も使う。この PAD は手書きでよい。
一覧へ