C言語 第2講 生物機能制御学講座 濱田 農学部7号館209室 1 本日の講義内容 • • • • • • おさらい C言語の基本 文字と数字 変数 アンケート テキスト やさしいC 第2版 高橋麻奈著 ソフトバンク 社 2 プログラミングのこつ 1.とにかく、手本をまねる 2.様々なテキストを参考にする 3.プログラムには、おまじないが 含まれていることを認知しておく 4.構文があることを悟る 5.とりあえず、1つの言語を修める 3 C言語をはじめよう ここまでのまとめ ○ プログラムはコンピュータに特定の仕事を付与 ○ ソースコードはエディタ(Mule)にて作成 ○ ソースコードは英数半角を用いて作成 ○ ソースコードは大文字・小文字を区別して作成 ○ 実行ファイルはソースコードをコンパイルし作成 ○ 実行ファイルは指示した「仕事」を実行 % mule prog1.c % cc prog1.c % a.out 4 アンケート結果 質問および要望 1.ソースコードの意味も一緒に教えてほしい 2.エラーを指摘する文字列の意味がわからない 3.何をしているのかあまりわからない 4.もう少しスローペースで 5.「a.out」を実行する前に「cc prog1.c」が必要か? 6.コンパイルって何? 5 C言語の基本 /* コメント */ ← #include <stdio.h> ← main() ← main { printf(“△○×■\n”); ← printf(“*%$#\n”); ← } ← main コメント文 画面出力に使用 関数の開始部 最初に実行 次に実行 関数の終了部 C言語は、main関数に記載された1文ずつ(処理の順)実行 する。段落ごとにインデントを利用するとわかりやすい。また コメント文を記載するとコードの内容が理解しやすくなる。 6 文字と数値 文字と数値の型について % a.out A は文字です 123は整数です 10.500000は小数です % #include <stdio.h> main() { printf(“%cは文字です\n”, ‘A’); ← 文字を出力 printf(“%dは整数です\n”, 123); ← 整数を出力 printf(“%fは小数です\n”, 10.5); ← 小数を出力 } %c Character 文字 %d Decimal 10進整数 %f Floating 小数 7 文字と数値 #include <stdio.h> 誤り例 main() 型の不一致による誤り { printf(“%cは文字です\n”, ‘ABC’); ← 文字を出力 printf(“%dは整数です\n”, 123.5); ← 整数を出力 printf(“%fは小数です\n”, 10); ← 小数を出力 } % a.out A は文字です 107***は整数です 0.000000は小数です % 8 文字と数値 2つ以上の文字または数値の出力 #include <stdio.h> main() { printf(“%cは文字 %dは整数\n”, ‘A’, 123); printf(“%dは整数 %fは小数\n”, 123,10.5); } % a.out A は文字 123は整数 123は整数 10.500000は小数 % 9 文字と数値 問題 以下の出力を実行するプログラムを作成して ください。 % a.out 10+5.5=15.500000 10-5.5=4.500000 10*5=50 10/4=2.500000 % 10 文字と数値 問題 以下の出力を実行するプログラムを作成して #include ください。<stdio.h> main() { %#include <stdio.h> a.out printf(“%d+%f=%f\n”,10,5.5,10+5.5); main() 10+5.5=15.500000 #include <stdio.h> printf(“%d-%f=%f\n”,10,5.5,10-5.5); { main() 10-5.5=4.500000 printf(“%d*%d=%d\n”,10,5,10*5); printf(“%d+%f=%f\n”,10,5.5,15.500000); { printf(“%d/%d=%f\n”,10,4,10.0/4.0); printf(“%d-%f=%f\n”,10,5.5,4.500000); 10*5=50printf(“10+5.5=15.500000\n”); } printf(“%d*%d=%d\n”,10,5,50); printf(“10-5.5=4.500000\n”); 10/4=2.500000 printf(“%d/%d=%f\n”,10,4,2.500000); printf(“10*5=50\n”); %} printf(“10/4=2.500000\n”); } 11 文字と数値 まとめ ○ ○ ○ ○ ○ ○ ○ main()関数はC言語プログラムの本体 文は処理の最小単位 コメントはプログラムのメモ書き 文字列の出力は「printf」 C言語は、文字・文字列・数値を出力 文字は「‘ ’ 」 (シングルクォーテーション) 文字列は「“ ”」 (ダブルクォーテーション) 12 変数 数値や文字などを記憶しておく箱(メモリ) りんご (数値) 1 識別子 (変数名) 記憶 (メモリ) 3 5 + 3 1 1 3 8個ほし いなぁ 7 = 8 7 5 5 7 8 13 変数 識別子(変数名)をつける ○ ○ ○ ○ 記憶 (メモリ) 1 3 5 7 Address 10 20 30 40 50 識別子 BL PN OR WH GR 8 識別子は、英字・数字・‘_’ を用いて命名 予約語(main, include・・・)は無効 数字の頭文字は不可 14 大文字・小文字は区別 変数 変数のデータ型 変数に記憶できる主な値は以下の通り! データ型 名前 文字型 char 整数型 short int int 浮動小 float 数点型 double 値の範囲例 英数字1文字 整数 ±32768 長整数 ±2147483648 単精度 3.4E±38 倍精度 1.7E±308 15 変数 浮動小数点型の特徴 浮動小 float 単精度 3.4E±38 数点型 double 倍精度 1.7E±308 float double : 0.1234567 E±38 : 0.123456789012345 E±308 可数部と指数部 float は、小数点以下7桁の可数部 doubleは、小数点以下15桁の可数部 16 変数 以下のソースコードをコーディングし実行しよう! #include <stdio.h> main() { int num; char c; float f; double db, dd; num = 3; c = ‘A’; f = 4.5; db = 5.5; dd = db; printf(“%cは文字 %dは整数\n”, c, num); printf(“%fは単精度\n %lf,%lfは倍精度浮動 小数\n”,f,db,dd); } 17 変数 以下のソースコードをコーディングし実行しよう! #include <stdio.h> main() { %int cc num; prog2.c char c; float f; %double a.out db, dd; /*変数宣言*/ num = 3; 3は整数 c = ‘A’; f = 4.5; Aは文字 /*変数入力*/ db = 5.5; dd = db; 4.500000は単精度 printf(“%cは文字 %dは整数\n”, c, num); 5.500000 5.500000は倍精度浮動小数 printf(“%fは単精度\n %lf,%lfは倍精度浮動 % 小数\n”,f,db,dd); } 18 変数 以下のソースコードをコーディングし実行しよう! #include <stdio.h> 変数の値の入れ替え main() { int num; num = 3; printf(“最初のnum = %dです\n”,num); num = 5; printf(“次のnum = %dです\n”,num); } 19 変数 以下のソースコードをコーディングし実行しよう! #include <stdio.h> 変数の値の入れ替え main() { % cc prog2.c int num; % a.out num = 3; 最初のnum = 3です printf(“最初のnum = %dです\n”,num); 次のnum = 5です num = 5; % printf(“次のnum = %dです\n”,num); } 20 変数 以下のソースコードをコーディングしましょう! #include <stdio.h> 誤り例 main() 型の不一致による誤り { int num; % a.out num = 3.14; num= 3です printf(“num = %dです\n”,num); % } 変数は宣言した型によって記憶できる値の種類が決まる。 整数値を格納する変数に小数値を代入すると、小数点以下 21 が切り捨てられる。 変数 キーボードからの数値入力 以下の「prog3.c」をコーディングしましょう! #include <stdio.h> main() { int num; printf(“整数を入力してください\n”); printf(“num = ”); scanf(“%d”, &num); printf(“%dが入力されました\n”,num); } 22 変数 キーボードからの数値入力 以下の「prog3.c」をコーディングしましょう! #include <stdio.h> main() 1.気配りです! % {cc prog3.c % a.out int num; 2.問い合わせ 整数を入力してください printf(“整数を入力してください\n”); 3.キーボード入力 printf(“num num = 5 Enter = ”); された数値を scanf(“%d”, &num); 5 が入力されました 変数に代入 % printf(“%dが入力されました\n”,num); 23 } 変数 以下の「prog3.c」をコーディングし実行しようう! #include <stdio.h> 単精度浮動小数: %f main() 倍精度浮動小数: %lf { float f; double df; printf(“単精度浮動小数を入力してください\n f=”); scanf(“%f”, &f); printf(“%fが入力されました\n”,f); printf(“倍精度浮動小数を入力してください\n df=”); scanf(“%lf”, &df); printf(“%lfが入力されました\n”,df); } 24 変数 キーボードからの文字入力 以下の「prog4.c」をコーディングし実行しよう! #include <stdio.h> main() { char c; printf(“文字を入力してください (英数字) \n”); printf(“c = ”); c = getchar(); printf(“%cが入力されました\n”,c); } 25 変数 キーボードからの文字入力 以下の「prog4.c」をコーディングしましょう! #include <stdio.h> main() 1.気配りです! % {cc prog4.c % a.out 2.問い合わせ char c; 文字を入力してください printf(“文字を入力してください (英数字) \n”); 3.キーボード入力 c = printf(“c a Enter = ”); された文字を c = getchar(); a が入力されました 変数に代入 % printf(“%cが入力されました\n”,c); 26 } 変数 以下の「prog4.c」をコーディングし実行しよう! #include <stdio.h> 単精度浮動小数: %f main() 倍精度浮動小数: %lf { float f; double df; printf(“単精度浮動小数を入力してください\n f=”); scanf(“%f”, &f); printf(“%fが入力されました\n”,f); printf(“倍精度浮動小数を入力してください\n df=”); scanf(“%lf”, &df); printf(“%lfが入力されました\n”,df); } 27 文字と数値と変数 問題 以下の出力を実行するプログラムを作成してください。 % a.out あなたの性別を入力してください 性別 (M/F) = M あなたの年齢を入力してください 年齢 (歳) = 21 あなたの身長を入力してください。 身長 (cm) = 160.5 ----------------------------------------------あなたは、性別M・年齢21歳・身長160.5cmです! % 28 変数 まとめ ○ 変数は、値を格納する ○ 変数は、名前と型を指定して宣言する ○ 変数名は、識別子を使う ○ 変数に値を代入するときは‘=’を使う ○ 変数に新しい値を代入すると、値が入れ替わる ○ キーボードから数値を入力するときは「scanf 」 ○ キーボードから文字を入力するときは 「 getchar 」 29 おわりに • さて、問題です。 1. 「%c」 「%d」 「%lf」は何型でしょうか? 2. 「printf」は何? 3. 「int」は何型の変数? メールの本文に 4. 「char」は何型の変数? 氏名と学籍番号 5. その他、質問など を記載してください 30
© Copyright 2024 ExpyDoc