C言語 第3講 生物機能制御学講座 濱田 農学部7号館209室 1 本日の講義内容 • • • • お知らせ おさらい 変数 テキスト Lesson 3 アンケート 2 アンケート結果 質問および要望 1.コメントって何? 2.コンパイルして意味不明のエラーがでる! 3.コンパイルとか専門用語がわからない? 4.コーディング中にmuleに意味不明の文字がでる! 5.小数点以下を整理できるか? 6.教科書の使い方は? 3 開発の手続き プログラムの作成手順 キーワード 処理手順の流れを熟考 アルゴリズム・フローチャート 編集画面でソースコードを作成 コーディング・プログラミング ソースコードをコンパイル コンパイル (機械語へ翻訳) ソースコードのエラーを駆除 デバッグ プログラムの実行 a.out ・ エグゼ % mule prog1.c % cc prog1.c % a.out 4 本講義の第1目標 汎用性の高い計算プログラムの開発 適用例:ミハエリスーメンテン式など プログラムの処理内容 計算条件の入力 式の計算 計算結果の出力 キーワード 定数・係数・初期条件 printf 方程式・公式・四則演算 データ更新・結果表示 printf 5 文字と数値 文字と数値の型について % 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 小数 6 文字と数値 まとめ ○ ○ ○ ○ ○ ○ ○ main()関数はC言語プログラムの本体 文は処理の最小単位 コメントはプログラムのメモ書き 文字列の出力は「printf」 C言語は、文字・文字列・数値を出力 文字は「‘ ’ 」 (シングルクォーテーション) 文字列は「“ ”」 (ダブルクォーテーション) 7 変数 数値や文字などを記憶しておく箱(メモリ) 必要な理由:汎用的なプログラムを開発する りんご (数値) 1 2 3 5 7 8個ほし いなぁ 7 4 ? ? 識別子 (変数名) 記憶 (メモリ) + 2 1 3 = 6 8 7 5 4 7 6 8 ? 8 変数 識別子(変数名)をつける ○ ○ ○ ○ 記憶 (メモリ) 1 3 5 7 Address 10 20 30 40 50 識別子 BL PN OR WH GR 8 識別子は、英字・数字・‘_’ を用いて命名 予約語(main, include・・・)は無効 数字の頭文字は不可 9 大文字・小文字は区別 変数 変数のデータ型 変数に記憶できる主な値は以下の通り! データ型 名前 文字型%c char 整数型%d short int int 浮動小%f float 数点型 double 値の範囲例 英数字1文字 整数 ±32768 長整数 ±2147483648 単精度 3.4E±38 倍精度 1.7E±308 10 変数 浮動小数点型の特徴 浮動小 float 単精度 3.4E±38 数点型 double 倍精度 1.7E±308 float double : 0.1234567 E±38 : 0.123456789012345 E±308 仮数部と指数部 float は、小数点以下7桁の仮数部 doubleは、小数点以下15桁の仮数部 11 変数 以下のソースコードをコーディングし実行しよう! #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); } 12 変数 以下のソースコードをコーディングし実行しよう! #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); } 13 変数 以下のソースコードをコーディングし実行しよう! #include <stdio.h> 変数の値の入れ替え main() { int num; num = 3; printf(“最初のnum = %dです\n”,num); num = 5; printf(“次のnum = %dです\n”,num); } 14 変数 以下のソースコードをコーディングし実行しよう! #include <stdio.h> 変数の値の入れ替え main() { % a.out int num; 最初のnum = 3です num = 3; 次のnum = 5です printf(“最初のnum = %dです\n”,num); % num = 5; printf(“次のnum = %dです\n”,num); } 15 変数 以下のソースコードをコーディングしましょう! #include <stdio.h> 誤り例 main() 型の不一致による誤り { int num; % a.out num = 3.14; num= 3です printf(“num = %dです\n”,num); % } 変数は宣言した型によって記憶できる値の種類が決まる。 整数値を格納する変数に小数値を代入すると、小数点以下 16 が切り捨てられるか、コンパイルエラーとなる。 変数:キーボードからの入力 以下の「prog4.c」をコーディングし実行しよう! /* キーボードからの数値入力 */ #include <stdio.h> main() { int num; printf(“整数を入力してください\n”); printf(“num = ”); scanf(“%d”, &num); printf(“%dが入力されました\n”,num); } 17 変数:キーボードからの入力 以下の「prog4.c」をコーディングし実行しよう! /* キーボードからの数値入力 */ #include <stdio.h> main() 1.気配りです! % {cc prog4.c % a.out int num; 2.問い合わせ 整数を入力してください printf(“整数を入力してください\n”); 3.キーボード入力 printf(“num num = 5 Enter = ”); された数値を scanf(“%d”, &num); 5 が入力されました 変数に代入 % printf(“%dが入力されました\n”,num); 18 } 変数:キーボードからの入力 以下の「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); } 19 変数:キーボードからの入力 以下の「prog4.c」をコーディングし実行しよう! #include <stdio.h> % cc prog4.c 単精度浮動小数: %f main() % a.out 倍精度浮動小数: %lf { 単精度浮動小数を入力してください float f; double df; fprintf(“単精度浮動小数を入力してください\n = 5.1234 Enter f=”); scanf(“%f”, &f); 5.1234000 が入力されました printf(“%fが入力されました\n”,f); 倍精度浮動小数を入力してください printf(“倍精度浮動小数を入力してください\n df=”); df = 10.98765 Enter scanf(“%lf”, &df); 10.9876500 が入力されました printf(“%lfが入力されました\n”,df); % } 20 変数:キーボードからの入力 以下の「prog4.c」をコーディングし実行しよう! #include <stdio.h> %5.3f: 仮数部小数点以下3桁 main() 数字表示可能桁5桁以上 { float f; double df; printf(“単精度浮動小数を入力してください\n f=”); scanf(“%f”, &f); printf(“%5.3fが入力されました\n”,f); printf(“倍精度浮動小数を入力してください\n df=”); scanf(“%lf”, &df); printf(“%10.7lfが入力されました\n”,df); } 21 変数:キーボードからの入力 以下の「prog5.c」をコーディングし実行しよう! /*キーボードからの文字入力*/ #include <stdio.h> main() { char c; printf(“文字を入力してください (英数字) \n”); printf(“c = ”); c = getchar(); printf(“%cが入力されました\n”,c); } 22 変数:キーボードからの入力 以下の「prog5.c」をコーディングし実行しよう! /*キーボードからの文字入力*/ #include <stdio.h> main() 1.気配りです! % {cc prog5.c % a.out 2.問い合わせ char c; 文字を入力してください printf(“文字を入力してください (英数字) \n”); 3.キーボード入力 c = printf(“c a Enter = ”); された文字を c = getchar(); a が入力されました 変数に代入 % printf(“%cが入力されました\n”,c); 23 } 文字と数値と変数 問題 以下の出力を実行するプログラムを作成してください。 % a.out あなたの性別を入力してください printf 性別 (M/F) = M scanf あなたの年齢を入力してください getchar 年齢 (歳) = 21 あなたの身長を入力してください。 身長 (cm) = 160.5 ----------------------------------------------あなたは、性別M・年齢21歳・身長160.5cmです! % 24 変数 まとめ ○ ○ ○ ○ ○ ○ ○ 変数は、値を格納する 変数は、名前と型を指定して宣言する 変数名は、識別子を使う 変数に値を代入するときは‘=’を使う 変数に新しい値を代入すると、値が入れ替わる キーボードから数値を入力するときは「scanf 」 キーボードから文字を入力するときは「 getchar 」 25 本講義の第1目標 汎用性の高い計算プログラムの開発 適用例:ミカエリスーメンテン式など プログラムの処理内容 計算条件の入力 式の計算 計算結果の出力 キーワード 定数・係数・初期条件 printf scanf getchar 方程式・公式・四則演算 データ更新・結果表示 printf 26 次回の予定 ○ 整数または小数の四則演算 (テキスト:Lesson4) Michaelis-Menten’s Equationを 思い出しておいてください! 27 おわりに • さて、問題です。 1. 変数の型を列記してください! 2. 「getchar」は何? 3. 「scanf」は何? 4. その他、質問など 28
© Copyright 2025 ExpyDoc