100
8プログラムとは何か 情報処理演習 (テキスト:第1章,第2章)

プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

第8回

プログラムとは何か

情報処理演習

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

Page 2: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

今日の内容

1. プログラム(program)

2. プログラミング言語

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

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

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

6. Xcode統合環境の使い方

7. 今日の練習

Page 3: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

1. プログラム(program)

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

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

先生 主催者 人間

運動会のプログラム

コンサートのプログラム

計算機のプログラム

生徒・父兄 入場者 計算機

Page 4: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

2. プログラミング言語

人間 自然言語

コンピュータ 機械語

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

他にも Basic,C++,

Javaなどがある.

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

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

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

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

Page 5: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

手続き型言語

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

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

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

関数型言語

計算式を定義する言語

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

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

LISP言語,Scheme言語など

Page 6: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

コンパイラ方式

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

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

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

一般に,実行速度は速い

インタプリタ方式

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

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

一般に,実行速度は遅い

Page 7: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

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

手続き型言語のひとつ

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

Page 8: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

計算機プログラムとは?

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

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

計算の要素

数値演算,

選択,

反復,

入出力,

記憶(変数),

順序付け,

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

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

if (Ice代 > 400円) {

高すぎる!

} else {

手頃な値段!

}

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

Page 9: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

プログラム

記述形式

アルゴリズム

Page 10: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

人間の労力を省くため

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

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

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

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

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

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

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

Page 11: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

#include <stdio.h>

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

// insert code here...

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

return 0;

}

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

記号 読み 意味

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

, カンマ 記号の区切り

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

空白 語の区切り

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

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

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

Page 12: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

main 関数

前のページの例では,

#include <stdio.h>

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

// insert code here...

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

return 0;

}

ここが main 関数

この行から実行

Page 13: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

プログラムの流れ

“Hello, world”と表示

printf("Hello, world¥n");

main関数

printf関数

開始

終了

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

Page 14: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

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

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

ヘッダファイル

stdio.h 入出力

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

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

他にも

Page 15: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

プリプロセス

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

#include <stdio.h>

#define MAX 512

stdio.h の内容を読み込む

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

Page 16: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

書式付出力関数 printf

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

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

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

¥n 改行

エスケープシーケンス

(画面に表示されない)

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

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

¥t 水平タブ

¥r 復帰

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

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

Page 17: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

6. Xcode統合環境の使い方

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

Page 18: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

7. 今日の練習問題

Level 問題

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

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

B

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

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

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

Page 19: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Xcodeを使った

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

情報処理演習

(テキスト:付録)

Page 20: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

プロジェクトの新規作成

既存プロジェクトを開く

Step 1

C言語

ソースファイルの編集

ビルドと実行

Step 2 Step 3

Page 21: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

既存プロジェクトを開く

C言語

ソースファイルの編集

ビルドと実行

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

Step 1

Page 22: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Xcodeの起動

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

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

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

Macintosh HD → Developer → Applications → Xcode

Macintosh HD

Developer

Applications

Page 23: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Xcodeの起動後のウィンドウ

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

これは使用しない

Page 24: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

新規プロジェクトの作成

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

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

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

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

Xcodeであることを確認

▼にする

Page 25: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

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

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

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

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

これが最も簡単

Page 26: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

プロジェクト名の入力

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

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

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

戻る

Page 27: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

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

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

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

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

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

実行可能ファイル

Page 28: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

C言語

ソースファイルの編集

ビルドと実行

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

既存プロジェクトを開く

Step 1

Page 29: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

既存プロジェクトを開く

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

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

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

Page 30: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

既存プロジェクトを開く

ビルドと実行

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

Step 1

C言語

ソースファイルの編集

Step 2

Page 31: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

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

main.c

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

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

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

Page 32: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

C言語のソースファイル

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

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

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

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

Page 33: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

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

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

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

Page 34: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

既存プロジェクトを開く

プロジェクトの新規作成

Step 1

C言語

ソースファイルの編集

Step 2

ビルドと実行

Step 3

Page 35: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

プログラムのビルド

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

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

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

ここをクリックする

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

Page 36: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

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

Page 37: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

プログラムのビルド

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

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

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

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

