岩村雅一 masa@cs.osakafu-u.ac.jp 知能情報工学演習I 第11回(後半第5回) 岩村雅一 masa@cs.osakafu-u.ac.jp.

Slides:



Advertisements
Similar presentations
ループで実行する文が一つならこれでもOK
Advertisements

情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
4章 制御の流れ-3.
計算技術研究会 C言語講座 第3回 Loops (for文 while文).
配列(2) 第10回[平成15年6月26日(木)]:PN03-10.ppt 今日の内容 1 素数を求める(教科書の例):復習
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
コンピュータープログラミング (C言語)(6) 1.条件分岐2(switch文、復習) 2.繰り返し処理(for文、while文)
C言語講座 第4回 ポインタ.
プログラミング入門2 第3回 繰り返し文 芝浦工業大学情報工学科 青木 義満
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
プログラムの制御構造 選択・繰り返し.
繰り返し計算 while文, for文.
知能情報工学演習I 第9回( C言語第3回) 課題の回答
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
知能情報工学演習I 第12回(後半第6回) 課題の回答
知能情報工学演習I 第9回(後半第3回) 課題の回答
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
知能情報工学演習I 第8回( C言語第2回) 課題の回答
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
プログラムの制御構造 配列・繰り返し.
C言語講座第二回 2017 分岐とループと乱数.
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
知能情報工学演習I 第11回( C言語第5回) 課題の回答
プログラミングⅡ 第2回.
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
復習 if ~ 選択制御文(条件分岐) カッコが必要 true 条件 false 真(true)なら この中が aを2倍する 実行される
C言語講座 制御(選択) 2006年 計算技術研究会.
地域情報学 C言語プログラミング 第3回 入力、if文、for文 2016年11月25日
プログラミング基礎演習 第4回.
ループだよ!難しいよ! 第5章 while(ループ);.
知能情報工学演習I 第8回(後半第2回) 課題の回答
第4章 double 小数型の変数;.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
知能情報工学演習I 第12回( C言語第6回) 課題の回答
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
モバイルプログラミング第2回 C言語の基礎 (1).
地域情報学 C言語プログラミング 第3回 入力、if文、for文 2017年11月1日
プログラミング1 プログラミング演習I 第2回.
湘南工科大学 2013年10月22日 情報理論2 湘南工科大学情報工学科 准教授 小林 学.
プログラミング序論演習.
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
知能情報工学演習I 第11回(後半第5回) 課題の回答
知能情報工学演習I 第9回(後半第3回) 課題の回答
計算技術研究会 第5回 C言語勉強会 関数(function)を使う
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
C言語講座 四則演算  if ,  switch 制御文.
計算技術研究会 C言語講座 第二回 制御構文 if , switch.
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
知能情報工学演習I 第10回( C言語第4回) 課題の回答
プログラミング演習I 補講用課題
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります 第1章 文字の表示と計算.
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

岩村雅一 masa@cs.osakafu-u.ac.jp 知能情報工学演習I 第11回(後半第5回) 岩村雅一 masa@cs.osakafu-u.ac.jp

前回の課題 課題1 #include<stdio.h> int main(void){ int a; do{ printf("整数を入力してください。\n"); scanf("%d",&a); if(a%2) { printf("数字は奇数です。\n"); } else { printf("数字は偶数です。\n"); } } while(a>0); return(0); 課題1 キーボードから整数を入力し、その数が正でない場合はプログラムを終了する。その数が正の場合は偶数か奇数かを判別して表示する。入力された値が正である限りはこれを何度も繰り返す。 ヒント:偶数か奇数かは2で割り切れるかどうかで判定可能。後半2回目で紹介したものを使用するとうまくいきます。途中でプログラムを終了するには、「exit(0)」という関数を使うか、「return(0)」を使うとうまくいきます。 終了条件

前回の課題 #include<stdio.h> int main(void){ int a,b,i,sum; printf("Input a: "); scanf("%d",&a); printf("Input b (b>a):"); scanf("%d",&b); sum=0; for(i=a;i<=b;i++){ sum += i; } printf("sum = %d\n",sum); return 0; 課題2 課題2:キーボードから2つの整数を入力し、これらをaとbとする(ただし、a<b)。このとき、a+(a+1)+...+(b-1)+bを求めよ。ヒント:for文を使い、aからbまで足し算を実行するとよい。

前回の課題 課題3 キーボードから5つの整数を入力し、変数(配列)で覚えておく。5つの整数の入力が終わった後、5つの値の合計、平均を求めなさい。 ただし、平均の値は小数で出力するものとする。

前回の課題:課題3 配列を使わない場合 合計の計算 入力 平均の計算 printf("Input d: "); scanf("%d",&d); printf("Input e: "); scanf("%d",&e); sum=a+b+c+d+e; printf(“sum = %d\n”,sum); average=sum/5.0; printf(“average = %f\n”,average); return 0; } #include<stdio.h> int main(void){ int a,b,c,d,e,sum; float average; printf("Input a: "); scanf("%d",&a); printf("Input b: "); scanf("%d",&b); printf("Input c: "); scanf(“%d”,&c); 合計の計算 入力 平均の計算

