情報処理Ⅱ 2006年10月20日(金).

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

5.制御構造と配列 場合分け( If Then Else , Select Case ) 繰返し( Do While ) 繰返しその2( For Next )
情報処理演習 (秋学期・樋口担当) 2回目 10/1 日本工業大学 コンピュータリテラシーII.
ループで実行する文が一つならこれでもOK
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
4章 制御の流れ-3.
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
6/26 前回復習 for文、while文による繰り返し計算
プログラミング基礎I(再) 山元進.
多重ループ 繰り返し構造:補足事項 第8回目 [6月12日、H.15(‘03)] 本日のメニュー 1)前回の課題について
コンピュータープログラミング (C言語)(6) 1.条件分岐2(switch文、復習) 2.繰り返し処理(for文、while文)
第6章 2重ループ&配列 2重ループと配列をやります.
基礎プログラミング演習 第7回 繰り返し.
プログラミング入門2 第2回 複合文、繰り返し 情報工学科 篠埜 功.
プログラミング入門2 第3回 繰り返し文 芝浦工業大学情報工学科 青木 義満
第7回 条件による繰り返し.
プログラムの制御構造 選択・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
情報処理Ⅱ 第2回 2007年10月15日(月).
繰り返し計算 while文, for文.
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
地域情報学演習 VBAプログラミング 第3回 2017年10月24日
アルゴリズムとプログラミング (Algorithms and Programming)
04: 式・条件分岐 (if) C プログラミング入門 基幹7 (水5) Linux にログインし、以下の講義ページ を開いておくこと
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
データ構造とアルゴリズム論 第1章 アルゴリズムの表現-流れ図
プログラムの制御構造 配列・繰り返し.
PHP 概要 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
情報基礎Ⅱ (第5回) 月曜4限 担当:北川 晃.
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
プログラムの基本構造と 構造化チャート(PAD)
情報工学科 3年生対象 専門科目 システムプログラミング 第4回 シェルスクリプト 情報工学科 篠埜 功.
制御文の役割と種類 IF文 論理式と関係演算子 GO TO文
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
第4章 反復作業を楽にする方法!! ~繰り返しその1 while~
情報処理Ⅱ 第3回 2007年10月22日(月).
プログラミングⅡ 第2回.
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
プログラミング基礎a 第4回 C言語によるプログラミング入門 条件判断と反復
情報処理Ⅱ 第2回 2005年10月14日(金).
情報処理Ⅱ 第2回 2006年10月13日(金).
C#プログラミング実習 第2回.
地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
復習 if ~ 選択制御文(条件分岐) カッコが必要 true 条件 false 真(true)なら この中が aを2倍する 実行される
C言語講座 制御(選択) 2006年 計算技術研究会.
第5章 まだまだ続く反復処理!! ~繰り返しその2 for~
情報処理Ⅱ 第7回 2004年11月16日(火).
情報処理Ⅱ 2005年10月28日(金).
プログラミング入門 第4回講義 選択(分岐) - if, switch/case - データ構造とアルゴリズム(2)
プログラミング基礎演習 第4回.
ループだよ!難しいよ! 第5章 while(ループ);.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
情報処理Ⅱ 第2回 2004年10月12日(火).
情報処理Ⅱ 2005年11月25日(金).
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
場合分け(If Then Else,Select Case) 繰返し(Do While) 繰返しその2(For Next)
情報処理Ⅱ 小テスト 2005年2月1日(火).
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
情報処理Ⅱ 第3回 2004年10月19日(火).
C言語講座 四則演算  if ,  switch 制御文.
計算技術研究会 C言語講座 第二回 制御構文 if , switch.
情報処理Ⅱ 2006年10月27日(金).
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
知能情報工学演習I 第10回( C言語第4回) 課題の回答
情報処理Ⅱ 第8回:2003年12月9日(火).
プログラミング演習I 補講用課題
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
Presentation transcript:

情報処理Ⅱ 2006年10月20日(金)

本日学ぶこと 制御文 問題 for, while, do~while if~else, switch~case 九九の表を出力できる? 1st, 2nd, 3rd, 4th, …, 1000th と順番に序数を生成 できる?

ダイクストラの構造化プログラミング プログラムは,「順接」,「反復」,「分岐」の組み合わせで表現できる. 順接 反復 分岐 処理2 処理1 条件 処理 条件 条件を満たす ときの処理 条件を満たさ ないときの処理

for 構文 最初に「条件」を満たしていな ければ,1回も「処理」をしない. for (初期化; 条件; 増分) { よく使う 初期化 条件  処理  } 最初に「条件」を満たしていな ければ,1回も「処理」をしない. 初期化 条件 処理 増分

