cプログラミング演習1(再 - sirai's page

40
C演習1() 講義では、Cプログラミングの基本を学び 演習では、やや実践的なプログラミングを通して学ぶ 1

Upload: others

Post on 17-Mar-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Cプログラミング演習1(再)

講義では、Cプログラミングの基本を学び

演習では、やや実践的なプログラミングを通して学ぶ

1

成績評価方法

2

•シラバスに準ずる, ただし、、、• 演習O→試験X : 演習も不合格。来年も宜しく。。。※演習が受かって試験に落ちるはずがない

• 演習X →試験X : 来年も宜しく。。。

•付帯事項• 出席回数

• 講義回数の2/3以上を満たした場合のみ,期末試験の受験資格あり

• 複製時のペナルティ• 即,不合格の判定あり得る

はじめに

プログラミング言語も「言語」である

君は英語が話せるだろうか?

ウェブを使えば、言いたいことを英語に翻訳してくれる

それを話せば良い?

それでは「話せる」ことにはならない

3

はじめに(続)

ウェブを使えば知りたいことは出てくるけれども、「使いこな

す」(きちんと話せる)ためには、以下のものが「自分の頭」の

中に入っていないとダメ:

基本的な単語

文法

言語の慣習

段取り(どのように言えば伝わりやすいか)

4

Cも「言語」である

そして、Cを使いこなせることが君に期待されている(少なくとも、『自分は理工系だ』と言えるためには…)

「ウェブ上にあるプログラム」や「他の人が書いたプログラム」をコピーしたのでは、自分の頭を使ったことにはならない

Cを使いこなせるようになるには、次が必要:自分の頭で考え、手を使ってプログラムを打ち込み、

コンピュータを動かしてコンパイル(ビルド)し、

エラーが出たらその理由を考え、プログラムを実行し、

結果を確認する (変な結果が出たらもう一度考えなおし)

5

現状把握

何も見ないで次の答を紙に書いてください

できたら提出すること

課題1 :

Hello, world!

と表示するCプログラムを作れ

え、簡単すぎる?

でも、これが基本なので、まずやってみましょう

参考: Pythonという言語ではprint “Hello, world!”でできます

プログラミング言語によって得意不得意がありますいろいろな言語が使えると便利です

(講義に出ていた人はやったばかりなのでできるはずですよね)

6

課題2.

課題1ができたら、

コメントをつけよう

コメントとはなんだっけ?

どう書くのだっけ?

できたら提出すること

7

Inetentionallyblank page

8

課題4. コンピュータを使いましょう

課題1のプログラムを「打ち込んで」 hello.cというファイルを作れ。

それをコンパイル(ビルド)し、

エラーが出たら修正し(どのようなエラーが出たかを記録すること)

できた実行ファイルを走らせ、

その結果を確かめよう使うコンパイラ(プログラム開発環境)は自由ですVisual studio でも、bcc32でも cygwinのgccでも、好きなものを使ってください

9

それではやってみよう

秀丸エディタやTeraPadを使って打ち込む絶対にWord や メモ帳、ワードパッドを使ってはいけない

入力が終わったら、HドライブのCEXフォルダに hello.c として保存Hドライブでコマンドプロンプトを開くbcc32 hello.cを実行し、デバッグの後hello.exe を入力して実行させる

10

本講義では bcc32 というコンパイラを使用する。それに従った説明を行う

ただ Visual Studio を使うのを禁止するものではない

Hドライブでコマンドプロンプトを開く

1. Hドライブを表示させる

(白井のフォルダーを例にする)

2. ファイルパスにマウスをもっていき、右クリック

3. 『アドレスの編集』を左クリック

4. 青地のラインにcmdと入力しエンターキーを押す

11

コマンドプロンプトにおいて1. bcc32 hello.c

と入力(エンターキーを押す)

2. hello.exe ができていたら

hello.exe と入力(エンターキーを押す)

12

プログラミングの手順と道具•プログラミング実行手順

いま君たちが行ったように…(1) エディタを用いてプログラムを書く。書かれたものを「ソース・コード」、もしくは単に「ソース」と呼ぶ

ソースコードのファイルの拡張子は .c を用いる(2) コンパイラを用いてソースから「実行プログラム」を生成する。実行プログラムの拡張子はWindowsの場合 .exe となるこのとき、ヘッダファイルの読み込みなども行われる

(3)「実行プログラム」を実行するWindowsではコマンドプロンプトで実行プログラムファイル

の名前を入力し、エンターキーをおす

13

標準入出力

今述べたプログラミングの手順では、

実行プログラムの実行結果の「出力」は

コマンドプロンプト画面に行われる

これを「標準出力」(standard output)という

注: プログラムによって標準出力を変更することは可能

実行プログラムへの「入力」も

コマンドプロンプト上でキーボードから行われる

これを「標準入力」(standard input)という

注: プログラムによって標準入力を変更することは可能14

標準出力への関数 printf

この定義はあなたのソースコードにはない。

それでは、この定義はどこにあるか?

答えは、 #include <stdio.h>

このコードは、stdio.hというファイルを取り込め、というものstdio.hファイルには、標準入出力(standard input output)についての関数や定数が定義されている

だから、ソースコードで printfが使える! (教科書p.45)

15

標準出力への関数 printf (続き)

printf関数の書き方:printf( 書式 ); 例: printf(“こんにちは”);printf( 書式, 変数や式の並び);

例: printf(“%d + %d = %d¥n”, x, y, x+y);

書式は文字列で与える---文字列は“と“で挟まれた文字の並び

変換指示子(p.15):

%d (整数), %f (浮動小数点数), %s (文字列), %c (文字),…

エスケープ記号(p.9):

¥n (改行)、¥t (タブ), ¥b (後退), ¥r (復帰), …

16

キーボード(標準入力)からの入力

例題:以下のように実行するCプログラムを書く(青字は入力):

お名前は?白井

こんにちは、白井さん

このようなプログラムを書くには、ユーザー:キーボードから「白井」と打ち込むコンピュータ:打ち込まれた文字列を「記憶」し、それを出力に使うことが必要

17

ユーザーからの入力(続)

例題 以下のように実行するCプログラムを書け(青字は入力):

お名前は?白井

こんにちは、白井さん

コンピュータ:打ち込まれた文字列を「記憶」し、それを出力に使うには、(1)「文字列を記憶するための変数宣言」、

(2)打ち込まれた文字列を記憶するための関数呼出(3)記憶された文字列を表示するための関数呼出し

が必要

18

ユーザーからの入力(続)例題 以下のように実行するCプログラムを書け(青字は入力):

お名前は?白井

こんにちは、白井さん

コンピュータ:打ち込まれた文字列を「記憶」し、それを出力に使うには、(1)「文字列を記憶するための変数宣言」

(2)打ち込まれた文字列を記憶するための関数呼出

(3)記憶された文字列を表示するための関数呼出し

char str[100]; // 100文字分記憶できる場所(配列) str

scanf("%s", str); // 配列strに入力文字列を記憶

printf("こんにちは、%s さん ¥n", str); // 配列strに記憶された文字列を表示

19

キーボードからの入力プログラム

#include <stdiu.h>

int main(vuid) {

char str[100]; // 100文字分記憶できる場所(配列)

printf("お名前は?");

scanf("%s", str); // 配列strに入力文字列を記憶

printf("こんにちは、%s さん ¥n", str);

// 配列strに記憶された文字列を表示

return 0;

}

20

キーボード(標準入力)からの入力(2)

例題:以下のように実行するCプログラムを書く(青字は入力):

身長は(m単位で)? 1.7

体重は(kg単位で)? 70.5

BMIは 24.4

21

今のプログラム作成に必要なことがら

22

コンピュータ:打ち込まれた文字列を「記憶」し、それを出力に使う

には、(1)「浮動小数点数を記憶するための変数宣言」

fluat x, y; // 小数を記憶するための変数x,yを用意

(2)打ち込まれた文字列を記憶するための関数呼出

scanf("%f", &x); //入力された数をxに記憶

(3)記憶された文字列を表示するための関数呼出し

printf("%f¥n“, y/(x*x));

課題5以下のように実行するCプログラムを書け(青字は入力):お名前は?白井身長は(m単位で)? 1.65体重は(kg単位で)? 70白井さんのBMIは 25.7

ただし青字の部分は、自分の名前(例:田中)、身長と体重も自分の身長と体重の値を入力し、BMIの計算は

BMI = 体重 / (身長*身長)で計算した結果を表示するようにしよう

23

プログラムができたら…

コンパイルし、実行してみましょう。

#include <stdio.h>

#define SIZE 100

int main(void) {char s[SIZE];printf("お名前は? ");scanf("%s",s);printf("こんにちは、%s さん¥n",s);return 0;

}

(1)「文字列を記憶するための変数宣言」

(2)打ち込まれた文字列を記憶するための関数呼出

(3)記憶された文字列を表示するための関数呼出し

24

課題 63個の整数を読み込み、その合計を表示するプログラムを書け。

実行例(青字は入力):

1 > 12

2 > 35

3 > -20

合計は 27

25

課題 7

(1) 今日出てきた

printf

scanf

の機能(何をするものか)と特徴(どのような引数を取るか)を書け

(2) 繰り返し文 for と while について調べておくこと(p.31-36)

(3)条件文 if と else について調べておく(p.23-28)

26

宿題

それぞれの課題に対し

作業した内容

作成したファイル(ソースファイルのみ)

実行結果(エラーのあるなしも含めて)

をMANABOに報告する

27

Inetentionallyblank page

28

Borland Cによるコンパイル・実行

1. Tera Padや秀丸エディタでプログラムを書く

2. そのプログラムを適当なフォルダ(例: H:C2015 )に置く---ファイル名を test.cと仮定する

3. H:C2015フォルダを表示して Shift-右クリックで「コマンドウィンドウをここで開く」を選択

4. コマンドプロンプト画面で bcc32 test.cと入力

⇒ Borland Cコンパイラにより test.exe ができる

⇒エラーメッセージが表示され、test.exe ができない場合は1へ

5. test.exe を入力するとプログラムが実行される

29

開発環境の準備

• スタートメニューから以下の枠内のメニューを探す

30

開発環境の準備

31

•プロジェクトの作成

開発環境の準備

•プロジェクトの作成(別方法)

32

開発環境の準備

•開発内容の選択•プロジェクト名の記述

33

開発環境の準備

•ウィザードに従って設定

34

開発環境の準備

•空のプロジェクトにチェックして完了

35

開発環境の準備

•枠内アイコンを右クリック

36

開発環境の準備

•ソースファイルの準備

37

開発環境の準備

•ファイルの種類の選択,名前の決定

38

開発環境の準備

•準備完了画面

39

開発環境の準備

•プロジェクトの保存

40