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