計算機プログラミング

Similar documents
プログラミング基礎

プログラミング基礎

Microsoft PowerPoint - class04.ppt

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

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

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

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

Microsoft PowerPoint - C_Programming(3).pptx

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

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

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

プログラミングA

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Java講座

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

プログラミングA

プログラミングA

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

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

JavaプログラミングⅠ

スライド 1

ポインタ変数

KDDI SMART アドレス帳 CSV ファイル仕様 改訂日付 :2019 年 5 月 8 日

kiso2-09.key

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

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

PowerPoint プレゼンテーション

Prog1_6th

PowerPoint プレゼンテーション

物質工学科 田中晋

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

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

kiso2-03.key

Microsoft PowerPoint - prog04.ppt

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

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(

計算機プログラミング

プログラミング実習I

Microsoft Word - VBA基礎(3).docx

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

Microsoft PowerPoint - prog03.ppt

Microsoft Word - 3new.doc

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

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

Microsoft PowerPoint - lec10.ppt

ポインタ変数

ファイル入出力

PowerPoint Presentation

JavaプログラミングⅠ

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

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

Microsoft Word - Training4_判断と制御.docx

情報システム設計論II ユーザインタフェース(1)

ガイダンス

PowerPoint Presentation

3. 標準入出力

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

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

ファイル入出力

5

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

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

プログラミング基礎

Prog1_3rd

Microsoft Word - no02.doc

Microsoft Word - no11.docx

Microsoft PowerPoint - ruby_instruction.ppt

slide5.pptx

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

解答編 第 9 章文字データの取り扱い 演習問題 9.1 文法事項 1 ) コンピュータにおける 文字データの取り扱いについて説明しなさい コンピュータでは 文字に整数の番号を割り当てて ( コード化して ) 文字コードとして扱います 実際に用いられる文字コードとして ASCII コード EUC コ

講習No.9

PowerPoint Presentation

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

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

講習No.8

gengo1-8

ポインタ変数

Microsoft Word - no103.docx

Report#2.docx

プログラミング実習I

情報処理演習 B8クラス

Microsoft PowerPoint - 3.pptx

Microsoft PowerPoint - lec4.ppt

基礎プログラミング2015

プレポスト【解説】

DVIOUT

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

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

JavaプログラミングⅠ

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

Microsoft Word - 商業-3

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

Microsoft PowerPoint - kougi4.ppt

プログラムの基本構成

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

Taro-ビット処理(公開版).jtd

JavaプログラミングⅠ

プログラミング基礎

Report#2.docx

Transcription:

プログラミング言語 C 第 6 講 制御 ( 選択 )

フローチャートと C 言語 図形と命令の対応表 図形 C 言語 図形 C 言語 START main()? if END? else 整数型変数 int? switch printf case scanf break

選択 (1) if else 文 条件 処理 A 処理 B 構文 if ( 条件 ) IF THEN ELSE 型 処理 A; 条件を満たした場合, ( 真,True) 省略可 else 処理 B; 条件を満たさない場合, ( 偽,False)

条件に使われる演算子 比較演算子 (1:True か 0:False を返す ) == ( 等しい )!= ( 等しくない ) < ( より小さい, 未満 ) <= ( 以下 ) > ( より大きい ) >= ( 以上 ) 使用例 if(a == 'A') // 変数 aの値は 'A' のコードと等しい? if(a >= 160) // 変数 aの値は160 以上? if(a < 100) // 変数 aの値は100 未満?

if else 文 ( 例 1) a と b は等しい? if (a == b) printf(" 等しい n"); else printf(" 等しくない n"); a = = b 等しい 等しくない

if else 文 ( 例 2) a と b は等しい? if (a == b) printf(" 等しい n"); else if (a > b) printf("a が大きい n"); else printf("b が大きい n"); a = = b a は b より大きい? 等しい a > b aが大きい bが大きい

