240 likes | 337 Views
第2回[平成15年4月24日(木)]:PN03ー02 . ppt. 変数と代入・読込と表示. 今日の内容. 1 プログラムの構造 (復習) 2 文字列と数値(整数値)の出力 (復習) 3 変数と変数宣言 4 入力文とアドレス指定 5 代入と代入演算子 6 変換指定子の補足. 0 . 参考書. 情報処理技術者試験向け雑誌 、 解説書・演習書 アスキー(田口景介著) 入門C言語 、実習C言語、応用C言語 ソフトバンク(林晴比古著) 新C言語入門スーパービギナー編 、 ビギナー編 、シニア編、応用編
E N D
第2回[平成15年4月24日(木)]:PN03ー02.ppt第2回[平成15年4月24日(木)]:PN03ー02.ppt 変数と代入・読込と表示 今日の内容 1 プログラムの構造(復習) 2 文字列と数値(整数値)の出力(復習) 3 変数と変数宣言 4 入力文とアドレス指定 5 代入と代入演算子 6 変換指定子の補足
0. 参考書 • 情報処理技術者試験向け雑誌、解説書・演習書 アスキー(田口景介著)入門C言語、実習C言語、応用C言語 ソフトバンク(林晴比古著)新C言語入門スーパービギナー編、ビギナー編、シニア編、応用編 オーム社(三田典玄著)入門C言語、実習C言語、応用C言語C言語によるプログラミング[基礎編][応用編] [スーパーリファレンス編](内田智史編著) • 図書館を利用しよう
標準ヘッダ メイン関数の始まり 注釈行 実行部分 プログラムの一般形 1.プログラムの構造 復習 /* 整数値15と37の和を表示する */ #include <stdio.h> int main(void) { printf(”15+37=%d\n”,15+37); return (0); } • 教科書6頁:List1-3(見出し付き出力) #include <stdio.h> int main(void) {実行部分return(0);}
2.文字列と整数値の出力 復習 printf("1日は %d秒\n",24*60*60); 文字列はそのまま 書式を指定 変換指定子(%d)による変換 見出し付きの出力となる 1日は86400秒Ã 書式は "で囲むこと!!
注釈行 変数宣言 式と代入文 書式指定(見出し) サンプルプログラム /* List1-8 (11頁) */ #include <stdio.h> int main(void){ int vx, vy; vx = 57; vy = vx + 10; printf("vxの値は%dです。\n", vx); printf("vyの値は%dです。\n", vy); return(0); } List1-8:二つの変数に整数値を格納して表示
変数 変数名 vx vy wa 英字 _ 英字 _ seki 数字 3.変数と変数宣言 • 変数(識別子) • プログラムの中で値を記憶する場所 • 場所の名前→変数名 • 変数を宣言する • main関数の { の後に宣言する型指定子(int) 変数名リスト; • 命名法:英文字か_で始まり、 32文字以内の英数文字と_ 82頁を参照 (_はアンダーバー)
予約語(キーワード)と変数名 • 予約語:プログラム特有の文字列 • 特定の意味を持っている語(82頁参照) • int double return if do for while 等 • 変数名:予約語は使わない • 大文字(ABC…)・小文字(abc…)の区別あり • 32文字までが有効 • 利用可能文字A B C ・・・ X Y Za b c ・・・ x y z0 1 2 ・・・ 9_
演習(変数名) 問.次の名前の中で変数名として不適当な名前を、理由と共に指摘せよ。 (1) gakuseki_bangou (2) 2nennsei (3) jyouhou-kanri (4) Nyuumon (5) _abc (6) const (7) PROGRAM2001 (8) No. (9) Asahi Univ (10) enshuu_13
出力文 入力文 変数宣言 式と代入文 書式指定(見出し) サンプルプログラム #include <stdio.h> int main(void){ int n1, n2; int wa; puts("two integers ? "); printf("整数1:"); scanf("%d",&n1); printf("整数2:"); scanf("%d",&n2); wa = n1 + n2; printf("それらの和は%dです。\n", wa); return(0); } List1-12:二つの整数の入力と和の計算と表示
強制改行する。 文字列のみの改行付きの出力 • puts関数: puts(実引数[文字列]) • 出力制御(例えば、%d)は不可 • 文字列の最後に改行(\n)を付して出力 • \nを入れれば強制的に改行する puts("強制改行\nする。");
\nがなくても 改行する。 文字列のみの改行付きの出力 • puts関数: puts(実引数[文字列]) • 実引数は一つ:文字列を分けても良い"abcde" → "abc" "de" • "\n"という文字列を出力する場合には"\\n"と記述する puts("\\nがなくても"); puts("改行" "する。");
4.入力文とアドレス指定 • scanf関数scanf(入力制御、値を入れる変数のアドレス) • 入力制御で変換指定(%d,%c,%f)をする • アドレス指定子(&)を変数名の前に付ける scanf("%d",&a); scanf("%f",&X) • 複数のデータを入力する → 複数の変数名 scanf("%d %d %d",&a,&b,&c); それぞれ対応 12 13 14 • 入力装置は標準でキーボードとなる • 入力装置がFD,HD内のファイル:別巻『実践編』
入力文とアドレス指定 変数の ある場所 • アドレス指定の考え方 scanf("%d",&a); (アドレスは&a) 変数 a 12[Enter] 12 変数 a の場所へ整数の値として12を入れる &a %d
演習 • キーボードから整数値を一つ入力し、画面に、その2倍の値を出力せよ。 #include <stdio.h> int main(void) { int a; printf("整数値を入力せよ:"); scanf( ); printf( ); return(0); }
[補足]入力文とアドレス指定 • 複数のデータを入力 → 複数の変数名 scanf("%d %d %d",&a,&b,&c) それぞれ対応 12 13 14 プログラム暴走??? scanf("%d %d %d",&a,&b ) scanf("%d %d ",&a,&b,&c) 次のキーボード入力に反映 12,13, 14 scanf("%d,%d,%d",&a,&b,&c) 12 ,13, 14 入力値の直後にコンマが必要
a b sum prod 数学の等式と違うことに注意 5.代入文と代入演算子 • 代入:変数に新たに値を割り当てること • 代入演算子による式 → 代入式 • 代入演算子は = (イコール) 変数名 = 式 で式の値が変数に代入される 足し算 +、 引き算 ー 掛け算 *(xではない) わり算 /(÷ではない) a = 3 ; b = 4 ; sum = a + b; prod = a * b; a = a + 2;
演習(代入式の文:式文) 問. 次の代入式の文に間違いがあれば指摘せよ (1) a = a + b; (2) d = a(b + d); (3) d = {(a + b)/c}; (4) d = a/b/c; (5) a+b = c+d; (6) i = a*b; (7) b = a + a + a; (8)f = a ÷ b; (9) x = a^b;
演習 • 二つの整数値を読込み、その差(最初の値から後の値を引く)を出力せよ。 int main(void) { int a, b, sa; puts("二つの整数を入力せよ"); printf("a :"); scanf("%d",&a); printf("b:"); scanf("%d",&b); printf("差は%dです。\n", sa); return(0);}
6.変換指定子の補足(%c) 計算結果を文字として出力 printf("%c",15*2+18*4); 文字"%c"の代わりに整数値(文字コード)に対応する文字を出力 計算式 整数値を与える式 計算結果 → 102 人間が読める文字 として表示する パソコンのメモリ内では(102)10は(01100110)2で表現されている %c による変換
0000 0 0 0110 6 6 1100 12 C 0001 1 1 0111 7 7 1101 13 D 0010 2 2 1000 8 8 1110 14 E 0011 3 3 1001 9 9 1111 15 F 0100 4 4 1010 10 A 0101 5 5 1011 11 B 文字コードについて 2進数、10進数、16進数の変換 4ビットの場合 2進数 10進数 16進数
文字コードについて 文字コード:ASCIIコード表(200頁) 上位4ビット 下位4ビット 0000 0000 2進数 0110 0011 ~ (0110 0011)2 0111 1111 16進数 6 3 (63)16 128通り c 10進数 99 (99)10
演習 • 画面に、ASCIIコード表の77番目の文字を表示するプログラムを作成せよ #include <stdio.h> int main(void) { printf( ); return(0) }
演習 • 次のプログラムの誤りを正せ #include <stdio.h> int main(void){ printf("結果の文字は%cです\n",30*5); }
第2回P入門は終了です。次回(第3回)は5月8日第2回P入門は終了です。次回(第3回)は5月8日 続いて、P演習に入ります。しばらく、休憩します。 5月1日は自宅研修日です。各自で教科書を良く復習・予習しておきましょう。