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

29
プププププププププ2ププ5プ http://www.fit.ac.jp/~matsuki/ PEB1.html

Upload: monty

Post on 10-Jan-2016

33 views

Category:

Documents


2 download

DESCRIPTION

プログラミング演習( 2 組) 第 5 回. http://www.fit.ac.jp/~matsuki/PEB1.html. 今日の内容. 前回の課題の解説 今日の課題. S-Class. A-Class. B-Class. がんばった で 賞:  向日葵. タイピング. 喰人王を使用して結果を記録する ステージ:第一の店(中華) Excel のシートにスコアを毎回記録していく 残り時間⇒  FeedBack ページで報告 総タイプ数 ミスタイプ数 正確さ ⇒  FeedBack ページで報告 喰いっぷり  ⇒  FeedBack ページで報告. - PowerPoint PPT Presentation

TRANSCRIPT

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

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

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

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

今日の内容• 前回の課題の解説• 今日の課題

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

S-Class

順位 4/24 5/11 位 松本 君 Hello World

2 位 シャイニングp ・・・何でもない

真・喰人王

3 位 無名 松川 君4 位 真・喰人王 ↑ 一体何者

だ!5 位 Mat 下田 君

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

A-Class

順位 4/24 5/11 位 P ストーン アージェン2 位 柊百合 衝撃の白い稲妻3 位 金子 柊百合4 位 がっちゃん 安武 君5 位 kpvy 中村 君

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

B-Class

順位 4/24 5/11 位 忍者 清水 君2 位 WALLY ガンデル3 位 toshi 竹中 君4 位 ふでばこ 園田 君5 位 JUN 江口 君がんばったで賞: 向日葵

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

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

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

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

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

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

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

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

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

課題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 speed;int distance;int time;

printf(" 車の速さ ");scanf("%d",&speed);printf(" 目的地までの距離 ");scanf("%d",&distance);

time = distance / speed;

printf(" 目的地までの所要時間 ");printf("%d 分 \n", time);

int 型で宣言

時間の単位に注意

入力処理

計算処理

出力処理

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

課題1(計算処理)

time= distance / speed;計算処理

整数型と整数型の計算 ⇒ 整数型

問題:distance 、 speed が int 型のとき,distance = 18 、 speed = 10 ならば,distance / speed は,いくらになるか?

答え:1

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

課題1(計算処理)所要時間を実数で求めるためには…?(1)「 distance / speed 」を実数型として計算 実数型と整数型の計算 ⇒ 実数型

(格上げという)実数型と実数型の計算 ⇒ 実数型

(double)distance / speed; →   distance をdouble 型として計算する。

int  distance;

int speed;

double  distance;

double speed;

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

課題1(計算処理)所要時間を実数で求めるためには…?(2)所要時間を格納する変数 time を実数型として宣言

int time; double time;

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

課題1(解答例:下田君)double speed; // 車の速さ [km/h]double distance; // 目的地までの距離 [km]double time; // 所要時間 [h]

// プログラムの処理内容を画面表示// 車の速さ設定printf(" 以下の計算で車での目的地までの所要時間を求めます \

n");

printf(" 車の速さを入力してください -----");scanf("%lf",&speed);printf(" 車の速さ :%lf[km/h]\n",speed);

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

課題1(解答例:下田君)// 目的地までの距離を設定

printf(" 目的地までの距離を入力してください -----");scanf("%lf",&distance);printf(" 目的地までの距離 :%lf[km]\n",distance);

// 所要時間を計算time = distance/speed;

// 結果の表示printf("\n 到着までの所要時間は %3.2lf[h] です \n\

n",time);

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

課題22 次方程式 a x2 + b x + c = 0 の解を求めるプログラムを作成せよ( a,b,c は入力させ

よ)x の平方根を求めるプログラムを参考にせよ。

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

課題2の解く手順(1) 2 次方程式の係数 a, b, c を入力させる(入力処理)

(2) 2 次方程式の解の公式を利用して,2つの解を計算する(計算処理)

(3)2つの解を表示する(出力処理)

a

acbbx

a

acbbx

2

4

2

4

2

2

2

1

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

