教科書の書き方を一部訂正します。この講義では、...
TRANSCRIPT
プログラミング基礎 2020.6.23
– 9 –
2.4 変数と演算
教科書の書き方を一部訂正します。この講義では、「return(0);」に統一しますので、下
のように直してください。
プログラミング基礎 2020.6.23
– 10 –
では、変数と演算についてまとめてみます。2つの項の間に入ることから、二項演算子といわれるものです。
+ - * / %
二項 + 演算子(和) 二項 - 演算子(差) 二項 * 演算子(積) 二項 / 演算子(商) 二項 % 演算子(剰余)
この他、+と-には、項の前につけて符号を設定する単項演算子
+ -
単項 + 演算子(符号設定) 単項 - 演算子(符号設定)
があります。実際に実行して、確認しておきましょう。
ex06.c
/* 加減乗除・剰余 */ #include <stdio.h> int main(void) { int vx, vy; printf("2つの整数を入力してください¥n"); printf("vx: "); scanf("%d", &vx); printf("vy: "); scanf("%d", &vy); printf("+vx = %d¥n", +vx); printf("-vx = %d¥n", -vx); printf("vx + vy = %d¥n", vx + vy); printf("vx - vy = %d¥n", vx - vy); printf("vx * vy = %d¥n", vx * vy); printf("vx / vy = %d¥n", vx / vy); printf("vx %% vy = %d¥n", vx % vy); return (0); }
プログラミング基礎 2020.6.23
– 11 –
2.5 変数と型
教科書は puts 関数を使っていますが、今回の講義では printf 関数に統一します。次のように変更しておいてください。また、return(0);にも変更しておいてください。
整数に対し、実数の値を扱う時には、浮動小数点数というものを使います。このときには、int ではなく、double を使います。また、scanf では%lf を、printf では%f(もしくは%lf)を使います(l は小文字のエル)。
プログラミング基礎 2020.6.23
– 12 –
プログラミング基礎 2020.6.23
– 13 –
整数型(int)と実数型(倍精度浮動小数型・double)の変換についてまとめます。
ex07.c
/* int と double の変換 */ #include <stdio.h> int main(void) { int na, nb; double vx, vy; printf("na :"); scanf("%d", &na); printf("vx :"); scanf("%lf", &vx); nb = na / vx; printf("na = %d, nb = %d¥n", na, nb); vy = na / vx; printf("vx = %f, vy = %f¥n¥n", vx, vy); nb = na / 3 + 1; printf("na = %d, nb = %d¥n", na, nb); vy = vx / 3 + 1; printf("vx = %f, vy = %f¥n¥n", vx, vy); vx = na / nb; vy = (double)na / nb; printf("vx = %f, vy = %f¥n¥n", vx, vy); na = (int)vy / vx; nb = (int)vy / (int)vx; printf("na = %d, nb = %d¥n¥n", na, nb); na = vx; nb = na / 3; printf("na = %d, nb = %d¥n", na, nb); vx = na; vy = vx / 3; printf("vx = %f, vy = %f¥n", vx, vy); return (0); }
プログラミング基礎 2020.6.23
– 14 –
では、この ex07.c で、na に 5 を vx に 2 を入力すると、どんな値が表示されるか考えてみよう。
na = 5, nb = ____ ← nb = na / vx の結果 vx = 2.000000, vy = ____________ ← vy = na / vx の結果 na = 5, nb = ____ ← nb = na / 3 + 1 の結果 vx = 2.000000, vy = ____________ ← vy = vx / 3 + 1 の結果 vx = ___________, vy = __________ ← vx = (double)na / nb vy = na / nb の結果 na = __, nb = __ ← na = (int)vy / vx na = (int)vy / (int)vx の結果 na = __, nb = __ ← na = vx; nb = na / 3 の結果 vx = ___________, vy = __________ ← vx = na vy = vx / 3 の結果
プログラミング基礎 2020.6.23
– 15 –
練習問題 2.3
平成の年を入力されたとき、それを西暦に直すプログラムを完成させよ。
ex08.c
/* 平成の年を西暦に直すプログラム */ #________ ______ int main(void) { int ____; printf("平成の年を入れてください: "); _____(____, ____); ______("西暦 __年¥n", ______); return (0); }
練習問題 2.4
為替レートによって各国の通貨を変換することができます。円の値を入力して、それを米ドル・ユーロに直して表示するプログラムを作成しなさい。その時、それぞれの通貨は下2桁まで表示するようにしなさい。なお、為替レートは、1 ドル(Dollar)=106.8 円、1 ユーロ(Euro)=119.9 円を使うこと。ただし、円を入力してもらう変数は int 型とすること。
ex09.c
/* 円をドルとユーロに変換するプログラム */ #________ ______ int main(void) {
printf("%d 円=%.2f ドル=%.2f ユーロ¥n", ______, ______, ______); return(0); }