Presentation is loading. Please wait.

Presentation is loading. Please wait.

情報処理Ⅱ 第1回 2007年10月1日(月).

Similar presentations


Presentation on theme: "情報処理Ⅱ 第1回 2007年10月1日(月)."— Presentation transcript:

1 情報処理Ⅱ 第1回 2007年10月1日(月)

2 情報処理Ⅱについて 担当は村川猛彦(takehiko@sys.wakayama-u.ac.jp)
「プログラミング基礎Ⅱ」(松田先生)と連携して実施 演習の疑問や誤解を講義で解説し, 講義で紹介する技法を演習で活用する. 成績評価は別々. 目標:「情報処理Ⅱ」および「プログラミング基礎Ⅱ」を通じて,Cで数十行程度のプログラムが自在に作成できるようになること. 予習は不要.復習は毎回してください.

3 成績評価の方法 レポート:10点満点×2回 期末試験:80点満点
自筆ノート1冊の持ち込みを認める. 毎回授業中に実施する小テスト(アンケートのことも)は,成績に加味しない.しかし,受けるのと受けないのでは期末試験で大きく差が開くので,毎回出席することを期待する.

4 教科書について 村山公保, 『Cプログラミング入門以前』,毎日コミュニケーションズ, ISBN4839920648
プログラミング基礎Ⅰの教科書 基礎重視 スライドでは 内田智史ほか, 『C言語によるプログラミング-スーパーリファレンス編-』,オーム社, ISBN 規格の解説書 入p.??? リp.???

5 休講と補講について 月曜で授業なしの日 月曜だけだと,試験期間前には12回しか授業ができない! 補講・代替授業 10月8日…体育の日
11月12日…大学祭関連 月曜だけだと,試験期間前には12回しか授業ができない! 補講・代替授業 11月26日(月)1限 この日は1~2限に連続して授業をする 1月30日(水)2限

6 他の科目との関連 セメ スター 科目 内容 目標 1 情報処理Ⅰ リテラシー 計算機に慣れる プログラミング基礎Ⅰ プログラミングの入門
情報処理Ⅱ プログラミングとCの基礎(講義) プログラミング を学ぶ プログラミング基礎Ⅱ プログラミングとCの基礎(演習) Cで自在に プログラミング アルゴリズム演習Ⅰ プログラミングとCの基礎(演習) 情報処理Ⅲ Java,OOP ライブラリの活用 情報ネットワーク演習 通信 OOP : オブジェクト指向プログラミング ビジュアル情報演習 2D, 3D画像処理 情報通信システム演習 研究室配属.研究テーマに応じたプログラム作成 卒業研究

7 「実行ファイル」「バイナリ」 とも呼ばれる
プログラミングにまつわる用語 プログラミング(programming) プログラムを作ること プログラム(program) プログラミングの結果,作られたファイル 実行可能なファイルを作って計算機に渡すことで,プログラムの指示通りに動作する. Cのファイルは実行可能ではなく(ソースファイルと呼ばれる),コンパイラを用いて,実行可能なファイルに変換する. コマンド(command) 計算機に何をしてもらうか指示すること 「実行ファイル」「バイナリ」 とも呼ばれる

8 プログラミングの順序 目的・アイデア プログラミング (テキストエディタ) (Cなどで書いた) ソースファイル エラー コンパイル
(コンパイラ) 実行 失敗… 実行ファイル 成功! 入p.121

9 なぜプログラミングをするのか? 高速・高精度が要求される処理が可能 問題解決に要する時間を短縮 ロボット,車,原子炉などの「制御」
データの「整理整頓」,整形出力など 他の計算機・プロセス・デバイスとの「通信」 問題解決に要する時間を短縮 それは,自分がすべき仕事か? それは,計算機に向いた仕事か?

