Document

プログラミング入門2
第1回
導入
情報工学科
篠埜 功
講義情報
 担当教員
 篠埜
功
 居室 豊洲校舎 14階 14K32
 E-mail: [email protected]
 講義用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
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
4
教科書、参考書
 教科書
新版明解C言語入門編,柴田望洋著, 2,310円, ソフトバンククリエイティブ
 参考書




新版明解C言語実践編, 柴田望洋著, 2,310円, ソフトバンククリエイティブ
図解C言語 ポインタの極意, 柴田望洋著, 2,520円, ソフトバンククリエイティブ
新ANSI C言語辞典, 平林雅英著, 2,300円
(推奨はしない) プログラミング言語C, カーニハン&リッチー, 共立出版
1回目
プログラミング入門2
5
講義スケジュール(予定)














導入
演算と型
分岐
繰り返し
配列
関数1
関数2,文字列
ファイル入出力
中間試験(持ち込み不可)
ポインタ1
ポインタ2
構造体
まとめの演習(総合演習課題3問)
期末試験(持ち込み不可)
1回目
プログラミング入門2
6
準備
 TeraTermを起動し、oli.shibaura-it.ac.jpへログ
イン
 2つのターミナルを使用するとよい。
 1つはemacs用 として使う
 1つはコマンド実行用として使う
1回目
プログラミング入門2
7
まずはプログラムを書いて動かしてみよう
 ディレクトリの作成 mkdir
 エディタを起動 emacs
 プログラムを記述して保存 (test.c)
 コンパイル
gcc test.c -o test
ソースファイル名
出力ファイル名(コンパイル結果を格納するファイル)
コンパイルコマンド
 実行
出力ファイル名
指定オプション
./test
注意: プログラムは半角英数字で記述する
1回目
プログラミング入門2
8
例
(1) まず、以下を中身とするファイルtest.cを作成する。
#include <stdio.h>
int main ()
{
printf(“test”);
return 0;
}
(2) コンパイル
gcc test.c –o test
(3) 実行
./test
1回目
プログラミング入門2
9
コンパイル時にエラーになった場合
 全て半角英数字で書かれているか?
 スペースも半角
 (), ””(ダブルクォーテーション)などに注意する。
 文の最後に;(セミコロン)を書き忘れていないか。
1回目
プログラミング入門2
10
コンパイル方式とインタプリタ方式
 コンパイル方式

プログラムをコンピュータが直接実行できる形(機械語)に翻訳する方
式
 インタプリタ方式

プログラムを1行ずつ解釈しながら実行する方式
コンパイル方式の方が実行速度は速い。(コンパイル時間は
かかるが)
1回目
プログラミング入門2
11
printf関数 ~ 文字列を表示する関数
printf( “test” );
のように、””の中に表示したい文字列を入れる。
改行させたい時は、改行文字\nを入れる。
printf (“test1\ntest2\n”);
などに変えてコンパイルして確認せよ。
1回目
プログラミング入門2
12
コメント
 ソースファイル中の /* と */ に挟まれた部分はコメント。
→ コンパイル時に取り除かれる。複数行に渡っていてもよい。
 プログラムを読みやすくするために適切なコメントをつける。
/* name.c
挨拶して自己紹介する プログラム
*/
#include <stdio.h>
int main (void)
{
/* 挨拶、名前を表示して、改行 */
printf ( “こんにちは。\n私の名前は篠埜です。\n” );
return 0;
}
1回目
プログラミング入門2
13
注意
 コメントの中にコメントを書くことはCでは許されていない。
/* name.c
挨拶して自己紹介する プログラム
/* test */
*/
#include <stdio.h>
int main (void)
{
/* 挨拶、名前を表示して、改行 */
printf ( “こんにちは。\n私の名前は篠埜です。\n” );
return 0;
}
上記のようにコメントの中にコメントを書くと
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
変数の値を表示するプログラム
ファイル名: hensuu1.c
/* 2つの整数値を変数を使って表示するプログラム */
#include <stdio.h>
int main(void)
{
int x;
int y;
x = 80 ;
y = 65 ;
int型変数 x, y の宣言
変数の宣言はブロックの先頭(中括弧
の直後)で行う。
変数に整数値データを代入
printf( “変数 x に入っているデータは%dです。\n”, x );
printf( “変数 y に入っているデータは%dです。\n”, y );
表示
return 0;
}
1回目
プログラミング入門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
キーボードからのデータ入力と表示 ~ 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
21
今日の課題(第1回)
1.
printf関数を用いて、
・自分の名前
・出身地
・趣味
を表示するプログラムを作成せよ。(kadai1-1.c)
(プログラム中に直接書いてよい。)
2. 数学、英語、国語の3科目の点数をキーボードから入力し、その
合計点を表示するプログラムを作成せよ。(kadai1-2.c)
1回目
プログラミング入門2
22