Microsoft PowerPoint - class04.ppt

Similar documents
プログラミング基礎

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

プログラミング基礎

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

計算機プログラミング

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

プログラミングA

プログラミングA

Microsoft PowerPoint - lec4.ppt

3. 標準入出力

Microsoft PowerPoint - 3.pptx

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

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

Prog1_6th

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

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

Java講座

kiso2-09.key

5

Microsoft PowerPoint - C_Programming(3).pptx

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

スライド 1

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

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

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

PowerPoint Presentation

フローチャートの書き方

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

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

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

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

JavaプログラミングⅠ

PowerPoint プレゼンテーション

C言語入門

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

Microsoft Word - VBA基礎(3).docx

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

cp-7. 配列

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

PowerPoint プレゼンテーション

Microsoft PowerPoint - Prog05.ppt

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

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

ポインタ変数

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

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

Microsoft PowerPoint - prog04.ppt

プログラミング入門1

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

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

プログラミング実習I

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

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

以上

Microsoft PowerPoint - kougi4.ppt

PowerPoint Presentation

Microsoft Word - 3new.doc

Microsoft PowerPoint - 4.pptx

kiso2-06.key

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

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

Microsoft Word - Training4_判断と制御.docx

Prog1_3rd

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

JavaプログラミングⅠ

PowerPoint プレゼンテーション

物質工学科 田中晋

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

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

Microsoft Word - 18環設演付録0508.doc

Taro-リストⅠ(公開版).jtd

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

講習No.9

ポインタ変数

JavaプログラミングⅠ

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

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

プログラミングA

gengo1-2

Microsoft Word - VBA基礎(2).docx

ガイダンス

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

Microsoft PowerPoint - while.ppt

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - kougi2.ppt

JavaプログラミングⅠ

Microsoft Word - no103.docx

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

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

Scilab 勉強会 ( 第 3 回 ) 高橋一馬, 十文字俊裕, 柏倉守 平成 17 年 11 月 15 日 関数 ファイルはエディタを用いて作成する.Scilab にはエディタ SciPad が附属している.SciPad では なく他のエディタを利用してもよい. 作成した関数は Scilab に

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

Microsoft Word - no02.doc

プログラミング基礎

Prog1_6th

Report#2.docx

スライド 1

Microsoft Word - no11.docx

8 / 0 1 i++ i 1 i-- i C !!! C 2

Microsoft PowerPoint - ruby_instruction.ppt

第2回講義:まとめ

Transcription:

フローチャート フローチャートとは プログラムの処理の流れを整理し 図的に順序立てて描いたもの 流れ図流れ図ともいう 例 : 始め 半径 R 端子 : 開始 終了 停止などを示す 手操作入力 : キーボードなどから手で操作して入力することを示す 面積 S πr 2 処理 : あらゆる種類の処理を示す S 終わり 表示 : ディスプレイ表示を示す このようにフローチャートでは 記号形状自体が処理の意味を示している

主なフローチャートの図記号 端子 : フローチャートの開始 終了の端子を意味する 処理 : 一般的な処理を意味する 準備 : 初期値設定などの準備を意味する 手操作入力 : キーボードからの手操作入力を意味する 表示 : 画面への情報表示を意味する

判断 : 比較 判断を意味する 結合子 : フローチャートの他の処理への出口 または他の処理からの入口を意味する 繰り返しループ : 反復処理の始まりと終わりを意味する (for 文のときに使用 )

フローチャートの書き方 フローチャートの流れは基本的に上から下 左から右に進行する それ以外の場合は 流れ線に矢印を入れる 流れ線は交差してもよい 交差しても合流は意味しない 合流なし 合流あり 結合子には番号や名前を入れ 相互に結合していることを示す 1 1

条件分岐のフローチャートは下記のようなバリエーションがある A>0 No < A:0 > Yes = A A 1 2 3 その他 1 2 3 その他

順次処理 選択処理 反復処理のフローチャート 命令 1 命令 2 命令 3 No 条件 Yes 命令 1 命令 2 条件 Yes 命令 1 No 順次処理 選択処理 反復処理

例 : 絶対値を求めるプログラムのフローチャート 始まり実数値 val val < 0 Yes val -val No キーボードから実数値を入力し 変数 val に書き込む val < 0 が成り立てば val の符号を反転して変数 val に書き戻す 条件が成立しなければ val の値はそのまま val 変数 val の値を画面に表示 終わり

練習問題 1 次のプログラムのフローチャートを記述せよ キーボードから入力した整数値が 10 であったら 10 です 10 以外であったら 10 以外です と表示するプログラム

