プログラミング演習(1組) 第7回 http://www.fit.ac.jp/~matsuki/PEA1.html
今日の内容 前回の課題の解説 DEBUG機能の使い方 break point step実行 watch機能 今回の課題の説明
タイピング 喰人王を使用して結果を記録する ステージ:第一の店(中華) Excelのシートにスコアを毎回記録していく 残り時間⇒ FeedBackページで報告 総タイプ数 ミスタイプ数 正確さ⇒ FeedBackページで報告 喰いっぷり ⇒ FeedBackページで報告
今日の課題 課題1:三角形の3辺の長さを入力させて,その大小関係からどのような三角形かを判定するプログラムを作れ. 課題2:3つの値を入力させて,その中で最も大きい値を表示するプログラムを作れ. 一つ目の辺の長さは? 3 二つ目の辺の長さは? 5 三つ目の辺の長さは? 4 この三角形は,直角三角形です! 一つ目の値は? 3 二つ目の値は? 8 三つ目の値は? -1 この中で一番大きいのは,8です!
課題1の考え方 三角形を分類する 三角形が作れない 正三角形 二等辺三角形 直角三角形
課題1の考え方 c c a b a b a b c a >= b + c b >= a + c c >= b + a 三角形が作れない条件 c c a b a b a b c a >= b + c b >= a + 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 いずれか満たす
課題1(解答例 高岡君) if(a*a+b*b==c*c || b*b+c*c==a*a || c*c+a*a==b*b) { 課題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"); } #include<stdio.h> int main() { //変数の宣言 int height=50; //縦の長さ[cm] int base=30; //底辺の長さ[cm] int area; //面積[cm^2] //プログラムの処理内容を画面表示 printf("以下のような三角形の面積を求めます\n"); printf("縦の長さ:%d[cm]\n",height); printf("横の長さ:%d[cm]\n",base); //面積の長さを計算 area=base*height/2; //結果の表示 printf("\nこの三角形の面積は%d[cm^2]です\n\n",area); return 0; }
今日の課題 課題2:3つの値を入力させて,その中で最も大きい値を表示するプログラムを作れ. 一つ目の値は? 3 二つ目の値は? 8 一つ目の値は? 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の方法 break point step 実行 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 ---- 足し算 引き算 かけ算 割り算 平方根 -------------------- 実行する演算を番号で選択してください 3 かけ算を計算します。2つの値を入力してください。 一つ目の値は? 8 二つ目の値は? -2 演算結果は,-16です。
今回の課題(1) 【課題1の実行画面例2】 ---- MENU ---- 足し算 引き算 かけ算 割り算 平方根 -------------------- 実行する演算を番号で選択してください 5 平方根を計算します。値を一つ入力してください。 値は? 2 演算結果は,1.41421356です。
今回の課題(2) 【課題2】 今までの知識を使って、自分で問題を設定し、その問題を解決するプログラムを作成せよ。ただし、以下の機能を盛り込むこと。メール本文に問題についての説明を書くこと。 +、ー、*、/を用いた演算(すべて使うこと) sqrt, sin, cos, tanのいずれかを用いた計算 printfによる表示(出力) scanfを用いた入力 if文 switch文
平方根を求めるプログラム 三角関数 y = sin(x); printf(“ sin(x)は %fです”,y); #include <stdio.h> #include <math.h> int main() { double x = 2; double y; y = sqrt(x); printf(“ xの平方根は %fです”,y); } y = sin(x); printf(“ 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 松木裕二 本文にも短いカバーレター(説明)をつける
その他 講義に関する質問・課題提出など: Feed back page: 2009pe11y@gmail.com http://www.fit.ac.jp/~matsuki/cgi-bin/newpage11.html メールアドレスの入力は不要です ニックネームを決めてください(Ranking表示に使います)