選択構造と条件判断 第5回目 [5月18日、H.16(‘04)] 本日のメニュー 1)前回の課題について 2)構造化プログラム(選択構造) プログラミング演習('04) 2018/11/7 第5回目 [5月18日、H.16(‘04)] 選択構造と条件判断 本日のメニュー 1)前回の課題について 2)構造化プログラム(選択構造) 3)等価演算子、関係演算子、条件演算子 4)課題・提出 PE04-05.ppt PE04-05.ppt
第2章までの総合演習(前回の課題) (1)画面に、『本日は晴天なり』と表示するプログラムを書いてみよう。 (2)単位を互いに換算するプログラムを書いてみよう。 (a)センチ(cm)とインチの換算[1インチ=2.54cm] (b)ドル($)と円(\)の換算[1$=\109.5] (c)摂氏C(℃)と華氏F(°)の換算 F
解答例:文字の表示(1) #include <stdio.h> int main(void) { printf("本日は晴天なり\n"); return(0); } puts("本日は晴天なり"); 以下の解答例では"おまじない"部分は略
解答例:単位の換算(2.a) double cm, inch; puts("cm?");scanf("%lf",&cm); inch = cm/2.54; printf("%6.2fcmは%6.2fインチです\n", cm, inch); puts("インチ?");scanf("%lf",&inch); cm = 2.54*inch; printf("%6.2fインチは%6.2fcmです\n", inch, cm);
解答例:単位の換算(2.b) double dl, en; printf("$?");scanf("%lf",&dl); en = dl*109.5; printf("$%6.2fは¥%6.2fです\n", dl, en); printf("¥?");scanf("%lf",&en); dl = en/109.5; printf("¥%6.2fは$%6.2fです\n", en, dl);
解答例:単位の換算(2.c) double c, f; printf("摂氏温度は?"); scanf("%lf",&c); printf("華氏で、%6.2fです\n",f); printf("華氏温度は?"); scanf("%lf",&f); c = 5.0*(f-32.0)/9.0; printf("摂氏で、%6.2fです\n",c); 5/9*(f-32)
int main(void) { double f, c ; 5/9と書くと、 puts("123456 朝日太郎"); プログラミング演習('04) int main(void) { double f, c ; puts("123456 朝日太郎"); printf("華氏温度は?"); scanf("%lf",&f); c = (5.0/9.0)*(f-32.0); printf("摂氏温度 %f です。",c); printf("摂氏温度は?"); scanf("%lf",&c); f = (9.0/5.0)*c + 32.0; printf("華氏温度 %f です。",f); return(0); } 2018/11/7 5/9と書くと、 0.55…ではなく、 ゼロになる (整数演算) 9/5と書くと、 1.8ではなく、 1 になる (整数演算) PE04-05.ppt
第2章までの総合演習(前回の課題) (3)単価 a 円のハンバーガーを n 個買い、 y 円札を出したら、お釣りはいくらになるでしょう? この計算をするプログラムを書いてみよう。 (4)上底a、下底b、高さh の台形の面積 S を計算するプログラムを書いてみよう。
解答例:ハンバーガーの問題(3) int a, n, y, turi; printf("単価?");scanf("%d",&a); printf("個数?");scanf("%d",&n); printf("お札の金額?"); scanf("%d",&y); turi = y – a*n; printf("お釣りは %6d 円です\n", turi);
解答例:面積計算(4) double a, b, h, s; printf("上底、下底、高さは?"); プログラミング演習('04) 2018/11/7 解答例:面積計算(4) double a, b, h, s; printf("上底、下底、高さは?"); scanf("%lf %lf %lf",&a,&b,&h); s = (a + b) * h / 2.0; printf("面積は、%6.2f です。\n", s); PE04-05.ppt
ファイル名:hw4-****.c hw4-****.exe プログラミング演習('04) 2018/11/7 前回の宿題 ◎キーボードから整数部分2桁、小数点以下2桁の値を入力し、それぞれの桁の数値とそれらの合計、平均値(小数点以下2桁)を求めよ。 ◎教科書演習2-6(33頁) 数値=> 65.42 十の位は 6 一の位は 5 十分の1の位は 4 百分の1の位は 2 合計は 17 平均は 4.25 ファイル名:hw4-****.c hw4-****.exe 締め切り: 5月15日(土) 午後1時 リストの提出は、オープン利用室のレポート入れ aucopy でのファイル転送フォルダーは、 [森下伊三男]-[プログラミング演習] PE04-05.ppt
直接に i=z*100.0 と記述しても良い int i, a,b,c,d ; double x, z ; プログラミング演習('04) 2018/11/7 int i, a,b,c,d ; double x, z ; printf("浮動小数点数を入れよ===>"); scanf("%lf",&z); z = z * 100.0; i = z; a = i / 1000; b = ( i % 1000) / 100 ; c = ( i % 100) / 10 ; d = i % 10 ; x = (a+b+c+d) / 4.0; ・・・ 内部表現は 65.4199999・・・ となっている可能性あり 65.42 6542.000 6542 100倍すると 6541.9999・・ 6 6542 5 542 この場合、iは6541となる 4 42 2 6542 対応策:四捨五入 i=z*100.0+0.5; 直接に i=z*100.0 と記述しても良い PE04-05.ppt
解答例:演習2-6 int h; double w; printf("身長を入力してください:"); scanf("%d", &h); プログラミング演習('04) 2018/11/7 解答例:演習2-6 int h; double w; printf("身長を入力してください:"); scanf("%d", &h); w = ( h – 100.0 ) * 0.9; printf("標準体重は%.1fです。\n", w); PE04-05.ppt
課題についての注意 ・数学的な問題 → 式の変形ができない(問題外) を変形すると ・c=5/9*(f-32); f=9/5*c+32; と書くと、 結果がおかしくなる。 次の場合ならば良い。 c=(f-32)*5/9; f=c*9/5+32; (整数型)(*/+-%)(整数型) → (整数型) 演算は括弧内が優先で、左から行われる ・かけ算の式で*を忘れる 5/9(kashi-32) → 5.0/9.0*(kashi-32)
課題についての注意 ・インチ-センチ、ドル-円の変換で、利用する式を逆に使っている ・出力例や簡単な場合の結果を参考に、必ず実行結果をチェックする事。 ・途中まででも、リスト出力を必ず提出する事。 ・*.C のファイルの拡張子を *.exe に書き換えてファイル転送している → パソコン停止 .exe ファイルはコンパイルが完了すると自動的に生成されるファイルである。 ・問題を良く読む→演習2-6:整数値を入力する
構造化プログラミング どの構造も入口と出口 が一つだけ 選択構造 繰り返し(反復)構造 順次構造 ・二者択一、 複数場合分け B 判断 A true false 順次構造 選択構造 ・二者択一、 複数場合分け ・if文、switch文 A B 繰り返し(反復)構造 ・定数回繰り返し、前判断、後判断 ・for文、while文、do-while文 判断 A true false どの構造も入口と出口 が一つだけ
選択構造 ・条件判断によって処理を選択していく構造 ・判断の結果は 非0 : true(Yes) または 0 : false(No) ・trueの場合にはAを、 falseの場合には Bを実行する B 条件判断 A true false 菱形の中:0又は非0の結果を持つ式
関係演算子と等価演算子(p.42-) 関係演算子:値の大小関係を比較する 関係成立:1(true)、不成立:0(false) a < b aがbより小さいなら 1(条件成立) a <= b aがbより小さいか又は等しいなら 1 a > b aがbより大きいなら 1 a >= b aがbより大きいか又は等しいなら 1 等価演算子:値が等しいかどうかを判定する 関係成立:1(true)、不成立:0(false) a == b aとbが等しいなら 1 a != b aとbが等しくないなら 1
条件演算子(p.48-) 条件判断によって式を選択していく構造 if文と似た構造を持った式を記述 3項演算子 式1 ? 式2 : 式3 式3 プログラミング演習('04) 2018/11/7 条件演算子(p.48-) 条件判断によって式を選択していく構造 if文と似た構造を持った式を記述 3項演算子 式1 ? 式2 : 式3 式3 式1 式2 true false 式 の 値 式1 が非0 式1 が0 式2の値 式3の値 PE04-05.ppt
今日の課題 教科書の各演習を順に処理していくプログラムを作成せよ。 (1)演習3-1(41頁)、演習3-3(45頁)、 演習3-4(45頁) プログラミング演習('04) 2018/11/7 今日の課題 教科書の各演習を順に処理していくプログラムを作成せよ。 (1)演習3-1(41頁)、演習3-3(45頁)、 演習3-4(45頁) (2)[発展](時間に余裕の有る人は進む) 演習3-2、演習3-5~演習3-8 ファイル名は en5-****.c ファイル名の **** は学籍番号の二桁目と下3桁 例:学生番号 034987 ならば xxx-3987.c PE04-05.ppt
今日の提出 1)プログラムリストを提出する。 2)aucopyで en5-****.c を転送する。 今日の課題の各演習について、できたところまでのリストを印刷して提出する (途中まででも、必ず提出すること) なお、授業中にできなかった演習は、各自で必ず完成させること。 2)aucopyで en5-****.c を転送する。 3)aucopyで en5-****.exe を転送する。 .C の拡張しを変えて .exe を作らないこと ファイル名の **** は学籍番号の二桁目と下3桁 例:学生番号 034987 ならば xxx-3987.c
ファイル名:hw5-****.c hw5-****.exe プログラミング演習('04) 2018/11/7 今回の宿題 ◎3つの整数を入力し、最大値と最小値を表示するプログラムを作れ。[46~47頁を参考に] 整数を入力? 8 5 2 最大値は 8 です。 最小値は 2 です。 整数を入力? 8 5 2 4 9 最大値は 9 です。 最小値は 2 です。 {発展問題}入力する整数が五つの場合。 ファイル名:hw5-****.c hw5-****.exe 締め切り: 5月22日(土) 午後1時 リストの提出は、オープン利用室のレポート入れ aucopy でのファイル転送フォルダーは、 [森下伊三男]-[プログラミング演習] PE04-05.ppt
次回(第6回)の プログラミング入門、 プログラミング演習は プログラミング演習('04) 2018/11/7 第5回終了 次回(第6回)の プログラミング入門、 プログラミング演習は 5月25日です。 PE04-05.ppt