スライド 1 - Home Page of Koji OKAMURA

高度プログラミング演習
(03)
練習問題
1. 台形の上底、下底、高さを入力してその面
積を出力するプログラムを作成せよ。
2. 5つの整数を入力して、その総和と平均値
を出力するプログラムを作成せよ。
3. 3けたの2進数を入力してそれを10進数で
出力するプログラムを作成せよ。
台形の面積
#include <stdio.h>
void main()
{
int jotei,katei,takasa,menseki;
printf("台形の面積を求めます。\n");
printf("上底、下底、高さ の値を入力してください。\n");
scanf("%d %d %d",&jotei,&katei,&takasa);
menseki =(jotei+katei) * takasa / 2;
printf("台形の面積は %d です。",menseki);
}
総和と平均
#include <stdio.h>
void main()
{
int a0,a1,a2,a3,a4;
int wa,heikin;
printf("数字を5つ入力してください: ");
scanf("%d %d %d %d %d",&a0,&a1,&a2,&a3,&a4);
wa = a0 + a1 + a2 + a3 +a4;
heikin = wa/5;
printf("和は %d です。平均は %d です。\n",wa,heikin);
}
2進法
#include <stdio.h>
void main()
{
int num=0,k4=0,k2=0,k1=0;
printf(“ Input num by binary ?“);
scanf(“%d ”,&num);
k4 = num/100;
k2 = (num-k4*100)/10;
k1 = (num-k4*100-k2*10);
printf(“ Decimal = %d \n”,k4*4+k2*2+k1);
}
演習問題
1. 円の半径を入力してその円周、面積を出
力するプログラムを作成せよ。円周率は 3
としてよい。
2. 3けたの2進数を二つ入力してその和を
10進数で出力するプログラムを作成せよ。
円周
#include <stdio.h>
void main()
{
int hanke,enshu,menseki;
printf(“円の円周と面積を求めます。\n");
printf(“半径の値を入力してください。\n");
scanf("%d",&hanke);
enshu= 2 * 3 * hanke;
menseki = 3 * r * r ;
printf(“円周は %d です。面積は %d です。,enshu,menseki);
}
2進法足し算
#include <stdio.h>
void main()
{
int num=0,k4=0,k2=0,k1=0;
int num2=0,k24=0,k22=0,k21=0;
printf(“ Input num by binary ?“);
scanf(“%d %d”,&num,&num2);
k4 = num/100;
k2 = (num-k4*100)/10;
k1 = (num-k4*100-k2*10);
k24 = num2/100;
k22 = (num2-k24*100)/10;
k21 = (num2-k24*100-k2*10);
printf(“ Decimal = %d \n”,(k4*4+k2*2+k1)+(k24*4+k22*2+k21));
}
小数点を扱う変数
#include <stdio.h>
void main()
{
double num1=10;
int num2=10;
printf(“%f \n”,num1/3);
printf(“%d \n”,num2/3);
}
台形の面積
#include <stdio.h>
void main()
{
double jotei,katei,takasa,menseki;
printf("台形の面積を求めます。\n");
printf("上底、下底、高さ の値を入力してください。\n");
scanf("%f %f %f",&jotei,&katei,&takasa);
menseki =(jotei+katei) * takasa / 2;
printf("台形の面積は %f です。",menseki);
}
繰り返し計算
• 1から10までの累積和を求めるプログラム。
#include <stdio.h>
void main()
{
int sum=0;
sum = 1+2+3+4+5+6+7+8+9+10;
printf(“%d\n”,sum);
}
• 指定された数字から指定された数字までの
総和を求めるプログラム???
繰り返し計算
• for 文
for (初期条件; 繰り返し計算が続く条件; 変化)
{
}
#include <stdio.h>
void main()
{
int sum=0,i=0;
for(i=1; i<11; i++)
{
sum = sum + i;
}
printf(“%d\n”,sum);
}
繰り返し計算
• 1から指定された数字までの総和を求めるプ
ログラム
#include <stdio.h>
void main()
{
int sum=0,i=0,n=0;
printf(“ N= “);
scanf(“%d”,&n);
for(i=1; i<n+1; i++)
{
sum = sum + i;
}
printf(“%d\n”,sum);
}
練習問題
1. 指定された数字から指定された数字までの
累積和を求めるプログラムを作成せよ。
– 4から38までの累積和
– Σ (4+5+6+…. 37+38)
2. 入力した数字の階乗を求めるプログラムを
作成せよ。
繰り返し計算 その2
• while 文
while (計算が続く条件)
{
}
#include <stdio.h>
void main()
{
int sum=0,i=0,n=0;
printf(“ N= “);
scanf(“%d”,&n);
while(i<n+1)
{
sum = sum + i;
i = i + 1;
}
printf(“%d\n”,sum);
}
練習問題
1. 入力した数字の階乗を求めるプログラムを
作成せよ。
2. 1年 0.01% の利子がつく複利預金で、入金
したお金が目標金額に達する年を求めるプ
ログラムを作成せよ。
3. 入力した10進数を2進数で表示するプログ
ラムを作成せよ。
演習問題
1. ある数字は1日ごとに3倍になるとする。入力した
数字が、入力した日数後にいくらになっているかを
表示するプログラムを作成せよ。
2. N+1 が N*N である数列で、ある初期値に対して
ΣNが目標値に達するまで何回足し算が行われる
か求めるプログラム。
•
N=2,LAST=10
•
•
•
2*2 =4
2*2+3*3=13
足し算は1回