の使い方 処理が 1 行の場合 を省略できる if (a == b) printf(" 等しい n"); else if (a > b) printf("aが大きい n"); else printf("bが大きい n"); こんな書き方も可 if (a == b) else if (a > b) else printf(" 等しい n"); printf("aが大きい n"); printf("bが大きい n"); 処理が 2 行以上になったら省略できない if (a == b) printf("aの値とbの値は... n"); printf(" << 等しい >> n"); 省略してはいけない

練習問題 1 最高血圧の数値を入力して, 以下の判定をするプログラムを作成しよう 160 以上の場合は, あなたは高血圧です と表示する 100 未満の場合は, あなたは低血圧です と表示する それ以外は, あなたは正常です と表示する ファイル名 :06blood.c %d で入力し if else 文で判定しよう 実行例 )

ヒント /* 06blood.c (2011/05/27) */ /* 学籍番号氏名 */ #include <stdio.h> main( ) int a; START 整数型変数 a 最高血圧を入力してください : aに数値を入力 a は 160 以上? 高血圧 a は 100 未満? 低血圧 正常 END

条件に使われる論理演算子 比較演算子と論理演算子 if (x >= 1 && x <= 10) 論理積 (AND, かつ ) x x >= 1 x <= 10 x >= 1 && x <= 10 1より小 0 1 0 ( 偽 ) 1~10 1 1 1 ( 真 ) 10より大 1 0 0 ( 偽 ) if (x < 1 x > 10) 論理和 (OR, または ) x x < 1 x > 10 x < 1 x > 10 1より小 1 0 1 ( 真 ) 1~10 0 0 0 ( 偽 ) 10より大 0 1 1 ( 真 ) 0 が偽で それ以外は真と判定される

練習問題 2 血液型を入力して 血液型によって指示された文が表示されるようにプログラムを作りましょう エラー処理も含めて作成しましょう ファイル名 :06blood2.c char s[5] で宣言しておきましょう if else 文に論理演算子を使って判定しよう s[0] が 1 文字目,s[1] が 2 文字目,s[2] が 3 文字目 文字の最後が ' 0' であることも判断に入れましょう A 型 : s[0]='a', s[1]=' 0' B 型 : s[0]='b', s[1]=' 0' O 型 : s[0]='o', s[1]=' 0' AB 型 : s[0]='a', s[1]='b', s[2]=' 0' ( 小文字にも対応するように作成しましょう ) 血液型別に表示する文章 A 型 : あなたは几帳面ですね B 型 : あたなは自由奔放です O 型 : あなたは物怖じしません AB 型 : あなたは天才肌です その他 : あなたはエイリアンですか 実行例 )

ヒント 1 A 型の条件 (s[0] が大文字 'A' または s[0] が小文字 'a') で, かつ s[1] が文字列終了の ' 0' のとき または : 論理和 (OR) かつ : 論理積 (AND) && 演算の順序 :AND が先で OR は後 OR を先に演算させる場合は () が必要! AB 型の条件 (s[0] が 'A' または s[0] が 'a') で, かつ (s[1] が 'B' または s[1] が 'b') で, かつ (s[2] が ' 0') のとき

ヒント 2 START /* 06blood2.c (2011/05/27) */ /* 学籍番号氏名 */ #include <stdio.h> main( ) char s[5]; char 型配列 s[5] 血液型を入力してください : s に文字列を入力 A 型? B 型? A 型 : B 型 : O 型? 実行例 ) AB 型? O 型 : AB 型 : その他 : END

選択 (2) switch case 文 定数 1 条件 定数 2,3 default 構文 switch ( 条件 ) 変数 case 定数 1: 処理 A; break; case 定数 2: case 定数 3: 処理 B; break; default: 処理 C; // 定数 1 を満たした場合 // 定数 2 または定数 3 を満たした場合 // その他の場合 処理 A 処理 B 処理 C CASE 型 省略可 これを忘れずに

