Presentation is loading. Please wait.

Presentation is loading. Please wait.

プログラミング言語入門 2013 (C言語 初級) 演習期間 担当 参考資料 採点 10/24 - 1/23 (全10回) 松澤,鈴木,児玉

Similar presentations


Presentation on theme: "プログラミング言語入門 2013 (C言語 初級) 演習期間 担当 参考資料 採点 10/24 - 1/23 (全10回) 松澤,鈴木,児玉"— Presentation transcript:

1 プログラミング言語入門 2013 (C言語 初級) 演習期間 担当 参考資料 採点 10/24 - 1/23 (全10回) 松澤,鈴木,児玉
採点 課題のレポートにより評価

2 諸注意事項 2年生,3年生は,週5時間の演習で ほぼプログラミング言語の演習を行います
疑問点,質問などがあれば近くのTAまたは教員に 遠慮なく聞いてください 補習,補講などはありません

3 プログラミングができると・・ 計算機(コンピュータ)の資源を自由に扱える
自分の意のままに動作させることが可能 人手では難しい(面倒臭い)処理をプログラムすることで簡単に結果を得ることができる 複雑な計算を一括で行う 面倒な入力を一括で入力させる 自分の理論が正しいことを証明するための実験を行う

4 本演習のコンセプト 専門学校の演習と比べて 数学を基礎としたプログラミングの概念や構造を学ぶ
小手先(表面上)のテクニックを覚える演習ではない 演習終了後即3Dプログラムやゲームの開発ができるわけではない 必要に応じた技術を柔軟に吸収できる下地を作る プログラミングを通じて計算機の仕組みを詳細に理解する メモリの使われ方などは特に強く意識できるようになる

5 プログラミング言語の種類 論理型言語 関数型言語 手続き型言語 プログラムとは、関係の記述である プログラムとは、計算式である
Prolog, GHC, KL1 関数型言語 プログラムとは、計算式である ML, OCaml, Haskell, LISP 手続き型言語 プログラムとは、命令の並びである C(C++), Java, Pascal, Perl, Fortran, PHP, Python

6 プログラミングとは 手続き型の例 計算機(コンピュータ)に処理させる命令書を記述する 変数Xを使用します 変数Yを使用します
YにXを5倍した値を代入してください Yの値を画面に出力してください

7 プログラムの実行 計算機(コンピュータ)に処理させる命令書を記述する 命令書 上司 作業員

8 プログラムの実行 命令書 上司 作業員 しかし、この2人は得意な言語が異なると想定してみよう

9 プログラムの実行 命令書(フランス語で記述) 上司(フランス人) 作業員(日本人) さて、困った

10 プログラムの実行 1つ目の解決策:あらかじめ翻訳をした命令書を用意する 上司(フランス人) 命令書 (フランス語) 命令書 (日本語)
作業員(日本人) 1つ目の解決策:あらかじめ翻訳をした命令書を用意する

11 プログラムの実行 命令書(フランス語で記述) 上司(フランス人) 作業員(日本人) 2つ目の解決策:作業時に自力で翻訳して作業を行う

12 プログラムの実行 プログラム プログラマ 計算機(コンピュータ) この上司と作業員の関係は, プログラマと計算機の関係にも当てはまる

13 前提として記述される自然言語(主に英語)よりの言語
プログラムの実行 プログラマ (得意言語は自然言語) 計算機 (得意言語は機械語) プログラム プログラム言語とは、機械語に翻訳されることを 前提として記述される自然言語(主に英語)よりの言語

14 プログラムの実行 このように事前に翻訳しておく言語をコンパイラ言語と呼び, プログラミング言語で記述された文書を機械語に翻訳する
プログラマ 計算機 プログラム (ソースコード) 機械語 バイナリコード このように事前に翻訳しておく言語をコンパイラ言語と呼び, プログラミング言語で記述された文書を機械語に翻訳する プログラムをコンパイラと呼ぶ (C言語はコンパイラ言語)

15 プログラムの実行 プログラマ 計算機 プログラム 計算機が実行時に翻訳しながら実行する言語を インタプリタ言語と呼ぶ

16 コンパイラ言語とインタプリタ言語の比較 コンパイラ言語 インタプリタ言語 処理(実行速度)が速い
実行前に必ずコンパイル作業が入るため,開発効率は良くない C(C++), Java インタプリタ言語 実行時に逐次機械語に変換して処理するため,実行速度は遅い 記述して即実行できるため,開発効率は良い Perl, PHP

17 自然言語とプログラミング言語の違い プログラミング言語は,自然言語に比べて,正確性と完全性を 求められる度合いが非常に高い
何通りもの解釈の仕方(曖昧な表現)が存在するプログラム言語仕様はない 文法を間違えれば計算機は処理できない 自然言語に比べれば,使用できる単語(命令)や文法は極僅かである

18 C言語 手続き型言語である コンパイラ言語である 命令列は基本的には左から右,上から下へ逐次実行される
命令の最後には 「; 」セミコロンを書く 命令列のまとまりを関数として定義する プログラムの開始点はmain()という関数で与える

19 C言語のソースファイル 関数A 命令(最後に ; ) ~~ ; ~~ ; 関数B ~~ ; ~~ ; 関数main (最初に実行される関数) ~~ ; ~~ ;

20 計算機(コンピュータ)の簡単な仕組み CPU (Central Processing Unit) 命令 (足し算を行う) データ (整数4)
(整数15) CPUの演算には  加減乗除 算  ビット演算  比較  コピー などがある 4 15 19 CPUに計算させるには,メモリ上にデータを 読み書きできる領域が必要である メモリ 4+15の演算を行う HDDやキーボードからの入力等

21 メモリについて 4 15 19 … …… …… 0x x0F x13 8bit ( 1byte) =2^8=256通りなので,16進数で表記することも多い C言語では,箱の大きさも自由に指定できる ( する必要がある )

22 1年生で行うC言語 C言語初級(1年生) C言語中級(3年生) C言語上級(研究室配属後?)
OSやデバイスに依存したプログラム等の習得

23 アルゴリズムとプログラム アルゴリズム 解を得るための手順 プログラム コンピュータにアルゴリズムを指示するための 電子文書

24 アルゴリズムとプログラム アルゴリズム 1~10までの整数の和を求める問題がある アルゴリズム1 アルゴリズム2
….+10を計算する アルゴリズム2 11×5 ( (1+10)+(2+9)+(3+8)+(4+7)+(5+6) ) を計算する

25 アルゴリズムとプログラム プログラム int i = 0; i = 1+10; i = i*5; printf(“%d\n”,i);

26 C言語の予約語 asm auto break case continue const char default do double else endasm entry enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while #include #if #elif #else #endif #undef #ifdef #ifndef #line #pragma


Download ppt "プログラミング言語入門 2013 (C言語 初級) 演習期間 担当 参考資料 採点 10/24 - 1/23 (全10回) 松澤,鈴木,児玉"

Similar presentations


Ads by Google