いや、でもしっかり休むけどね。最近気温のアップダウンがえげつなかったし・・・
あ、あと今気づいたんだけど、ブログの仕様なのか、コード冒頭(include文)に必ず書かなければならない<stdio.h>が記事には表示されないので、本ブログのコードはその部分を書き足さないと機能しません!(´;ω;`)
参考文献:高橋麻奈著『やさしいC第5版』
式と演算
コンピュータは0で数字を割ると実行時にエラーとなりプログラムが停止するという最悪の事態になる。
四則演算の演算子は以下のとおり。
足し算:2+3 こたえ5
引き算:3-2 こたえ1
掛け算:2*2 こたえ4
割り算:6/3 こたえ2
割り算の余り:11%2 こたえ1
入力された二つの小数を使って四則演算するコード
小数なのでdouble型で宣言する。
入力時は%lfだが、出力時は小数点以下何桁まで出すか指定するのに注意(小数点以下3桁は%.3f)。
#include
int main(void)
{
double num1,num2,sum,hiku,kake,wari;
printf("実数1を入力\n");
scanf("%lf",&num1);
printf("実数2を入力\n");
scanf("%lf",&num2);
printf("%.3f+%.3f=%.3f\n",num1,num2,num1+num2);
printf("%.3f-%.3f=%.3f\n",num1,num2,num1-num2);
printf("%.3f*%.3f=%.3f\n",num1,num2,num1*num2);
printf("%.3f/%.3f=%.3f\n",num1,num2,num1/num2);
return 0;
}
三角形の面積を求めるコード
小数(厳密には浮動小数点数)の値で求めているので、変数はdoubleを用いる。
また小数を出力する場合は%dではなく、%fを用いる。
また%とfのあいだに.3などと数字を入れると、小数点以下3桁までで表示を打ち切ることができる。
#include
int main(void)
{
double teihen,takasa,menseki; //底辺、高さ、面積という3つの変数を宣言。
teihen=6.0;
takasa=3.0;
menseki=teihen*takasa/2; //数値、もしくは数式を代入。
printf("%f\n",menseki); // 出力。
return 0;
}
入力された半径から円の円周や面積を求めるコード
#include
int main(void) {
double r,c,s;
printf("円の半径を入力\n");
scanf("%lf",&r);
c=r*2*3.142;
printf("円 周=%.3f\n",c);
s=r*r*3.142;
printf("円の面積=%.3f\n",s);
return 0;
}
セルシウス温度をファーレンハイト温度に変換するコード
物理学概論が懐かしい・・・華氏(F)=(9÷5)×摂氏(C)+32なので・・・
#include
int main(void)
{
double C,F;
printf("摂氏を入力");
scanf("%lf",&C);
F=(9.0/5.0)*C+32.0;
printf("華氏になおすと%.2f",F);
return 0;
}
BMI指数を計算するコード
BMI=体重÷(身長×身長)であり、さらに身長はセンチではなくメートルに換算しないといけないため、単位を合わせるために分子を100×100倍する。
#include
int main(void)
{
double h,w,BMI;
printf("身長を入力\n");
scanf("%lf", &h);
printf("体重を入力\n");
scanf("%lf", &w);
BMI=w*10000/(h*h);
printf("%f\n",BMI);
return 0;
}
定期テストの平均点を求めるコード
テストの点数は整数(int型で宣言する)だが、平均点は小数(double型で宣言する)になるのでそこに注意する。
#include
int main(void)
{
int J,M,E,All;
double Av;
printf("国語の点数を入力\n");
scanf("%d", &J);
printf("数学の点数を入力\n");
scanf("%d", &M);
printf("英語の点数を入力\n");
scanf("%d", &E);
All=J+M+E;
printf("三科目合計=%d\n", All);
Av=All/3.0;
printf("三科目平均=%.2f\n",Av);
return 0;
}
2の平方根を計算する漸化式のコード
同じ計算を何度も繰り返すと、ちょっとずつ正確な値に収束していくタイプの計算。
Xに2を加えた数をXで割り、その数を更に2で割ることを繰り返すと、ヒトヨヒトヨニヒトミゴロに接近する。
#include
int main(void)
{
double x = 1.0;
x = (x + 2.0 / x) / 2.0;
printf("x=%.18f\n",x);
x = (x + 2.0 / x) / 2.0;
printf("x=%.18f\n",x);
x = (x + 2.0 / x) / 2.0;
printf("x=%.18f\n",x);
x = (x + 2.0 / x) / 2.0;
printf("x=%.18f\n",x);
x = (x + 2.0 / x) / 2.0;
printf("x=%.18f\n",x);
x = (x + 2.0 / x) / 2.0;
printf("x=%.18f\n",x);
return 0;
}
シフト演算子
ビットの桁の位置位置を左右にずらす(シフトする)ことができる演算子。
変数<<1 は変数を2倍(2の1乗)
変数<<3 は変数を8倍 (2の3乗)することができる。
#include
int main(void)
{
int num;
printf("整数を入力:");
scanf("%d", &num);
printf("入力値の10倍は:%d\n", (num<<1) + (num<<3));
// ※(num<<1)=2倍と(num<<3)=8倍を足して10倍にしている。
return 0;
}
ライフゲーム
イギリスの数学者コンウェイが1970年代に考案し、一時期流行ったシミュレーションプログラム。
オセロ盤のひとつのマスをセル(細胞)として、周囲のセルの状況によってそのセルの生死が決定するというルール。50行ほどの単純なコードだが、各セルは時間経過によってまるで生き物のようなアクティブな振る舞いをする。
命題
正しい(トゥルー)か誤り(フォールス)かが明確な文(平叙文)や式のこと。
日本の首都は東京である、みたいな○×クイズ的な文が命題と考えて良い。
疑問文や感嘆文、命令文といった曖昧な奴はダメ。
関係演算子
左辺と右辺の関係を表す演算子。
①== 左辺と右辺は等しい。
②!= 左辺と右辺は等しくない。
③> 左辺は右辺よりも大きい。
④>= 左辺は右辺よりも大きいか等しい。
⑤< 左辺は右辺よりも小さい。
⑥<= 左辺は右辺よりも小さいか等しい。
10+20は30かどうかを判定するコード
正しかったら1、誤りだったら0として表示される。
#include
int main(void) {
int i,j,k,l,m;
printf("整数iを入力\n");
scanf("%d" ,&i);
printf("整数iを入力\n");
scanf("%d" ,&j);
printf("整数iを入力\n");
scanf("%d" ,&k);
l=(i+j == k);
printf("条件式: 10+20 == 30 の値は%dです\n",l);
m=(i+j != k);
printf("条件式: 10+20 != 30 の値は%dです\n",m);
return 0;
}