Microsoft PowerPoint - C_Programming(3).pptx

Similar documents
<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

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

計算機プログラミング

プログラミング基礎

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

プログラミング基礎

Microsoft PowerPoint - lec4.ppt

ポインタ変数

Microsoft PowerPoint - class04.ppt

3. 標準入出力

Microsoft PowerPoint - kougi4.ppt

Microsoft Word - 3new.doc

プログラミングA

PowerPoint プレゼンテーション

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

kiso2-06.key

プログラミングA

C¥×¥í¥°¥é¥ß¥ó¥° ÆþÌç

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

Microsoft PowerPoint - 3.pptx

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

Microsoft PowerPoint - Prog05.ppt

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

Microsoft PowerPoint - kougi2.ppt

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

Microsoft Word - no103.docx

Java講座

スライド 1

5

Microsoft Word - VBA基礎(3).docx

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

ポインタ変数

slide5.pptx

PowerPoint Presentation

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

Prog1_6th

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

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

kiso2-09.key

Microsoft PowerPoint - C4(反復for).ppt

PowerPoint プレゼンテーション

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

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

Microsoft PowerPoint - 4.pptx

ポインタ変数

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

1. if~ 1.1. 確認を促す まずは簡単な分岐プログラムを作ってみましょう 以下はそのフローチャートです 開始 charc よろしいですか? (y/n) 変数 c の値が 'y' と等しいかどうか c c='y' Yes よろしいですね No 終了 1: 2: 3: 4: 5: 6: 7: 8

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i

3-4 switch 文 switch 文は 単一の式の値によって実行する内容を決める ( 変える ) 時に用いる 例えば if 文を使って次のようなプログラムを作ったとする /* 3 で割った余りを求める */ #include <stdio.h> main() { int a, b; } pri

PowerPoint プレゼンテーション

ポインタ変数

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

プログラミング実習I

プログラミング実習I

program7app.ppt

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

cp-7. 配列

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

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

kiso2-03.key

Microsoft PowerPoint - lec10.ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog04.ppt

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

Microsoft PowerPoint - 計算機言語 第7回.ppt

CプログラミングI

情報処理演習 B8クラス

1. 入力した正の整数を降順に並べ換えて出力するプログラムを作成せよ プログラムは個別にコンパイルし make コマンドで実行すること 入力データは 50 以下とし 以下の数が混在しているとする 16 進数 : 先頭 1 文字が x または X( エックスの小文字か大文字 ) 8 進数 : 先頭 1

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

Microsoft PowerPoint - kougi7.ppt

PowerPoint プレゼンテーション

