スライド 1

Similar documents
char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

PowerPoint プレゼンテーション

プログラミング実習I

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Microsoft Word - 3new.doc

Microsoft PowerPoint - 説明2_演算と型(C_guide2)【2015新教材対応確認済み】.pptx

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

プログラミング基礎

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

プログラミング基礎

kiso2-09.key

物質工学科 田中晋

講習No.1

gengo1-2

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

PowerPoint プレゼンテーション

Microsoft PowerPoint - 説明3_if文switch文(C_guide3)【2015新教材対応確認済み】.pptx

ゲームエンジンの構成要素

Microsoft PowerPoint - class04.ppt

PowerPoint Presentation

Microsoft PowerPoint - lec4.ppt

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

PowerPoint Presentation

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

ポインタ変数

計算機プログラミング

1. 関数 scanf() 関数 printf() は変数の値を画面に表示しますが それに対し関数 scanf() はキーボードで入力した値を変数に代入します この関数を活用することで対話式 ( ユーザーの操作に応じて処理を行う ) プログラムを作ることができるようになります 整数の和

ポインタ変数

Microsoft PowerPoint - C4(反復for).ppt

Microsoft PowerPoint - program.ppt [互換モード]

C プログラミング 1( 再 ) 第 4 回 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 1

ポインタ変数

Microsoft Word - no103.docx

PowerPoint Presentation

Prog1_6th

