知能情報工学演習I 第10回( C言語第4回) 課題の回答

Slides:



Advertisements
Similar presentations
知能情報工学演習 I 第 12 回( C 言語第6 回) 課題の回答 岩村雅一
Advertisements

情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
計算技術研究会 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文)
第6章 2重ループ&配列 2重ループと配列をやります.
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
プログラミング入門2 第2回 複合文、繰り返し 情報工学科 篠埜 功.
プログラミング入門2 第3回 繰り返し文 芝浦工業大学情報工学科 青木 義満
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
知能情報工学演習I 第9回( C言語第3回) 課題の回答
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
知能情報工学演習I 第12回(後半第6回) 課題の回答
知能情報工学演習I 第9回(後半第3回) 課題の回答
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
高度プログラミング演習 (02).
知能情報工学演習I 第8回( C言語第2回) 課題の回答
プログラムの制御構造 配列・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
復習 一定回数を繰り返す反復処理の考え方 「ループ」と呼ぶ false i < 3 true i をループ変数あるいはカウンタと呼ぶ
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
プログラミング序論演習.
知能情報工学演習I 第7回(後半第1回) 課題の回答
知能情報工学演習I 第11回( C言語第5回) 課題の回答
プログラミングⅡ 第2回.
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
地域情報学 C言語プログラミング 第4回 while文、do~while文、switch文、 2次元配列、ポインタ 2017年11月10日
C言語講座 制御(選択) 2006年 計算技術研究会.
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
プログラミング基礎演習 第4回.
ループだよ!難しいよ! 第5章 while(ループ);.
知能情報工学演習I 第8回(後半第2回) 課題の回答
第4章 double 小数型の変数;.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
知能情報工学演習I 第12回( C言語第6回) 課題の回答
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
モバイルプログラミング第2回 C言語の基礎 (1).
プログラミング1 プログラミング演習I 第2回.
湘南工科大学 2013年10月22日 情報理論2 湘南工科大学情報工学科 准教授 小林 学.
コンピュータープログラミング (C言語)(10) 1.ファイル入出力
プログラミング入門2 第5回 配列 変数宣言、初期化について
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
printf・scanf・変数・四則演算
第2章 数値の入力と変数 scanfと変数をやります.
知能情報工学演習I 第11回(後半第5回) 課題の回答
知能情報工学演習I 第9回(後半第3回) 課題の回答
計算技術研究会 第5回 C言語勉強会 関数(function)を使う
C言語講座 四則演算  if ,  switch 制御文.
計算技術研究会 C言語講座 第二回 制御構文 if , switch.
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
プログラミング演習I 補講用課題
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります 第1章 文字の表示と計算.
第1章 文字の表示と計算 printfと演算子をやります.
= 55 課題6-1 #define _CRT_SECURE_NO_WARNINGS
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

知能情報工学演習I 第10回( C言語第4回) 課題の回答 岩村雅一 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); キーボードから整数を入力し、その数が正でない場合はプログラムを終了する。その数が正の場合は偶数か奇数かを判別して表示する。入力された値が正である限りはこれを何度も繰り返す。 ヒント:偶数か奇数かは2で割り切れるかどうかで判定可能。後半2回目で紹介したものを使用するとうまくいきます。 do-whileループ 入力 出力 終了条件

課題1:実際にあった間違い 繰り返さないで1回で終わる。 0でも終了(今回は不問) 数値を入力させてくれない int i; while(i>0){ scanf("%d\n",&i); … } 奇数、偶数の順に入力するとプログラムが終わる

前回の課題2 #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つの整数を入力し、これらを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]); } 入力 平均の計算

課題3:実際にあった間違い(その1) 平均の計算を整数のまま行っている。 誤った出力例 合計:3+3+3+3+4=16 平均:16/5=3? 原因 int sum; float average; … average=sum/5; 解決方法の一例 sumをfloat型にする。 average=sum/5.0; average=(float)sum/5; 3.2が正解 float型なのにint int int

課題3:実際にあった間違い(その2) 計算結果がおかしい 課題2をもう一度添付してある 配列を使っていない コンパイルが通らない int i,a[5]; for(i=0;i<5;i++) { printf("整数を入力してください。\n"); scanf("%f",&a[i]); } 課題2をもう一度添付してある 配列を使っていない コンパイルが通らない セミコロンがない

課題3:実際にあった間違い(その3) 配列の添え字が間違っている int a[5]; scanf("%d",a[1]);

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

前回の課題:課題4(回答例1) 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の場合

前回の課題:課題4(回答例2) 1とその数以外で割り切れたら素数ではない 1からその数までで割って、 割り切れた回数を数える #include<stdio.h> int main(void){ int a, b=0, i; printf("Input a:"); scanf("%d", &a); for(i=1;i<=a;i++){ if(a%i==0){ b++; } if(b==2){ printf("%dは素数である。\n",a); } else{ printf("%dは素数でない。\n",a); return 0; 1からその数までで割って、 割り切れた回数を数える

課題4:実際にあった間違い(その1) 1を入力すると無限ループに入る 答えが違う 一部の答えが出ない 1が素数になっている 3を素数じゃないと答える 一部の答えが出ない 1と2だけ答えが出ない 2と3だけ答えが出ない 1だけ答えが出ない 2だけ答えが出ない

課題4:実際にあった間違い(その2) .cのファイルとDVIファイルでソースコードが違う コンパイルが通らない セミコロンがない 中括弧の数が合わない 字下げしよう! .cのファイルとDVIファイルでソースコードが違う