プログラミング基礎 第 2 週 (4,5,6 回 ) 2011-10-07 出村公成 この資料の再配布を禁止します
予定 プログラミング入門 (45 分 ) 変数 入出力 分岐 演習 (90 分 ) タッチタイプ練習 統合開発環境 Codeblocksの使い方 教科書例題の打ち込みと実行
プログラミング入門 C 言語の簡単な例を体験 変数 入出力 分岐
プログラムの例リスト 2.1 改 #include <stdio.h> // インクルード指令 int main() // メインプログラム 必ず1 個だけ必要 { // 中括弧の間に文 ( 命令 ) を書く printf( Hello world. n ); // 文 セミコロンで終了 return 0; // メインプログラムの終わり }
#include ( インクルード ) #include < ファイル名 > ファイルを取り込む命令例 ) #include <stdio.h> stdio.hというファイルを取り込む ; は不要 参考書 p.166
参考書 p.167 stdio.h とは? 標準ヘッダファイル : 標準入出力関数を使うために必要なファイル プログラムの先頭で読み込まれるのでヘッダファイルとよぶ Standard I/O (Input/Output) の略 出力関数 printf() や入力関数 scanf() を使うために必要
プログラムの例リスト 2.1 改 #include <stdio.h> // インクルード指令 int main() // メインプログラム 必ず1 個だけ必要 { // 中括弧の間に文 ( 命令 ) を書く printf( Hello world. n ); // 文 セミコロンで終了 return 0; // メインプログラムの終わり }
Main( メイン ) プログラム P166 プログラムの本体 C 言語に必ず 1 個だけ必要 中括弧の間に文 ( 命令 ) を書く プログラムはメインプログラムの先頭行から実行される メインプログラムが問題なく終わるときは 0 を返す決まり return 0;
p43 printf 文 文字を表示するための命令 使い方 : printf( 松島や ); // ダブルクォーテーションで括る printf( 松島や n ); // 改行は n printf( t 松島や ); // タブ (Tab) は t Tab は文字の開始位置を揃えるためにコンピュータの世界で良く使われている (P37)
P35 読みやすいプログラムを書くために 1 行に 1 文だけ記述されている 段付け ( 自下げ ) がされている {} で囲まれた範囲を一定量ずらしてタブで文字の開始の位置をそろえる
#include <stdio.h> int main() { プログラムの例 printf( Hello world. n ); return 0; } タブ Tab ( 半角数個分のスペース ) Windows は 4 個が標準 設定により変更可能
変数 P40 変わるかもしれない数字を文字で表したもの 数学の方程式 x, y も変数 喫茶店の会計をもとめるプログラム コーヒーの値段 :300 円, 500 円, 1000 円かも ジュースの値段 :250 円, コーヒーの注文の数 :1 杯,2 杯, ジュースの注文の数 :1 杯,2 杯, 計算式 ( コーヒーの値段 ) ( コーヒーの注文の数 ) +( ジュースの値段 ) ( ジュースの注文の数 )
変数 喫茶店の会計 コーヒーの値段 : coffee_price ジュースの値段 : juice_price コーヒーの注文の数 : coffee_no ジュースの注文の数 : juice_no 合計金額 sum を求める式 coffee_price * coffee_no + juice_price * juice_no; C 言語では掛け算の記号は * ( アスタリスク )
C 言語で書いてみよう #include <stdio.h> int main() { int money, juice_price, juice_no; // 変数には宣言が必要 int coffee_price = 250; // 宣言と値の代入を同時にする int coffee_no = 2; // 変数の初期化 juice_price = 200; // 代入は= 右辺から左辺へ juice_no = 1; sum = coffee_price * coffee_no // 乗算の記号は * + juice_price * juice_no; // 上の行の続き printf( 合計金額 =%d n, sum); // 合計金額の表示 return 0; }
変数を使うためには 1. 変数を宣言する 2. 変数に値を代入する
変数の宣言 P40 文法 1. < 変数の型 > < 変数の名前 >; 2. < 変数の型 > < 変数の名前 1>, < 変数の名前 2>; 3. < 変数の型 > < 変数の名前 > = < 初期値 >; 例 1. int i; 2. int i, j; 3. int coffee_price = 200, sum = 0;
変数の型 変数の種類を表す 整数を表す : int 実数を表す : float, double 文字を表す : char
変数への代入 =( 代入演算子 ) を使う 数学の = とは違う coffee_price = 250; =の右辺から左辺に値が代入される 変数 coffee_priceに250が代入される 値が代入されてからでないと変数は使えない
C 言語で書いてみよう #include <stdio.h> int main() { int sum, juice_price, juice_no; // 変数には宣言が必要 int coffee_price = 250; /* 宣言と値の代入を同時にする */ int coffee_no = 2; // 変数の初期化 juice_price = 200; // 代入は= 右辺から左辺へ juice_no = 1; sum = coffee_price * coffee_no // 乗算の記号は * + juice_price * juice_no; // 上の行の続き printf( 合計金額 =%d n, sum); // 合計金額の表示 return 0; }
コメント ( 注釈 ) コメント ( 注釈 )= プログラムを読みやすくするためのメモ 2 通りの書き方がある // This is a comment ( その行のみ有効 ) /* This is a comment 複数の行がコメントに This is a comment */ 対応関係が重要
p43 printf 文 文字を表示するための命令 使い方 : printf( 松島や ); printf(< 書式文字列 >, < 変数 1>); printf(< 書式文字列 >, < 変数 1>, < 変数 2>); printf(< 書式文字列 >, < 変数 1>, < 変数 2>, < 変数 3>); :
printf 文の書式文字列 ダブルクォーテーションで括る printf( Hello world n ); printf( コーヒーの個数は? ); printf( 1 行目 n2 行目 n3 行目 n ); printf( 1 列 t2 列 n10 t20 n1 t3 n );
printf 文の書式文字列 P44 変数が 1 つの例 : int sum; printf( お会計は %d です n, sum); 変数が 2 つの例 : printf( %d,%d です n, coffee_num, juice_num); 個数と順番が対応づけられなければいけない
書式文字列の中の % % で始まる文字を変数に置き換えて表示 型にあわせた記号 %d int の変数 %f float, double の変数 %d, %f の個数と変数の数を合わせる 記号と変数の型を合わせる
標準入力 scanf 文 P48 キーボードから数字や文字列の入力に使う使い方の例 scanf(< 書式文字列 >, < 変数のアドレス >); scanf(< 書式文字列 >, < 変数 1のアドレス >, < 変数 2のアドレス >); scanf(< 書式文字列 >, < 変数 1のアドレス >, < 変数 2のアドレス >, < 変数 3のアドレス >);
P49 scanf 関数 変数の前に &( アンパーサンド ) を付ける 例 : scanf( %d, &coffee_num); キーボード :100 coffee_num に 100 が入る
書式文字列の中の % 型にあわせた記号 %d int の変数 %f floatの変数 %lf double の変数 %d, %f, %lf の個数と変数の数を合わせる 記号と変数の型を合わせる 変数のアドレスが引数 & を忘れない
2.4 プログラムの流れを変える if 文と条件式 if ( 条件式 ) 文 ; もし条件式が成立したら文を実行しなさい
条件式 等しいか調べる = = if (a == b) printf( KIT n ); aとbが等しいときkitと出力する 等しくないか調べる!= if (a!= b) printf( MIT n ); aとbが等しくないときmitと出力する
int main() { int a, b, result; リスト 2.15, P55 } printf( 最初の値を入力してください ); scanf( %d, &a); printf( 次の値を入力してください ); scanf( %d, &b); // 略 if (b!= 0) result = a/b; if (b!= 0) result = a%b; // % は余り if (b!= 0) printf( %d %% %d = t%d n, a, b, result); return 0;
演習 タイピング練習 (10 分練習 ) 統合開発環境 Code::blocks の使い方
Gtypist の起動画面
Gtypist レッスンが全部で16ある 毎週 2レッスンを終えること 10/7~13: Lesson 1,2 10/14~20: Lesson 3,4 10/21~27: Lesson 5,6 10/28~11/3: Lesson 7,8 // 数字以外全部 11/4~10: Lesson 9,10 11~17: Lesson 11,12 // 記号以外全部 18~24: Lesson 13,14 // 5/28 中間タイプ 25~12/2: Lesson 15,16
練習を始めるに当たって
Code::Blocks の使い方 : 起動
新規プロジェクトの作成
プロジェクトタイトル list2-1 プロジェクトを作成するフォルダ c: myprog
ビルド 実行 ビルドして実行
文の整形 Code::Blocks の小技 プラグイン (L) Source code formatter (Astyle) 実行画面の背景色を白へ ( エコのため ) タイトル右マウスクリック プロパティ 画面の色 背景を白 文字を黒
演 習 サンプルプログラム 1 のリストを打ち込み実行する ただし 日本語は使わない
宿題 サンプルプログラム 1 のリストを打ち込み実行する タイピング Lesson 1 と 2 をマスターする 毎日 30 分 各回 30 回は練習すること