ここをクリックする

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

Page 38: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

プログラムの実行

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

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

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

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

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

Page 39: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

実行結果の表示

メッセージが表示される

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

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

Page 40: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

ビルドして実行

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

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

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

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

メッセージが表示される

Page 41: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

ターミナルを閉じる

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

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

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

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

終了を選ぶ

Page 42: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Xcode統合環境の終了

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

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

Xcodeであることを確認

「Xcodeを終了」を選択

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

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

Page 43: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Xcode

C 2 �

Page 44: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Step �

C

Step 2� Step 3�

Page 45: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Step 3��

Step �

Step 3

Step

C

Step 2�

Page 46: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

��

��

��

�� � � �

Page 47: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

�� 2 �

Page 48: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Step �

C

Step 2�

Step

C

Step 2

Step 3�

Page 49: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

��

��

���

Page 50: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

��

�� �

�� �

��

��

��

��

��

�� �

�� �

�� �

�� �

Page 51: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

syntax error �

��

��

�� � �

error: syntax error before 'scanf'

•� scanf

•�

Page 52: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

��

��

��

��

��

��

��

��

��

��

��

��

��

��

Page 53: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Page 54: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

undeclared �

Page 55: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Page 56: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Page 57: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

�� �

���

�� �

�� �

�� �

�� ��

�� …

� .

� � � � � �

Page 58: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Page 59: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

��

��

��

��

��

�� 1

��

�� �

Page 60: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Page 61: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Page 62: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

1 �

Page 63: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

��

Page 64: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

�� Input

two integers :

�� scanf

Page 65: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

scanf �

•� a

a

•� b

•� a

•� b �

Page 66: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

�� a 1

��

�� b 2 �

1 2 �

Page 67: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

•� b

b

•� 2 scanf �

Page 68: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

•�

•�

Page 69: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

��

��

�� �

Page 70: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Xcodeの起動

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

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

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

Page 71: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Xcodeの起動

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

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

用しない

Page 72: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

Page 73: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

「Developer」をクリック

次は,「Applications」をクリック

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

Page 74: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

次は,「Xcode」をクリック

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

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

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

Page 75: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

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

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

でない場合

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

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

Page 76: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

「Xcode」に変わる

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

Page 77: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

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

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

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

Page 78: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

でない場合

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

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

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

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

Page 79: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

「Xcode」に変わる

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

プロジェクトの新規作成

Page 80: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

プロジェクトの新規作成

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

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

Page 81: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

プロジェクトの新規作成

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

プロジェクトの新規作成

Page 82: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

プロジェクトの新規作成

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

プロジェクトの新規作成

Page 83: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

「Standard Tool」を選択

プロジェクトの新規作成

「次へ」をクリック

プロジェクトの新規作成

Page 84: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

プロジェクトの新規作成

「完了」をクリック

プロジェクトの新規作成

Page 85: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

プロジェクトの新規作成

プロジェクト名を確認

プロジェクトの新規作成

Page 86: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

プロジェクトの新規作成

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

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

プロジェクトの新規作成

Page 87: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

プロジェクトの新規作成

「選択」をクリック

プロジェクトの新規作成

Page 88: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

「完了」をクリック

プロジェクトの新規作成

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

Page 89: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

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

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

Page 90: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

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

Page 91: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

エディタが開く

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

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

えて使う

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

Page 92: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

ビルドと実行

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

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

ビルドと実行

Step 3

Step 4

Xcodeの起動Step 1

Page 93: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

ビルドと実行

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

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

いてくる)

ビルドと実行

Page 94: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

メッセージを確認する

ビルドと実行

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

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

ビルドと実行

Page 95: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

ビルドと実行

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

ビルドと実行

Page 96: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

実行結果を確認する

ビルドと実行

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

ビルドと実行

Page 97: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

Page 98: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

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

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

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

Page 99: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

Xcodeの終了

Xcodeの終了

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

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

Page 100: プログラムとは何か - 九州大学(KYUSHU ...ocw.kyushu-u.ac.jp/menu/faculty/20/7/8.pdf · 1. プログラム(program) どのようなことを行うのかを前もって書き記したもの

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

選択

Xcodeの終了