多重ループ 繰り返し構造:補足事項 第8回[平成16年6月8日(火)]:PN0 4ー08. ppt 1 繰り返し構造(for)の復習 2 演算子の復習 3 多重ループ 4 繰り返し構造の補足:break文、 continue 文 5 その他(プログラムの要素と書式) 6 演習 今日の内容.

Slides:



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

プログラミング演習( 2 組) 第 9 回
情報処理演習 (秋学期・樋口担当) 2回目 10/1 日本工業大学 コンピュータリテラシーII.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
7/10 if 文課題 力作が多くて感心! 演習1:キーボードから2つの整数を入力し、小さい方の数字を 表示せよ。
配列(2) 第10回目 [6月22日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)課題
ループで実行する文が一つならこれでもOK
プログラミング演習(1組) 第7回
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
4章 制御の流れ-3.
プログラミング基礎I(再) 山元進.
計算技術研究会 C言語講座 第3回 Loops (for文 while文).
ファーストイヤー・セミナーⅡ 第8回 データの入力.
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
プログラミングができるようになるには…. 一週間に1回では無理! 自分の力でできるだけがんばる
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
6/26 前回復習 for文、while文による繰り返し計算
基礎プログラミングおよび演習 第9回
プログラミング基礎I(再) 山元進.
多重ループ 繰り返し構造:補足事項 第8回目 [6月8日、H.16(‘04)] 本日のメニュー 1)前回の課題について
多重ループ 繰り返し構造:補足事項 第8回目 [6月12日、H.15(‘03)] 本日のメニュー 1)前回の課題について
プログラミング入門 第5回講義 第5回講義 制御の流れ(1) ループ(その1) - while - インデント(3) ループとは(7)
C言語講座 第4回 ポインタ.
第6章 2重ループ&配列 2重ループと配列をやります.
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
プログラミング入門2 第3回 繰り返し文 芝浦工業大学情報工学科 青木 義満
配列(1) 第9回目 [6月15日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)配列 4)課題
選択構造と条件判断 第5回目 [5月18日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)構造化プログラム(選択構造)
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
第7回 条件による繰り返し.
プログラムの制御構造 選択・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
プログラミング演習(2組) 第8回
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第2回 ファイル処理 情報・知能工学系 山本一公
プログラミング入門 電卓を作ろう・パートIV!!.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング序論 2. n人のインディアン.
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
プログラムの制御構造 配列・繰り返し.
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
プログラミングⅡ 第2回.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
プログラミング基礎a 第4回 C言語によるプログラミング入門 条件判断と反復
地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
復習 if ~ 選択制御文(条件分岐) カッコが必要 true 条件 false 真(true)なら この中が aを2倍する 実行される
C言語講座 制御(選択) 2006年 計算技術研究会.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
第5章 まだまだ続く反復処理!! ~繰り返しその2 for~
プログラミング基礎演習 第4回.
ループだよ! 第7章 for(ループ応用);.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
第7章 そろそろ int 以外も使ってみよう! ~データ型 double , bool~
プログラミング序論演習.
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
知能情報工学演習I 第11回(後半第5回) 課題の回答
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
C言語講座 四則演算  if ,  switch 制御文.
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
知能情報工学演習I 第10回( C言語第4回) 課題の回答
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
変数と代入・読込と表示 第2回[平成15年4月24日(木)]:PN03ー02.ppt 今日の内容 1 プログラムの構造(復習)
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
Presentation transcript:

多重ループ 繰り返し構造:補足事項 第8回[平成16年6月8日(火)]:PN0 4ー08. ppt 1 繰り返し構造(for)の復習 2 演算子の復習 3 多重ループ 4 繰り返し構造の補足:break文、 continue 文 5 その他(プログラムの要素と書式) 6 演習 今日の内容

