Download presentation
Presentation is loading. Please wait.
1
プログラミング入門 II 2010年後期
2
プログラミング入門 II 担 当 教 員 : 上村 技術スタッフ: 月川、北本、細島 ティーチング・アシスタント(TA):
阿部、遠藤、川上、川田、染谷 高橋、宮崎、宮地、和田 レポート:必須2回、任意2回の計4回 コースナビ: C言語入門編 達成度60%以上 出席: 2/3以上 20分以内の遅刻は0.5回 20分以上の遅刻は入室は認めるが、出席は0回 100%なら任意レポート満点 10回分以上
3
単位修得の要件: 出席:2/3以上 レポート:必須2回(10点) コースナビ:C言語入門編 達成度60%以上
「期末試験(80点) + レポート(20点)」で60点以上 10回分以上 注意! レポートのファイルは保存しておくこと 成績評価法: 上記要件を満足した者について 期末試験80点+レポート合計20点=100点満点 のうち 90点以上:秀、80点以上:優、70点以上:良、60点以上:可
4
講義予定(前半): 回 月 日 内 容 (予定) レポート 1 10月1日 講義の概要・コースナビの説明 前期の復習(演算子、制御文) 2
月 日 内 容 (予定) レポート 1 10月1日 講義の概要・コースナビの説明 前期の復習(演算子、制御文) 2 10月8日 第6章 配 列 ~配列の応用~ 3 10月15日 第9章 ポインタ ~ポインタの理解~ 4 10月22日 第1回レポート(必須) ~配列とポインタ~ (10/29提出) 5 10月29日 第10章 関 数 第11章 関数について 6 11月5日 第10章 関 数 ~関数とポインタ~ 第11章 関数について ~関数引数~ 7 11月12日 第10章 関 数 ~関数と配列、関数と2次元配列~ 第12章 関数と配列 8 11月19日 第2回レポート(任意) ~関数の再帰呼び出し~ (11/26提出)
5
講義予定(後半): 各自のコースナビ「C言語入門編」の進度を毎週、発表予定。 積極的に自習を進めて下さい。 12月10日 は休講 2月4日
回 月 日 内 容 (予定) レポート 9 11月26日 第13章 文字の取り扱い方 10 12月3日 第15章 文字列処理 11 12月17日 第14章 ファイル操作 第3回レポート(必須) (1/21提出) 12 12月24日 第16章 構造体 ~構造体とその配列~ 13 1月21日 第4回レポート(任意) ~関数と構造体~ (2/4提出) 14 1月28日 第17章 その他の制御文 第18章 マクロ 15 2月4日 ゲームの作成 16 2月11日 期末テスト 12月10日 は休講 2月4日 は補講 各自のコースナビ「C言語入門編」の進度を毎週、発表予定。 積極的に自習を進めて下さい。
6
コマンドプロンプトを用いた プログラミング
コマンドプロンプトの起動と終了 最初に覚えるコマンド プログラムの編集 プログラムのコンパイルと実行 今日のポイント コマンドプロンプトでプログラミング
7
この授業では、基本的にこのフォルダ内にプログラムを作ることを前提とする。
プログラミング入門Ⅱの準備 マイ ドキュメント(Z:\ または 'fs\home\students'のt1029XX)に新しいフォルダを作る。 nyumon2 と名前をつける。 プログラム例のソースファイルは ex で始める。ピリオドは _ に直す。 プログラム例 5.5.1 → ex5_5_1.c この授業では、基本的にこのフォルダ内にプログラムを作ることを前提とする。
8
コマンドプロンプトの起動と終了 起動(マウス) 終了(キーボード) 終了(マウス) 練習:実際にコマンドプロンプトを起動して終了せよ。
[スタート] を<クリック> [すべてのプログラム(P)] [Microsoft Visual Studio 2005] [Visual C++コマンドプロンプト] を<クリック> コマンドプロンプトはCUI(Character-based User Interface)でコマンドを実行 終了(キーボード) 「exit」 と入力して <Enter> 終了(マウス) 右上の [x] ボタンを<クリック> x 練習:実際にコマンドプロンプトを起動して終了せよ。
9
コマンドプロンプトのショートカットを デスクトップに作成
[スタート]を<クリック> [すべてのプログラム(P)] [Microsoft Visual Studio 2005] [Visual C++コマンドプロンプト] を [送る(N)] [デスクトップ (ショートカットを作成)] を<クリック> <右クリック>
10
「作業フォルダ」の設定 デスクトップの「Visual C++コマンドプロンプト」の ショートカットを [ショートカット] タブを選択
[プロパティ(R)] を<クリック> 「Visual C++コマンドプロンプトのプロパティ」 ウィンドウ [ショートカット] タブを選択 [作業フォルダ(S):] 欄に起動時のデフォルトパス名として「Z:\nyumon2」を記入 [ OK ] ボタンを<クリック> <右クリック> 一番下
11
最初に覚えるコマンド notepad devenv (development environment) dir (directory)
メモ帳によるテキストファイル編集 devenv (development environment) Visual Studioのエディタによるソースファイル編集 dir (directory) ディレクトリ(フォルダ)内のファイル一覧表示 cl (compile & link) コンパイルとリンクによる .exe ファイル作成
12
ファイル名だけで devenv が立ち上がる
プログラムの作成・編集 コマンドプロンプトでメモ帳を起動 Z:\nyumon2>notepad hello.c /* hello world program */ #include <stdio.h> int main() { printf("Hello world!\n"); return 0; } すでにソースファイルがある場合は、 ファイル名だけで devenv が立ち上がる Z:\nyumon2>hello.c
13
プログラムのコンパイルと実行 CLコマンド(compile and link) 実行ファイル確認 実行
Z:\nyumon2>cl hello.c 実行ファイル確認 Z:\nyumon2>dir 実行 Z:\nyumon2>hello Z:\nyumon2 のディレクトリ 2010/10/01 13:30 <DIR> /10/01 13:30 <DIR> /10/01 13: hello.c 2010/10/01 13: hello.obj 2010/10/01 13: ,248 hello.exe さらに詳しく知りたい人は以下を参照のこと command_prompt.php
14
PADと構造化プログラミング PADとは 処理の方向:上から下へ 判断・選択、繰返し:右へネスト(入れ子) 3種の繰返し 定義、引用
Problem Analysis Diagram 構造化フローチャートの一種 処理の方向:上から下へ 箱を縦線で連接→ブロック 判断・選択、繰返し:右へネスト(入れ子) 3種の繰返し 前判定(while)、後判定(do-while)、問題向き(for) 定義、引用 goto 文のないプログラミング
15
PADの例 処理1 処理2-1 定義 = 繰返し(for)2 処理2-2-1 判断2-2 処理2-2-2 処理3 ネストレベル1
ネストレベル2 処理2-1 定義 = 繰返し(for)2 処理2-2-1 判断2-2 処理2-2-2 処理3
16
PADの制御構造(1) 連接(複合文, ブロック) 文 判断(if 文) 文1 条件 文2 { 文; } if (条件) 文1;
文; } 文 条件 文1 文2 if (条件) 文1; else 文2;
17
PADの制御構造(2) 選択(if 文,switch 文) 文1 条件1 文2 条件2 文3 文1 文2 文3 if (条件1) 文1;
else if (条件2) 文2; else 文3; switch(式) { case 定数1: 文1; break; case 定数2: 文2; break; default: 文3; } 式=定数1 式=定数2 文1 文2 文3
18
PADの制御構造(3) 繰返し(while 文) while (条件) { 文; : } 文 条件 : 文
19
PADの制御構造(4) 繰返し(for 文) for (変数=初期値;変数<=終値;変数++) { 文; } 変数=初期値,…,終値
文; } 変数=初期値,…,終値 文
20
2項演算子(付録A.3) 優先順位 代入(=, +=, -=, *=, /=, %=,…) 論理(||, &&) ビット(|, ^, &)
関係、等値(==, !=, >=, >, <=, <) ビットシフト(>>, <<) 算術(+, -, *, /, %) 剰余 優先順位
21
単項演算子(付録A.3) 優先順位 キャスト((int), (float), (double), …) 論理(!) ビット(~)
符号(+, -) ポインタ(&, *) sizeof 前置インクリメント(++)、デクリメント(--) 後置インクリメント(++)、デクリメント(--) 優先順位
22
よくやるミス (bug1.c) #include <stdio.h> int main() {
int a=2010, b=1992; printf("%d は %d と比べて", a, b); if (a = b) printf("等しい.\n"); else if (a > b) printf("大きい.\n"); else printf("小さい.\n"); return 0; } 何がおかしい?
23
自動型変換 定数 代入演算 算術演算 10 10L 10U 10. 0.5L .5F 小数点なし: 整数定数 小数点あり: 実数定数
接尾語で型指定可 定数 小数点なし: 整数定数 小数点あり: 実数定数 代入演算 実数型←整数: 精度が落ちる可能性 整数型←実数: 小数の切捨て、オーバーフロー 算術演算 両方とも整数: 整数演算 一方が実数: 実数演算 L 10U L .5F 5 / 3 = 1, 5 % 3 = 2 5. / 3 =
24
本日のパズル 次のプログラムは何を出力するか?
main() { int x; x = * 5 - 6; printf("%d\n",x); x = % 5 - 6; printf("%d\n",x); x = - 3 * 4 % - 6 / 5; printf("%d\n",x); x = ( ) % 5 / 2; printf("%d\n",x); }
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.