プログラムはどこに保存され,どこで実行されるのか?

Slides:



Advertisements
Similar presentations
プログラミング論 第八回数字の計算,整数の入出力. 本日の内容 前回の課題(続き) 前回の課題(続き) 数字の計算をする 数字の計算をする – 加減乗除を行う – インクリメント演算子とデクリメン ト演算子.
Advertisements

変数とその種類 変数とは何か? → データ ( 数値 ) を入れておく 箱 1000 変数名とは何か? → 箱に付ける名前 xy 変数名 変数の種類 ( 変数の型 ) → 入れるデータによって箱の種類が異なる int char float double その他たくさん integer (
第 2 章 数値の入力と変数 scanf と変数をやります 第 2 章 数値の入力と変数 1. 以下のプログラムを実行してみよう  C 言語では文の最後に「 ; 」(セミコロン)が付きます 第 2 章 数値の入力と変数 2 #include int main() { int x; x = 3; printf("x.
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
応用理工学情報処理 第1回(2015年10月 5日) 月曜日担当 前島展也 Manaba
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
第2章 数値の入力と変数 scanfと変数をやります.
数値計算及び実習 第3回 プログラミングの基礎(1).
基礎プログラミングおよび演習 第9回
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
x y 復習 変数とその種類 変数名 数学の場合 未知数 「変数xに‥を代入し‥」 x = 5 x = 1.3
C言語 第2講 生物機能制御学講座 濱田 農学部7号館209室.
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
第6章 2重ループ&配列 2重ループと配列をやります.
プログラムの作成と実行.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
初年次セミナー 第2回 文字の出力.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
JAVA入門.
関数の定義.
プログラミング応用 printfと変数.
基本骨格 #include #include : int main(void) { 変数の宣言 実行すること return 0; } #include int main(void) { int i; printf(”Hello world!\n”);
プログラミング演習I 2003年5月7日(第4回) 木村巌.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
プログラムはどこに保存され,どこで実行されるのか?
C#言語ソースプログラムの原型 C言語 C#言語 Hello World! Hello Students! オマジナイ! 適当なクラス名
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
プログラミング基礎B 文字列の扱い.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
情報処理Ⅱ 第2回:2003年10月14日(火).
C言語 はじめに 2016年 吉田研究室.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング演習I 2003年4月30日(第3回) 木村巌.
復習 2次元配列 4列 j = 0 j = 1 j = 2 j = 3 i = 0 i = 1 i = 2 3行
地域情報学 C言語プログラミング 第2回 変数・配列、型変換、入力 2017年10月20日
x y 復習 変数とその種類 変数とは何か? →データ(数値)を入れておく箱 変数名 変数名とは何か?
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
第2回C言語の基本的な規則.
情報処理Ⅱ 第2回 2005年10月14日(金).
復習 if ~ 選択制御文(条件分岐) カッコが必要 true 条件 false 真(true)なら この中が aを2倍する 実行される
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
標準入出力、変数、演算子、エスケープシーケンス
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
情報処理Ⅱ 第2回 2004年10月12日(火).
第3回簡単なデータの入出力.
プログラミング入門2 第5回 配列 変数宣言、初期化について
printf・scanf・変数・四則演算
第2章 数値の入力と変数 scanfと変数をやります.
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
プログラミング演習I 補講用課題
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります 第1章 文字の表示と計算.
第1章 文字の表示と計算 printfと演算子をやります.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

プログラムはどこに保存され,どこで実行されるのか? 復習 例えば i7, ARM, Cortex-A17 ハードディスク Central Processing Unit キーボード ディスプレイ メモリ 例えば 4Gバイト プログラムは,ワープロ文章などと同様,ハードディスクなどにファイルとして保存されている. プログラムは,メモリ上に呼び出されて(→ロード)実行される.

ソースプログラム → コンパイラ → 実行プログラム(機械語) 復習 プログラムの作成 プログラムの正体 2進数の数値で現されたデータの集合.たとえば, 10011011 11111000 10011111 01010111 11110000 00010110 11111011 など.→機械語(実行プログラム) コンパイラ 人間が作成したプログラム(→ソースプログラム)を,コンピュータが理解できる機械語に変換するためのプログラムをコンパイラと呼ぶ. コンパイラによってソースプログラムから実行プログラムを作成する作業を「コンパイル」あるいは「ビルド」(MS Visual C++ コンパイラの場合)と呼ぶ. 注:実際にはこの作業には,もっと複雑な処理段階があるが,ここでは述べない. ソースプログラム → コンパイラ → 実行プログラム(機械語)

プログラミング言語 プログラミング言語の種類 復習 プログラミング言語 人間が作成するソースプログラムを規定する 人工の言語 FORTRAN,COBOL 最も古い言語 LISP,PROLOG 人工知能など BASIC,PASCAL 基礎的,学習用 C,C++,Java,C# C言語とその派生言語 Objective-C 実用的

プログラム本体内では上の行から下の行へ順に命令が実行される 大原則 プログラム本体内では上の行から下の行へ順に命令が実行される C言語ソースプログラムの原型 オマジナイ #include <stdio.h> int main(void) { printf(‟Hello World!\n‟); printf(‟Hello Japanese Students!\n‟); } 必ず必要 プログラム本体 例外 ・ ダブルクォーテーションの中 ・ コメント(後述) 必ず必要 Hello World! Hello Japanese Students! Hello World! Hello Japanese Students! 漢字変換や全角文字を使わない ソースプログラムの注意 すべて半角文字を用いる キーボードから直接入力できる文字のみを用いる 全角 ABCDEF ,.;:”’ 1234 半角 ABCDEF ,.;:" ' 1234 「メイン関数」と呼ばれる この部分の書き方は幾つかある. int main(void) OK int main() OK main() OKだが警告あり これらのいずれでも良い. intやvoidの意味については後で学習.

命令文(関数や式)の最後は, 画面に文字を出すprintf()関数 printf(‟ Hello World! \n‟); 必ずセミコロンを付ける Hello World!

\nは行を変える(改行する) \nの作用 \nがない ① ② printf(‟Hello World!‟); printf(‟Hello Japanese Students!\n‟); Hello World!Hello Japanese Students! Hello World! \nは行を変える(改行する) printf(‟ Hello World!\nHello Japanese Students!\n‟); Hello World! Hello Japanese Students! その他の\○の作用は→スライド末尾または準教科書P.235 (旧版P.203)を参照 \ = \

x y 1000 200 300 変数とその種類 変数名 数学の場合 未知数 「変数xに‥を代入し‥」 x = 5 x = 1.3 変数とは何か? →データ(数値)を入れておく箱 200 300 x y 変数名 変数名とは何か? →箱に付ける名前 変数の種類(変数の型) →入れるデータによって箱の種類が異なる int char float double ・・・その他たくさん integer (整数) floating point (浮動小数点→実数)

変数の宣言と printf()による値の表示 大原則 変数は,それを使用する前にまず宣言しなければならない. → 変数宣言 #include <stdio.h> int main(void) { int x ; x = 15; printf(‟変数の値は%dである\n‟, x); } 変数名 変数の型 変数宣言 ① ② ③ セミコロン 値の代入 (変数の使用) 変数値の表示 (変数の使用) 変数の値は15である 変数名(識別子)のルール → 変数名は1文字とは限らない.x, y, aa, xx, xy, aa1  → 本スライド末尾

ソースプログラムの書式 大原則 プログラム本体内では (i)上の行から下へ順に, (ii)行内では左から右へ 命令文が実行される OK! 基本的にどこで改行してもよいし,ブランク(スペース)はあっても無くてもよい #include<stdio.h> int main(void){ int x;x=15;printf(‟変数の値は%dである\n‟, x);} #include <stdio.h> int main(void) { int x ; x = 15; printf(‟変数の値は%dである\n‟, x); } 単語の途中で改行してはダメ! #include<stdio.h> int mai n(void) {   intx;   x=15;   pri ntf(‟変数の値は%dで ある\n‟, x); } intとxの間にスペースがないのでダメ! 単語の途中にスペースがあるのもダメ! ダブルクォーテーション内で改行するのもダメ!

変数の宣言いろいろ 複数の変数を一つの命令文で宣言 int aaa; int aa, bb; 最後はセミコロン 変数名は2文字以上でも良い 複数の変数を一つの命令文で宣言 int aaa; int aa, bb; int cc = 10 , d = 20 ; float xx = 1.5, yy = 20.3125; 最後はセミコロン 途中の区切りはコンマ 複数の変数の宣言と初期値の代入を一つの命令文で実行 複数の変数の宣言と初期値の代入を一つの命令文で実行 (float型の場合)

計算式の書き方 ○e△ ⇔ ○x10△ 指数表示 float x1, x2, y; x1 = 2e5; x2 = 20.0; y = x1 * x2 / 4.0; printf(‟答えは%fだ\n‟, y); 2e5は2x105を意味する *は乗算,/ は割り算の意味 答えは1000000.000000だ 問題 実数3.5105のプログラム中の表現で正しいのはどれか? 3.5*10e5 3.5e5 350000.0 × ○ 注意 文字eの前の数字は省略できない x = e5; × x = 1e5;○ 文字eの前に*を付けてはいけない x = 1*e5; × 解答 (B)と(C) 解説 「e5」が「105」に相当するので, 3.5*10e5 と書くと,3.510105の意味になる.

表示するべき変数(値)と%dの数が不一致 printf()関数による変数値の表示 int x = 15; printf(‟変数の値は%dで,その2倍は%dである\n‟, x, 2*x); 変数の値は15で,その2倍は30である %d は int型変数の値や式の値を整数で表示する float型変数の値を表示するには? → %f %e %g などを用いる → 詳しくは,本スライド末尾 表示するべき変数(値)が不明 表示するべき変数(値)と%dの数が不一致 printf(‟変数の値は%dで,その2倍は%dである\n‟); printf(‟変数の値は%dで,その2倍は%dである\n‟, x, 2*x, 3*x); これらはコンパイルエラーにはならないが,表示がおかしくなる

コメント: ソースプログラム中に書くメモのこと C言語におけるコメントの記述 コメント: ソースプログラム中に書くメモのこと /* から */ の間には何を書いてもコンパイラに無視される(複数行コメント) 全角文字(漢字)OK! #include <stdio.h> /* ここはコメントである  ここには何を書いても良い */ int main(void) { // これもコメントである. // 右端の行末まで何を書いても良い int x, y; x = 41; //xに41を代入する y = -56; //yにも値を入れておく printf("変数の値は%dと%f", x, y); } // から 行末までの間には何を書いてもコンパイラに無視される(1行コメント) 全角文字(漢字)OK! 優秀なプログラマはソース中にたくさんコメントを書く!

【付録】変数名(識別子)のルール 変数名は1文字以上何文字でも良い(限度はある) 変数名に使える文字 アルファベット(大文字と小文字の両方OK), 数字 _(アンダースコアと呼ばれる下線文字) 変数名はアルファベットまたはアンダースコアで始まらなければならない(数字で始まってはならない) アルファベットの大文字小文字は区別される.xとX,yとYは異なった変数 C言語の予約語(キーワードとも呼ぶ)は使えない キーワード例: for,if,int,float,double,case,while,returnなど 良い例(正しい変数名) x,yy,x12,Matsushima,kisoPro10,denki,_denki,_kougaku15 悪い例(エラーになる変数名) 31x, 00abc 数字で始まってはダメ d@te, $$a1, f(x) アンダースコア以外の記号は使えない for, int, return これらはキーワード

【付録】 変換文字(変換指定)の例 printf中で%で始まる文字には変数の値が表示される 【付録】 変換文字(変換指定)の例 printf中で%で始まる文字には変数の値が表示される 変換文字の例(詳細は教科書p.356(旧p.318)または参考書を見よ) %d 整数型(int型)の変数を10進数で表示 %o 整数型(int型)の変数を8進数で表示 %x 整数型(int型)の変数を16進数で表示 %f 実数型(浮動小数点型,float型)の変数を 小数点形式(mmm.ddddddd)で表示 %lf 実数型(浮動小数点型,double型 )の変数を %e 実数型(浮動小数点型,float型,double型 )の変数を 指数形式(m.ddddddd e ±xx)で表示 %g %fと%eの形式の内,適切なほうを自動的に選択して表示 %c char型の変数を文字で表示 %s char型の配列(ポインタ)を文字列で表示

【付録】主なエスケープシーケンス(\○文字) (拡張表記) \n 改行 \b バックスペース(一文字戻す) \t タブ \a ベル(ベルを鳴らす) \\ ¥記号 \’ シングルクォーテーション \” ダブルクォーテーション