10 なぜC?(1) 有名なプログラミング言語 C,C++ Java ⇒「情報処理Ⅲ」「オブジェクト指向」で
非手続き型言語: Lisp,Prolog,Erlang,SQL Lightweight Language: Perl,PHP,Python,Ruby Pascal,Fortran,COBOL,BASIC,PL/Ⅰ,ALGOL JavaScript (JScript, ECMAScript) シェルスクリプト,バッチファイル アセンブリ言語

11 なぜC?(2) 普及しているプログラミング言語 適度に高級,適度に低級 他のプログラミング言語の習得に役立つ
高級(高水準):人間が読み書きしやすい. 低級(低水準):計算機向けの記述がしやすい. プログラミング言語や使用者の優劣ではない. 他のプログラミング言語の習得に役立つ 実用的な多くのプログラミング言語が,Cの影響を受けて設計された. Cは,プログラミング言語の世界の「英語」のようなもの! 入p.43

12 情報処理Ⅱで学んでほしいこと Cプログラミングにおける技法や文法 型,式,演算子 制御文 配列とポインタ,多次元配列,文字列
識別子,変数,関数,再帰 構造体 入出力 基本的なライブラリ関数 有用なツール していいこと,してはいけないことの区別

13 コラッツの問題(1) ルール 上のルールを繰り返すことで,どんな正整数もやがては1になる. 例
奇数ならば,3倍して1を加える. 偶数ならば,2で割る. 上のルールを繰り返すことで,どんな正整数もやがては1になる. 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒ 2 ⇒ 1 3 ⇒ 10 ⇒ 5 ⇒ (上を利用) ⇒ 1 具体的な正整数が与えられれば,それが正しいことを検証できる. 任意の正整数で成り立つことの証明は,なされていない. 正整数…1以上の整数 非負整数…0以上の整数 「自然数」は使わない. コラッツの問題:

14 コラッツの問題(2) コラッツの問題の検証プログラムを作ろう!
テキストエディタ(Emacs)でソースファイルを作り,保存する(ここではcollatz.cというファイル名にする). ターミナル(GNOME端末など)で「cc collatz.c」を実行する.コンパイルが成功すれば,a.outという実行ファイルができる. 続いてターミナルで「./a.out」を実行する. Webで参照可能.復習に役立てて ください. collatz.c

15 プログラムの読み方(1) Cプログラムの骨格 #include <stdio.h> ①インクルード文 int main(void) ②メイン関数の宣言 { ③ブロック開始 ④処理 return 0; ⑤メイン関数の終了 } ⑥ブロック終了 読み方 stdio.h … スタンダード・アイ・オー・ドット・ヘッダ int … イント 「#」は「シャープ」ではなく「ナンバーサイン」. (シャープの字形は「♯」.) しかし多くの日本人は,「#」を「シャープ」と読むので,この授業でもこちらを採用する. 入p.75

16 プログラムの読み方(2) 内部で何をしているのか? 最初に,値を変数xに格納する. 変数xの値は,ルールの適用により変わっていく.
while文 内部で何をしているのか? 最初に,値を変数xに格納する. 変数xの値は,ルールの適用により変わっていく. xが1なら,計算終了!(xが1でない間は,ずっと繰り返す.) xが奇数なら,3x+1を計算し,これを新しいxの値とする. xが偶数なら,x/2を計算し,これを新しいxの値とする. 「偶数か奇数か」は,2で割った余りが0か1かで判定する. if (x % 2 == 1)

17 プログラムの読み方(3) printf("%d\n", x); printf("%d / 2 => %d\n", x, x / 2);
printf("OK\n"); 変数の値に関係なく,「OK」を出力する. 「\n」は改行文字 入p.83

18 まとめ 半年かけて,Cプログラミングの技法や文法を学ぼう!
ソースファイルを作るのはテキストエディタ, そこから実行ファイルを作るのはコンパイラ. 単純な計算は,Cでも単純に記述できる. 使用する記号に注意.


Download ppt "情報処理Ⅱ 第1回 2007年10月1日(月)."

Similar presentations


Ads by Google