• 検索結果がありません。

CプログラミングⅠ 変数を利用したプログラム

N/A
N/A
Protected

Academic year: 2021

シェア "CプログラミングⅠ 変数を利用したプログラム"

Copied!
18
0
0

読み込み中.... (全文を見る)

全文

(1)

CプログラミングⅠ

変数とデータ型

標準入力

(2)

変数を利用したプログラム

変数を用いた演算

変数を用いれば,プログラムの修正が簡単

いろんな値に対する演算が一つのプログラムで可能となる

四則演算する値を変更したいときは

すべての printf 文を修正しなければ

ならない 変数a,bに代入する値を修正するだけでよい

直接,値を記述しての演算 1:

2:

3:

4:

5:

6:

7:

8:

9:

int main(void) {

printf("20 + 10 = %d¥n", 20 + 10);

printf("20 - 10 = %d¥n", 20 - 10);

printf("20 * 10 = %d¥n", 20 * 10);

printf("20 / 10 = %d¥n", 20 / 10);

return 0;

}

変数を利用しての演算 1:

2:

3:

4:

5:

6:

7:

8:

9:

10:

11:

12:

13:

int main(void) {

int a,b;

a = 15;

b = 5;

printf("a + b = %d¥n", a + b);

printf("a - b = %d¥n", a - b);

printf("a * b = %d¥n", a * b);

printf("a / b = %d¥n", a / b);

return 0;

}

値を変更するだけ

(3)

変数を利用したプログラム

入力した値を用いた演算

変数を用いれば,キーボードから入力した値による計算 が行えるようになる

四角形の面積の計算 1:

2:

3:

4:

5:

6:

7:

8:

9:

10:

11:

12:

13:

14:

15:

int main(void) {

int tate,yoko;

int menseki;

printf("四角形の面積の計算¥n");

printf("縦辺の長さを入力してください.¥n");

scanf("%d", &tate);

printf("横辺の長さを入力してください.¥n");

scanf("%d", &yoko);

menseki = tate * yoko;

printf("四角形の面積は%dです.¥n", menseki);

return 0;

}

実行結果

四角形の面積の計算

縦辺の長さを入力してください 10 [Enter]

横辺の長さを入力してください.

15 [Enter]

四角形の面積は150です.

※[Enter]は, [Enter]キーの入力

※ユーザーからの入力は下線で表している

入力した値(整数値)

int型変数tate,yokoに格納される

入力した値で計算した結果が mensekiに格納される

(4)

変数

変数とは

一時的に値(数値,文字)を記憶するため場所(箱)

プログラムでは データを記憶する

必要がある.

例 : ユーザーが入力した数値 計算した結果

メモリに変数を 用意してデータを

入れておく.

メモリは,コンピュータ 内部の記憶装置

メモリ

変数:データを入れる 100

'A'

(5)

変数

変数名(識別子)

変数(箱)には名前(変数名)を付ける必要がある

半角英字(大文字,小文字),半角数字,半角の「 _ 」

(アンダースコア)を使うことができる

数字から始まる名前は付けられない

予約語(C言語で用いられている単語)は使えない

a abc ab_c F1

12a return is-a

数字で始まってはだめ 予約語は使えない

特殊な記号も使えない

変数名の例 使用できない変数名の例

(6)

変数

変数の宣言

プログラムで変数を利用する場合,プログラムの最初に 変数を宣言する必要がある

変数の型(データ型)も定義(宣言)する必要がある

a

5 25

5.2 10.7 変数宣言の例(一部省略)

1:

2:

3:

4:

5:

6:

int main(void) {

int a;

double jissu;

}

整数型変数 a を宣言

実数型(倍精度)変数 jissu を宣言

jissu 変数宣言の書式

型名 変数名;

整数値を格納する ことができる

実数値を格納することができる

(7)

変数の型(データ型)

変数の型 : 値(データ)の種類

変数を宣言するときは,記憶する値の型を決めておく

カテゴリ 種別 型名 格納できる範囲 サイズ

文字型 文字型 char -128 ~ 127 1バイト

符号なし文字型 unsigned char 0 ~ 255 1バイト

整数型

短い整数型 short int -32768 ~ 32767 2バイト

