260 likes | 394 Views
プログラミング演習( 2 組) 第 4 回. http://www.fit.ac.jp/~matsuki/PEB1.html. 今日の内容. 前回の課題の解説 演算の優先順位 整数型 ( int ) と実数型 (double) による計算 scanf 関数(入力関数) 今日の課題. 4 月 24 日のタイピング結果 ( S-Class ). 第 1 位 松本 君 第 2 位 シャイニングp・・・何でもない。 第 3 位 無名 第 4 位 真・喰人王 第 5 位 Mat. 4 月 24 日のタイピング結果 ( A-Class ).
E N D
プログラミング演習(2組)第4回 http://www.fit.ac.jp/~matsuki/PEB1.html
今日の内容 • 前回の課題の解説 • 演算の優先順位 • 整数型(int)と実数型(double)による計算 • scanf関数(入力関数) • 今日の課題
4月24日のタイピング結果(S-Class) 第1位 松本 君 第2位 シャイニングp・・・何でもない。 第3位 無名 第4位 真・喰人王 第5位 Mat
4月24日のタイピング結果(A-Class) 第1位 Pストーン 第2位 柊百合 第3位 金子 第4位 がっちゃん 第5位 kpvy
4月24日のタイピング結果(B-Class) 第1位 忍者 第2位 WALLY 第3位 toshi 第4位 ふでばこ 第5位 JUN
タイピング • 喰人王を使用して結果を記録する • ステージ:第一の店(中華) • Excelのシートにスコアを毎回記録していく • 残り時間⇒ FeedBackページで報告 • 総タイプ数 • ミスタイプ数 • 正確さ⇒ FeedBackページで報告 • 喰いっぷり ⇒ FeedBackページで報告
前回の課題 (1)三角形の面積を求めるプログラムを作れ (2)円の円周の長さ,円の面積を求めるプログラムを作れ (3)scanf関数を使ってキーボードから値を入力できるように,(1)と(2)を改造せよ.
課題1(解答例 金子君) //変数の宣言 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); #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; } int型で宣言 「%d」は10進数の整数として表示
課題2(解答例 近藤君) #include<stdio.h> int main() { //変数の宣言 double radius; //円の半径の長さ[cm] double length; //円周の長さ[cm] double area; //面積[cm^2] //円周率を設定 double pai = 3.145927; //円の半径の長さを設定 radius = 10.0; //プログラムの処理内容を画面表示 printf("以下のような円の周回の長さと面積を求めます\n"); printf("使用する円周率はπ= %f\n\n",pai); printf("円の半径の長さ: %f [cm]\n\n",radius); //周回の長さを計算 length = 2 * pai * radius; //面積を計算 area = pai * radius * radius; printf("この円の周回の長さは%f [cm]\n",length); printf("この円の面積は%f [cm^2]\n\n",area); return 0; } //変数の宣言 double radius; //円の半径の長さ[cm] double length; //円周の長さ[cm] double area; //面積[cm^2] //円周率を設定 double pai = 3.145927; //円の半径の長さを設定 radius = 10.0; //面積を計算 area = pai * radius * radius; printf("この円の面積は%f [cm^2]\n\n",area); double型で宣言 「%f」は実数として表示
全角を使った変数名について • Visual Studioでは、変数名に全角文字を使用することができます。 int半径=30; double 面積; double ぱい = 3.14; 面積 = 半径*半径*ぱい; • ただし、これはVisual Studioの環境でしか動作しない、特殊なプログラムになります。 • ビルドもOK • 実行もOK 変数名は、半角英数文字のみを使用する
課題3(解答例 和田見君) /*プログラムの処理内容を画面表示*/ printf("以下のような円の円周の長さと面積を求めます。\n"); printf("半径:"); scanf("%lf",&radius); double型の変数radiusにキーボードから値を入力させる
scanf関数(テキストp.92) • 機能:標準入力(キーボード)から値を入力させる • 引数:書式(変換指定子)と,変数 • 変換指定子: • %d : 10進整数 • %f : float型浮動小数点数 • %lf : double型浮動小数点数 • %c: 文字 • %s: 文字列 • %x: 16進数整数 • 使い方:scanf(“変換指定子”, &変数);
scanf関数 • 例: int x; float y; double z; printf(“xに入力してください”); scanf(“%d”,&x); printf(“yに入力してください”); scanf(“%f”,&y); printf(“zに入力してください”); scanf(“%lf”,&z); int型の変数 x に入力 float型の変数 y に入力 doubleの変数 z に入力
scanf関数の警告メッセージ • warning C4996:『warning C4996: 'scanf' が古い形式として宣言されました。 c:\program files\microsoft visual studio 8\vc\include\stdio.h(295) : 'scanf' の宣言を確認してください。 メッセージ: 'This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.‘』 Visual Studio 2005では、セキュリティ上の配慮から、scanf関数の使用に対して警告が出されます(大量のデータ入力がなされた場合に、メモリ破壊を招く危険性があるため)。 • 対策1: この警告については無視する。 • 対策2:ソースファイルの最上部に以下の一文を追加#define _CRT_SECURE_NO_DEPRECATE 1
printf関数 • 変数の中身を表示することが可能 • 書式指定を指定することが可能
printf関数 printf (“表示したい文字列”, 引数1, 引数2, ・・); 文字列 書式指定文字列 エスケープシーケンス 書式指定文字列 “ ・・・・ % ― 0 5 d ・・・ “ 型の指定 表示する最大桁数 数値の場合(0:ゼロサプレス無) ―:左詰め(省略値は右詰め) +:符号を表示
printf関数(テキストp.51) • 浮動小数点型の値を表示する場合 double pi= 3.14159265358979323; //桁数指定なし(小数点以下6桁で表示) printf(“円周率 = %f”, pi); //全部で5桁、小数点以下は2桁で表示 printf(“円周率 = %5.2f”,pi);
演算 • 演算子
式の評価 • 式は評価されて値を持つ (1 + 2) * 4; 3 * 4; 12;
データ型と計算(同じ型同士) #include <stdio.h> int main() { int a = 10, b = 3; double c; c = a / b; printf(“%d ÷ %d = %f\n”, a, b, c); return 0; } 10/3 = 3.33333となるはずなのに… 結果: 10 ÷ 3 = 3 同じ型同士の計算を行うと、結果も同じ型になる
データ型と計算(違う型同士) #include <stdio.h> int main() { int a = 10; double pi = 3.14; printf(“%d × %.2f = %.2f\n”, a, pi, a*pi); return 0; } 結果: 10 × 3.14 = 31.40 違う型同士の計算では、結果は大きい型に合わせられる (格上げ)
今日の課題(締切:5/14) (1)車の速さspeedと、目的地までの距離distanceを入力させて、目的地までの所要時間を求めるプログラムを作成せよ。 (2)2次方程式a x2 + b x + c = 0の解を求める プログラムを作成せよ(a,b,cは入力させよ) xの平方根を求めるプログラムを参考にせよ。
平方根を求めるプログラム #include <stdio.h> #include <math.h> int main() { double x = 2; double y; y = sqrt(x); printf(“ xの平方根は %fです”,y); }
注意事項 • ソースファイルについて • ソースファイルは添付ファイルで送る • ソースファイル以外は送らない • ソースファイルの名前は,半角のみ使用 • メールについて • 件名は,学籍番号+半角スペース+氏名 • (例)S09F2099 松木裕二 • 本文にも短いカバーレター(説明)をつける
その他 • 講義に関する質問・課題提出など: • 2009pe12x@gmail.com • Feed back page: • http://www.fit.ac.jp/~matsuki/cgi-bin/newpage11.html • メールアドレスの入力は不要です • ニックネームを決めてください(Ranking表示に使います)