System.out.println("char : " + (int)character.min_value + "~" + (int)character.max_value); System.out.println("float : " + Float.MIN_VALUE + "~" + Flo

Microsoft PowerPoint - 4.pptx

第2回講義:まとめ

Microsoft Word - no11.docx

Microsoft Word - Cプログラミング演習(1)_2012

Microsoft PowerPoint - kougi2.ppt

Microsoft PowerPoint - Prog05.ppt

講習No.9

プログラミング基礎

Report#2.docx

JavaプログラミングⅠ

Report#2.docx

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

Cプログラミング1(再) 第2回

講習No.10

1. 入力した文字列を得る 1.1. 関数 scanf() を使う まずは関数 scanf() を使ったプログラムを作ってみましょう 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: #include<stdio.h> #define SIZE 128 main(

ポインタ変数

プログラミング入門1

Java講座

Microsoft PowerPoint - 3.pptx

kiso2-03.key

Microsoft PowerPoint - C_Programming(3).pptx

Microsoft Word - no02.doc

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

gengo1-8

PowerPoint プレゼンテーション

プログラミング基礎

関数の動作 / printhw(); 7 printf(" n"); printhw(); printf("############ n"); 4 printhw(); 5 関数の作り方 ( 関数名 ) 戻り値 ( 後述 ) void である. 関数名 (

JavaプログラミングⅠ

Microsoft Word - Cプログラミング演習(3)

Microsoft PowerPoint - prog04.ppt

講習No.8

初歩のC言語ターミナル_2014_May.pages

プログラミングA

Microsoft PowerPoint - 3.ppt [互換モード]

新・明解C言語で学ぶアルゴリズムとデータ構造

Microsoft Word - no202.docx

Taro-ファイル処理(公開版).jtd

演習課題No12

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

Microsoft PowerPoint - 11.ppt [互換モード]

JavaプログラミングⅠ

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

fuga scanf("%lf%*c",&fuga); 改行文字を読み捨てる 10 進数の整数 おまじない取り込んだ値を代入する変数 scanf( %d%*c,&hoge); キーボードから取り込め という命令 1: scanf 1 1: int double scanf %d %lf printf

Microsoft PowerPoint - å®�æ−•è©¦é¨fi3ㆮ対ç�Œ.pptx

情報処理演習 B8クラス

Microsoft PowerPoint - CproNt02.ppt [互換モード]

sinfI2005_VBA.doc

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(C 言語 ) サンプル問題 知識科目 第 1 問 (

Microsoft PowerPoint - C1(演算と変数).ppt

Taro-ポインタ変数Ⅰ(公開版).j

JavaプログラミングⅠ

プログラミングI 第2回 数理物理,総合理学等向け

Microsoft PowerPoint - 11.pptx

Microsoft PowerPoint - 4.ppt [互換モード]

Microsoft PowerPoint - CproNt05.ppt [互換モード]

謗域・ュ逕ィppt

文字列 2 前回の授業ではコンピュータ内部での文字の取り扱い 文字型の変数 文字型変数への代入方法などを学習した 今回は 前回に引き続き 文字処理を学習する 内容は 標準入出力 ( キーボード ディスプレイ ) での文字処理 文字のファイル処理 文字を取り扱うライブラリ関数である 標準入出力 Lin

02: 変数と標準入出力

PowerPoint プレゼンテーション

<4D F736F F F696E74202D2097D58FB089E6919C8B5A8F708A E B8CDD8AB B83685D>

プログラミング実習I

Microsoft PowerPoint - prog03.ppt

Transcription:

プログラミング 第 3 週 静岡大学工学部機械工学科知能 材料コースロボット 計測情報分野臼杵深光電 精密コース光ナノバイオ分野居波渉

講義の前に 講義資料や演習課題 LiveCampusよりダウンロード可能 成績評価期末試験および課題により行う. 評価の配分は, おおむね試験 90%, 課題 10% である. 再試験期末試験で40 点以上 60 点未満の場合, 再試験となる. 2 月 26 日 ( 火 ),2 月 27 日 ( 水 )

計算機室の席配置 学籍番号 席番号 学籍番号 席番号 学籍番号 席番号 50810001 3 50810031 33 50810061 63 50810002 4 50810032 34 50810062 64 50810003 5 50810033 35 50810063 65 50810004 6 50810034 36 50810064 66 50810005 7 50810035 37 50810065 67 50810006 8 50810036 38 50810066 68 50810007 9 50810037 39 50810067 69 50810008 10 50810038 40 50810068 70 50810009 11 50810039 41 50810069 71 50810010 12 50810040 42 50810070 72 50810011 13 50810041 43 50810071 73 50810012 14 50810042 44 50810072 74 50810013 15 50810043 45 50810073 75 50810014 16 50810044 46 50810074 76 50810015 17 50810045 47 50810076 77 50810016 18 50810046 48 50810077 78 50810017 19 50810047 49 50810078 79 50810018 20 50810048 50 50810079 80 50810019 21 50810049 51 50810080 81 50810020 22 50810050 52 50810081 82 50810021 23 50810051 53 50810082 83 50810022 24 50810052 54 50810083 84 50810023 25 50810053 55 50810084 85 50810024 26 50810054 56 50710067 86 50810025 27 50810055 57 50710080 87 50810026 28 50810056 58 50610162 88 50810027 29 50810057 59 50710702 89 50810028 30 50810058 60 50710704 90 50810029 31 50810059 61 50810030 32 50810060 62

講義アウトライン C 言語の基礎 前回までの復習と課題解説 for 文 (p. 79) printf(), scanf() (p. 18, 112; p. 106, 116) データ型 (int, float, double) printf(), scanf() の変換文字列と用例 if 文 (p. 76) 関係演算子 (p. 57)

復習 : プログラムの標準形 p. 19 小さなプログラムの標準形 用例 #include <stdio.h> int main(void) { return 0; ( ここに必要な計算の記述をおこなう )

復習 : プログラムの標準形 p. 19 小さなプログラムの標準形 用例 #include <stdio.h> ヘッダファイルの読み込み 最初に実行される関数 int main(void) { 関数に渡すデータがない return 0; ( ここに必要な計算の記述をおこなう ) 終了時に 0 の値を OS に返す 字下げ, 空白類文字 全角の空白はエラー 行の最後に全角の空白が入らないように注意する

復習 : 変数名 p-26 変数名は自由に決めることができるが 名前に用いることのできる文字は決っている それは次の通り A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 _ ( 下線 ) 変数名は英文字または _( 下線 ) で始まらなければならない 名前の長さは先頭から31 文字まで識別される 予約語を使ってはいけないが 予約語を含む名前はよい 用例 int main(void) { p. 27 int i; int j; /* 整数を保持する変数 i,jを宣言 */ i = 3; /* 変数 iに3をセット */ j = i; /* 変数 jにiの値をセット */ return 0;

復習 : 変数宣言と代入演算子 変数と代入演算子 説明 変数とは 値を保存しておく箱のようなもので与えられた数値を保持する 変数は型を宣言してから用いなければならない 型はその変数がどのような種類の値を持つかを区別する int は整数の型を意味する 他にはchar( 文字 ) double ( 小数 ) などがある 変数の宣言の書式は以下のようになる 変数の型変数名 ; ex) int i; 変数に値をセットするには = を用いる = を代入演算子という = 記号の左側に値がセットされる変数名 右側に入れる値を指定する 変数名 = 値 ; p. 61 p. 23, p. 36

復習 :for 文 for 文教科書 P-79 説明 forは指定回数の繰り返しを行うための文 for( 初期化式 ; 継続条件式 ; 再設定式 ) { 文 処理に入る前に まず 初期値を設定 する For ループ p. 79 その後 継続条件式 が成り立つ間 文を繰り返し実行する 文の実行後 再設定式 に従って変数を変化させる

復習 :for 文の用例 : その 1 用例 int i; for(i=0; i<3; i++) { /* i が 0 から 2 まで 1 ずつ変化 */ printf("hello n"); インクリメント演算子デクリメント演算子 p. 59 i++; /* i の値を 1 だけ増やす i=i+1 と同じ */ i は 0 1 2 と変化し printf() が 3 回実行される

復習 :for 文の用例 : その 2 #include<stdio.h> int main(void) { int i, s; s=0; /* sに初期値を代入 */ for(i=1; i<=5; i++){ s=s+i; printf( sum=%d n,s); return 0; 回数 s i s+i for 0 1 0 1 1 2 1 2 3 3 3 3 6 4 6 4 10 5 10 5 15 i は 1 2 3 4 5 と変化し s=s+i; が 5 回実行される s=0; は必ず必要初期化しないと s の値は不定

復習 : for 文による反復処理 for 文教科書 P-79 もっともよく用いられる制御文 指定回数の繰り返し 繰り返し処理をループ (loop: 輪 ) for( 初期値設定 ; 継続条件 ; 増分 ) int i, s; s=0; for(i=1; i<=10; i++){ s=s+i; 初期値設定 i=1 継続条件 i<=10 増分 i++; /* i=i+1; と同じ意味 */

間違い探し 1. for( i=0 ; i<10; i+2 ) { 2. for( i=0 ; i<10; i++ ); {

答え 1. for( i=0 ; i<10; i+2 i=i+2 ) { 2. for( i=0 ; i<10; i++ ); 要らない {

課題 2 5 番 11 から 39 までの奇数の和を計算 #include <stdio.h> int main(void){ int i, s; s=0; for(i=11; i<=39; i=i+2){ s=s+i; printf("sum=%d n", s); return 0; 2 つずつ i を増加する奇数のみの和 出力は 375

p. 106, p. 116, p. 235 復習 : scanf() scanf() 関数 説明 scanf_s() キーボードからの入力を受け付け変数にその値をセットする プログラムの実行がこの行に達するとプログラムは一端そこで停止し キーボードからの入力待ち状態になる 用例 int n; /* 整数型の変数 n の宣言 */ scanf("%d",&n); /* キーボードから入力された整数を n という */ /* 変数にセットする */ 変換仕様 p. 117

教科書 p-116 復習 : scanf() の変換文字列 %d 10 進数を読む : int 型変数を読む 用例 int n; /* int 型の変数 n の宣言 */ scanf("%d",&n); /* キーボードから入力された整数を n という */ /* 変数にセットする */

復習 : 算術演算子 その 1(+ -*/) 説明 p-56 演算子 説明 例 + 正符号 a = +b; - 負符号 a = -b; + 加算 ( 足し算 ) a = b + c; - 減算 ( 引き算 ) a = b c; * 乗算 ( かけ算 ) a = b * c; / 除算 ( 割り算 ) a = b / c; % 余り a = b % c; 算術演算子は数値を計算する 結果として数値を得る 整数除算を行うと余 りは切り捨てられる また整数に対して % 演算子を使うと余りを求めること ができる 0 で除算すると結果は不定になる

復習 : 算術演算子 その 1(+ -*/) 用例 int a, b, c; double d, e, f; b = 5; c = 3; e = 5.0; f = 3.0; a = b + c; /* a = 8 */ a = b - c; /* a = 2 */ a = b * c; /* a = 15 */ a = b / c; /* a = 1 */ d = e / f; /* d = 1.6666 */ a = b % c; /* a = 2 */

課題 2 6 番 #include <stdio.h> int main(void){ int a, b; scanf("%d", &a); b=a*a; printf("a*a=%d n", b); b=a*a*a; printf("a*a*a=%d n", b); return 0; 次のようにしてもよい printf("a*a=%d n", a*a); printf("a*a*a=%d n", a*a*a);

課題 2 7 番 #include <stdio.h> int main(void){ int a, b, c; scanf("%d%d", &a, &b); c=a*b; printf("a*b=%d n", c); return 0; 2 つの整数値を読み込む a*b= 値 の形で出力する

変数 - その 2( 実数 ) p-36 説明 p-36 データ ( 数値 ) を記憶しておく箱を変数と言う 変数は使用する前に保持するデータの型を指定して宣言しなければならない すでに整数を保存するデータ型として int を学んだが 実数 ( 小数 ) を保存するデータ型として float double というデータ型がある C 言語では小数のデータ型のことを 浮動小数点型 と呼んでいる floatとdoubleの違いは小数を保存するサイズで doubleの方がより多くの桁数を保持できる 絶対的なサイズ ( 何桁までデータを保持するか ) は処理系に依存する 用例 float x; /* float 型の変数 x を宣言する */ double y; /* double 型の変数 x を宣言する */ x = 0.05f; /* 変数に値を代入する */ y = 3.5; /* 変数に値を代入する */

データ型 変数と代入演算子 説明 変数の型変数名 ; ex) int i; データ型バイト幅 表現範囲 p. 23, p. 36 p. 37 char int float double 1 4 4 8-128 127-2,147,483,648 2,147,483,647 10の-37 乗から10の38 乗 有効 6 桁 10の-307 乗から10の308 乗 有効 15 桁 整数値のオーバーフロー 丸め誤差に注意 p. 41

接尾語 int 定数 接尾語は不要 例 ) 567, 10 double 定数 接尾語は不要 例 ) 5.0, 123.45 float 定数 f またはF をつける例 )3.0f, 5.0F, 123.45f

printf() の変換文字列 教科書 p-112 %d 10 進数で出力する : int %f 浮動小数点数で出力する : float, double 用例 int n = 10; /* int 型の変数 n の宣言 */ printf( %d,n); /* 10 進数として出力する */ 接尾語 float f = 10.0f; /* float 型の変数 f の宣言 */ printf( %f,f); /* 浮動小数点数で出力する */ double d = 10.0; /* double 型の変数 d の宣言 */ printf( %f,d); /* 浮動小数点数で出力する */ p.117, %lf でも OK

scanf() の変換文字列 教科書 p-117 %d 10 進数を読む : int 型変数を読む %f float 型変数に実数を読む %lf double 型変数に実数を読む 用例 int n; /* int 型の変数 n の宣言 */ scanf("%d",&n); /* キーボードから入力された整数を n という */ /* 変数にセットする */ float f; /* float 型の変数 f の宣言 */ scanf( %f,&f); /* キーボードから入力された実数を f という */ /* 変数にセットする */ double d; /* double 型の変数 d の宣言 */ scanf("%lf",&d); /* キーボードから入力された整数を d という */ /* 変数にセットする */

printf(), scanf() の用例 教科書 p-117 #include <stdio.h> int main(void) { int n; float f; double d; scanf( %d,&n); printf( %d n,n); scanf( %f,&f); printf( %f n,f); scanf( %lf,&d); printf( %f n,d); return 0; %lf でも OK

if 文 : 書式 1 課題 3 の 5 実数 (double) を 2 つ読み込んで 同じか大きい数字を出力する if 文教科書 p-76 説明 if 文の基本的な動作は 条件にしたがって処理を 2 方向に分岐する 省略や多重構造にすることによって 3 つのバリエーションがある 書式 1 if ( 条件あるいは式 ){ 文 もし条件あるいは式が真 (0 以外 ) なら文を実行する 偽 (0) ならなにもしない 文が複数のときは { を用いる 用例 int i; for(i=0; i<5; ++i){ if(i == 0){ printf("a"); 等価演算子 P.57

if 文 : 書式 2 if + else if 文書式 2 if( 条件 ){ 文 1 else{ 文 2 もし条件が真 (0 以外 ) なら文 1 を実行する 偽 (0) なら文 2 を実行する 用例 int i; for(i=0; i<5; ++i){ if(i == 0){ printf("a"); { else{ printf("b");

if 文 : 書式 3 if + else if + else if 文 書式 3 if( 条件 1){ /* もし条件 1が真なら文 1を実行する */ 文 1 else if( 条件 2){ /* そうではなく条件 2が真なら文 2を実行する */ 文 2 else if( 条件 n){ /* そうではなく条件 nが真なら文 nを実行する */ 文 n else{ 文 /* そうでなければ (0) 文を実行 */

if 文書式 3 用例 int i; for(i=0; i<5; ++i){ if(i == 0){ printf("a"); else if(i!= 4){ printf("b"); else{ printf("c"); if 文 : 書式 3 の用例

if 文 : 書式 3 の用例 if 文書式 3 用例 int i; for(i=0; i<5; ++i){ if(i == 0){ printf("a"); else if(i!= 4){ printf("b"); else{ printf("c"); 実行結果 abbbc

if 文書式 3 用例 int i; if 文 : 書式 3 の用例 for(i=0; i<5; ++i){ if(i == 0) printf("a"); else if(i!= 4) printf("b"); else printf("c"); 文が 1 つなら { を省略できる 実行結果 abbbc

if 文書式 3 用例 int i; if 文 : 書式 3 の用例 文が 1 つなら { を省略できる for(i=0; i<5; ++i){ if(i == 0) printf("a"); else if(i!= 4) printf("b"); else printf("c"); 実行結果 abbbc

関係演算子 関係演算子 p.57 説明 関係演算子は 2つのオペランド ( 演算の対象 ) の大小関係 ( どちらの数が 多いか ) や等値関係 (2つの数値が等しいか) を判定して 真偽値 ( 式が成 り立つかどうか ) を得る 2つの数の関係が正しければ1 正しくなければ 0になる 演算子 説明 例 < 小さい if(a < b) <= 小さいか等しい if(a <= b) > 大きい if(a > b) >= 大きいか等しい if(a >= b) == 等しい if(a == b)!= 等しくない if(a!= b)

まとめ C 言語の基礎 for 文 データ型 (int, float, double) 算術演算子 (+, -, *, /, %) printf(), scanf() if 文 p. 76 関係演算子 p. 57

小テスト 1.i++ と同等の文を ++ を使わないで書け 2. 次のプログラムの四角の中を埋めなさい #include <stdio.h> int main(void) { int n; float f; double d; scanf( 1,&n); printf( 2 n,n); scanf(,&f); printf( n,f); 3 scanf(,&d); printf( n,d); 5 return 0; 4 6