変数と代入・読込と表示 第2回[平成15年4月24日(木)]:PN03ー02.ppt 今日の内容 1 プログラムの構造(復習) プログラミング入門(’03) 2019/10/7 第2回[平成15年4月24日(木)]:PN03ー02.ppt 変数と代入・読込と表示 今日の内容 1 プログラムの構造(復習) 2 文字列と数値(整数値)の出力(復習) 3 変数と変数宣言 4 入力文とアドレス指定 5 代入と代入演算子 6 変換指定子の補足 PN03-02.ppt
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頁) */ プログラミング入門(’03) 2019/10/7 サンプルプログラム 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); } 注釈行 変数宣言 式と代入文 書式指定(見出し) PN03-02.ppt
3.変数と変数宣言 変数 変数(識別子) 変数名 変数を宣言する 命名法:英文字か_で始まり、 32文字以内の英数文字と_ 82頁を 参照 プログラムの中で値を記憶する場所 場所の名前→変数名 変数名 vx vy wa seki 変数を宣言する main関数の { の後に宣言する 型指定子(int) 変数名リスト; 命名法:英文字か_で始まり、 32文字以内の英数文字と_ 英字 _ 数字 82頁を 参照 (_はアンダーバー)
予約語(キーワード)と変数名 予約語:プログラム特有の文字列 変数名:予約語は使わない 特定の意味を持っている語(82頁参照) プログラミング入門(’03) 2019/10/7 予約語(キーワード)と変数名 予約語:プログラム特有の文字列 特定の意味を持っている語(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 _ PN03-02.ppt
演習(変数名) 問.次の名前の中で変数名として不適当な名前を、理由と共に指摘せよ。 (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", wa); return(0); } 出力文 入力文 変数宣言 式と代入文 書式指定(見出し)
文字列のみの改行付きの出力 puts("強制改行\nする。"); puts関数: puts(実引数[文字列]) 出力制御(例えば、%d)は不可 文字列の最後に改行(\n)を付して出力 \nを入れれば強制的に改行する puts("強制改行\nする。"); 強制改行 する。
文字列のみの改行付きの出力 puts関数: puts(実引数[文字列]) puts("\\nがなくても"); 実引数は一つ:文字列を分けても良い "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); 12[Enter] 12 変数の ある場所 アドレス指定の考え方 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
5.代入文と代入演算子 代入:変数に新たに値を割り当てること 代入演算子は = (イコール) 代入演算子による式 → 代入式 代入演算子は = (イコール) 変数名 = 式 で式の値が変数に代入される 足し算 +、 引き算 ー 掛け算 *(xではない) わり算 /(÷ではない) a b sum prod 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); }
文字"%c"の代わりに 整数値(文字コード)に 対応する文字を出力 計算結果を文字として出力 printf("%c",15*2+18*4); 文字"%c"の代わりに 整数値(文字コード)に 対応する文字を出力 計算式 整数値を与える式 計算結果 → 102 人間が読める文字 として表示する パソコンのメモリ内では (102)10は(01100110)2で表現されている %c による変換
文字コードについて 2進数、10進数、16進数の変換 0000 0001 0010 0011 0100 0101 0 1 2 3 4 5 0 4ビットの場合 2進数 10進数 16進数 0000 0001 0010 0011 0100 0101 0 1 2 3 4 5 0 1 2 3 4 5 0110 0111 1000 1001 1010 1011 6 7 8 9 10 11 6 7 8 9 A B 1100 1101 1110 1111 12 13 14 15 C D E F
c 文字コードについて ~ 文字コード:ASCIIコード表(200頁) 0000 0000 0110 0011 (0110 0011)2 プログラミング入門(’03) 2019/10/7 文字コードについて 文字コード: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 PN03-02.ppt
演習 画面に、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演習に入ります。 しばらく、休憩します。 プログラミング入門(’03) 2019/10/7 第2回P入門は終了です。 次回(第3回)は5月8日 続いて、P演習に入ります。 しばらく、休憩します。 5月1日は自宅研修日です。各自で教科書を良く復習・予習しておきましょう。 PN03-02.ppt