スライド 1

高度プログラミング演習
(04)
演習送付先
• 3時間目 [email protected]
• 4時間目 [email protected]
• 次の講義までに送ること。
– 日付、時間の別(3時間目か4時間目か)を必ず
明記すること。
演習問題(繰り返し計算)
•
入力した数字の階乗を求めるプログラムを
作成せよ。
#include <stdio.h>
void main()
{
int ans=1,num=0,i=0;
scanf(“%d”,&num);
for(i=0;i<num;i++)
ans = ans * (i+1);
printf(“%d ! = %d\n”,num,ans);
}
演習(繰り返し計算)
•
ある数字は1日ごとに倍になるとする。入力した数字が、
入力した日数後にいくらになっているかを表示するプログ
ラムを作成せよ。
#include <stdio.h>
void main()
{
int num=0,day=0,i=0;
scanf(“%d %d”,&num,&day);
for(i=0;i<day;i++)
num = num *2;
printf(“%d\n”,num);
}
演習問題(繰り返し計算)
•
1年 0.2% の利子がつく複利預金で、入力したお金が入力
した年数後いくらになっているか表示するプログラムを作
成せよ。
#include <stdio.h>
void main()
{
double money=0;
int year=0,i=0;
scanf(“%lf %d”,&money,&year);
for(i=0;i<year;i++)
money = money * 1.002;
printf(“%f\n”,money);
}
演習(繰り返し計算)
•
•
1年 0.2% の利子がつく複利預金で、入力したお金が入力
した年数後いくらになっているか表示するプログラムを作
成せよ。
上記の複利計算で入力した金額に達する年を求めるプロ
グラムを作成せよ。
#include <stdio.h>
void main()
{
double money=0,mokuhyo=0;
int year=0;
scanf(“%lf %lf”,&money,&mokuhyo);
while(money<mokuhyo){
money = money * 1.002;
year = year +1;
}
printf(“%d\n”,year);
}
演習(繰り返し計算)
•
入力した10進数を2進数で表示するプログラムを作成せ
よ。
#include <stdio.h>
void main()
{
int shin=0,num=0;
scanf(“%d %d”,&shin,&num);
while(num>shin-1){
printf(“%d “,num%shin);// num –(num/shin)*shin
num = num/shin;
}
printf(“%d \n”,num);
}
配列
• 100個の数字を扱いたい
– int a[100];
• a[0] から a[99] までが有効。
• 2×2 の行列
– int a[2][2];
乱数
• rand()
• 100未満の数の乱数
– rand() % 100
• 100個の100未満の数の乱数を作る。
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i=0;
int data[100];
for(i=0;i<100;i++)
data[i]=rand()%100;
}
練習問題
1. 100未満の100個の乱数を作りその平均値
を求めるプログラムを作成せよ。
2. 10つの数字を入力してその平均値を求める
プログラムを作成せよ。
3. 100個以下の任意の個数の正の整数を入
力してその平均値を求めるプログラムを作
成せよ。
printf() のけたそろえ
• printf(“%5d %5d”,a,b);
#include<stdio.h>
void main()
{
int a=0,b=0;
scanf(“%d %d”,&a,&b);
printf(“%d %d\n”,a,b);
printf(“%5d %5d\n”,a,b);
}
練習問題
• 3×3 の行列の要素を100未満の乱数で作成
し、それをフォーマットをそろえて表示するプ
ロラムを作成せよ。
78 98 9
4 12 11
23 1 1
78 98 9
4 12 11
23 1 1
練習問題
• 3×3 の行列と3×1の行列をそれぞれ入力で
き、それらの行列の掛け算をするプログラム
を作成せよ。
演習問題
1. 入力した2×2の行列の行列式の値を求め
るプログラムを作成せよ。
2. 2つの3×3 の行列の各要素を入力でき、そ
れらの行列の足し算および引き算をするプ
ログラムを作成せよ。
3. 3×3 の行列と3×2の行列をそれぞれ入力
でき、それらの行列の掛け算をするプログラ
ムを作成せよ。