皆さんのミニレポートから しばらく休んでいたので、だいぶ進んでいたので頑 張って追いつけるようにしたいです。 休まないで ね! 教科書・ppt忘れてしまいました。反省 忘れな いでね! さぶいです。冷房より窓を開ける方が今の時期は過 ごしやすいと思うのですが・・・。冷房を弱くしま しょう だいぶわかった。 goodです 教の授業は前回の while 文、 do-while 文の復習を スライドを多く使って説明したので分かりやすかっ た。 増減演算子や複合代入演算子を習って、プログラム が少し短くなった気がする。今回は85%以上理解 できたと思う。 プログラムを書く効率が上がりま すよ 今日は途中までの流れは良かったけれど、最後の課 題を考える時間がほとんど無かった。 反省します とても難しいと思いました。 教科書で復習を! 講義の出欠席を採るのが早い。個々によって2,3 分のズレがあるのでその辺は多めに見て欲しい。 一度だけ、今までの総復習を講義でやらなくてもい いが、。先生のフォルダーにでも復習問題でも設け て欲しい。 そのうち、過去問を掲載します。 今週は先週よりは理解することができました。 good です 30~40%分かった。 更に複雑になってきました。良く整理しておいて下 さい。 何となく理解できたと思う。しっかり復習して ’ 何と なく ’ ではないようにしたい。 後置演算子と前置演算子をうっかり使い間違えそう なので、しっかり理解して覚えたい。 これで、プログラムに重要な if や繰り返し構造を習 得したので、後はプログラムを組む考え方の習得を しないといけないと思った。 考え方を身につける のは大切です 今回の授業は do と while の構造についてでしたが、 今回の授業だけではまだ完全には理解できない部分 が多いです。後は、自分で復習するなり演習するな り何とか消化しようと思います。 復習よろしく 結構覚えることが多くて混乱しました。自分で復習 します。 do-while 文と while 文の使い分けが7割ぐらい分 かりました。また、今回新しく for 文を習ったので 分かるようにしておきたいです。 演習をたくさん しよう もうちょっと早く終わって欲しい。 努力します

構造化プログラミング 順次構造 A B B 判断 A true false 判断 A true false 選択構造 ・二者択一、 複数場合分け ・ if 文、 switch 文 繰り返し(反復)構造 ・定数回繰り返し、前判断、後判 断 ・ for 文、 while 文、 do-while 文 どの構造も入口と出口 が一つだけ 復習

for 文 例 for ( k=1; k<=200; k=k+1) printf("A"); for( 初期設定式 ; 継続条件式 ; 再設定式 ) 文 初期設定式 継続条件式 文 再設定式 初回の1回のみ 文実行後再設定 1(true) なら継続 0(false) で終了 k=1 k<=200 ? printf("A") k=k+1 復習

→ + - * / % 等 ba = b 復習 i++ i = i + 1 i-- i = i - 1 増分演算子 減分演算子 式が評価される 前に1だけ増減 する 式が評価された後 で1だけ増減する ++i --i (前・後)置・(増・減)分演算子

( 前・後 ) 置 ( 増・減 ) 分演算子の演 習 ++b; b++; a=++b; a=b++; --b; b--; a=--b; a=b--; b=5; を実行した後、次の式をそれぞれ 別々に実行すると、 a,b の値は? a b

一定回数の繰り返し:いろい ろ for ( i=0; i<n; i++) f=f * a; 一定回数を繰り返す for 文と while 文 例えば、 a の n 乗を計算する場合 a(=5) を n(=4) 回掛けるとする。 for ( i=1; i<=n; i++) f=f * a; while ( n-- > 0) f = f * a; while ( --n >= 0) f = f * a; int i, a=5, n=4, f=1; とする

一定回数の繰り返し:いろい ろ while (n-->0) f * = a; while (--n>=0) f * = a; int i, a=5, n=4, f=1; とする まず -- を実行し、次に 条件 (>=0) を判断(評価)す る 条件 (>0) を判断(評価)し、 次に -- を実行する n=n-1 n を判断 n=n-1 n を判断 n→3,2,1,0 n→4,3,2,1 n→0→-1 n→-1

多重ループ (p.78-) 次のような九九の表を作ってみよう : j 列 → i 行 ↓ for ( i ; i ; i ) { for ( j ; j ; j ) printf("%3d",i * j); ; }

演習(つづき) 前に作った九九の表に枠などを入れよう  1 行目と2行目の間に = だけの行  左端の数字の後に : の列 を入れる for と printf を駆使して作ろう 1: ========================== 2: : : 9: j 列 → → i行i行

