情報処理Ⅱ 第1回 2004年10月5日(火).

Slides:



Advertisements
Similar presentations
アルゴリズムとプログラミン グ (Algorithms and Programming) 第6回:クラスとインスタンス クラスの宣言 アクセス修飾子 インスタンスの生成 (new キーワード) this キーワード フィールドとメソッドの実際の定義と使い 方 クラスの宣言 アクセス修飾子 インスタンスの生成.
Advertisements

2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
情報処理Ⅱ 第1回 2006年10月6日(金).
アルゴリズムとデータ構造 第2回 線形リスト(復習).
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
オブジェクト指向言語論 知能情報学部 新田直也.
プログラミング基礎I(再) 山元進.
第2回ネットワークプログラミング 中村 修.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
情報処理Ⅱ 2005年10月7日(金).
情報処理Ⅱ 2005年12月22日(木).
情報科学1(G1) 2016年度.
構造体.
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
オブジェクト指向 プログラミング 第一回 知能情報学部 新田直也.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
情報処理Ⅱ 第1回 2007年10月1日(月).
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング言語入門 手続き型言語としてのJava
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
Cプログラミング演習 中間まとめ2.
情報処理Ⅱ 第2回 2007年10月15日(月).
関数の定義.
MATLAB測位プログラミングの 基礎とGT (2)
Cプログラミング演習 第7回 メモリ内でのデータの配置.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング演習I 2003年5月7日(第4回) 木村巌.
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
ソフトウェア制作論 平成30年10月3日.
プログラミング入門2 第11回 情報工学科 篠埜 功.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
第11回 プログラミングⅡ 第11回
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
情報処理Ⅱ 第2回:2003年10月14日(火).
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
コンパイラ 2011年10月20日
プログラミング言語入門 2013 (C言語 初級) 演習期間 担当 参考資料 採点 10/24 - 1/23 (全10回) 松澤,鈴木,児玉
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
情報処理Ⅱ 第2回 2005年10月14日(金).
情報処理Ⅱ 第2回 2006年10月13日(金).
高度プログラミング演習 (11).
C言語講座 制御(選択) 2006年 計算技術研究会.
情報処理Ⅱ 第7回 2004年11月16日(火).
情報処理Ⅱ 2005年10月28日(金).
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
コンパイラ 2012年10月11日
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
オブジェクト指向言語論 第一回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
情報処理Ⅱ 2007年2月2日(金).
プログラミング演習I 2003年6月11日(第9回) 木村巌.
情報処理Ⅱ 第2回 2004年10月12日(火).
モバイルプログラミング第2回 C言語の基礎 (1).
第3回簡単なデータの入出力.
情報処理Ⅱ 2005年11月25日(金).
プログラミング演習II 2003年12月10日(第7回) 木村巌.
情報処理Ⅱ 小テスト 2005年2月1日(火).
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Presentation transcript:

情報処理Ⅱ 第1回 2004年10月5日(火)

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

成績評価の方法 小テスト(毎回実施):5点満点 レポート:10点満点×2回 期末試験:75点満点 Cに関する書籍1冊と自筆ノート1冊の持ち込みを認める

他の科目との関連 セメ スター 科目 内容 目標 1 情報処理Ⅰ リテラシー 計算機に慣れる プログラミング基礎Ⅰ プログラミングとCの入門 情報処理Ⅱ プログラミングと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,SQL Lightweight Language: Perl,PHP,Python,Ruby Pascal,Delphi,Kylix Fortran,COBOL,BASIC,PL/Ⅰ,ALGOL HSP シェルスクリプト,バッチファイル アセンブリ言語

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

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

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

コラッツの問題(2) コラッツの問題の検証プログラムを作ろう! 方針 値を変数xに格納する. 値は,ルールの適用により変わる. xが1なら,計算終了!(xが1でないなら,ずっと繰り返す.) xが奇数なら,3x+1を計算し,これを新しいxの値とする. xが偶数なら,x/2を計算し,これを新しいxの値とする. 「偶数か奇数か」は,2で割った余りが0か1かで判定する.

プログラムを実際に作って見せるサインです. コラッツの問題(3) プログラム プログラムを実際に作って見せるサインです.

コラッツの問題(4) 途中経過を知りたい…改造しよう!

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

次に学ぶこと コラッツの問題のプログラムで,変数の宣言を としたが,これ以外にどんな書き方があるのか? int x; xは「識別子」 コラッツの問題のプログラムで,変数の宣言を としたが,これ以外にどんな書き方があるのか? xは「識別子」 intは「型」 int x;

識別子(Identifier) プログラムの中でさまざまな対象を識別するために用いられる「名前」のこと 対象の例 変数 関数 型定義 構造体のタグやメンバ 列挙体と列挙定数 ラベル など

識別子の命名規則(1) 最初の文字は,英字または下線記号(_) 2文字目以降は,英字,下線記号または数字 英字は大文字と小文字が区別される 例 ○ int x, variable, Variable, x_y, _, _ _; × int 0x, <variable>, x-y;

識別子の命名規則(2) 「予約語」はNG auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while 例 × int int; ○ int intchar;

識別子の命名規則(3) 「予約済み識別子」もNG 例 printfなど,既に定義されている名前 下線記号から始まるもの(例外はあるが,避けておくほうが無難) 例 × int printf, NULL; ○ int Printf;

識別子の命名方針 よく使う変数名 変数は,1文字~数文字.もしくは,その用途がわかるものにする. ループ用変数: i, j, k 座標: x, y 変数は,1文字~数文字.もしくは,その用途がわかるものにする. a, b, c, msg, from, to, filename 関数名は,その機能がわかるものにする.長くなる. transform_rectangle_to_circle transformRectangleToCircle ラベルや定数は,大文字と下線のみを使用する NULL, EOF, _ _LINE_ _