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