情報処理Ⅱ 第1回 2006年10月6日(金).

Slides:



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

アルゴリズムとデータ構造 第2回 線形リスト(復習).
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
応用理工学情報処理 第1回(2015年10月 5日) 月曜日担当 前島展也 Manaba
Java I 第2回 (4/18)
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
オブジェクト指向言語論 知能情報学部 新田直也.
情報処理Ⅱ 2005年10月7日(金).
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
情報処理Ⅱ 2005年12月9日(金).
情報科学1(G1) 2016年度.
オブジェクト指向 プログラミング 第一回 知能情報学部 新田直也.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
第10回 プログラミングⅡ 第10回
情報処理Ⅱ 第1回 2007年10月1日(月).
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
学籍番号順に着席のこと 001~056までは741教室へ 057~110までは743教室へ
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
第10回関数 Ⅱ (ローカル変数とスコープ).
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
第7回 プログラミングⅡ 第7回
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
第11回 プログラミングⅡ 第11回
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
情報処理Ⅱ 第14回 2006年1月23日(月).
情報処理Ⅱ 第2回:2003年10月14日(火).
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
プログラミングⅠ 平成31年1月7日 森田 彦.
情報処理Ⅱ 第1回 2004年10月5日(火).
C言語 はじめに 2016年 吉田研究室.
コンパイラ 2012年10月1日
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
情報基礎演習B 後半第2回 担当 岩村 TA 谷本君.
プログラミング演習I 2003年4月15日(第一回) 木村巌.
第5回 プログラミングⅡ 第5回
第2章 printf(“変数と入力”); scanf(“%d”,&num);
標準入出力、変数、演算子、エスケープシーケンス
情報数学Ⅲ 5,6 (コンピュータおよび情報処理)
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
コンパイラ 2012年10月11日
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
オブジェクト指向言語論 第一回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
プログラミング演習I 2003年6月11日(第9回) 木村巌.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
情報処理Ⅱ 2005年11月25日(金).
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
情報処理Ⅱ 小テスト 2005年2月1日(火).
計算技術研究会 第5回 C言語勉強会 関数(function)を使う
知能情報工学演習I 第10回( C言語第4回) 課題の回答
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります 第1章 文字の表示と計算.
第1章 文字の表示と計算 printfと演算子をやります.
Presentation transcript:

情報処理Ⅱ 第1回 2006年10月6日(金)

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

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

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

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

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

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

なぜ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) シェルスクリプト,バッチファイル アセンブリ言語

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

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

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

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

プログラムの読み方(1) Cプログラムの骨格 #include <stdio.h> ①インクルード文 int main() ②メイン関数の宣言 { ③ブロック開始 ... ④処理 return 0; ⑤メイン関数の終了 } ⑥ブロック終了

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

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

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