第6回目 [5月25日、H.16(‘04)] 多岐選択(switch文)と 繰り返し構造 (do-while文、while文) 本日のメニュー 1)前回の課題について 2)前回の宿題について 3)switch文、do-while文、while文の課題 4)宿題 PE04-06.ppt 前回の課題 教科書の各演習を順に処理していくプログ ラムを作成せよ。 (1)演習3-1(41頁)、演習3-3(45頁)、 演習3-4(45頁) (2)[発展](時間に余裕の有る人は進む) 演習3-2、演習3-5~演習3-8 ファイル名は en5-****.c ファイル名の **** は学籍番号の二桁目と下3桁 例:学生番号 034987 ならば xxx-3987.c int a, b, c, d; /* 演習3-1 */ printf("整数A:"); scanf("%d", &a); printf("整数B:"); scanf("%d", &b); if( a % b == 0 ) puts("bはaの約数です。"); else puts("bはaの約数ではありません。"); /* 演習3-3 */ if(c>0) d= c; printf("整数:"); else d=-c; scanf("%d", &c); d = ( c > 0 ) ? c : -c; printf("絶対値は%dです\n",(c>0)?c:-c /* 演習3-4 */ puts("二つの整数を入力せよ"); printf("整数A:"); scanf("%d", &a); printf("整数B:"); scanf("%d", &b); if ( a > b ) puts("AはBより大きいです。"); else if ( b > a ) puts("AはBより小さいです。"); else puts("AとBは等しいです。"); /* 演習3-2 */ 比較演算、等価演算を int main(void) { した結果の値を int a, b; 出力する puts("二つの整数を入力せよ"); printf("整数A:"); scanf("%d", &a); printf("整数B:"); scanf("%d", &b); printf("a> b の結果は%d\n", a> b ); printf("a>=b の結果は%d\n", a>=b ); printf("a< b の結果は%d\n", a< b ); printf("a<=b の結果は%d\n", a<=b ); printf("a==b の結果は%d\n", a==b ); printf("a!=b の結果は%d\n", a!=b ); return(0); } 前回の宿題 ◎3つの整数を入力し、 整数を入力? 8 5 2 最大値と最小値を表示 最大値は 8 です。 最小値は 2 です。 するプログラムを作れ。 [46~47頁を参考に] 整数を入力? 8 5 2 4 最大値は 9 です。 {発展問題}入力する整 最小値は 2 です。 数が五つの場合。 ファイル名:hw5-****.c hw5-****.exe 9 • 締め切り: 5月22日(土) 午後1時 • リストの提出は、オープン利用室のレポート入れ • aucopy でのファイル転送フォルダーは、 [森下伊三男]-[プログラミング演習] int a, b, c; printf("三つの整数は"); scanf("%d %d %d",&a,&b,&c); if ( a > b ) if ( a > c ) printf("最も大きい値は %d",a); 文 else printf("最も大きい値は %d",c); else if ( b > c ) printf("最も大きい値は %d",b); 文 else printf("最も大きい値は %d",c); int a, b, c, d, e, maxとりあえず、 ; printf("123456 朝日太郎\n"); 1個だけの入力 printf("5つの整数は?"); の場合は それが最大置 scanf("%d %d %d %d %d", &a,&b,&c,&d,&e); 2個目が max = a; 入力された if ( b > max ) max = b; 段階での if ( c > max ) max = c; 最大値 if ( d > max ) max = d; 5個目が if ( e > max ) max = e; 入力された 段階の printf("最大値は %d です。",max); 最大値 提出課題について ・「bはaの約数」 → a % b がゼロになる if( a % b == 0 ) 「bはaの約数」 else 「bはaの約数でない」 if( a % b ) → True(非0)の時は 「bはaの約数でない」 if( b%a ), if( a/b ), if( b/a) と書いた人が多い[これでは約数判定できない] ・符号反転 –a を以下のように書いた人が多い (-1)*a, -1*a, a*-1, a*(-1) [特に、間違いではない] ・x = (a>b) ? 1 : 0; では a>b の値は分からない。 ・宿題は良くできていた。3項演算子の利用もあった。 復習 構造化プログラミング 順次構造 A B 選択構造 ・二者択一、 複数場合分け ・if文、switch文 true 判断 A false B 繰り返し(反復)構造 ・定数回繰り返し、前判断、後判断 ・for文、while文、do-while文 どの構造も入口と出口 が一つだけ false 判断 true A 今日の課題 ファイル名は en6-****.c 教科書の各演習を順に処理するプログラム を作成せよ。 (1)演習3-9、演習3-10(53頁)、 演習3-11、演習3-12(57頁) (2)List4-2、4-3(62,63頁)を理解して から演習4-1、演習4-2(65頁)、List47(68頁)を理解してから演習4-6(96 頁) 提出はいつもと同様、リスト印刷とファイル転送 ファイル名の **** は学籍番号の二桁目と下3桁 例:学生番号 034987 ならば xxx-3987.c 今日の宿題 ファイル名:hw6-****.{c, exe} 正の整数を入力していき、 data ? 30 0(ゼロ) 又は負の整数が data ? 54 入力されるまでに入力さ data ? 16 data ? –1 れた正の整数について、 最大値は 54 です。 次の値を順に出力せよ 最小値は 16 です。 1) 最大値 2) 最小値 個数は 3 個です。 平均値は 33.33 です。 3) 個数 4) 平均値 • 締め切り: 5月29日(土) 午後1時 • リストの提出は、オープン利用室のレポート入れ • aucopy でのファイル転送フォルダーは、 [森下伊三男]-[プログラミング演習]
© Copyright 2024 ExpyDoc