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

Slides:



Advertisements
Similar presentations
1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
Advertisements

オブジェクト指向 言語 論 知能情報学部 新田直也. 講義概要  私の研究室: 13 号館 2 階 (13-206)  講義資料について :  参考図書 : 河西朝雄 : 「原理がわかる プログラムの法則」,
情報処理Ⅱ 第1回 2006年10月6日(金).
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
応用理工学情報処理 第1回(2015年10月 5日) 月曜日担当 前島展也 Manaba
プログラミング言語としてのR 情報知能学科 白井 英俊.
Java I 第2回 (4/18)
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
オブジェクト指向言語論 知能情報学部 新田直也.
情報処理Ⅱ 2005年10月7日(金).
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
情報科学1(G1) 2016年度.
オブジェクト指向 プログラミング 第一回 知能情報学部 新田直也.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
学籍番号順に着席のこと 001~056までは741教室へ 057~110までは743教室へ
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング言語入門 手続き型言語としてのJava
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
プログラミング演習I 2003年6月25日(第10回) 木村巌.
プログラミング演習I 2003年5月7日(第4回) 木村巌.
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
第7回 プログラミングⅡ 第7回
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
情報処理Ⅱ 第14回 2006年1月23日(月).
情報処理Ⅱ 第2回:2003年10月14日(火).
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
コンパイラ 2011年10月20日
情報処理Ⅱ 第1回 2004年10月5日(火).
C言語 はじめに 2016年 吉田研究室.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
情報数学Ⅲ 5,6 (コンピュータおよび情報処理)
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
コンパイラ 2012年10月11日
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
オブジェクト指向言語論 第一回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
プログラミング演習I 2003年6月11日(第9回) 木村巌.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
情報処理Ⅱ 2005年11月25日(金).
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
情報処理Ⅱ 小テスト 2005年2月1日(火).
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
知能情報工学演習I 第10回( C言語第4回) 課題の回答
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります 第1章 文字の表示と計算.
第1章 文字の表示と計算 printfと演算子をやります.
変数と代入・読込と表示 第2回[平成15年4月24日(木)]:PN03ー02.ppt 今日の内容 1 プログラムの構造(復習)
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

コラッツの問題(1) ルール 上のルールを繰り返すことで,どんな正整数もやがては1になる. 例 奇数ならば,3倍して1を加える. 偶数ならば,2で割る. 上のルールを繰り返すことで,どんな正整数もやがては1になる. 例 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒ 2 ⇒ 1 3 ⇒ 10 ⇒ 5 ⇒ (上を利用) ⇒ 1 具体的な正整数が与えられれば,それが正しいことを検証できる. 任意の正整数で成り立つことの証明は,なされていない. 正整数…1以上の整数 非負整数…0以上の整数 「自然数」は使わない. コラッツの問題: http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%A9%E3%83%83%E3%83%84%E3%81%AE%E5%95%8F%E9%A1%8C

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

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

プログラムの読み方(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)

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

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