符号なしの短い整数型 unsigned short int 0 ~ 65535 2バイト

整数型 int -2147483648 ~

2147483647

4バイト

符号なしの整数型 unsigned int 0 ~ 4294967295 4バイト

長い整数型 long int -2147483648 ~ 2147483647

4バイト

符号なしの長い整数型 unsigned long int 0 ~ 4294967295 4バイト

浮動 小数点型

単精度浮動小数点型 float 3.4E-38 ~ 3.4E+38 4バイト

倍精度浮動小数点型 double 1.7E-308 ~ 1.7E+308 8バイト

(8)

変数への値の代入(一部省略)

1:

2:

3:

4:

5:

6:

7:

8:

9:

10:

11:

int main(void) {

int a;

float b;

double jissu;

a = 10;

b = 5.2;

jissu = 2.5 + 1.2;

}

変数の利用

代入

変数へ値(または計算結果)格納する

整数型変数 a に整数値 10 を格納 a

10

2.5

実数型(単精度)変数 b に 実数値 5.2 を格納

実数型(倍精度)変数 jissu に 2.5 + 1.2 の計算結果を格納

b

5.2

1.2 3.7

= は「代入」を表す 等号(等しい)ではない

= の右辺の値を 左辺の変数に格納

jissu 代入文の書式

変数名 = 値(または式);

(9)

変数の利用

変数の初期化

変数の宣言と同時に値を代入しておくことを

『変数を初期化する』という

初期化を用いると変数の宣言と値の格納を同時に 行える

変数の利用における注意

値を格納しないで利用すると,中に何が入っているか わからないため,エラーの原因となる

データ型 識別子 = 式 ; 初期化の構文

int num = 3;

初期化の例

num

?

(10)

変数の値の出力 1:

2:

3:

4:

5:

6:

7:

8:

9:

10:

11:

12:

int main(void) {

int a = 10;

double b = 50.2;

char c = b;

char d[] = "f g h";

printf("a = %d b = %lf¥n", a, b);

printf("a %c c d e %s¥n", c, d);

return 0;

}

変数の利用

変数に代入(または初期化)された値を出力

printf 関数,変換仕様を用いて変数に代入(または初期化)

された値を出力することができる

変数の型と変換指定を一致させること

変換仕様 意味

%lf 小数(倍精度実数:double)として出力する

出力結果

a = 10 b = 50.200000 a b c d e f g h

変数の初期化を 行っている

(11)

変数の値を変更する 1:

2:

3:

4:

5:

6:

7:

8:

9:

10:

11:

int main(void) {

int num = 3;

printf("変数numの値は%dです.¥n", num);

num = 5;

printf("変数numの値を変更しました.¥n");

printf("変数numの新しい値は%dです.¥n", num);

return 0;

}

変数の値を変更する

プログラムは文が上から1つづつ順番に処理される ので,一度代入した変数の値を新しい値に変更する ことができる

num

num 5 で上書き

される.

変数の利用

3 を代入

(初期化)

3

5 を代入

5 =

実行結果

変数numの値は3です.

変数numの値を変更しました.

変数numの新しい値は5です.

(12)

変数の利用

他の変数の値を代入する

代入構文で = の右辺には他の変数が書ける

この場合,右辺に書いた変数の値が代入される

変数の値を変更する 1:

2:

3:

4:

5:

6:

7:

8:

9:

10:

11:

12:

int main(void) {

int num1, num2;

num1 = 3;

printf("変数num1の値は%dです.¥n", num1);

num2 = num1;

printf("変数num1の値をnum2に代入しました.¥n");

printf("変数num2の値は%dです.¥n", num2);

return 0;

} num1

num1 に 3 を代入

3

num2

num2 3

num1の 3 をnum2に代入

実行結果

変数num1の値は3です.

変数num1の値を変数num2に代入しました.

変数num2の値は3です.

num1 3

(13)

変数の利用

変数利用の注意

値の代入

データ型が異なる変数への値の代入には注意が必要

3.14などの実数値をint型などの整数を記憶する変数に代入すると,

自動的に型変換が行われて小数点以下が切り捨てられる

値を格納しないまま利用しないこと

⇒ エラーの原因となる

