プログラミング演習( 2 組) 第 4 回

26
プププププププププ2ププ4プ http://www.fit.ac.jp/~matsuki/ PEB1.html

Upload: orpah

Post on 09-Jan-2016

61 views

Category:

Documents


0 download

DESCRIPTION

プログラミング演習( 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 ). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: プログラミング演習( 2 組) 第 4 回

プログラミング演習( 2 組)第 4 回

http://www.fit.ac.jp/~matsuki/PEB1.html

Page 2: プログラミング演習( 2 組) 第 4 回

今日の内容• 前回の課題の解説• 演算の優先順位• 整数型 (int) と実数型 (double) による計算• scanf 関数(入力関数)• 今日の課題

Page 3: プログラミング演習( 2 組) 第 4 回

4 月 24 日のタイピング結果( S-Class )

第 1 位 松本 君 第 2 位 シャイニングp・・・何でもない。 第 3 位 無名 第 4 位 真・喰人王 第 5 位  Mat  

Page 4: プログラミング演習( 2 組) 第 4 回

4 月 24 日のタイピング結果( A-Class )

第 1 位  P ストーン 第 2 位 柊百合第 3 位 金子 第 4 位 がっちゃん 第 5 位  kpvy  

Page 5: プログラミング演習( 2 組) 第 4 回

4 月 24 日のタイピング結果( B-Class )

第 1 位 忍者 第 2 位  WALLY第 3 位  toshi  第 4 位 ふでばこ 第 5 位  JUN  

Page 6: プログラミング演習( 2 組) 第 4 回

1 ミュンヒハウゼン症候群 983,808 S

2 シャイニングp・・・何でもない。 977,800 S

3 無名 964,200 S

4 真・喰人王 962,948 S5 Mat 917,150 S6 P ストーン 894,745 A

7 柊百合 892,050 A

8 金子雅一 885,085 A

9 がっちゃん 881,574 A10 kpvy 854,048 A11 ガンデル 849,455 A

12 衝撃の白い稲妻 842,653 A13 picpnoir 790,274 A14 @のいぢ 787,025 A

15 ⊂(+   ^ω^)⊃ 769,063 A

16 刹那・ F ・セイエイ 724,430 B

17 トランプまん 721,671 B18 M.T 703,271 B19 忍者 696,069 B20 WALLY 690,442 B21 toshi 682,924 B22 ふでばこ 670,046 B23 JUN 665,875 B24 松木 _Love 663,742 B

25 ふでばこ 661,922 B26 toshi 639,654 B27 劉薇薇 540,986 B28 MASATO☆ 502,841 B

Rank

ニックネーム

SCOREClas

s

Page 7: プログラミング演習( 2 組) 第 4 回

タイピング• 喰人王を使用して結果を記録する• ステージ:第一の店(中華)• Excel のシートにスコアを毎回記録してい

く– 残り時間⇒  FeedBack ページで報告– 総タイプ数– ミスタイプ数– 正確さ⇒  FeedBack ページで報告– 喰いっぷり ⇒  FeedBack ページで報告

Page 8: プログラミング演習( 2 組) 第 4 回

前回の課題(1)三角形の面積を求めるプログラムを

作れ

(2)円の円周の長さ,円の面積を求めるプログラムを作れ

(3) scanf 関数を使ってキーボードから値を入力できるように,(1)と(2)を改造せよ.

Page 9: プログラミング演習( 2 組) 第 4 回

課題1(解答例 金子君)#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 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);

int 型で宣言

「 %d 」は10進数の整数として表

Page 10: プログラミング演習( 2 組) 第 4 回

課題2(解答例 近藤君)// 変数の宣言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 」は実数として表示

#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;}

Page 11: プログラミング演習( 2 組) 第 4 回

全角を使った変数名について• Visual Studio では、変数名に全角文字を使

用することができます。int 半径 =30;double 面積 ;double ぱい = 3.14;面積 = 半径 * 半径 * ぱい ;

• ただし、これは Visual Studio の環境でしか動作しない、特殊なプログラムになります。

•ビルドも OK•実行も OK

変数名は、半角英数文字のみを使用する

Page 12: プログラミング演習( 2 組) 第 4 回

課題3(解答例 和田見君)/* プログラムの処理内容を画面表示 */printf(" 以下のような円の円周の長さと面積を求めます。 \n");