(for i less than or equal to 10) 0, 0.1, ..., 1.0 を取り出すには ループ用の変数iは整数型にする. for文を用いて,i の値を 0, 1, ..., 10 と変えるようにする. i / 10.0 は,0, 0.1, ..., 1.0 となる. for (i = 0; i <= 10; i++) { iの初期値は0 iの値を1増やす i = i + 1 と等価 iは10まで (for i less than or equal to 10)

九九プログラム 方針 1≦i≦9, 1≦j≦9の各(i,j)について,i * jを計算する. 1≦j≦9のそれぞれのjの値に対して, 1≦i≦9のそれぞれのiの値との積を計算し,出力する for (j = 1; j <= 9; j++) { for (i = 1; i <= 9; i++) { printf("%2d ", i * j); } printf("\n"); 上の例では,「forの二重ループ」とも言う. 三重,四重,…と増やすこともできる. for文の中にfor文… for文の「入れ子 (ネスト)」という i=3, j=9

while よく使う 構文 while (条件) { 処理 } 最初に「条件」を満たしていな ければ,1回も「処理」をしない. 条件 処理

whileとfor while文をfor文で記述可能 for文をwhile文で記述可能 使い分けは? 条件 処理 初期化 条件 処理 増分 空文 (くうぶん)

do~while 構文 少なくとも1回は「処理」をする. while文で記述可能 do { 処理がbreakを含む場合は やや煩雑 たまに使う 構文 do { 処理 } while (条件); 少なくとも1回は「処理」をする. while文で記述可能 処理がbreakを含む場合は やや煩雑 セミコロンを忘れずに 条件 処理

if 構文 if (条件) { よく使う 条件 処理 条件 条件を満たす ときの処理 条件を満たさ ないときの処理 処理 } 条件を満たすときの処理 } else { 条件を満たさないときの処理 条件 処理 条件 条件を満たす ときの処理 条件を満たさ ないときの処理

多分岐(1) 構文 if (条件1) { たまに使う if 文の入れ子 if (条件2) { 条件1~2をともに満たすときの処理  条件1~2をともに満たすときの処理  } else {  条件1を満たすが,条件2を満たさないときの処理  }  条件1を満たさないときの処理 if 文の入れ子

多分岐(2) 構文 if (条件1) { よく使う 条件1を満たすときの処理 } else if (条件2){  条件1を満たすときの処理  } else if (条件2){  条件1は満たさず,条件2を満たすときの処理  } else if (条件3) {  条件1~2は満たさず,条件を3を満たすときの処理  } else {  条件1~3のいずれも満たさないときの処理  }

AND条件とOR条件 構文 if (条件1 && 条件2) { if (条件1 || 条件2) { よく使う  条件1~2をともに満たすときの処理  } else {  条件1~2の少なくとも一方を満たさないときの処理  } if (条件1 || 条件2) {  条件1~2の少なくとも一方を満たすときの処理  条件1~2をともに満たさないときの処理

序数プログラム 方針 1≦number≦1000の各整数に対して(for文を用いて), その序数となる単語を求めて出力する 出力方法 printf("%dst", 1); ⇒ 1st printf("%dnd", 2); ⇒ 2nd printf("%drd", 3); ⇒ 3rd printf("%dth", 4); ⇒ 4th

序数プログラム 方針(つづき) 接尾辞のつけかた 下2桁が「11」,「12」もしくは「13」のとき,"th" 下1桁が「1」のとき,"st" 下1桁が「2」のとき,"nd" 下1桁が「3」のとき,"rd" それ以外は,"th" 下?桁 整数xの下1桁 ⇒ xを10で割った余り ⇒ x % 10 整数xの下2桁 ⇒ xを100で割った余り ⇒ x % 100

switch~case 多分岐を実現するもう一つの方法 構文 switch (整数値) { たまに使う コロン … 整数値 値1の処理  値1の処理  break;  case 値2:  値2の処理  …  default:  それ以外の処理   } 整数値 値1の処理 値2の処理 それ以外 の処理 break … コロン

switch~caseにbreakが なかったら 滅多に使わない 構文 switch (整数値) {  case 値1:  値1の処理  case 値2:  値2の処理  …  default:  それ以外の処理   } 整数値 値1の処理 値2の処理 それ以外 の処理 …

序数プログラムを書き換える ifをswitch~caseに置き換える

制御文に関する補足 ブロック breakとcontinue 無限ループ

ブロック 「{ 処理 }」をブロック(複合文)という 「処理」には複数の文が書ける. セミコロンまでが一つの文. 制御文を用いた if (…) {…} なども(セミコロンはなくても)一つの文. ブロックの先頭で,変数を宣言できる.この変数は,ブロックが終わると利用できなくなる.

{ と } が省略可能なとき 「処理」が一つの文のときは,{ と } を省略できる. if (条件)  処理 ただし,条件を満たすときにする処理,満たさないときにする処理が紛らわしくなるので,常に { と } をつけるようにしておくとよい if (条件) 処理1; 処理2; if (条件) { 処理1; 処理2; } if (条件1) if (条件2) 処理1; else 処理2; if (条件1) { if (条件2) 処理1; } else 処理2; 「処理が一つの文のときは,{ と } を省略できる」の代わりに 「処理は一つの文でなければならない.ここで,文とは,単文,複合文(ブロック),if文,for文,while文,…,である」 と表現することもできる. 条件の真偽にかかわらず 処理2を実行する. 違う! 条件1が真,条件2が偽のとき に限り,処理2を実行する. 違う!

breakとcontinue break continue 注意点 for, while, do, switchの処理の中で使用でき,それぞれのブロックを抜ける. continue for, while, doの処理の中で使用でき,反復の先頭に戻る. forでは,増分してから条件判定へ while, doでは,ただちに条件判定へ 注意点 ifやelseのブロックでbreakをすると,そのブロックではなく,すぐ外の(forなどの)ブロックを抜ける 入れ子の中から一気に抜けることはできない(gotoが必要)

無限ループ 例 注意点 while (1) { for (;;) { たまに使う 例 while (1) { 処理 } for (;;) { 注意点 通常は,「処理」の中にif文を設け,何らかの条件でbreakによって抜けるように書く. 条件 (恒真) 処理

まとめ 「反復」は,for, while, do~while 「分岐」は,if, switch~case 制御文は入れ子にできる.「{」と「}」の対応に注目して読む breakはブロックを抜け,continueは反復の先頭に戻る.適用される制御文に注意