プログラミング入門2 第1回 導入 情報工学科 篠埜 功
講義情報 担当教員 篠埜 功 居室 豊洲校舎 14階 14K32 E-mail: sasano@sic.shibaura-it.ac.jp 講義用web page http://www.sic.shibaura-it.ac.jp/~sasano/lecture/lecture.html ここへ毎回講義用資料を置く。 時間・場所 月曜日 3~4限 大学会館2階 実習室 12:50-13:10はホームルームの時間とする。 第8回 11/16(月) 3限 中間試験 第15回 1/18(月) 3限 期末試験 1回目 プログラミング入門2
本講義の目的 現在世界で広く用いられているC言語に触れる → C言語を知っていればJava, C#等、Cの影響を受けている言語の理解に役立つ。 C言語を通して、プログラミングをする際に必要な考え方を身につける 1回目 プログラミング入門2
講義情報 授業の進め方 評価方法 内容説明(3限) 内容説明(3限) 演習問題(4限) ---第12回までは毎回2問ずつ出題する(1問0.5点)。できた人はTAに見てもらう。次の回までに解くこととするが、それより遅れて提出しても期限内と同等の扱いとする。 第13回、14回は総合演習とし、3問出題する(1問1点)。 演習の合計得点は14点。(端数が出た場合は切り上げる。) 演習問題の解答の締め切りは第14回の終了時(16:20)とする。これ以降は受け付けない。 評価方法 授業時の演習 (14点) 中間試験 (36点) 期末試験 (50点) 出欠、遅刻は記録するが、得点には算入しない。 1回目 プログラミング入門2
教科書、参考書 教科書 参考書 新版明解C言語入門編,柴田望洋著, 2,310円, ソフトバンククリエイティブ 新版明解C言語実践編, 柴田望洋著, 2,310円, ソフトバンククリエイティブ 図解C言語 ポインタの極意, 柴田望洋著, 2,520円, ソフトバンククリエイティブ 新ANSI C言語辞典, 平林雅英著, 2,300円 (推奨はしない) プログラミング言語C, カーニハン&リッチー, 共立出版 1回目 プログラミング入門2
講義スケジュール(予定) 導入 演算と型 分岐 繰り返し 配列 関数1 関数2,文字列 ファイル入出力 中間試験(持ち込み不可) ポインタ1 ポインタ2 構造体 まとめの演習(総合演習課題3問) 期末試験(持ち込み不可) 1回目 プログラミング入門2
TeraTermを起動し、oli.shibaura-it.ac.jpへログイン 2つのターミナルを使用するとよい。 準備 TeraTermを起動し、oli.shibaura-it.ac.jpへログイン 2つのターミナルを使用するとよい。 1つはemacs用 として使う 1つはコマンド実行用として使う 1回目 プログラミング入門2
注意: プログラムは半角英数字で記述する まずはプログラムを書いて動かしてみよう ディレクトリの作成 mkdir エディタを起動 emacs プログラムを記述して保存 (test.c) コンパイル gcc test.c -o test 実行 ./test ソースファイル名 出力ファイル名(コンパイル結果を格納するファイル) コンパイルコマンド 出力ファイル名 指定オプション 注意: プログラムは半角英数字で記述する 1回目 プログラミング入門2
例 (1) まず、以下を中身とするファイルtest.cを作成する。 #include <stdio.h> int main () { printf(“test”); return 0; } コンパイル gcc test.c –o test (3) 実行 ./test 1回目 プログラミング入門2
コンパイル時にエラーになった場合 全て半角英数字で書かれているか? スペースも半角 (), ””(ダブルクォーテーション)などに注意する。 (), ””(ダブルクォーテーション)などに注意する。 文の最後に;(セミコロン)を書き忘れていないか。 1回目 プログラミング入門2
コンパイル方式とインタプリタ方式 コンパイル方式 インタプリタ方式 コンパイル方式の方が実行速度は速い。(コンパイル時間はかかるが) プログラムをコンピュータが直接実行できる形(機械語)に翻訳する方式 インタプリタ方式 プログラムを1行ずつ解釈しながら実行する方式 コンパイル方式の方が実行速度は速い。(コンパイル時間はかかるが) 1回目 プログラミング入門2
printf関数 ~ 文字列を表示する関数 printf( “test” ); のように、””の中に表示したい文字列を入れる。 printf (“test1\ntest2\n”); などに変えてコンパイルして確認せよ。 1回目 プログラミング入門2
コメント ソースファイル中の /* と */ に挟まれた部分はコメント。 → コンパイル時に取り除かれる。複数行に渡っていてもよい。 ソースファイル中の /* と */ に挟まれた部分はコメント。 → コンパイル時に取り除かれる。複数行に渡っていてもよい。 プログラムを読みやすくするために適切なコメントをつける。 /* name.c 挨拶して自己紹介する プログラム */ #include <stdio.h> int main (void) { /* 挨拶、名前を表示して、改行 */ printf ( “こんにちは。\n私の名前は篠埜です。\n” ); return 0; } 1回目 プログラミング入門2
注意 コメントの中にコメントを書くことはCでは許されていない。 /* name.c 挨拶して自己紹介する プログラム /* test */ #include <stdio.h> int main (void) { /* 挨拶、名前を表示して、改行 */ printf ( “こんにちは。\n私の名前は篠埜です。\n” ); return 0; } 上記のようにコメントの中にコメントを書くと 3行目までがコメントとなり、コンパイル時にエラーになる。 1回目 プログラミング入門2
数字(計算結果)の表示 /* 2つの整数の和を計算して表示するプログラム */ #include <stdio.h> 2つの整数の和を計算して、その値を表示するプログラム /* 2つの整数の和を計算して表示するプログラム */ #include <stdio.h> int main (void) { printf( “15と37の和は%dです。\n”, 15 + 37); return 0; } 早速書いて実行してみよう! 1回目 プログラミング入門2
int x; 変数 変数とは、数値などのデータを 格納するための箱である (数値などのデータを格納する場所に名前を付ける) 57 X 計算の途中結果を保持しておくために変数を用いる。 変数とは、数値などのデータを 格納するための箱である (数値などのデータを格納する場所に名前を付ける) 57 整数値 変数は使用前に宣言しなければならない。 変数xは、整数値を入れることのできる int 型の箱である。 int x; X 変数の名前 (わかりやすい名前をつける) 型名 整数の場合、int (イント: integer の略) 1回目 プログラミング入門2
変数の値を表示するプログラム ファイル名: hensuu1.c int型変数 x, y の宣言 int x; /* 2つの整数値を変数を使って表示するプログラム */ #include <stdio.h> int main(void) { return 0; } int型変数 x, y の宣言 変数の宣言はブロックの先頭(中括弧の直後)で行う。 int x; int y; x = 80 ; y = 65 ; 変数に整数値データを代入 printf( “変数 x に入っているデータは%dです。\n”, x ); printf( “変数 y に入っているデータは%dです。\n”, y ); 表示 1回目 プログラミング入門2
int x ; x = 50 ; 代入 代入 50 X 代入演算子: 右辺の値を左辺に代入する 代入演算子: 右辺の値を左辺に代入する 注: 「xと50が等しい」という意味ではない。 代入 50 整数値 X xという箱に50を入れる。 1回目 プログラミング入門2
点数の合計を計算して表示するプログラム /* tensuu.c 2科目の点数の合計を表示するプログラム */ 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
キーボードからのデータ入力 実行時にキーボードから点数を入力したい場合、 scanf関数を用いる。 前のプログラム : 点数のデータをプログラム中で記述。 → 点数の値を変更するたびにコンパイルして実行する必要がある。 実行時にキーボードから点数を入力したい場合、 scanf関数を用いる。 1回目 プログラミング入門2
キーボードからのデータ入力と表示 ~ scanf 関数 /* twice.c キーボードから値を入力し、2倍した値を表示するプログラム */ #include <stdio.h> int main (void) { int x; printf( “整数を入力してください: ”); scanf (“%d”, &x); printf(“その数の2倍は%dです。\n”, 2*x); return 0; } 1回目 プログラミング入門2
今日の課題(第1回) printf関数を用いて、 ・自分の名前 ・出身地 ・趣味 を表示するプログラムを作成せよ。(kadai1-1.c) ・自分の名前 ・出身地 ・趣味 を表示するプログラムを作成せよ。(kadai1-1.c) (プログラム中に直接書いてよい。) 2. 数学、英語、国語の3科目の点数をキーボードから入力し、その合計点を表示するプログラムを作成せよ。(kadai1-2.c) 1回目 プログラミング入門2