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

Slides:



Advertisements
Similar presentations
1 B10 CPU を作る 1 日目 解説 TA 高田正法
Advertisements

プログラミング論 第八回数字の計算,整数の入出力. 本日の内容 前回の課題(続き) 前回の課題(続き) 数字の計算をする 数字の計算をする – 加減乗除を行う – インクリメント演算子とデクリメン ト演算子.
2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
オブジェクト指向 言語 論 知能情報学部 新田直也. 講義概要  私の研究室: 13 号館 2 階 (13-206)  講義資料について :  参考図書 : 河西朝雄 : 「原理がわかる プログラムの法則」,
アルゴリズムとデータ構造 第2回 線形リスト(復習).
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
Java I 第2回 (4/18)
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
FORTRAN 科学技術計算用 数値演算精度を重視したシステム K=0 DO 10 I=0,N,1 K=K+I 10 CONTINUE
プログラミングパラダイム さまざまな計算のモデルにもとづく、 プログラミングの方法論 手続き型 関数型 オブジェクト指向 代数 幾何.
データ構造とアルゴリズム 第10回 mallocとfree
数値計算及び実習 第3回 プログラミングの基礎(1).
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
基礎プログラミングおよび演習 第9回
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
オブジェクト指向言語論 知能情報学部 新田直也.
プログラミング基礎I(再) 山元進.
第2回ネットワークプログラミング 中村 修.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
プログラミング言語論 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第一回 知能情報学部 新田直也.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
第7回 条件による繰り返し.
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
【プログラミング応用】 必修2単位 通年 30週 授業形態:演習.
§3.3 プログラミング 第10回 今日の目標 高級言語のプログラムを実行するまでの過程を示せる インタープリタの仕組みを説明できる
プログラミング言語入門 手続き型言語としてのJava
情報処理Ⅱ 第2回 2007年10月15日(月).
プログラミング 4 記憶の割り付け.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング演習I 2003年5月7日(第4回) 木村巌.
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
第7回 条件による繰り返し.
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
情報処理Ⅱ 第2回:2003年10月14日(火).
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
プログラミング演習I 2004年5月19日(第5回) 理学部数学科・木村巌.
情報処理Ⅱ 第1回 2004年10月5日(火).
C言語 はじめに 2016年 吉田研究室.
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
プログラミング演習I 2003年4月30日(第3回) 木村巌.
補講:アルゴリズムと漸近的評価.
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語 1.
情報処理Ⅱ 第2回 2005年10月14日(金).
情報処理Ⅱ 第2回 2006年10月13日(金).
アルゴリズムとデータ構造1 2009年6月15日
ネットワーク・プログラミング Cプログラミングの基礎.
情報処理Ⅱ 2005年10月28日(金).
第2回 Webサーバ.
標準入出力、変数、演算子、エスケープシーケンス
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
コンパイラ 2012年10月11日
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
アルゴリズムとデータ構造 2010年6月17日
オブジェクト指向言語論 第一回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
情報処理Ⅱ 第2回 2004年10月12日(火).
第3回簡単なデータの入出力.
情報処理Ⅱ 2005年11月25日(金).
printf・scanf・変数・四則演算
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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