プログラミング入門2 第1回 導入 情報工学科 篠埜 功 講義情報 担当教員 篠埜 功 居室 豊洲校舎 14階 14K32 E-mail: [email protected] 講義用web page http://www.sic.shibaura-it.ac.jp/~sasano/lecture/lecture.html ここへ毎回講義用資料を置く。 時間・場所 月曜日 3~4限 2号館PC実習室6,7,8 12:50-13:10はホームルームの時間とする。 11/21(月) 中間試験(3限のみ) 持ち込み不可 1/16(月) 期末試験(3限のみ) 持ち込み不可 1回目 プログラミング入門2 2 本講義(演習)の目的 現在世界で広く用いられているC言語に触れる。 → C言語を知っていればJava, C++,C#等、Cの影響を受けて いる言語の理解にも役立つ。 C言語を通して、プログラミングをする際に必要な考え方を身に つける。 C言語のすべてを扱うには時間が足りないので、C言語の核と なる部分のみを扱う。 扱わなかった内容は各自で教科書等を読んで補う。(他人の書 いたプログラムを読むためには、あらゆる構文に対応できる必 要がある。必要に応じて補う。) 1回目 プログラミング入門2 3 講義情報 授業の進め方 内容説明(3限) 演習課題(4限) ---第12回までは毎回、基本課題を2問ずつ出題する(1問 0.5点)。できた人はTAに確認してもらう。その日に終わらなかったら次の回に確 認してもらう。次回以降でも受け付けるが、なるべく早めに終わらせる。(中間試 験があるので、この部分は11回分で合計11点。) 基本課題が2問ともできて時間に余裕がある人は発展課題を解いてTAに確認 してもらう。 第13回は総合演習とする。出題は第12回に行う。3問出題する(1問1点、計3 点)。 演習の合計得点は14点。(端数が出た場合は切り上げる。) 演習問題の解答のTAによる確認の締め切りは第13回の終了時(16:10)とする。 これ以降は受け付けない。 評価方法 授業時の演習 (14点) 中間試験 (36点) --- 筆記試験 期末試験 (50点) --- 筆記試験 出欠、遅刻は記録するが、得点には算入しない。 1回目 プログラミング入門2 4 教科書、参考書 教科書 新版明解C言語入門編,柴田望洋著, 2,310円, ソフトバンククリエイティブ 参考書 新版明解C言語実践編, 柴田望洋著, 2,310円, ソフトバンククリエイティブ 図解C言語 ポインタの極意, 柴田望洋著, 2,520円, ソフトバンククリエイティブ 新ANSI C言語辞典, 平林雅英著, 2,300円,技術評論社(現在入手困難) (推奨はしない) プログラミング言語C, カーニハン, リッチー, 石田晴久訳, 共立出版 ISO規格書 規格番号 ISO/IEC 9899:1999 Programming languages – C (日 本規格協会から入手可能。3-4万円程度。) 1回目 プログラミング入門2 5 講義スケジュール(予定) 第1回 導入(入出力のある簡単なプログラムの実行) 第2回 型と演算、条件分岐、式の評価 第3回 複合文、繰り返し、ラベル 第4回 式文、代入式、論理演算子、ループの脱出、スキップ 第5回 配列、変数宣言、初期化 第6回 関数 第7回 基本型、文字列 第8回 中間試験(持ち込み不可) 第9回 ポインタ 第10回 構造体 第11回 動的な領域確保 第12回 種々の構文の紹介、ファイル、総合演習課題出題 第13回 総合演習 第14回 期末試験(持ち込み不可) 1回目 プログラミング入門2 6 準備 TeraTermを起動し、oli.shibaura-it.ac.jpへログ イン 1回目 プログラミング入門2 7 プログラムのコンパイル、実行の手順(例) mkdirコマンドで自分の好きなディレクトリ(1kaiなど)を作成する。 $ mkdir 1kai ($はプロンプト。各自、設定により異なる) cdコマンドでそのディレクトリへ移動 $ cd 1kai emacsコマンドでEmacsを起動 $ emacs Emacs上でファイルを開く(C-x C-fの後ファイル名(test.cなど)を入力) プログラムを記述した後、保存(C-x C-s) Emacsを終了する(C-x C-c)か、あるいは中断する(C-z) gccコマンドでコンパイル $ gcc test.c –o test 実行 $ ./test test.cを再編集する場合は、Emacsをemacsコマンドでもう一度起動す る(さきほど終了した場合)か、あるいはfgコマンドで再開させる(さきほ ど中断した場合)。 注意: プログラムは(日本語部分以外は)半角英数字で記述する 1回目 プログラミング入門2 8 例(打ち込んで実行) #include <stdio.h> int main (void) { printf(“test\n”); return 0; } 前ページの手順で、上記プログラムを実行してくださ い。 注意: C言語プログラムのファイル名は.cで終わる名前 にしてください。(gccがファイル名の拡張子部分を見る ため) 1回目 プログラミング入門2 9 コンパイル時にエラーになった場合 全て(スペースも)半角英数字で書く。 記号の書き忘れに注意する。 1回目 プログラミング入門2 10 改行について さきほどのプログラムで、1行目以外は改行をしなくてもよ い。例えば、以下のプログラムはさきほどのプログラムと 同じ意味である。 #include <stdio.h> int main (void) { printf(“test\n”); return 0;} [注意事項] #includeの行は特別で、改行が必要である。 int, main, void, printf, returnなどの途中で改行してはいけない 。 空白がある場所は自由に改行してよい(ダブルクォートの中、 #includeの行は除く)。 1回目 プログラミング入門2 11 printf関数 ~ 文字列を表示する関数 printf関数により、画面上に文字列を表示させることが できる。 printf( “test” ); のように、””の中に表示したい文字列を入れる。 改行させたい時は、改行文字\nを入れる。 printf (“test1\ntest2\n”); などに変えてコンパイルして確認せよ。 1回目 プログラミング入門2 12 コメント(打ち込んで確認) ソースファイル中の /* と */ に挟まれた部分はコメント。 → コンパイル時に取り除かれる。複数行に渡っていてもよい。 プログラムを読みやすくするために適切なコメントをつける。 ファイル名は自分で自由に考えてつけてください。 名前の部分は自分の名前に置き換えてください。 /* 挨拶して自己紹介する プログラム */ #include <stdio.h> int main (void) { /* 挨拶、名前を表示して、改行 */ printf ( “こんにちは。\n私の名前は篠埜です。\n” ); return 0; } 1回目 プログラミング入門2 13 注意 コメントの中にコメントを書くことはC言語では許されていない。 /* 挨拶して自己紹介するプログラム /* test */ */ #include <stdio.h> int main (void) { /* 挨拶、名前を表示して、改行 */ printf ( “こんにちは。\n私の名前は篠埜です。\n” ); return 0; } 上記のようにコメントの中にコメントを書くと、 1-2行目がコメントとなり、3行目で(コンパイル時に)エラーになる。 1回目 プログラミング入門2 14 数字の表示(打ち込んで実行) 2つの整数の和を計算して、その値を表示するプログラム /* 2つの整数の和を計算して表示するプログラム */ #include <stdio.h> int main (void) { printf( “15と37の和は%dです。\n”, 15 + 37); return 0; } 1回目 プログラミング入門2 15 変数 計算の途中結果を保持しておくために変数を用いる。 変数とは、数値などのデータを 格納するための箱である (数値などのデータを格納する場所に名前を付ける) 57 変数は使用前に宣言しなければならない。 整数値 int x; 変数の名前 型の名前 X 変数xは、整数値を入れることのできる int 型の箱である。 整数の場合、int (integer の略) 1回目 プログラミング入門2 16 変数の値を表示するプログラム(打ち込んで実行) /* 整数値を変数に代入し、 表示するプログラム */ #include <stdio.h> int main(void) { int x; x = 80; printf (“x=%d\n”, x); return 0; } 1回目 int型の変数 x の宣言 変数xに整数値80を代入 画面へ表示 プログラミング入門2 17 代入 int x ; x = 50 ; 代入演算子: 右辺の値を左辺に代入する 注: 「xと50が等しい」という意味ではない。 代入 50 X 整数値 xという箱に50を入れる。 1回目 プログラミング入門2 18 点数の合計を計算して表示するプログラム(打ち込んで確認) /* tensuu.c 2科目の点数の合計を表示するプログラム */ #include <stdio.h> int main (void) { int sugaku; int english; int goukei; sugaku = 90; english = 75; goukei = sugaku + english; printf (“sugaku=%d, english=%d, goukei=%d\n”, sugaku, english, goukei); return 0; } 1回目 プログラミング入門2 19 キーボードからのデータ入力 前のプログラム : 点数のデータをプログラム中で記述。 → 点数の値を変更するたびにコンパイルして実行する必要がある。 実行時にキーボードから点数を入力したい場合、 scanf関数を用いる。 1回目 プログラミング入門2 20 例(打ち込んで確認) /* twice.c キーボードから値を入力し、2倍した値を表示するプログラム */ #include <stdio.h> int main (void) { int x; printf( “整数を入力してください: ”); scanf (“%d”, &x); printf(“その数の2倍は%dです。\n”, 2*x); return 0; } 文字化けの問題がある人は文字コードをutf-8にしてください。 nkfだと-wオプションを指定。EmacsだとC-x RET f の後utf-8を入力。 1回目 プログラミング入門2 21 今日の課題(基本課題) 1. printf関数を用いて、 ・自分の名前 ・出身地 ・趣味 を表示するプログラムを作成せよ。(kadai1-1.c) (プログラム中に名前等を直接書いてよい。) 2. 数学、英語、国語の3科目の点数をキーボードから入力し、その 合計点を表示するプログラムを作成せよ。(kadai1-2.c) 1回目 プログラミング入門2 22 発展課題1 (基本課題が2問ともできた人用) 問2において、3科目の平均点(整数値)の表示も行うよ うにせよ。 ヒント:合計点を3で割ればよい。割り算は、/を用いる。 例えば、合計が200の場合、それがgoukeiという変数に 入っていると、goukei/3で66が得られる。 1回目 プログラミング入門2 23
© Copyright 2024 ExpyDoc