printf(" 半径 :");scanf("%lf",&radius);

double 型の変数 radiusにキーボードから値を入力させる

Page 13: プログラミング演習( 2 組) 第 4 回

scanf 関数(テキスト p.92 )• 機能:標準入力(キーボード)から値を入力さ

せる• 引数:書式(変換指定子)と,変数• 変換指定子:– %d :  10 進整数– %f :  float 型浮動小数点数– %lf :  double 型浮動小数点数– %c :  文字– %s:   文字列– %x :  16 進数整数

• 使い方:scanf(“ 変換指定子” , & 変数 );

Page 14: プログラミング演習( 2 組) 第 4 回

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 に入力

Page 15: プログラミング演習( 2 組) 第 4 回

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

Page 16: プログラミング演習( 2 組) 第 4 回

printf 関数

型 意味 例 結果d 整数を 10 進数で表示 a = 123; printf(“%d”,a); 123

x 整数を 16 進数で表示 a = 123; printf(“%x”,a); 7b

c 1文字を表示 a = ‘R’; printf(“%c”,a); R

s 文字列を表示 char *a=“ABC”; printf(“%s”,a); ABC

f 実数を 10 進数で表示 a = 123.45; printf(“%f”,a); 123.450000

• 変数の中身を表示することが可能• 書式指定を指定することが可能

Page 17: プログラミング演習( 2 組) 第 4 回

printf 関数printf (“ 表示したい文字列” , 引数1 , 引数

2 , ・・ ); 文字列書式指定文字列エスケープシーケンス

書式指定文字列

“ ・・・・ % ― 0 5 d ・・・ “

型の指定表示する最大桁数

数値の場合( 0 :ゼロサプレス無)―:左詰め(省略値は右詰め)+:符号を表示

Page 18: プログラミング演習( 2 組) 第 4 回

printf 関数(テキスト p.51 )• 浮動小数点型の値を表示する場合

double pi = 3.14159265358979323;//桁数指定なし(小数点以下 6桁で表示)printf(“ 円周率 = %f”, pi);// 全部で 5桁、小数点以下は 2桁で表示printf(“ 円周率 = %5.2f”,pi);

Page 19: プログラミング演習( 2 組) 第 4 回

演算• 演算子

演算子 意味 優先順位

* 掛け算 高い

/ 割り算

% 剰余算

+ 足し算― 引き算

= 代入 低い

Page 20: プログラミング演習( 2 組) 第 4 回

式の評価• 式は評価されて値を持つ

式 評価結果

7 7

3 + 2 5

20 / 10 2

X = 8 8

1 + 2 3

3 * 4 12(1 + 2) * 4;   3    * 4;

        12;

Page 21: プログラミング演習( 2 組) 第 4 回

データ型と計算(同じ型同士)#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

同じ型同士の計算を行うと、結果も同じ型になる

Page 22: プログラミング演習( 2 組) 第 4 回

データ型と計算(違う型同士)#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

違う型同士の計算では、結果は大きい型に合わせられる(格上げ)

Page 23: プログラミング演習( 2 組) 第 4 回

今日の課題(締切: 5/14 )(1)車の速さ speed と、目的地までの距離

distance を入力させて、目的地までの所要時間を求めるプログラムを作成せよ。

(2) 2次方程式 a x2 + b x + c = 0 の解を求める

プログラムを作成せよ( a,b,c は入力させよ)x の平方根を求めるプログラムを参考にせよ。

Page 24: プログラミング演習( 2 組) 第 4 回

平方根を求めるプログラム#include <stdio.h>#include <math.h>

int main(){

double x = 2;double y;y = sqrt(x);printf(“ x の平方根は %f です” ,y);

}

Page 25: プログラミング演習( 2 組) 第 4 回

注意事項• ソースファイルについて

ソースファイルは添付ファイルで送るソースファイル以外は送らないソースファイルの名前は,半角のみ使用

• メールについて件名は,学籍番号+半角スペース+氏名

(例) S09F2099  松木裕二

本文にも短いカバーレター(説明)をつける

Page 26: プログラミング演習( 2 組) 第 4 回

その他• 講義に関する質問・課題提出など:

[email protected]

• Feed back page :http://www.fit.ac.jp/~matsuki/cgi-bin/newpage11.htmlメールアドレスの入力は不要ですニックネームを決めてください( Ranking表示に使います)