演習(つづき) for ( i ; i ; i ) { printf("%1d:",i); for ( j ; j ; j ) printf("%3d",i * j); printf("\n"); if ( ) { for ( k ; k ; k ) printf("="); printf("\n"); } } 1: ========================== 2: : : 9: j 列 → → i行i行

前回の課題の発展問題 整数nを入力せよ: 30 約数は、 整数nを入力せよ: 29 約数は、 1 29 : 素数です。 自然数 n について、 1~n までの すべての値に対する剰余を計算して、n の約数をすべて表示せよ。また、約数の 数が2個(1と自分自身) 「素数で す。」と表示せよ。 上の課題で、nが 2~500までの数 について調べ、素数表を作れ。  多重ループを利用する 素数は ・・・

int n, m, cnt=0; printf(" 整数を入力せよ \n"); scanf("%d",&n); printf(" 約数は "); for ( m ; m ; m ) if ( ) { printf(" %3d",m); cnt++; } if( ) puts(": 素数です \n"); 前回の課題

int main(void) { int n, m, cnt; printf(" 素数は \n"); for ( n ; n ; n ) { cnt = 0; for ( m ; m ; m ) if ( ) ; if ( ) printf("%4d",n); } }

文字、文字列の出力 printf("x= %f\n", x); 文字列・書式を用いた値を出力す る puts(" 番号・氏名 "); 二つ以上の文字(文字列) を 改行付きで出力する (p.14) putchar('a'); putchar('\n'); 一つの文字 ( 含:制御文 字 ) を出力する (p.69) 'a'( 一文字 ) と "a"( 文字列 ) の違いは? a a\0 (p.208) 終端印

繰り返し構造内の continue 文 for 文、 while 文、 do 文の繰返し部分 内で条件式を用いて continue により 繰返し部分の最後にある } に跳躍で きる while ( ・・ ) { 文 1 文 2 ・・ 文 n-1 if ( 条件式 ) continue; 文 n 文 n+1 ・・ 文 m }

for文による無限ループと break 文 for ( ; ; ) 文 は無限ループ(永久に文を実行し続け る) 脱出のためには、 break を使う for ( ; ; ) { printf(" 文字を入力 (Z,z で終 了 )?"); scanf(" %c",&c); if (c=='Z' || c=='z') break; }

continue 文と break 文 for 文、 while 文、 do 文の繰り返し部分 内で 条件式を用いて、 continue により、繰り返し部分の最後 にある } に跳躍し、次の繰り返しに移 る break により、繰り返しを終了(脱 出)する while ( ・・ ) { 文 1 ・・ 文 n-1 if ( 条件式 ) continue; 文 n ・・ 文 m }

プログラムの要素と書式 (p.82- ) キーワード 識別子:名前の付けたか 区切り子: [ ] ( ) { } : = ; 等 演算子 (p.177) 定数、文字列リテラル 'z' 3 "abc" 等 自由形式:制限事項あり 隣接文字列リテラルの結合 "ab" "cd" インデンテーション:リストは読み やすく

インデンテーションの大切さ for ( i=1; i<=9; i++) { printf("%1d:",i); for ( j=2; j<=9; j++) printf("%3d",i * j); printf("\n"); if ( i==1 ) { for ( k=1; k<=26; k++) printf("="); printf("\n"); } }

インデンテーションの大切さ for ( i=1; i<=9; i++) { printf("%1d:",i); for ( j=2; j<=9; j++) printf("%3d",i * j); printf("\n"); if ( i==1 ) { for ( k=1; k<=26; k++) printf("="); printf("\n"); } }

今日の課題 *を利用して、三角形や四角形を表示し てみよう。 (p.80,81) 辺1:3 辺2:5 *** *** *** *** *** 何段ですか:5 * ** *** **** *****

縦長・横長の四角形の表示 / * hen1, hen2 に値を入力する * / if( ) { tate=hen1; yoko=hen2; } else { tate=hen2; yoko=hen1; } for ( i=1; i<=tate; i++) { for ( j=1; j<=yoko; j++) putchar(' * '); putchar('\n'); }

三角形・逆三角形の表示 / * ln に段数を入力する * / for ( i=1; i<=ln; i++ ) { for ( j=1; j<=ln-i; j++) putchar(' '); for ( j=1; j<=i; j++) putchar(' * '); putchar('\n'); }