課題2(解答例 黒武者さん)int a, b, c; // 入力用double kai1, kai2, y, root; // 「 kai1 」「 kai2 」は解  y はルートの中身  root は yをルートに変換

// 画面表示printf("2 次方程式  ax^2 + bx + c = 0 の解を求める計算をします \n");

//a の値入力printf("a の値を入力してください \n"); scanf("%d", &a);//b の値入力printf("b の値を入力してください \n"); scanf("%d", &b);//c の値入力printf("c の値を入力してください \n"); scanf("%d", &c);

使用する変数を宣言

プログラムの目的を表示

入力処理

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

課題2(解答例 黒武者さん)// ルートの中身y = b*b - 4*a*c;

// ルート変換root = sqrt(y);

// 解の計算kai1 = (-b + root)/(2 * a);kai2 = (-b - root)/(2 * a);

// 結果表示printf(" 求める解は  %.2lf %.2lf\n", kai1, kai2);

計算処理

y (判別式)の計算

sqrt(y) の計算

解1,2を計算

出力処理

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

解答例(惜しい!)解の計算部分において、

x1=(-b+sqrt(b*b-4*a*c))/2*a; x2=(-b-sqrt(b*b-4*a*c))/2*a;

問題:どこが、まずいのか?

( 分子 ) / 2 * a1. 分子を計算2. 上記結果 / 23. 上記結果 * a

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

解答例(惜しい!)解の計算部分において、

x1=(-b+sqrt(b*b-4*a*c))/2*a; x2=(-b-sqrt(b*b-4*a*c))/2*a;

( 分子 ) / 2 * a; ( 分子 ) / (2 * a);

x1=(-b+sqrt(b*b-4*a*c))/( 2*a ); x2=(-b-sqrt(b*b-4*a*c))/( 2*a );

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

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

distance を入力させて、目的地までの所要時間を以下のような表示形式で求めるプログラムを作成せよ。

車の速さ (km/h) : 100距離 (km) : 250所要時間は、 2 時間 30 分 00 秒です

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

今回の課題【課題2】

今までの知識を使って、自分で問題を設定し、その問題を解決するプログラムを作成せよ。ただし、以下の機能を盛り込むこと。メール本文に問題についての説明を書くこと。

1. int 型変数の使用2. double 型変数の使用3. +、ー、*、/を用いた演算(すべて使うこと)4. sqrt, sin, cos, tan のいずれかを用いた計算5. printf を用いた整数の表示6. printf を用いた実数の表示7. scanf を用いた整数の入力8. scanf を用いた実数の入力

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

課題のヒント1double Speed_kmph = 50; // 時速 [km/h]doulbe Speed_mps; // 秒速 [m/s]

// 時速 [km/h] を秒速 [m/s] に変換Speed_mps = Speed_kmph / 3.6;LEVEL 1

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

課題のヒント2int Hour = 2; // 時int Minute = 45; // 分int Second = 10; // 秒int AllSecond; // 秒単位に換算

// 時・分・秒の値から,秒単位の経過時間に変換

AllSecond = Hour * 3600 + Minute * 60 + Second;LEVEL 2

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

課題のヒント3int AllSecond = 7680; // 秒単位の時間int Hour;// 時int Minute; // 分int Second; // 秒

// 秒単位の経過時間を,時・分・秒に分割Hour = AllSecond / 3600; //1 時間は 3600 秒

Minute = ( AllSecond % 3600 ) / 60; //1 分は 60 秒

Second = AllSecond - Hour*3600 – Minute*60; LEVEL 4

LEVEL 5

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

平方根を求めるプログラム#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));}

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

三角関数三角関数 sin(x) , cos(x) , tan(x) について• x は double 型でなければならない.• x は rad 単位( 180°= 2π [rad] )• 計算結果は, double 型になる

tan(π/4) を計算するとき,

double pi = 3.141592;double result;result = tan(pi / 4);

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

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

ソースファイルの名前は,半角のみ使用

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

(例) S09F2099  松木裕二

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

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

オフィス・アワーのお知らせ• オフィス・アワーを以下の要領で開講–日時:毎週月曜日、 5 時限目(16:20~)–場所: A棟7階 研究実験室11(松木研究室)–内容:プログラミング関連科目

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

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

[email protected]

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