プログラミング演習(1組) 第7回 http://www.fit.ac.jp/~matsuki/PEA1.html 今日の内容 • 前回の課題の解説 • DEBUG機能の使い方 – break point – step実行 – watch機能 • 今回の課題の説明 タイピング • 喰人王を使用して結果を記録する • ステージ:第一の店(中華) • Excelのシートにスコアを毎回記録していく – 残り時間⇒ FeedBackページで報告 – 総タイプ数 – ミスタイプ数 – 正確さ⇒ FeedBackページで報告 – 喰いっぷり ⇒ FeedBackページで報告 今日の課題 課題1:三角形の3辺の長さを入力させて,その 大小関係からどのような三角形かを判定する プログラムを作れ. 一つ目の辺の長さは? 3 二つ目の辺の長さは? 5 三つ目の辺の長さは? 4 この三角形は,直角三角形です! 課題2:3つの値を入力させて,その中で最も大 きい値を表示するプログラムを作れ. 一つ目の値は? 3 二つ目の値は? 8 三つ目の値は? -1 この中で一番大きいのは,8です! 課題1の考え方 • 三角形を分類する ① ② ③ ④ 三角形が作れない 正三角形 二等辺三角形 直角三角形 課題1の考え方 三角形が作れない条件 c b a a >= b + c c a b b >= a + c a b c c >= b + a 上記の3つの条件のいずれかであれば,三角形は作れない 課題1の考え方 • 正三角形であるための条件 c b a a == bかつb==c 課題1の考え方 • 二等辺三角形であるための条件 c b a a == bまたはb==cまたはc==b (正三角形でなければ,) 課題1の考え方 • 直角三角形であるための条件 c b a a*a == b*b + c*c b*b == a*a + c*c c*c == b*b + a*a いずれか満たす 課題1(解答例 高岡君) if(a*a+b*b==c*c || b*b+c*c==a*a || c*c+a*a==b*b) { printf("この三角形は、直角三角形です。\n"); } else if (a==b && b==c && c==a) { printf("この三角形は、正三角形です。\n"); } else if (a==b || b==c ||c==a) { printf("この三角形は、二等辺三角形です。\n"); } else if (a+b<=c || b+c<=a || c+a<=b) { printf("三角形は、できません。\n"); } else { printf(“これは普通の三角形です。\n"); } 今日の課題 課題2:3つの値を入力させて,その中で最も大 きい値を表示するプログラムを作れ. 一つ目の値は? 3 二つ目の値は? 8 三つ目の値は? -1 この中で一番大きいのは,8です! 課題2の考え方(1) • 3つの値の大小を「お互いに」比較する 条件 最大値 a >= bかつa >= c a b >= aかつb >= c b c >= aかつc >= b c 課題2の解答例(嶋田君) if ( b <= a && c <= a ) printf("この中で一番大きいのは、%fです!\n",a); else if ( a <= b && c <= b ) printf("この中で一番大きいのは、%fです!\n",b); else printf("この中で一番大きいのは、%fです!\n",c); 課題2の考え方(2) • 3つの値を「暫定最大値」と比較する max a c b 課題2の解答例(前淵君) max = a; //暫定的にaを最大とする if(b > max) max = b; if(c > max) max = c; DEBUGの方法 1. break point 2. step 実行 3. watch機能 DEBUGの方法(sample) #include <math.h> int main() { double x,y; int z; x = 3; y = sqrt(3); z = y*10; return 0; } 今回の課題(1) 【課題1】 ① 演算をメニューから数値で選ばせる(switch 文を使うこと)。 ② 必要な数値を入力させる。 ③ 演算を実行し、結果を出力する 今回の課題(1) 【課題1の実行画面例1】 ---- MENU ---1) 足し算 2) 引き算 3) かけ算 4) 割り算 5) 平方根 -------------------実行する演算を番号で選択してください 3 かけ算を計算します。2つの値を入力してください。 一つ目の値は? 8 二つ目の値は? -2 演算結果は,-16です。 今回の課題(1) 【課題1の実行画面例2】 ---- MENU ---1) 足し算 2) 引き算 3) かけ算 4) 割り算 5) 平方根 -------------------実行する演算を番号で選択してください 5 平方根を計算します。値を一つ入力してください。 値は? 2 演算結果は,1.41421356です。 今回の課題(2) 【課題2】 今までの知識を使って、自分で問題を設定し、その問 題を解決するプログラムを作成せよ。ただし、以下の機 能を盛り込むこと。メール本文に問題についての説明を 書くこと。 1. 2. 3. 4. 5. 6. +、ー、*、/を用いた演算(すべて使うこと) sqrt, sin, cos, tanのいずれかを用いた計算 printfによる表示(出力) scanfを用いた入力 if文 switch文 平方根を求めるプログラム 三角関数 #include <stdio.h> #include <math.h> int main() { double x = 2; double y; y = sqrt(x); sin(x); printf(“ %fです”,y); printf(“ xの平方根は sin(x)は %fです”,y); } printf(“ cos(x)は %fです”,cos(x)); printf(“ tan(x)は %fです”,tan(x)); } 三角関数 三角関数sin(x),cos(x),tan(x)について • xはdouble型でなければならない. • xはrad単位(180°= π [rad]) • 計算結果は,double型になる tan(π/4)を計算するとき, double pi = 3.141592; double result; result = tan(pi / 4); 注意事項 • ソースファイルについて ソースファイルは添付ファイルで送る ソースファイル以外は送らない ソースファイルの名前は,半角のみ使用 • メールについて 件名は,学籍番号+半角スペース+氏名 (例)S09F2099 松木裕二 本文にも短いカバーレター(説明)をつける その他 • 講義に関する質問・課題提出など: [email protected] • Feed back page: http://www.fit.ac.jp/~matsuki/cgi-bin/newpage11.html メールアドレスの入力は不要です ニックネームを決めてください(Ranking表示に使います)
© Copyright 2024 ExpyDoc