Download presentation
Presentation is loading. Please wait.
Published byAugust Jacobs Modified 約 5 年前
1
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語
2
計算の方法の図 取り出し型 分割型
3
変数(variable) 値を覚えておく”もの”(変数には型がある) -代入(assignment) 変数に値を設定する操作, ”変数名” ← ”式” で表す a:変数とする a a+b a:=a+b a=a+b など (a:=a+1 は等式ではなく、代入を表す。)
4
条件判断 if (条件C) then (A) endif 条件Cが成立すればAを実行する。そうでなければ何もせず次に進む (b) if (条件C) then (A) else (B) endif 条件Cが成立すればAを実行する。そうでなければ、Bを実行し、次に進む
5
(b) if-then-else 文 (a) if-then 文 if 条件が成立するか? then 実行文を実行する
YES NO if 条件が成立するか? YES NO then 実行文1を 実行する else 実行文2を 実行する
6
x=あなたの体重(kg); y=あなたの身長(cm); if ( x> ((y-100)×0.9) then print( 太りすぎです) endif then print( 太りすぎです) else print (正常です)
7
While 文の例 2 のk 乗がはじめて 以上になる k を求める i, k: integer; i=2; k=0; while(j<10000) do i:=2i; k=k+1; end
8
i < 10000 ? while(i<10000) i = 2i, k=k+1 (2) 繰り返し(while文)
No Yes i = 2i, k=k+1 k を出力する
9
手続き型の例 例: 正の整数a, b,a/b の商q,余りr を求める 計算の手順 計算の記述 r ← a q ← 0
引いた回数を商,残りを余りとする 計算の記述 r ← a q ← 0 while r ≧ b do r ← r - b q ← q + 1 done
10
A 添え字付き変数(配列) A[8] : 文字 と定義すると A[3] の値は 1 A[8] の値は L 1 2 3 4 5 6 7 8
A P x % r H A L A[3] の値は 1 A[8] の値は L
11
例 与えられた列を小さい順に並べかえる問題
(ソーティング)での逐次的アルゴリズム ---バブルソート (ソーティング)での再帰的アルゴリズム --- Quick Sort
12
プログラム QuickSort(w); (wは数の配列)
wの列中から任意にひとつ要素aを選ぶ; wを順に見ていって、a以外の要素について、 a より小さいものはw1 の列に、 a より大きいものは w2 の列に付け加えていって列 w1, w2 を作る。 4. Sort を使って、 w1’=Sort(w1), w2’=Sort(w2) としてw1, w2 の並べ替えを行う 5. w=w1+a+w2 を答えとして出力する。
13
Sortの実行例 5 6 7 8 7 3 6 8 2 1 4 2 1
14
プログラム プログラム(program) プログラム言語(programming language) 計算を記述したもの
コンピュータを使った問題解決における活動単位 一般に,人間には読み書き不可能 プログラム言語(programming language) プログラムを記述するための約束事をまとめたもの 人工的に作られた言語(人工言語) 人間にも読み書き可能
15
プログラム言語 プログラムを記述するための種々の約束事 "内容"の集まり "表記法"の集まり ある内容のことがらを表すための表記法の集まり
変数への代入(←) 条件付き処理(if ... then ... else ... endif) 反復処理(while ... do ... done) "内容"の集まり 意味(semantics) "表記法"の集まり 構文(syntax)
16
機械語とプログラム言語処理系 機械語(machine language) バイナリ(binary)プログラム 言語処理系
すべて2進数か,決まった長さのビットパターン バイナリ(binary)プログラム 機械語で書かれたプログラム コンピュータ(ハードウェア)が理解,実行できる 言語処理系 "プログラム言語で書かれたプログラム" を "バイナリプログラム"に変換(翻訳)するシステム
17
アセンブリ言語とアセンブラ アセンブリ言語 アセンブラ(assembler)
機械語の機能部分や,データの場所に人間が読めるような名前(ニーモニック)をつけた言語 アセンブラ(assembler) "アセンブリ言語で書かれたプログラム" を "バイナリプログラム"に変換(翻訳)するシステム 最も初期から使われてきた言語処理系
18
高水準言語 高水準言語 人間が理解しやすい形でプログラムを読み書きできる言語 コンパイラを使ってバイナリプログラムに変換する
高水準言語の例: C言語,C++言語, LISP, COBOL, Prolog, Java, Pascal
19
コンパイラとインタプリタ コンパイラ(compiler) インタプリタ
プログラム言語で書かれたプログラム(ソース)を機械語(オブジェクト)に変換(翻訳)するソフトウェア インタプリタ プログラム言語で書かれたプログラム(ソース)を解釈(interpret)してその意味通りの実行を行うソフトウェア
20
2. インタープリター方式 高級言語で書かれたプログラムを1行ずつ解釈しながら実行する 3.中間言語方式 JAVA
21
(c)高級言語(ふつうのプログラミング言語のこと)
1.高水準言語(コンパイラ方式) ソースプログラム (文法上の誤りをチェック) バイナリプログラム コンパイラ オブジェクトプログラム I/Oなどのライブラリ
22
Javaの実行過程 Java のソースプログラム クラスファイル(中間言語) インタプリタA インタプリタB インタプリタC
クラスファイル(中間言語) インタプリタA インタプリタB インタプリタC 機械 A 機械B 機械C
23
高水準言語の実行のされ方 高水準言語プログラム コンパイラ 中間言語 プログラム インタプリタ プログラム コンパイラ 仮想機械 プログラム
バイナリプログラム コンピュータハードウェア
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.