前回の講義の
練習問題のプログ
ラム例を示す.ただし,練習1は3つのプログラムを書くことになっていたが,ここでは
while文を使った例のみを載せる.他のプログラム例は,
私のweb
ページを見よ.
1 #include <stdio.h>
2
3 int main(void){
4 int i, imax;
5 int sum;
6
7 printf("1からいくつまで加算しますか?\t");
8 scanf("%d", &imax);
9
10 sum = 0;
11 i = 1;
12
13 while(i<=imax){
14 sum += i;
15 i+=2;
16 }
17
18
19 printf("sum = %d\n", sum);
20
21 return 0;
22 }
1 #include <stdio.h>
2 #include <math.h>
3
4 int main(void){
5 int deg;
6 double rad;
7
8 printf("---------------------------------------------------------\n");
9 printf("deg\tsin\t\tcos\t\ttan\n");
10 printf("=========================================================\n");
11
12 for(deg=0; deg<=360; deg++){
13 rad = (double)deg/180*M_PI;
14 printf("%d\t%f\t%f\t%f\n", deg, sin(rad), cos(rad), tan(rad));
15 }
16
17 printf("---------------------------------------------------------\n");
18
19 return 0;
20 }
1 #include <stdio.h>
2
3 int main(void){
4 double x, dx, max_fx, max_x, new_fx;
5 int change_max; //0:最大値を更新 1:更新しない
6
7 x = -100.0; // xの初期値
8 dx = 0.001; // xの計算のきざみ幅
9
10 max_fx = -3.0*x*x + 9.0*x - 6.0; // とりあえずの最大値
11
12
13 do{
14 x+=dx; // 次の x
15 new_fx = -3.0*x*x + 9.0*x - 6.0; // f(x)の計算
16
17 //---- 最大値か否かの検査 --------------
18 if(max_fx < new_fx){ // 新たに最大値発見
19 max_fx = new_fx;
20 max_x = x;
21 change_max = 0;
22 }else{ // 最大値でない場合
23 change_max = 1;
24 }
25
26 }while(change_max==0);
27
28
29 printf("x = %fのときf(x)=%fで最大です\n", max_x, max_fx);
30
31 return 0;
32 }
本日提出締切の
課題のプログ
ラム例を示す.ただし,問2は練習1と似ているので省く.問2のプログラム例は,
私のwebページに載せている.
抵抗の発熱量は,次のようにして求める.回路に流れる電流
はオームの法則より
|
(1) |
となる.これを,リスト
4の16行目で計算している.
電流と電圧の積が発熱
になる.抵抗の電圧はオームの法則より電流から求められるの
で,抵抗での発熱は.
となる.これをプログラムの17行目で計算している.
1 #include <stdio.h>
2
3 int main(void){
4 double V, R1, max_W, max_R, I, R, dR, W;
5
6 V = 10.0;
7 R1 = 50.0;
8 dR = 0.1;
9
10 R = 0;
11 max_W = 0; // R=0の時の発熱.暫定最大値
12
13 do{
14 R+=dR;
15
16 I=V/(R1+R);
17 W = I*I*R;
18
19 if(max_W < W){ // 最大発熱のときの処理
20 max_W = W;
21 max_R = R;
22 }
23
24 }while(R<=10000.0);
25
26 printf("発熱が最大の時は,以下の通り\n");
27 printf("\t抵抗\t%f\t[オーム]\n", max_R);
28 printf("\t発熱\t%f\t[ワット]\n", max_W);
29
30 return 0;
31 }
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成18年9月7日