応用プログラミング 第 2 回
-
Upload
gisela-chapman -
Category
Documents
-
view
29 -
download
3
description
Transcript of 応用プログラミング 第 2 回
応用プログラミング第 2回
今日の内容• 前回の課題の解説• 三値の最大値• 関数の働き• 課題• 連絡事項
前回の課題1• 初期化処理• 加算を繰り返す• for文の使い方• if文の使い方
前回の課題1int k;double s = 0;for (k = 1; k <= 10000; k++){
if (k % 2 == 0)s -= 1.0/(2*k-1);
elses+= 1.0/(2*k-1);
}
10000
1
1
12
)1(
k
k
k
前回の課題2• 配列の使い方• 入力関数 scanfの使い方• 変数の中身の入れ替え
[0] [1] [2] [3] [4]9 4 6 7 1
隣の箱(配列)の大小を比較して,大きな値が右側に来るように入れ替える
前回の課題2
[0] [1] [2] [3] [4]9 4 6 7 1
[0] [1] [2] [3] [4]4 6 7 1 9
・5つの中の最大値が入る・この箱はもう調べなくてよい(確定)
[0] [1] [2] [3]4 6 1 7
4つの中の最大値が入る
前回の課題2for (j = 1; j < 20; j++){
for (i = 0; i < 20 - j; i++){if (data[i] > data[i+1]){tmp = data[i];data[i] = data[i+1];data[i+1] = tmp;}}
}
隣どうしの値を入れ替え
隣どうしの値の大小を比較
data[i] data[i+1]
tmp44 9
三値の最大値( P.14~)• 3つの値の最大値を求めるプログラムを考える.
a b c4 9 6
max9
最大値
三値の最大値( P.14~)• どうやって,最大値を求めればよいか? ⇒どんなルールに従えばうまくいくのか?
①maxに aの値を代入②bの値が maxより大きいならば, maxに bを代入
③cの値が maxより大きいならば, maxに cを代入
a b c4 9 6
max
max
三値の最大値( P.14~)①maxに aの値を代入②bの値が maxより大きいならば, maxに bを代入
③cの値が maxより大きいならば, maxに cを代入
a b c4 9 64 9
フローチャート• ルール(プログラムの流れ=フロー)を視覚的に表したい (p.21)
START
a → max
b > maxb → max
c > maxc → max
END
上から下へ処理が進む
TRUE
FALSE
FALSE
TRUE
関数の働き#include <stdio.h>int main(){
int a,b,c;int max;printf(“a = “); scanf(“%d”,&a);printf(“b = “); scanf(“%d”,&b);printf(“c = “); scanf(“%d”,&c);
max = a;if (b > max) max = b;if (c > max) max = c;printf(“max = %d\n”,max);return 0;
}
max = max3(a,b,c)
int max3(int x, int y, int z){
int max;max = a;if (b > max) max = b;if (c > max) max = c;return max;
}
max3に最大値を計算してほしい!
max3の家
mainの家
材料( int型)が,3つ必要です.持ってきてください.
a b
c
49
6
max3の家
材料は,決められた容器に入れておいてください.
x
y
z
96
最大値計算終了!結果を mainの家まで届けて
max9
max9
関数の働き#include <stdio.h>int main(){
int a,b,c;int max;printf(“a = “); scanf(“%d”,&a);printf(“b = “); scanf(“%d”,&b);printf(“c = “); scanf(“%d”,&c);
max = a;if (b > max) max = b;if (c > max) max = c;printf(“max = %d\n”,max);return 0;
}
max = max3(a,b,c)
int max3(int x, int y, int z){
int max;max = a;if (b > max) max = b;if (c > max) max = c;return max;
}
関数の働き
main(){ max = max3(a,b,c);
}
int max3(int x, int y, int z){
int max;max = x;if (y > max) max = y;if (z > max) max = z;return max;
}
a → xb → yc → zmain関数
max3関数
max(main側 ) ← max(max3側)
関数の働き
main(){ max = max3(a,b,c);
}
int max3(int x, int y, int z){
int max;max = x;if (y > max) max = y;if (z > max) max = z;return max;
}
main関数 max3関数
• 実引数( actual argument):関数呼び出し側がサブルーチンに渡す値
• 仮引数( formal argument):実引数の値をサブルーチン側で受け取るための変数
• 戻り値 (return value):サブルーチンが呼び出し側に返す値
アルゴリズムとは• 問題を解くためのものであって,明確に定義され,順序づけられた有限個の規則からなる集合( JIS X0001)
クイズ( 4月 22日深夜まで)1.三値の最小値を求める以下の関数およびフローチャートを作れint min3(int x, int y, int z)
2.三値の中央値を求める以下の関数およびフローチャートを作れ
int med3(int x, int y, int z)
注意事項• メールでレポートを送信するときは、レポートをメールに添付して送ること
• メールの件名は、「学籍番号 +半角スペース +氏名」にしてください。(例) 08F1099 松木裕二
• メールアドレス変更のお知らせ:[email protected]
• 講義資料www.fit.ac.jp/~matsuki/AP.html