前回の課題:課題3 配列を使う場合 合計の計算 入力 平均の計算 #include <stdio.h> sum = 0; for (i=0; i<5; i++) { sum+=a[i]; } printf("sum = %d\n" ,sum); average=sum/5.0; printf("average = %f\n",average); return 0; #include <stdio.h> int main(void) { int i, a[5], sum; float average; for (i=0; i<5; i++) { printf("Input a[%d]: ", i); scanf("%d", &a[i]); } 入力 平均の計算

前回の課題 課題4(任意) キーボードから整数を入力してもらい、その整数が素数かどうかを判定するプログラムを作成しなさい。 [ポイント] 素数かどうかは、順番に割ってみればわかる 1は素数ではない

前回の課題:課題4 2からaまでで割る 2以上の場合 1の場合 #include<stdio.h> int main(void){ int a,i; printf("Input a:"); scanf("%d",&a); if(a==1){ printf(“1は素数でない。\n"); return 0; } for(i=2;i<a;i++){ if(a%i==0){ printf(“%dは素数でない。\n",a); return 0; } printf(“%dは素数である。\n",a); 2以上の場合 1の場合

後半の予定 6月1日 プログラミング環境(テキスト1,2章) 6月8日 変数とデータ型(3章) 、演算子(4章) 6月1日 プログラミング環境(テキスト1,2章) 6月8日 変数とデータ型(3章) 、演算子(4章) 6月15日 コンソール入出力(6章) 、配列(3章) 6月22日 制御文1 (テキスト5章) 6月29日 制御文2(テキスト5章) 7月13日 関数1(テキスト7章) 7月20日 配列(3章) 、応用プログラム

本日のメニュー 条件の判定 制御文 真と偽 論理演算子 繰り返し ループの終了 while文 do-while文 break continue

if文 条件を満たすときに命令を実行する 条件の書き方(関係・等価演算子、テキストP.78) 条件を判定する仕組み int a; a=10; == 等しい != 等しくない int a; a=10; if (a==10) printf(“aは10です。\n ”); 条件を判定する仕組み > 大なり < 小なり >= 等号を含む大なり(≧) <= 等号を含む小なり(≦)

条件の判定 C言語での真と偽(条件を満たすかどうか) 例:a==10の判定 偽:0 真:0以外 aが10の場合: aが10でない場合:

条件の判定のサンプルプログラム #include<stdio.h> int main(void){ if (1) { printf(“1は真\n"); } else { printf(“1は偽\n"); } if (0) { printf("0は真\n"); printf("0は偽\n"); return 0; #include<stdio.h> int main(void){ int a; printf("Input a: "); scanf("%d", &a); printf("a==10の値は%d\n", a==10); return 0; }

論理演算子(テキストP.79) 真偽値を否定したり、複数の条件を組み合わせる NOT演算子(!) AND演算子(&&) OR演算子(||) If (!(a==10)) AND演算子(&&) If (a==10 && b==20) OR演算子(||) If (a==10 || b==20)

論理演算子のサンプルプログラム #include<stdio.h> int main(void){ int i; for (i=10; i<=20; i++) { if ((i%2==0) || (i%3==0)) printf("%dは2の倍数か3の倍数である。\n",i); if ((i%2==0) && (i%5==0)) printf("%dは2の倍数でも5の倍数でもある。\n",i); if ((i%2==0) && !(i%4==0)) printf("%dは2の倍数であるが4の倍数ではない。\n",i); printf("\n"); } return 0;

for文 条件を満たす間繰り返す 初期化式 条件式 再設定式(増分) #include <stdio.h> int main(void) { int i; for (i=0; i<3; i++) { printf("i=%d\n", i); } return 0; 初期化式 条件式 再設定式(増分)

for文 初期化式が無い場合 条件式 再設定式(増分) #include <stdio.h> int main(void) { int i; i=0; for (; i<3; i++) { printf("i=%d\n", i); } return 0; 条件式 再設定式(増分)

for文 再設定式(増分)も無い場合 条件式 #include <stdio.h> int main(void) { int i; i=0; for (; i<3; ) { printf("i=%d\n", i); i++; } return 0; 条件式

while文 条件式のみ 条件式 #include <stdio.h> int main(void) { int i; i=0; printf("i=%d\n", i); i++; } return 0; 条件式

do-while文 セミコロン(;)が必要 条件式 基本的にwhile文と同じ 条件判定は後なので、最低1回は実行される #include <stdio.h> int main(void) { int i; i=0; do { printf("i=%d\n", i); i++; } while(i<3); return 0; } セミコロン(;)が必要 条件式

for文の無限ループ 条件判定式がない #include<stdio.h> int main(void){ for(;;) { printf("a\n"); } return 0; 条件判定式がない

while文の無限ループ ずっと真 #include <stdio.h> int main(void) { printf("a\n"); } return 0; ずっと真

ループを抜け出す方法 break 先週switch文で出てきた 一番内側のループを抜ける continue 処理を1回だけスキップする

ループを抜け出す方法のサンプルプログラム #include<stdio.h> int main(void){ int i; printf("break文の場合\n"); for(i=0; i<10; i++) { if (i==5) { break; } printf("i = %d\n", i); printf("continue文の場合\n"); for(i=0; i<10; i++) { if (i==5) { continue; } printf("i = %d\n", i); return 0;