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

Slides:



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

5.制御構造と配列 場合分け( If Then Else , Select Case ) 繰返し( Do While ) 繰返しその2( For Next )
ループで実行する文が一つならこれでもOK
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
4章 制御の流れ-3.
情報理論2 注意!! 11月26日(火)は休講 (小林が学会出張のため) 湘南工科大学情報工学科 准教授 小林 学 湘南工科大学
計算技術研究会 C言語講座 第3回 Loops (for文 while文).
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
6/26 前回復習 for文、while文による繰り返し計算
プログラミング基礎I(再) 山元進.
第2回ネットワークプログラミング 中村 修.
プログラミング入門 第5回講義 第5回講義 制御の流れ(1) ループ(その1) - while - インデント(3) ループとは(7)
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
コンピュータープログラミング (C言語)(6) 1.条件分岐2(switch文、復習) 2.繰り返し処理(for文、while文)
トキのカタチ2016 電子工作(Arduino)講習
大域的データフロー解析 流れグラフ 開始ブロック 基本ブロックをnodeとし、 基本ブロック間の制御関係をedgeとするグラフを、
プログラミング入門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章 アルゴリズムの表現-流れ図
プログラミング入門第6回 ~レゴロボットのプログラミング6~
プログラムの制御構造 配列・繰り返し.
PHP 概要 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
情報基礎Ⅱ (第5回) 月曜4限 担当:北川 晃.
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
プログラムの基本構造と 構造化チャート(PAD)
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
第4章 反復作業を楽にする方法!! ~繰り返しその1 while~
情報処理Ⅱ 第3回 2007年10月22日(月).
プログラミングⅡ 第2回.
プログラミング基礎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年 計算技術研究会.
情報処理Ⅱ 第7回 2004年11月16日(火).
情報処理Ⅱ 2005年10月28日(金).
プログラミング入門 第4回講義 選択(分岐) - if, switch/case - データ構造とアルゴリズム(2)
プログラミング基礎演習 第4回.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
情報処理Ⅱ 第2回 2004年10月12日(火).
情報処理Ⅱ 2005年11月25日(金).
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
プログラミング1 プログラミング演習I 第2回.
場合分け(If Then Else,Select Case) 繰返し(Do While) 繰返しその2(For Next)
情報処理Ⅱ 小テスト 2005年2月1日(火).
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
情報処理Ⅱ 2006年10月20日(金).
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日(火).
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
Presentation transcript:

情報処理Ⅱ 第3回 2004年10月19日(火)

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

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

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

九九プログラム 方針 1≦i≦9, 1≦j≦9の各(i,j)について,i * jを計算する. 1≦j≦9のそれぞれのjの値に対して, 1≦i≦9のそれぞれのiの値との積を計算し,出力する 変数jを変化させるためのfor文を書き,その中に, 変数iを変化させるためのfor文を書く. for文の「入れ子」という

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

whileとfor while文をfor文で記述可能 for文をwhile文で記述可能 使い分けは? for (; 条件;) { 処理 } for文をwhile文で記述可能 処理がcontinueを含む場合はやや煩雑 使い分けは? 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≦i≦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"

switch~case 構文 switch (整数値) { たまに使う コロン 値1,値2,…は 定数式でなければならない … 整数値  値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; 条件の真偽にかかわらず 処理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は反復の先頭に戻る.適用される制御文に注意