情報処理Ⅱ 第1回 2007年10月1日(月) 情報処理Ⅱについて 担当は村川猛彦([email protected]) 「プログラミング基礎Ⅱ」(松田先生)と連携して実施 演習の疑問や誤解を講義で解説し, 講義で紹介する技法を演習で活用する. 成績評価は別々. 目標:「情報処理Ⅱ」および「プログラミング基礎Ⅱ」を通じて, Cで数十行程度のプログラムが自在に作成できるようになる こと. 予習は不要.復習は毎回してください. 2 成績評価の方法 レポート:10点満点×2回 期末試験:80点満点 自筆ノート1冊の持ち込みを認める. 毎回授業中に実施する小テスト(アンケートのことも)は,成 績に加味しない.しかし,受けるのと受けないのでは期末試 験で大きく差が開くので,毎回出席することを期待する. 3 教科書について 村山公保, 『Cプログラミング入門以前』,毎日コミュニケー ションズ, ISBN4839920648 プログラミング基礎Ⅰの教科書 基礎重視 スライドでは 入p.??? 内田智史ほか, 『C言語によるプログラミング-スーパーリ ファレンス編-』,オーム社, ISBN4274063372 規格の解説書 スライドでは リp.??? 4 休講と補講について 月曜で授業なしの日 10月8日…体育の日 11月12日…大学祭関連 月曜だけだと,試験期間前には12回しか授業ができない! 補講・代替授業 11月26日(月)1限 • この日は1~2限に連続して授業をする 1月30日(水)2限 5 他の科目との関連 セメ スター 科目 内容 目標 1 情報処理Ⅰ プログラミング基礎Ⅰ リテラシー プログラミングの入門 計算機に慣れる 2 情報処理Ⅱ プログラミング基礎Ⅱ プログラミングとCの基礎(講義) プログラミングとCの基礎(演習) プログラミング を学ぶ 3 アルゴリズム演習Ⅰ プログラミングとCの基礎(演習) Cで自在に プログラミング 4 情報処理Ⅲ 情報ネットワーク演習 Java,OOP 通信 ライブラリの活用 5 ビジュアル情報演習 2D, 3D画像処理 6 情報通信システム演習 7 ~ 卒業研究 研究室配属.研究テーマに応じたプログラム作成 6 プログラミングにまつわる用語 プログラミング(programming) プログラム(program) プログラムを作ること 「実行ファイル」「バイナリ」 とも呼ばれる プログラミングの結果,作られたファイル 実行可能なファイルを作って計算機に渡すことで,プログラム の指示通りに動作する. • Cのファイルは実行可能ではなく(ソースファイルと呼ばれ る),コンパイラを用いて,実行可能なファイルに変換する. コマンド(command) 計算機に何をしてもらうか指示すること 7 プログラミングの順序 目的・アイデア プログラミング (テキストエディタ) (Cなどで書いた) ソースファイル コンパイル (コンパイラ) 実行 実行ファイル 入p.121 エラー 失敗… 成功! 8 なぜプログラミングをするのか? 高速・高精度が要求される処理が可能 ロボット,車,原子炉などの「制御」 データの「整理整頓」,整形出力など 他の計算機・プロセス・デバイスとの「通信」 問題解決に要する時間を短縮 それは,自分がすべき仕事か? それは,計算機に向いた仕事か? 9 なぜC?(1) 有名なプログラミング言語 C,C++ Java ⇒「情報処理Ⅲ」「オブジェクト指向」で 非手続き型言語: Lisp,Prolog,Erlang,SQL Lightweight Language: Perl,PHP,Python,Ruby Pascal,Fortran,COBOL,BASIC,PL/Ⅰ,ALGOL JavaScript (JScript, ECMAScript) シェルスクリプト,バッチファイル アセンブリ言語 10 なぜC?(2) 普及しているプログラミング言語 適度に高級,適度に低級 他のプログラミング言語の習得に役立つ 入p.43 高級(高水準):人間が読み書きしやすい. 低級(低水準):計算機向けの記述がしやすい. プログラミング言語や使用者の優劣ではない. 実用的な多くのプログラミング言語が,Cの影響を受けて設計 された. Cは,プログラミング言語の世界の「英語」のようなもの! 11 情報処理Ⅱで学んでほしいこと Cプログラミングにおける技法や文法 型,式,演算子 制御文 配列とポインタ,多次元配列,文字列 識別子,変数,関数,再帰 構造体 入出力 基本的なライブラリ関数 有用なツール していいこと,してはいけないことの区別 12 コラッツの問題(1) ルール 上のルールを繰り返すことで,どんな正整数もやがては1に なる. 例 奇数ならば,3倍して1を加える. 偶数ならば,2で割る. 正整数…1以上の整数 非負整数…0以上の整数 「自然数」は使わない. 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒ 2 ⇒ 1 3 ⇒ 10 ⇒ 5 ⇒ (上を利用) ⇒ 1 具体的な正整数が与えられれば,それが正しいことを検証で きる. 任意の正整数で成り立つことの証明は,なされていない. 13 コラッツの問題(2) コラッツの問題の検証プログラムを作ろう! テキストエディタ(Emacs)でソースファイルを作り,保存する(こ こではcollatz.cというファイル名にする). ターミナル(GNOME端末など)で「cc collatz.c」を実行する. コンパイルが成功すれば,a.outという実行ファイルができる. 続いてターミナルで「./a.out」を実行する. Webで参照可能. 復習に役立てて ください. collatz.c 14 プログラムの読み方(1) 入p.75 Cプログラムの骨格 #include <stdio.h> int main(void) { ... return 0; } ①インクルード文 ②メイン関数の宣言 ③ブロック開始 ④処理 ⑤メイン関数の終了 ⑥ブロック終了 読み方 stdio.h … スタンダード・アイ・オー・ドット・ヘッダ int … イント 15 プログラムの読み方(2) 内部で何をしているのか? while文 最初に,値を変数xに格納する. 変数xの値は,ルールの適用により変わっていく. xが1なら,計算終了!(xが1でない間は,ずっと繰り返す.) xが奇数なら,3x+1を計算し,これを新しいxの値とする. xが偶数なら,x/2を計算し,これを新しいxの値とする. • 「偶数か奇数か」は,2で割った余りが0か1かで判定する. if (x % 2 == 1) 16 プログラムの読み方(3) printf("%d\n", x); printf("%d / 2 => %d\n", x, x / 2); 入p.83 x=10のとき,「10 / 2 => 5」を出力する. x=16のとき,「16 / 2 => 8」を出力する. printf("OK\n"); x=3のとき,「3」を出力する(画面に「3」が表示される). x=5のとき,「5」を出力する. 変数の値に関係なく,「OK」を出力する. 「\n」は改行文字 17 まとめ 半年かけて,Cプログラミングの技法や文法を学ぼう! ソースファイルを作るのはテキストエディタ, そこから実行ファイルを作るのはコンパイラ. 単純な計算は,Cでも単純に記述できる. 使用する記号に注意. 18
© Copyright 2024 ExpyDoc