応用理工学情報処理 第1回(2015年10月 5日) 月曜日担当 前島展也 Manaba 月曜日担当 前島展也 連絡先 E-mail: maeshima@ims.tsukuba.ac.jp 研究室: 3F棟634号室 Manaba https://manaba.tsukuba.ac.jp の応用理工学情報処理のページ 授業のHP http://www.ims.tsukuba.ac.jp/~maeshima/joho 今回は最初にこちらを見てください。
コンピュータへのログインについて ユーザ名(ID): s+学籍番号下7桁 パスワード: 統一認証パスワード 統一認証パスワードを変更していない場合は、 TWINSの初期パスワードと同じもの
コンパイラ コンパイラ(Borland C++ & CPAD) インストール 配布資料に従いインストールしてください 使い方 配布資料、又は、講義のHP http://www.ims.tsukuba.ac.jp/~maeshima/joho にある”使い方” 参照。
シラバス 授業内容 C言語を用いたプログラミングに関して、その基礎を講義と演習により学ぶ。 教科書 新・明解C言語 入門編 (柴田望洋著)ソフトバンククリエイティブ 試験日程予定 通常の試験期間に実施予定。 成績評価規準 全クラス共通試験(期末試験)と各学期の演習課題の成績及び出席状況から 判定する。共通試験30%、演習課題評価40%、出席30%の比率とする。
C言語について 1972年開発 プログラミング言語でCの文法を引き継ぐもの多数 Cを理解すれば、それらの言語も(ある程度)理解できる UNIX(OSの一つ)を記述する目的 プログラミング言語でCの文法を引き継ぐもの多数 C++, java, など Cを理解すれば、それらの言語も(ある程度)理解できる 現在、多くのOSで利用できる。 UNIX (Linux など)には必ずプログラミング用ソフト付属。 Windowsでも利用可能 5
プログラム作成から実行まで プログラム作成 コンパイル 実行 完成 ソースファイル プログラムを格納したファイル コンパイルエラー プログラム(教科書ではソースプログラム) コンピュータに対する命令を記述したもの プログラム作成 ソースファイル プログラムを格納したファイル C言語では“なんとか”.cと名前を つける。 コンパイルエラー (文法ミス) hello.c コンパイル コンパイル ソースファイルを実行プログラムに 翻訳する作業 実行エラー (考え方の誤りなど) a.exe 実行プログラム(又は実行ファイル) ソースファイルに書かれたプログラムを、コンピュータが理解できる形式に翻訳(コンパイル)したもの 実行 完成
まずは表示を行う(printf) (教科書p.2) /* 15+37の計算結果を表示 */ #include <stdio.h> int main(void) { printf(“%d\n“, 15+37); return 0; } 必須部分(必ず覚えましょう) 基本的な命令群(printfなど)を記述 しているファイル(stdio.h)を読み込む プログラムの主な(main)部分がここから始まることを示す ここに実行したい作業や計算を記述する インデント p.2 List 1-1+改行 プログラムが正常に終了したことを示す
printf 文字列や数値を表示する命令文(関数) 文字列を表示 数値を表示 数値と文字列を同時に表示 printf(“Hello, world!”); 改行などの特殊な文字も利用可能(\n は改行) printf(“Hello, world!\n”); 数値を表示 printf(“%d\n”,15+37); %d は”ここに整数を10進法で表示します”の意味 数値と文字列を同時に表示 printf(“result= %d\n”,15+37);
関数と引数 printf = 文字列や数値を表示する関数 関数名 実引数 実引数 printf( “%d\n” , 15 + 37 ); プログラム中で関数を呼び出している箇所:関数呼び出し printf( “%d\n” , 15 + 37 ); 関数名 実引数 実引数 この場合、printfは2つの実引数を持っている。 前ページの printf(“Hello, world!”); の場合、printfは1つの実引数を持つ。
その他 注釈(/* */) セミコロン(;) プログラムを理解するために必要な情報を書き込む 文の末尾に必ずつける 注釈(/* */) プログラムを理解するために必要な情報を書き込む セミコロン(;) 文の末尾に必ずつける /* これはコメントです */ printf(“Hello!\n”); 半角英数文字で書く(入力モードに注意)。 基本的には小文字を用いて書く。 インデント(字下げ)を行って見やすくする。
書式文字列と変換指定 (p.6) #include <stdio.h> int main(void) { } printf( “15と37の和は%dです。\n“ , 15+37); return 0; } 書式文字列 p.2 List 1-1+改行 %d : 変換指定 この箇所には、”続く実引数(15+37)の計算結果を 10進数で表示せよ” という意味
printfその他 (p.8, 9) 拡張表記 文字列リテラル 書式文字列だけを実引数に すると、そこ書かれた文字列 だけ表示。 #include <stdio.h> int main(void) { printf(“こんにちは。\n私の名前は〇〇です。\n”); return 0; } 書式文字列だけを実引数に すると、そこ書かれた文字列 だけ表示。 putsと同じ (後で説明します) #include <stdio.h> int main(void) { printf(“こんにちは。\a\a\a\a\n”); return 0; } 拡張表記 \n は改行 \aは警報音(実際に音が出るかどうか は試してください) p.2 List 1-1+改行 文字列リテラル “ABC”や”こんにちは。”のように一連の 文字を二重引用符””で囲んだもの
変数 数値を保存しておくために使う int double 整数を保存 実数を保存 int i; i=10; double pi; 他にもいくつかの変数の型がありますが、また後日。
変数を使ったプログラム (p.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; } 二つの整数型変数(vx,vy)を宣言 値を代入 p. 11 List 1-8 値を出力
初期化1 (p.12) #include <stdio.h> int main(void) { int vx, vy; printf(“vxの値は%dです。\n“, vx); printf(“vyの値は%dです。\n“, vy); return 0; } 二つの整数型変数(vx,vy)を宣言 値を代入する箇所が無い 不定値が入れられる どのような値が出力されるかはシステムに依存 p. 11 List 1-8
初期化2 (p.13) #include <stdio.h> int main(void) { int vx = 57; int vy = vx+10; printf(“vxの値は%dです。\n“, vx); printf(“vyの値は%dです。\n“, vy); return 0; } 変数を宣言するときに値を入れる(初期化) p. 11 List 1-8
scanf 読み込みを行う関数 int no; scanf(“%d”, &no); キーボードから10進数を読み込み、その値をnoに格納 注意:変数に & をつける必要がある int i; scanf(“%d”, &i); &noの意味については後日学習する予定
scanf (p.14) #include <stdio.h> int main(void) { int no; printf(“整数を入力してください : “); scanf(“%d“, &no); printf(“あなたは%dと入力しましたね。\n”, no); return 0; } 整数値を読み込む p. 12 List 1-9
puts 文字列を表示する関数 puts(“二つの整数を入力してください。“); printf文を使うとほぼ同じことができる printf(“二つの整数を入力してください。\n”); printf文との違い 文字列だけを出力 \nを入れなくても最後に改行してくれる。
puts (p.16) #include <stdio.h> int main(void) { int n1, n2; puts(“二つの整数を入力してください。“); printf(“整数1 : “); scanf(“%d“, &n1); printf(“整数2 : “); scanf(“%d“, &n2); printf(“それらの和は%dです。\n”, n1+n2); return 0; } 画面に出力 (;)を二回使うと同じ行に 二つの文を記述できる p. 12 List 1-11
演習問題 scanfを使って読み込んだ3つの整数値の和を表示するプログラムを作成せよ(教科書p.17 演習1-9)。 プログラム(ソースファイル)への名前の付け方について enX-Y.c 第 X回目講義で出された演習問題の Y問目のプログラム 例: 第 1回目講義の演習問題 1問目 en01-1.c 演習問題の提出・出席確認について 授業中にプログラムが完成した方は申し出てください。プログラムの確認・出席の確認を同時に行います。完成が確認できた方は退出しても構いません。 授業終了10分前(16:20)の時点でプログラムが未完成の方も、申し出てください。出席の確認のみを行います。 授業終了までにプログラムを完成できなかった方は第2回目の授業の際に確認を行いますので、それまでに完成させておいてください。