Taro-Basicの基礎・条件分岐(公

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

02: 変数と標準入出力

:30 12:00 I. I VI II. III. IV. a d V. VI

数値計算

Microsoft PowerPoint - 11.pptx

物質工学科 田中晋

Microsoft PowerPoint - ruby_instruction.ppt

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

PowerPoint プレゼンテーション

I. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* (

Taro-再帰関数Ⅲ(公開版).jtd

gengo1-2

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

Microsoft PowerPoint - guidance.ppt

データ構造

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

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

Microsoft Word - report#8.docx

ポインタ変数

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile "data.txt" #define OutFile "sorted.txt" #def

Prog1_3rd

Microsoft Word - no11.docx

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

プログラミング入門1

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

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

プログラミング入門1

Transcription:

H23 年度秋学期情報スキル活用 入門 担当 : 田中基彦 ( 工学部共通教育科 ) Email: ak_tanaka@isc.chubu.ac.jp 授業のホームページ学術情報センター > 教育支援 > 情報リテラシー 授業の日程 講義内容提出課題 連絡事項を掲載 > 定期的にアクセスして確認する

C 言語によるプログラミング (3) 制御文 繰り返し文 if, while, switch, for, goto 構文 参考文献 : Practical C Programming 第 5, 7 章 Steve Oualline (O Reilly) ( 岩谷宏訳 ソフトバンク社 )

プログラムの流れの制御 通常は : 上から順に 1 行ずつ実行していく 以下は その実行順序を変える方法 複数の文の 実行 非実行 を指定する (a) 条件に応じて 実行する しない if (b) 同じブロックを繰り返し実行 while, for (c) 条件に合致したブロックを実行 switch (d) 指定のラベルにジャンプ goto

条件 : if 文 if( 条件 ) statement ; 条件が真 ( 値が非ゼロ ) ならば 文を実行する if( score >= 90) printf ( あなたの成績は S です n ); 条件 を書くために用いる演算子 演算子 意味 < 左辺が右辺より小さい =< 左辺が右辺と等しいか小さい > 左辺が右辺より大きい >= 左辺が右辺と等しいか大きい == 左辺と右辺が等しい!= 左辺と右辺が異なる

条件 : else 文 条件が真のとき 偽のときで異なる実行 if( 条件 ) statement 1; 条件が真のとき else statement 2; 条件が偽 ( 値ゼロ ) のとき

複数の実行文があるとき その範囲を ブレース { で囲む if( score >= 90) { your_point += 1; printf( あなたの成績は S です n ); if( score >= 80 ) { if( score >=90 ) printf( あなたの成績は S です n ); else printf( あなたの成績は A です n ); この { がないと else if の対応が不明確

strcmp 関数 2つの文字列が等しければ ゼロを返す strcmp ( string1, string2 ) cf. if, while 文では 真ならば非ゼロ つまり 逆!

条件で繰り返し :while 条件が真のあいだは 実行文を実行する while( 条件 )statement 注意 ) 文の最後に ; は打たない 無限ループ while( 1 ){. if( ) break; < 値 1 は 必ず真 (true)

実習 : Fibonacci 数 Fibonacci 数とは : 前の2 項を加えて 次の項とする f n 1 + f n > f n+1 (n>2) ただし 第 1 項と第 2 項は1 問題 :100 より小さい Fibonacci 数を求め それを印刷しなさい ヒント : 繰り返しに while を用い 変数は配列を定義して格納する

/* Fibonacci 数を求める */ #include <stdio.h> #define size 100 int f[size]; int n; main(){ f[0]= 1; f[1]= 1; n= 1; while( f[n]<100 ){ printf("f[%d]= %d n", n, f[n]); n= n+1; f[n]= f[n 1] + f[n 2]; return 0;

break 文 ここでループを終了する という合図 終了条件の発生が予め予想できないとき 出口を指示 #include <stdio.h> int line[100]; int item; main(){ fgets (line, sizeof(line), stdin); sscanf ( line, %d, &item); /* 整数なので %d を使う */ if( item == 0 ) break; /* 入力が尽きたとき終了 */ ここに様々な実行文 return 0;

break 文の例 Q: 以下のプログラムは 実行が終了しない なぜか? char line[30]; int item, total=0; while( 1 ){ fgets(line, sizeof(line), stdin); sscanf( line, %d, &item); if( item = 0 ) break; total += item;

実習 キーボードから入力された点数を 以下の表に従い評価して それを画面に表示しなさい 点数評価 90 以上 S 80 以上 - 90 未満 A 70 以上 - 80 未満 B 60 以上 - 70 未満 C 60 未満 F

答え : grade.c #include <stdio.h> int score; char line[100], grade; main(){ while(1){ printf("enter the score: "); fgets (line, sizeof(line), stdin); if( line[0] == ) break; sscanf (line, "%d", &score); /* valid without {... if( condition ) statement1; else statement2; */ if(score >= 90) grade= S'; else if(score >= 80) grade= A'; else if(score >= 70) grade= B'; else if(score >= 60) grade= C'; else grade= 'F'; printf ("The grade is: %c n", grade); /* For string (more than two characters), use %s for output descriptor. */ return(0);

繰り返し :for あらかじめ 繰り返し回数が分かっているとき for( 初期値 ; 終了条件 ; 繰り返し制御 ) statement ; 注意 ) 実行文の最後に 必ず ; を打つ /* 1 から 10 までの数を加える */ int i, total; for( i= 0; i< 10, i++) total= total + (i +1);

実習 : while を使わず for で書く /* キーボードから数を 10 個入力し それらを加える その結果は 入力する毎に表示する */ int i; float value, total=0.0; main(){ 数値を入力する for( i= 0; i< 10; i++) {.. 結果を表示する

このプログラムは和を計算しない なぜ? #include <stdio.h> int i; float value, total=0.0; char line[30]; main(){ for(i=0; i<10; i++); printf ("Enter a number to add..."); fgets (line, sizeof(line), stdin); sscanf (line, %f, &value); total += value; printf( Current total is %f n, total); return 0; 正解 : add.c

場合に応じてジャンプ : switch switch( 整数式 ) { 整数式と合致する case 定数 へジャンプ case 定数 1: statement 1; break; <-switchから抜け出す指示 case 定数 2: statement 2; break; default: 整数式がどの 定数 とも合致しないとき statement n; break; 必ず 各 case ブロックの最後に break を入れる ( そこで抜け出るために )

実習 : 四則演算を行うプログラム 考え方 : 1) 入力を促すメッセージをプリント 2) キーボードから数値 1 演算子数値 2 を入力変数名 : value1 operator value2 3) もし q が入力されたら すぐ終了する 4) 演算子ごとに ふさわしい計算を行う除算で 数値 2がゼロのときは 警告メッセージ 5) 結果を表示する次の計算をするため 初めに戻る

Prog7 3.c 答え : Prog7 3.c /* Simple calculator */ #include <stdio.h> char line[100]; float result; float value1, value2; char operator; main() { while (1){ printf( Enter value1 operator value2, or q to quit: "); fgets( line, sizeof(line), stdin); /* to quit */ sscanf( line, "%c", &operator); if( operator == 'q' ) break; sscanf( line, "%f %c %f", &value1, &operator, &value2); switch(operator){ case '+': result = value1 + value2; break; case ' ': result = value1 value2; break; case '*': result = value1 * value2; break; case '/': if( value2 == 0 ){ printf("error: Divide by zero. Operation ignored. n"); continue; else { result = value1 / value2; break; default: printf("error: Invalid operator n"); break; printf("result= %f n", result); return 0;

break と continue 文 break switch, while, forの繰り返しブロックの外へ出る continue ループの先頭へ戻る

知っていると便利な ジャンプ機能 ( 流れが分かりづらくなるので 多用は避けるべき ) ラベルのついたところへジャンプ if( ) goto label; exit(8); 上から来ると ここで終了する label: 実行文 ; ラベルへ飛ぶ : goto ラベル名は ( 英数字 _ で ) 自由につけてよい

きょうのまとめ プログラムの流れの制御法 if ( 条件 ).; else..; switch ( 式 ){ case 定数 : break; default:. break; for (i=0; i<10; i++). ; while ( 条件 ){.. ; break;.