switch case 文 ( 例 ) switch (a) case 1: printf("a です n"); break; case 2: printf("b です n"); break; A です 変数 a の値は? 1 2 default B です default: printf(" その他 n"); その他

break 文がなかったら ( 例 ) switch (a) case 1: printf("a です n"); case 2: printf("b です n"); A です 変数 a の値は? 1 2 default B です default: printf(" その他 n"); その他

練習問題 3 変数 a にキーボードから誕生月を入力して あなたは 月生まれですね あなたの誕生石は です と表示するプログラムを作ろう ファイル名 :06stone.c 誕生石は右の表を使いましょう 1~12 月以外だったら 月の入力を間違えています と表示するようにしましょう switch 文を利用しましょう /* 06stone.c (2011/05/27) */ /* 学籍番号氏名 */ #include <stdio.h> main( ) 1 月ガーネット 2 月アメジスト 3 月アクアマリン 4 月ダイアモンド 5 月エメラルド ヒスイ 6 月ムーンストーン 7 月ルビー 8 月ペリドット 9 月サファイア 10 月オパール トルマリン 11 月トパーズ 12 月ターコイス ラピスラズリ

ヒント 実行例 ) /* 06stone.c (2011/05/27) */ /* 学籍番号氏名 */ #include <stdio.h> main( ) int a; START 整数型変数 a 誕生月を入力してください : : 変数 a に整数を入力 変数 a の値は? : 1 2 3 default : ガーネット アメジスト アクアマリン default : END

課題 変数 m に生まれた月を変数 d に生まれた日をキーボードから入力して あなたは 月 日生まれですね あなたの星座は です と表示するプログラムを作りましょう ファイル名 :06star.c あり得ない月日だったら 入力ミスです と表示するようにしましょう 星座は右表を参考にしよう ソースコードを印刷し 自分の生まれた年で試した結果を記入して提出しよう 実行例 ) 山羊座 12/22-1/19 水瓶座 1/20-2/18 魚座 2/19-3/20 牡羊座 3/21-4/19 牡牛座 4/20-5/20 双子座 5/21-6/21 蟹座 6/22-7/22 獅子座 7/23-8/22 乙女座 8/23-9/22 天秤座 9/23-10/23 蠍座 10/24-11/21 射手座 11/22-12/21

ヒント 1( 単純な方法 ) 星座ごとに区別する 例 ) 山羊座の場合月 (m) が12 月でかつ日 (d) が22 日から31 日まで, または, 月 (m) が1 月でかつ日 (d) が1 日から19 日まで 12 個の星座について if else 文で作成する 山羊座? 水瓶座? 山羊座 です 魚座? 水瓶座 です 魚座 です

ヒント 2( 配列を利用 ) 次の配列を利用すると単純になります // 星座をあらかじめ文字列の配列にしておく char a[12][10]=" 山羊座 "," 水瓶座 "," 魚座 "," 牡羊座 "," 牡牛座 "," 双子座 "," 蟹座 "," 獅子座 "," 乙女座 "," 天秤座 "," 蠍座 "," 射手座 "; // 各月の星座の切れ目になる日にち int d1[12]=19,18,20,18,20,21,22,22,22,23,21,21; // 各月の最後の日にち int d2[12]=31,29,31,30,31,30,31,31,30,31,30,31; m 月の場合 (m=1~12) 1 日からd1[m-1] 日まで ( 月の前半 ): 星座はa[m-1] d1[m-1]+1 日からd2[m-1] まで ( 月の後半 ): 星座はa[m%12] m が 12 のとき 0 になるようにしている

ヒント 2 START 整数型変数 m, d 配列 a, d1, d2 生まれた月を入力してください : mに整数を入力 生まれた日を入力してください : dに整数を入力 あなたは 月 日生まれですね 月が間違ってる? 月の入力ミスです 月の前半? 月の後半? 星座の表示 (a[m-1]) 日の入力ミスです 星座の表示 (a[m%12]) END