教科書の書き方を一部訂正します。この講義では、...

7
プログラミング基礎 2020.6.23 – 9 – 2.4 変数と演算 教科書の書き方を一部訂正します。この講義では、 return(0);に統一しますので、下 のように直してください。

Upload: others

Post on 14-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 教科書の書き方を一部訂正します。この講義では、 return(0);hakuto.mis.ous.ac.jp/~yanagi/bprog2020/pdf/no03.pdfプログラミング基礎 2020.6.23 – 11 –

プログラミング基礎 2020.6.23

– 9 –

2.4 変数と演算

教科書の書き方を一部訂正します。この講義では、「return(0);」に統一しますので、下

のように直してください。

Page 2: 教科書の書き方を一部訂正します。この講義では、 return(0);hakuto.mis.ous.ac.jp/~yanagi/bprog2020/pdf/no03.pdfプログラミング基礎 2020.6.23 – 11 –

プログラミング基礎 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); }

Page 3: 教科書の書き方を一部訂正します。この講義では、 return(0);hakuto.mis.ous.ac.jp/~yanagi/bprog2020/pdf/no03.pdfプログラミング基礎 2020.6.23 – 11 –

プログラミング基礎 2020.6.23

– 11 –

2.5 変数と型

教科書は puts 関数を使っていますが、今回の講義では printf 関数に統一します。次のように変更しておいてください。また、return(0);にも変更しておいてください。

整数に対し、実数の値を扱う時には、浮動小数点数というものを使います。このときには、int ではなく、double を使います。また、scanf では%lf を、printf では%f(もしくは%lf)を使います(l は小文字のエル)。

Page 4: 教科書の書き方を一部訂正します。この講義では、 return(0);hakuto.mis.ous.ac.jp/~yanagi/bprog2020/pdf/no03.pdfプログラミング基礎 2020.6.23 – 11 –

プログラミング基礎 2020.6.23

– 12 –

Page 5: 教科書の書き方を一部訂正します。この講義では、 return(0);hakuto.mis.ous.ac.jp/~yanagi/bprog2020/pdf/no03.pdfプログラミング基礎 2020.6.23 – 11 –

プログラミング基礎 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); }

Page 6: 教科書の書き方を一部訂正します。この講義では、 return(0);hakuto.mis.ous.ac.jp/~yanagi/bprog2020/pdf/no03.pdfプログラミング基礎 2020.6.23 – 11 –

プログラミング基礎 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 の結果

Page 7: 教科書の書き方を一部訂正します。この講義では、 return(0);hakuto.mis.ous.ac.jp/~yanagi/bprog2020/pdf/no03.pdfプログラミング基礎 2020.6.23 – 11 –

プログラミング基礎 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); }