高度プログラミング演習 (05) 演習問題 • 2×3 の行列と3×1の行列をそれぞれ入力で き、それらの行列の掛け算をするプログラム を作成せよ。 for(j=0;i<1;j++) a00 a01 a02 a10 a11 a12 for(i=0;i<2;i++) b00 b10 b20 a00*b00+a01*b10+a02*b20 a10*b00+a11*b10+a12*b20 for(k=0;k<3;k++) for(i=0;i<2;i++) for(j=0;j<1;j++){ c[i][j]=0; for(k=0;k<3;k++) c[i][j] += a[i][k]*b[k][j]; } 演習問題 1. 入力した2×2の行列の行列式の値を求め るプログラムを作成せよ。 2. 2つの3×3 の行列の各要素を入力でき、そ れらの行列の足し算および引き算をするプ ログラムを作成せよ。 行列式の値を求める include<stdio.h> void main() { int a[2][2]; int i,j,k; printf(" 2 x 2 行列の入力をします。\n"); for(i=0;i<2;i++) for(j=0;j<2;j++){ printf("(%d %d) 成分を入力してください。: ",i+1,j+1); scanf("%d",&a[i][j]); } for(i=0;i<2;i++){ for(j=0;j<2;j++) printf("%3d ",a[i][j]); printf("\n"); } printf("行列式の値は %d です。\n",a[0][0]*a[1][1]-a[0][1]*a[1][0]); } 条件分岐と場合分け • if 条件 – 処理 • 他の条件 – 処理 • 場合わけ – ある場合の処理 – 別の場合の処理 条件分岐 if (条件){ .....; } else if (条件){ .....; } else { .....; } 等しい == 等しくない != かつ && または || #include <stdio.h> void main() { int num=0; scanf(“%d”,&num); if(num>0){ printf(“%d > 0\n”,num); }else if(num<0){ printf(“%d < 0\n”,num); }else{ printf(“%d == 0\n”,num); } } 練習問題 • 数当てゲームのプログラムを作成せよ。 – プログラムの実行時に乱数で1から1000まで範 囲で数字(答え)を決める。 – 入力した数字に対して答えのある範囲を狭めて ゆく • 0 < X < 1001 • 100 < X < 1001 • 100 < X < 500 – 何回目で正解が出るか表示する 場合わけ switch (変数){ case 場合 : .....; break; case 場合: .....; break; default: } #include <stdio.h> void main(){ int num=0; scanf(“%d”,&num); if(num<16){ switch (num){ case 15: printf(“F\n”); break; case 14: printf(“E\n”); break; case 13: printf(“D\n”); break; case 12: printf(“C\n”); break; case 11: printf(“B\n”); break; case 10: printf(“A\n”); break; default: printf(“%d\n”,num); } } } 文字型の変数 • char a; #include <stdio.h> void main() { char data[128]; int n=0,j=0; #include <stdio.h> void main() { char a; a=getchar(); printf(“%c\n”,a); } while(n<128){ data[n]=getchar(); if(data[n]=='.'){ if(n<127) n++; break; } n++; } for(j=0;j<n;j++){ if (data[j]>='a'&&data[j]<='z') data[j] =data[j]+('A'-'a'); printf("%c",data[j]); } printf("\n"); } 練習問題 1. 16進数を10進数に変換するプログラムを 作成せよ。 2. 入力した文字列に a,b,c という文字がそれ ぞれいくつあるか表示するプログラムを作 成せよ。 if 文、case 文を用いてそれぞれ作成すること。 演習問題 1. 2次方程式 a*x*x + b*x + c =0 を解くプロ グラムを作成せよ。ただし、x が虚数となる 場合は、解がない旨表示するようにせよ。 2. 入力した文字列に アルファベットの各文字 がそれぞれいくつあるか表示するプログラ ムを作成せよ。(if文、case文両方使ったも のをそれぞれ作成すること。) This is a pen. a:1,e:1,h:1,i:2,n:1,p:1,s:2,T:1
© Copyright 2025 ExpyDoc