選択処理 if 文 (pp.45-4747 pp.138-143 143) 例題 1: キーボードから実数値を入力し その絶対 値を表示するプログラムを作成せよ #include <stdio.h> main( ){ double val; scanf("%lf", &val); if(val < 0){ val = -val; printf("val = %f n", val); if の括弧内の条件が成り立っている場合は 中括弧 { 内の処理を行う

if 文の書式の書式とフローチャート if( 式 ){ 文 ; 式が成立した時は { 内の文を実行し 成立しない場合は文を実行しない 式が成立した場合を条件が真 (True) であるといい 成立しない場合を条件が偽 (False) であるという { 内は字下げすると見やすくなる 文が一つの場合は 中括弧を省略できる 例 : 先ほどのプログラムのif 文は 中括弧を省略して次のように書くことができる : if(val < 0) val = -val; 文が複数ある場合は 括弧は省略不可 if(val > 0){ val = -val; printf("val=%f n", val); 式 Yes 文 No

関係演算子と等値演算子 (pp.110-112) 関係演算子 : 値の大小関係を比較する演算子 < <= > >= がある =< や => は間違い 等号は必ず後ろにつく 等値 否定演算子 : 値が等しいか等しくないかを比較する演算子 == : 値が等しいかどうかを比較する!= : 値が等しくないかどうかを比較する 例 : よくある間違い if(a = b){... = は代入演算子なので 等価を示すときは == を使わないといけない! この例では bの値をaに代入し その値で条件判断をすることになる C 言語の場合 aの値が0 以外の場合は全て真となってしまう

if - else 文 (pp.138-142) 例題 2: キーボードから入力した値が10であったら 10 です 10 以外であったら 10 以外です と表示するプログラムを作成せよ #include <stdio.h> main( ){ int val; scanf("%d", &val); if(val == 10){ printf("10 です n"); else{ printf("10 以外です n"); if 文の括弧内の条件が成立すれば次の中括弧内の命令を実行し 条件が成立しなければ else に続く中括弧内の命令を実行する

if-else 文の書式の書式とフローチャート if( 式 ){ 文 1; else{ 文 2; 式が成り立つ場合は文 1 を実行し 成り立たない場合は文 2 を実行する 文 1 もしくは文 2 が 1 文の場合 それを囲む中括弧は省略できる 式 Yes 文 1 No 文 2

else if 文の使い方 if ( 式 1){ 文 1; else if ( 式 2){ 文 2; 式 1が成り立つ場合は 文 1を実行し 成り立たない場合は 式 2を評価する そこで 式 2が成り立つ場合は 文 2を実行する 式 1 Yes No 文 1 式 2 文 2 Yes No

else if 文の意味 else if( 式 2){ 文 2; と else{ if( 式 2){ 文 2; は等価である

例題 3: テストの点数を入力し 60 点以上で100 点以下なら good 60 未満なら no good と表示するプログラムを作成せよ ただし 100 点を超える点数が入力された場合は データの誤り と表示する 始め 得点入力 score score > 100 Yes データの誤り No score 100 score > =60 Yes good No score<60 no good 60 score 100 終わり

#include <stdio.h> main( ){ int score; printf(" 得点は :"); scanf("%d", &score); if(score > 100){ printf(" データの誤り else if(score >= 60){ printf("good n"); "); else{ printf("no good n"); データの誤り n"); 変数 score の値が 100 よりも大きい場合は 画面に データの誤り ( 改行 ) と表示し 100 以下の場合は 次の else if 文を実行する ten の値が 60 以上の場合 ( つまり score の値が 100 以下 60 以上の場合 ) 画面に good( 改行 ) と表示する 60 未満の場合は 次の else 文を実行する

if-else 文の入れ子構造 if( 式 1){ if( 式 2){ 文 1; else{ 文 2; 式 1 が成立し かつ式 2 が成立する場合は 文 1 を 式 1 が成立し かつ式 2 が成立しない場合は文 2 を実行する if-else ブロック内にさらに if-else ブロックを入れられる ( 入れ子 ) 式 1 Yes 式 2 Yes No No 文 1 文 2

例題 4: 西暦年数を入力させ うるう年の判定をせよ うるう年の判定 : 400 で割り切れる年数または 4 で割り切れ かつ 100 で割り切れない年数 複数の条件が組み合わされて 1 つの条件となっている 論理演算子を利用すると良い

論理演算子の利用 (pp.110-112) 論理演算 : 複数の条件 ( 式 ) を組み合わせて表現する演算例 : a は b より大きく かつ b は c より大きい 論理演算子 : 論理演算を行うために用意された演算子論理積 : 条件 1 が成立し かつ条件 2 が成立するとき 全体の演算結果を真とする演算 記号は && を使用 例 : (a > b) && (b > c) 論理和 : 条件 1 が成立するか または条件 2 が成立するとき 全体の演算結果を真とする演算 記号は 注 : パイプ記号は delete キーの左隣のキー例 : (a > b) (b > c) 否定 : 条件が成立しない場合 演算結果を真とする演算 記号は! 例 :!(a > b)

例題 4を論理演算子を用いて解いてみるいてみる うるう年の条件 : (400 で割り切れる年数 ) または (4 で割り切れる年数で かつ 100 で割り切れない年数 ) 上記の条件を if 文で表現 (n に西暦年が入っているとする ) if((n % 400 == 0) ((n % 4 == 0) && (n % 100!= 0))) printf(" うるう年 n"); else printf(" うるう年ではない n"); 処理範囲と処理順を明確にするために 各条件と処理の固まりは括弧で括った方がわかりやすい

switch 文 (pp.154-158) 158) switch 文の形式とフローチャート switch( 整数式 ){ case 定数式 1: 文 1; break; case 定数式 2: 文 2; break;... default: 文 ; break; 整数式 定数式 1 定数式 2 定数式 n default 文 1 文 2 文 n 文

整数や文字の値に応じて多方向分岐が必要な処理では switch 文を使うと便利 switch 文の構造説明 switchに続く ( ) 内に分岐の指標となる整数式を書く case に続く定数式の値 ( 整数 ) が switchの括弧内の式の値と一致した時 case 以降に続く文を実行する case 内にbreakがある場合は そこで switchのブロックから抜け出す default に続く文は 式の値がcase 文のどの定数式にも当てはまらない場合に実行される この場合 default 文がない場合は switchのブロックから抜ける caseの記述順序は拘らない( 全てのcase 内にbreakを含む場合のみ ) ただし 上のcase 文から評価される case 文の定数式の値は各々異なっている必要がある

switch に続く ( ) 内には整数式 ( 結果的に整数となる式や値 文字でも良い ) を書く 良い例 1: int data=2; switch(data){... 良い例 2: char moji='a'; switch(moji){... 悪い例 : double real=3.4; switch(real){... /* 実数値は使用不可 */

case 文内にbreak 文がないと 処理は次のcase 文に移ってしまう 例 : switch(data){ case 20: printf("data = 20 n"); case 21: printf("data = 21 n");... break 文がないと 次の case 文が実行される data の数値が 20 の場合は 両方の printf 文が実行され 数値が 21 の場合は下の printf 文だけが実行される

異なる式の値でも同一の文を実行させる例 switch(data){ case 1: case 2: printf("%d is 1 or 2 n", data); break;... data が 1 のときも 2 のときもこの printf 文が実行される このように case 1 に何の命令文も書かないと data の値が 1 の場合は 自動的に case 2 に実行が移る 従って data の値が 1 でも 2 でも 同一の文を実行することになる

例題 5: キーボードから整数値を入力し 入力値が1 または2なら A 3なら B それ以外なら C を表 示するプログラムを作成せよ フローチャート 始め num num 1 または 2 3 default switch 文 A B C で表現可能 終わり

プログラムの主要部分 switch(num){ case 1: case 2: printf("a n"); break; case 3: printf("b n"); break; default: printf("c n"); break; num には評価をしたい整数値が入っている num の値が 1 または 2 の場合 次の printf 文を実行する この break で switch のブロックから抜ける num の値が 3 の場合は 次の printf 文を実行する num の値が上記の case に合致しない場合

まとめ 1 if 文 : 式が成り立った場合に中括弧内の文を実行する if( 式 ){ 文 ; if - else 文 : 式が成り立った場合にはif 文の次の中括弧内の文を実行し 成り立たない場合はelse 文の次の文を実行する if( 式 ){ 文 1; else{ 文 2; 式の部分には関係演算子 (<, <=, >, >=) や等価演算子 (==,!=) を入れて数値の比較が可能

まとめ 2 if-elseブロック内にさらにif-elseブロックを挿入可能 else ブロック内に ifブロックが入る場合は else if と記述可能 条件式が複数ある場合は 論理演算子を用いて一つの条件式にまとめることが可能な場合あり 論理積 : 日本語の かつ に相当 記号 && 論理和 : 日本語の または に相当 記号 否定 : 日本語の ~でない に相当 記号!

まとめ 3 整数や文字の値に応じて多方向分岐が必要な処理では switch 文を使うと便利 switch 文の一般形 : switch( 整数式 ){ case 定数式 : 文 ; break;... default: 文 ; break;

参考文献 学生のためのC 東京電機大学出版 ISBN4-501-52310-7 ポケットコンピュータ SHARP PC-G850V 取り扱い説明書 はじめてのC 技術評論社 ISBN4-7741-1264-X