基礎情報処理演習 (6)
  実数と繰り返し

   山本和英
 長岡技術科学大学

               1
整数と実数




        2
変数は最初にまとめて宣言する

(正解)          (間違い)
int idt;      int idt;
double ddt;   idt = 100;
idt = 100;    double ddt;
ddt = 23.45   ddt = 23.45
...

                            3
データ型
int      整数
double   実数
char     文字

これだけで十分です。


              4
そもそも「実数」て何だ?

一言で言えば、整数で表現できない数です。

(1) 小数点以下を含む数字、小さな数
(2) (±21億ぐらい)よりも大きな数

実数(浮動小数点数)は整数と記憶方法が違います。
このため非常に広範囲の数を表現できますが誤差を
含むので、int型で表現できる数は必ず int を使っ
てください。

                         5
演算子

 演算子とは、計算などをする記号のことです。


算術演算子

 +    加算
 -    減算
 *    乗算
 /    除算
 %    余り (7 % 3 = 1)
                         6
割り算に注意!

整数どうしの計算は必ず整数で計算する。
例えば、

printf (“%fn”, 5 / 7);

を実行すると、(出力書式で実数(%f)指定し
ていても全く関係なく) 0.0000 が出力され
る。

                           7
実数で計算したい時はどうするの?
printf   (“%fn”,   5.0 / 7);
printf   (“%fn”,   5 / 7.0);
printf   (“%fn”,   5.0 / 7.0);
printf   (“%fn”,   (double) 5 / 7);

(double) については、次のスライド参照。


                                  8
キャスト演算子

型変換したい時に使う。


printf (“%fn”, (double) 5 / 7);


 整数の 5 を実数 (5.0) と理解することで、
       割り算を実数で行う。

                                   9
代入演算子

 単純代入演算子: =

 p = 0;     // 普通の使い方
 a = b = 3; // 多重代入もできる

 複合代入演算子: += -= *= /= など

 k += 1;   // k=k+1; と同じ


                           10
printf の書式

%d    int
%f    double
%c    char
%s    (文字列)

表示幅を指定することもできる

%5d   intを5文字で
                 11
scanf(scanf_s) の書式

%d    int
%lf   double
%c    char
%s    (文字列)

double型以外は同じ。


                     12
数学関数

#include <math.h>

を冒頭につけると下記の関数が使える。

三角関数  sin, cos, tan 
      (ラジアンで入力することに注意)
平方根   sqrt
指数・対数 exp, log, log10
絶対値   fabs
べき乗   pow
など                       13
for文による繰り返し




              14
for文の繰り返し


for (i=1; i<=10; i=i+1){




}

                           15
赤字部分(前ページ)が +1 の場合は
下記PADに対応する。



    a ← 1 ~ 10



※<=(関係演算子)は≦という意味ですが、
 詳しくは次回に...
                        16
for (i=1; i<=10; i=i+1){

}

    i ← 1

     i <= 10

                  i ← i + 1
                              17
最初は i=1 にする     繰り返しごとにiを増加
  (初期化)            (変化量)

for (i=1; i<=10; i=i+1){

}

          i<=10 の間繰り返す
             (継続条件)
                           18
もしカウントダウンしたかったら...

for (i=10; i>=1; i=i-1){


               継続条件なので、
                    i>=1
}              (i<=1ではない!)


                             19

#6:実数と繰り返し