変数の宣言位置

変数の宣言はmain関数のブロック内の先頭に記述する

変数宣言の前に他の文が入らないようにする

⇒ ブロック内の他の文よりも先に変数宣言をする

(14)

キーボードからの入力(標準入力): scanf 関数

scanf 関数でキーボード入力した値を読み取る

キーボードで入力した数値や文字を読み取って変数 に格納する

変換仕様 意味

%d 符号付き整数を10進数として入力する

%u 符号なし整数を10進数として入力する

%f 実数を入力する

%lf 倍精度実数(double)を入力する

%c 1文字を入力

%s 文字列を入力する

変数の前に & を付ける scanf関数の書式

scanf("変換仕様", &変数名);

(15)

キーボードからの入力(標準入力): scanf 関数

整数を入力

変換仕様は %d を用いる

実数を入力

double 型を用いる場合,変換仕様は %lf を用いる

int num;

scanf("%d", &num);

整数を入力するコード例

キーボードから

整数の値をnumに読み込む

整数を読み込むので変換仕様は %d int型変数を用意しておく

double num;

scanf("%lf", &num);

実数を入力するコード例

キーボードから

実数の値をnumに読み込む 実数を読み込むので変換仕様は %lf

double型変数を用意しておく

(16)

キーボードからの入力(標準入力): scanf 関数

プログラム例

キーボードから整数,実数を入力 1:

2:

3:

4:

5:

6:

7:

8:

9:

10:

11:

12:

13:

14:

15:

int main(void) {

int seisu;

double jissu;

printf("整数値を入力してください.¥n");

scanf("%d", &seisu);

printf("%dが入力されました.¥n", seisu);

printf("¥n");

printf("実数値を入力してください.¥n");

scanf("%lf", &jissu);

printf("%lfが入力されました.¥n", jissu);

return 0;

}

実行結果

整数値を入力してください.

100 [Enter]

100が入力されました.

実数値を入力してください.

3.14 [Enter]

3.140000が入力されました.

※[Enter]は, [Enter]キーの入力

※ユーザーからの入力は下線で表している

入力した整数値を int型変数seisuに格納する

入力した実数値を

double型変数 jissu に格納する

(17)

キーボードからの入力(標準入力): scanf 関数

複数の値を1つのscanf関数で入力

整数,実数を1つのscanf関数で入力 1:

2:

3:

4:

5:

6:

7:

8:

9:

10:

11:

12:

int main(void) {

int seisu;

double jissu;

printf("整数値と実数値を入力してください.¥n");

scanf("%d %lf", &seisu,&jissu);

printf("%dと%lfが入力されました.¥n", seisu,jissu);

return 0;

} 実行結果

整数値と実数値を入力してください.

100 [Enter]

3.14 [Enter]

100と3.140000が入力されました.

変換仕様と変数のデータ型を 一致させるように

順番に並べること

実際に入力する際も

scanf 関数の中の変換仕様,変数の並びと データ型を一致させるように

順番に入力すること

(18)

講義のまとめ

変数

変数名

変数の宣言

変数の型

変数の利用

代入

初期化

変数の値の出力,更新

キーボードからの入力(標準入力)

scanf関数

参照

関連したドキュメント

標準ヘッダとは (よく使う機能を提供してくれている関数群を使う為にインク ルードしなければならないもの)

FOLD 弧が先行弧および交差弧の場合の終点 の再帰式生成処理は完了しているため、 マップ

概要:教育用プログラミング言語ドリトルの処理系を、マイクロソフト社の入力デバイスである

 さらに、社会経済的背景指標と生徒の各分野の学力との相関係数の値は表14のようになり、いず

情報処理学会研究報告 IPSJ SIG Technical Report 率を現在の値から 90 度増やすプログラムを図

発音時間の揺らぎを利用した SMF ステガノグラフィ 表 3 埋込み後の推定標準偏差 Table 3 Estimated standard deviation of fluctuation after

例題1‐4 指定したテキストファイルから、指定した個数の文字を読みだす。

文字列処理関数一覧 以下の表はよく使われる文字列処理関数の一覧です。 また、これらの関数から派生した関数もあるので必要に応じて調べてみましょう。 関数名