プログラムとは何か - 九州大学(KYUSHU...

Preview:

Citation preview

第8回

プログラムとは何か

情報処理演習

(テキスト:第1章,第2章)

今日の内容

1. プログラム(program)

2. プログラミング言語

3. プログラミング言語 C

4. なぜプログラミングを学ぶのか?

5. Xcodeが自動生成するC言語のプログラム

6. Xcode統合環境の使い方

7. 今日の練習

1. プログラム(program)

どのようなことを行うのかを前もって書き記したもの

仕事の手順を指示する命令書

先生 主催者 人間

運動会のプログラム

コンサートのプログラム

計算機のプログラム

生徒・父兄 入場者 計算機

2. プログラミング言語

人間 自然言語

コンピュータ 機械語

C言語 プログラミング言語

他にも Basic,C++,

Javaなどがある.

プログラムを書くための言葉

プログラミング言語の分類

•手続き型言語と関数型言語

•コンパイラとインタプリタ

手続き型言語と関数型言語

手続き型言語

処理の手順を記述する言語

変数の値を書き換えながら実行が進む

C言語,Java言語,Pascal,FORTRANなど

関数型言語

計算式を定義する言語

定義された式を計算することで実行が進む

変数の値を書き換えるような副作用はない(少ない)

LISP言語,Scheme言語など

コンパイラ方式とインタプリタ方式

記述したプログラムをどのようにして実行するかで分類

コンパイラ方式

コンパイラは,ある言語を別の言語に変換するプログラム

ソースコードを変換して実行可能コードを生成する

実行可能コードを実行する

一般に,実行速度は速い

インタプリタ方式

インタプリタは,ソースコードを逐次解析しながら実行するプログラム

実行可能コードは生成しない

一般に,実行速度は遅い

3. プログラミング言語C

D. M. Ritchieが1970年にUNIXを記述するために作成した言語

ハードウェアを直接扱う操作も記述できる

ANSIにより規格化されており,汎用性が高い

手続き型言語のひとつ

コンパイラ方式の言語のひとつ

計算機プログラムとは?

計算機プログラムとは? ある問題を解くための計算の手順(順序)書であり,

その問題の解法の定義書である.

計算の要素

数値演算,

選択,

反復,

入出力,

記憶(変数),

順序付け,

並びに,これらの組み合わせ

Ice代 = Iceの価格× (1+0.05);

if (Ice代 > 400円) {

高すぎる!

} else {

手頃な値段!

}

2000円の予算で,5人にアイスクリームを買う

■ アルゴリズム: 実際の記述形式に拠らない解法の手順

■ プログラム: アルゴリズムを,特定の記述形式(プログラミング言語)で書き表したもの

プログラムとアルゴリズム

プログラム

記述形式

アルゴリズム

4. なぜプログラミングを学ぶのか?

人間の労力を省くため

問題解決の方法を学び計算機に仕事(計算)をさせる.

大規模計算(風力,弾道,圧力,熱量..),変換(暗号化,翻訳..)

検索(図書検索,Web検索..),分類, 通信

プログラミングに要する時間と,人間が自分自身で処理する時間とのトレードオフを考える!

人間の思考過程や計算機の仕組み,計算の手順などを理解するため

人間は,物体や事象,問題を,どのように認識し,理解し,どう考えているのか?また,問題を解決するために,何をしているのか?

計算機は,どのようにして,命令を実行しているのか?

5. Xcodeが自動生成するC言語のプログラム

#include <stdio.h>

int main(int argc, const char * argv[]) {

// insert code here...

printf("Hello, world!¥n");

return 0;

}

式の後ろにセミコロンを付けて文にする

記号 読み 意味

; セミコロン 文(一部の文)の終わり

, カンマ 記号の区切り

" ダブルクォート 文字列の開始と終了

空白 語の区切り

{ 開き中括弧 ブロックの開始

} 閉じ中括弧 ブロックの終了

コメント: 実行されない記述

プログラムの実行を開始すると,自動的に main 関数から実行される

プログラムには,必ず main 関数が書かれていなければならない

プログラムに複数の main 関数が書かれているとエラーになる

main 関数

前のページの例では,

#include <stdio.h>

int main(int argc, const char * argv[]) {

// insert code here...

printf("Hello, world!¥n");

return 0;

}

ここが main 関数

この行から実行

プログラムの流れ

“Hello, world”と表示

printf("Hello, world¥n");

main関数

printf関数

開始

終了

標準関数(ライブラリ関数)

標準関数とヘッダファイル

関数は呼び出す前に必ず定義する必要がある

標準関数(ライブラリ関数)

システムが定義している関数

定義はヘッダファイルに書いてあるので,該当するヘッダファイルを読み込む(プリプロセス)だけで使える(#include)

ヘッダファイル

stdio.h 入出力

math.h 数学関数 ctype.h 文字クラス・テスト string.h 文字関数

stdlib.h ユーティリティ関数(数値変換,メモリ割当等)

他にも

プリプロセス

プリプロセス行(#で始まる行)は,コンパイルする前に解釈され展開される.

#include <stdio.h>

#define MAX 512

stdio.h の内容を読み込む

以降,MAXを512に置き換える

書式付出力関数 printf

前もって,stdio.h を include すること

プログラム中では下のように記述

printf("表示したい文字列¥n");

¥n 改行

エスケープシーケンス

(画面に表示されない)

その他のエスケープシーケンス

引数(この内容が表示される)

¥t 水平タブ

¥r 復帰

バックスラッシュ(¥)は

option キーを押下した状態で「¥」キーを押すと入力できる

6. Xcode統合環境の使い方

別の資料にまとめているので,そちらを参照して欲しい.

7. 今日の練習問題

Level 問題

C ターミナルに「おはようございます(Good

morning)」と表示するプログラムを作成せよ

B

printf関数を4回使って「おはよう」「こんにち

は」「こんばんは」「おやすみ」を各1行で表示するプログラムを作成せよ

B 上のプログラムをprintf関数を一つだけ使って実現せよ

Xcodeを使った

入門C言語プログラミング

情報処理演習

(テキスト:付録)

プログラム実行までの手順

プロジェクトの新規作成

既存プロジェクトを開く

Step 1

C言語

ソースファイルの編集

ビルドと実行

Step 2 Step 3

プログラム実行までの手順

既存プロジェクトを開く

C言語

ソースファイルの編集

ビルドと実行

Step 2 Step 3 プロジェクトの新規作成

Step 1

Xcodeの起動

下のどちらかの方法で起動できる

1. Doc上のアイコンをクリックする

2. HDDのアイコンから辿って起動する

Macintosh HD → Developer → Applications → Xcode

Macintosh HD

Developer

Applications

Xcodeの起動後のウィンドウ

いろいろな選択肢があるウィンドウが開くが...

これは使用しない

新規プロジェクトの作成

「ファイル」メニューから「新規プロジェクト」を選択する

アシスタントのウィンドウが表示される

スクロールバーで下にスクロールさせる

「Command Line Utility」の左の三角をクリックし,その中の「Standard Tool」を選択する

Xcodeであることを確認

▼にする

Xcodeをフォアグランドジョブにするには

メニューのアップルマークの右が「Xcode」になってない場合は,下のいずれかを行うと「Xcode」になる

「Xcode」のウィンドウをクリックする

ドック上にあるXcodeのアイコンをクリックする

たとえば「Finder」となっていたら...

Finderのメニューから「Finderを隠す」を選択する

「Xcode」が現れるまで「隠す」を繰り返す

これが最も簡単

プロジェクト名の入力

プロジェクト名を尋ねてくるので,適当に名前を決めて入力する

ホームディレクトリ以外のディレクトリにプロジェクトを作成する場合は,選択ボタンをクリックし,ディレクトリを選択する

ディレクトリ名の最後にはプロジェクト名が付く

戻る

プロジェクト・ウィンドウ

プロジェクトに必要なファイルが自動的に生成され,一覧が表示される

「main.c」がソースコードを書くファイル

プロジェクトの名前のファイルは実行ファイル

実行コードはまだ生成されていないので,赤で表示されている

• ソースプログラムを書くファイル

• ダブルクリックするとエディタが起動する

プロジェクト名であることを確認

実行可能ファイル

プログラム実行までの手順

C言語

ソースファイルの編集

ビルドと実行

Step 2 Step 3 プロジェクトの新規作成

既存プロジェクトを開く

Step 1

既存プロジェクトを開く

一度作成したプロジェクトを編集するときは,このやり方で起動する

プロジェクトを保存したフォルダを開く

Xcodeのプロジェクトファイル(拡張子がxcodeproj)を開く

プログラム実行までの手順

既存プロジェクトを開く

ビルドと実行

Step 3 プロジェクトの新規作成

Step 1

C言語

ソースファイルの編集

Step 2

ソースプログラムが入っているファイルをダブルクリックして編集を開始する

C言語では,「.c」で終わる名前のファイルにソースプログラムが書かれる

エディタが起動され,別のウィンドウが開く

プロジェクト・ウィンドウ

main.c

• ソースプログラムのファイル

• 最も有名なC言語のプログラムが入っている

• ダブルクリックするとエディタが起動する

C言語のソースファイル

最初から「Hello world」のプログラムが入っている

「printf …」の行は,「メッセージを表示しなさい」という指示を表す

括弧内のダブルクォーテーションに囲まれた文字列が表示されるメッセージ

「Hello, World!」と画面に表示しなさい

ソースプログラムの入力・編集

課題のプログラムを作成する場合は,このウィンドウ内でプログラムを入力・編集する

文字の色はエディタが適切につけてくれる

文法にかなっているかをある程度判断してくれる

最初からあるプログラムは削除しても構わないが,mainと書かれている行などはそのまま使うのが便利

「// insert code here…」と書かれた行があるので,そこからソースコードを記述する

プログラム実行までの手順

既存プロジェクトを開く

プロジェクトの新規作成

Step 1

C言語

ソースファイルの編集

Step 2

ビルドと実行

Step 3

プログラムのビルド

ソースプログラムを実行可能コードに変換する

「ビルド」のアイコン(ハンマの絵)をクリックする

プログラムに誤りがなければ,「問題なく完了しました」というメッセージがウィンドウの最下部に表示される

ここをクリックする

ここにメッセージが表示される

ソースファイルなどの保存

ソースファイルが保存されていなければ,保存するかを聞いてくる

複数のソースファイルがある場合は,ここに複数のファイルが並ぶ

保存してよければ,ここをクリックする

プログラムのビルド

プロジェクト・ウィンドウからもビルドできる

「ビルド」のアイコン(ハンマの絵)をクリックする

プログラムに誤りがなければ,「問題なく完了しました」というメッセージがウィンドウの最下部に表示される

プロジェクト名のファイルが黒文字になる

ここをクリックする

ここにメッセージが表示される

プログラムの実行

プログラムの実行は,プロジェクト・ウィンドウから簡単に行える

プロジェクト名が付いたファイルをダブルクリックする

プロジェクト名が付いたファイルは実行可能コードが入っている

黒文字になっていることを確認する

プロジェクト名のファイルをダブルクリックする

ターミナルのウィンドウが開いて,実行結果が表示される

「Hello World!」と表示して,プログラムの実行が終了する

実行結果の表示

メッセージが表示される

プログラムの実行が終了したメッセージ

プログラムの終了メッセージだけしか表示されない場合は,スクロールバーを使って前の方を見ると,メッセージが現れる.

ビルドして実行

「ビルドして実行」のアイコンをクリックすると,実行可能コードに変換して,それを実行してくれる

結果を表示するウィンドウは,自動では現れない

エラーがなければ,「デバッグが正常に終了しました」というメッセージが最下部に表示される

メニューの「実行」から「コンソール」を選択すると実行結果が表示される

メッセージが表示される

ターミナルを閉じる

実行結果を表示したウィンドウを閉じる場合は,赤いボタンをクリックする

ターミナルを完全に終了させる場合は,メニューから終了を選択する

ここをクリックしただけではウィンドウが閉じるだけ

ターミナルを終了させるときには,メニューから

終了を選ぶ

Xcode統合環境の終了

ウィンドウの上部にある赤いボタンをクリックしただけでは,アプリケーションは終了しない

メニューから「Xcodeを終了」を選択して終了させる

Xcodeであることを確認

「Xcodeを終了」を選択

Xcodeでない場合: •Xcodeのウィンドウをクリックする

•Doc 上のXcode のアイコンをクリック

Xcode

C 2 �

Step �

C

Step 2� Step 3�

Step 3��

Step �

Step 3

Step

C

Step 2�

��

��

��

�� � � �

�� 2 �

Step �

C

Step 2�

Step

C

Step 2

Step 3�

��

��

���

��

�� �

�� �

��

��

��

��

��

�� �

�� �

�� �

�� �

syntax error �

��

��

�� � �

error: syntax error before 'scanf'

•� scanf

•�

��

��

��

��

��

��

��

��

��

��

��

��

��

��

undeclared �

�� �

���

�� �

�� �

�� �

�� ��

�� …

� .

� � � � � �

��

��

��

��

��

�� 1

��

�� �

1 �

��

�� Input

two integers :

�� scanf

scanf �

•� a

a

•� b

•� a

•� b �

�� a 1

��

�� b 2 �

1 2 �

•� b

b

•� 2 scanf �

•�

•�

��

��

�� �

Xcodeの起動

プロジェクトの新規作成Step 2

C言語ソースファイルの編集

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

Xcodeの起動

ドック上の Xcodeのアイコンをクリック

起動時にウインドウが開くことがある.このウインドウは使

用しない

Xcodeの起動(「 Macintosh HD」から辿る場合)

プロジェクトの新規作成Step 2

C言語ソースファイルの編集

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

Xcodeの起動(「 Macintosh HD」から辿る場合)

「Developer」をクリック

次は,「Applications」をクリック

Xcodeの起動(「 Macintosh HD」から辿る場合)

次は,「Xcode」をクリック

Xcodeの起動(「 Macintosh HD」から辿る場合)

Xcodeのフォア・グラウンド・ジョブ化

(Xcodeのウインドウのクリック)

プロジェクトの新規作成Step 2

C言語ソースファイルの編集

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

これら操作を行うには,Xcodeがフォア・グラウンド・ジョブである必要がある

Xcode を起動済みなのに,ここが「Xcode」

でない場合

Xcodeのフォア・グランド・ジョブ化

このとき Xcodeはフォア・グラウンド・ジョブになっていない

Xcodeの任意のウインドウをクリックすると・・・

Xcodeのフォア・グランド・ジョブ化

「Xcode」に変わる

Xcodeのフォア・グランド・ジョブ化

Xcodeのフォア・グラウンド・ジョブ化

(ドック上の Xcodeのアイコンをクリック)

プロジェクトの新規作成Step 2

C言語ソースファイルの編集

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

これら操作を行うには,Xcodeがフォア・グラウンド・ジョブである必要がある

Xcode を起動済みなのに,ここが「Xcode」

でない場合

Xcodeのフォア・グランド・ジョブ化

このとき Xcodeはフォア・グラウンド・ジョブになっていない

ドック上のXcodeのアイコンをクリック

Xcodeのフォア・グランド・ジョブ化

「Xcode」に変わる

Xcodeのフォア・グランド・ジョブ化

プロジェクトの新規作成

プロジェクトの新規作成Step 2

C言語ソースファイルの編集

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

プロジェクトの新規作成

「Xcode」が出ていることを確認

このとき Xcodeはフォア・グラウンド・ジョブである

「ファイル」メニューから「新規プロジェクト」を選択

プロジェクトの新規作成

「アシスタント」のウインドウが開く

プロジェクトの新規作成

スクロールバーで下にスクロールさせる

プロジェクトの新規作成

「Command Line Utility」の左の三角をクリック

プロジェクトの新規作成

「Standard Tool」を選択

プロジェクトの新規作成

「次へ」をクリック

プロジェクトの新規作成

プロジェクト名を尋ねてくる.プロジェクト名は好きな名前を付ける.(日本語でもよい)

プロジェクトの新規作成

「完了」をクリック

プロジェクトの新規作成

プロジェクトに必要なファイルが自動的に生成され,一覧が表示される

プロジェクトの新規作成

プロジェクト名を確認

プロジェクトの新規作成

プロジェクトの新規作成

(ホームディレクトリ以外のディレクトリにプロジェクトを作成したい場合)

ホームディレクトリ以外のディレクトリにプロジェクトを作成する場合は,「アシスタント」のウインドウで,「選択」をクリック

プロジェクトの新規作成

プロジェクトを作成したいディレクトリを選ぶ

プロジェクトの新規作成

「選択」をクリック

プロジェクトの新規作成

「完了」をクリック

プロジェクトの新規作成

C言語ソースファイルの編集

プロジェクトの新規作成Step 2

C言語ソースファイルの編集

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

C言語ソースファイルの編集

プロジェクト・ウインドウを使う

「main.c」が,ソースプログラムを書くファイル(ソースファイル)

C言語ソースファイルの編集

エディタを起動したいので,「main.c」をダブルクリックする

C言語ソースファイルの編集

エディタが開く

C言語ソースファイルの編集

すでにソースプログラムが書かれている.書き換

えて使う

C言語ソースファイルの編集

ビルドと実行

プロジェクトの新規作成Step 2

C言語ソースファイルの編集

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

ビルドと実行

ビルドしたいので,「ビルド」をクリック

保存したいので,「すべてを保存」をクリック(ソースファイルが保存されていなければ,保存するかを聞

いてくる)

ビルドと実行

メッセージを確認する

ビルドと実行

プロジェクト名が付いたファイルを確認.

黒色になっていれば実行できる

ビルドと実行

実行したいので,プロジェクト名が付いたファイルをダブルクリック

ビルドと実行

実行すると,ターミナル・ウインドウが開く

ビルドと実行

実行結果を確認する

ビルドと実行

ターミナルを終了させたいときは,メニューから「ターミナルを終了」を選ぶ

ビルドと実行

既存のプロジェクトを開く

既存のプロジェクトを開く

プロジェクトを保存したディレクトリを開く

Xcodeのプロジェクトファイル(拡張子がxcodeproj)をダブルクリック

既存のプロジェクトを開く

プロジェクト・ウインドウが開く

既存のプロジェクトを開く

Xcodeの終了

Xcodeの終了

「Xcode」になっていることを確認

【Xcodeがフォア・グラウンド・ジョブでない場合】実は,「Xcodeの終了」の操作をしない限り,陰でXcodeが動き続ける.まずは,次の操作で Xcode をフォア・グラウンド・ジョブ化する・ Xcodeのウィンドウをクリックする・ ドック上のXcodeのアイコンをクリック

メニューから「Xcodeを終了」を

選択

Xcodeの終了

Recommended