物質工学科 田中晋

Similar documents
PowerPoint Presentation

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

Microsoft Word - no02.doc

PowerPoint プレゼンテーション

プログラミング実習I

Microsoft Word - 3new.doc

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

スライド 1

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

プログラミング基礎

PowerPoint プレゼンテーション

ガイダンス

講習No.1

ポインタ変数

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

Microsoft Word - no103.docx

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

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

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

第2回講義:まとめ

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

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

PowerPoint Presentation

計算機プログラミング

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

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

数値計算

kiso2-09.key

Microsoft PowerPoint - kougi2.ppt

gengo1-2

memo

ポインタ変数

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

sinfI2005_VBA.doc

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

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

Microsoft PowerPoint - prog03.ppt

Microsoft PowerPoint - 第1回目復習_pdf用.ppt [互換モード]

Microsoft Word - java a.doc

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

gengo1-8

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

Microsoft Word - no11.docx

プログラミング基礎

Microsoft PowerPoint - prog04.ppt

講習No.8

プログラミング実習I

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

Microsoft PowerPoint - C4(反復for).ppt

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

Microsoft PowerPoint - Prog05.ppt

Prog1_2nd

Java講座

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

プログラミング入門1

Report#2.docx

第1回 プログラミング演習3 センサーアプリケーション

Microsoft PowerPoint - ruby_instruction.ppt

cp-7. 配列

Microsoft PowerPoint - kougi6.ppt

Microsoft PowerPoint - C_Programming(3).pptx

講習No.9

Microsoft PowerPoint - kougi4.ppt

Prog1_6th

Microsoft PowerPoint - 4.pptx

JavaプログラミングⅠ

ポインタ変数

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

プログラミング基礎

PowerPoint プレゼンテーション

フローチャートの書き方

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

Report#2.docx

情報処理演習 B8クラス

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

MS-ExcelVBA 基礎 (Visual Basic for Application)

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

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

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

JavaプログラミングⅠ

プログラミング 1 プログラミング演習 I プログラミングの重要性 プログラミング言語をなぜ勉強するのか? 世界的に有名な日本のある IT 企業の社長が求める人材に 必要なスキル 1. プログラミング (C 言語 ) 2. 数学 3. 英語 #-1 #-2 プログラミングはどこで使えるのか? 1.

kiso2-06.key

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

Microsoft PowerPoint - 3.pptx

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

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

拡張子の表示 拡張子 とは ファイルを見たときにそのファイルがどのようなファイルかを判断するための文字列です 先程のファイルを例に挙げると (.exe) の部分が拡張子です 自分が作ったファイルがコンパイルできているかどうかを確認するのにも使えますが Windows のデフォルトでは見えなくなってい

メソッドのまとめ

02: 変数と標準入出力

kiso2-03.key

Microsoft Word - Training10_プリプロセッサ.docx

<4D F736F F F696E74202D2097D58FB089E6919C8B5A8F708A E B8CDD8AB B83685D>

Taro-C言語の基礎Ⅰ(公開版).j

PowerPoint Presentation

Microsoft PowerPoint - kougi7.ppt

memo

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

プログラミングA

memo

演習1

Transcription:

電気 機械実習 物質工学科 4 年 C 言語によるプログラミング基礎 物質工学科 Version 2.2

評価について 評価 : 演習 1~9 9 点 9 テーマ =81 点 演習 10 19 点 提出 : 1 週目に貸し出した USB メモリに自分の学籍番号のフォルダを作る 各演習の.c ファイルを指定されたファイル名で保存する ( 演習 10 については.exe ファイルも併せて保存 ) 最終週の翌週火曜日 8:50 までに USB メモリを提出 指定時間までに提出されない場合 -10 点 USB メモリの紛失 -10 点 + 同じ USB メモリを弁償 2

実習計画 第 1 週実行ファイルの作成 変数 関数の基礎を確認練習 1: 実行ファイルの作成 & 画面出力 printf 文練習 2: 変数の型練習 3: キーボード入力 scanf 文& 四則演算演習 1~3 第 2 週繰り返しとその制御の方法を習得する練習 4: サブルーチン ( 関数の取扱 ) 練習 5: 繰り返し for 練習 6: 繰り返し while 第 3 週条件分岐の方法を習得する練習 7: 条件分岐 if else 練習 8: 条件分岐の入れ子 else if 論理演算子 &&, 演習 5~6 演習 7~9 第 4 週演習 10 野球のスコアボード 3

実習の流れ エディタのインストール コンパイラのインストール PATHの追加 練習 コーディング ( プログラミング ) 保存 コンパイル 実行 演習 コーディング ( プログラミング ) 保存 コンパイル 実行 初回のみ 実習開始時のみ 4

C 言語開発環境の準備とファイルの保存 1. エディタのインストール USB メモリ内の 1. Emeditor_18.7.2_64bit 版 からインストール OS が 32bit 版の場合は 1. Emeditor_18.7.2_32bit 版 2. コンパイラのインストール USB メモリ内の 2. C コンパイラインストール手順.pdf に従ってインストール 保存について ファイル名は原則半角英数字 拡張子は.c とする ex) prog01.c 5

コンパイル手順 1 1 コマンドプロンプトの起動と準備 スタート Windows システムツール コマンドプロンプト 2 PATHの追加 ( その日に一度だけ ) コマンドプロンプトに入力 > set PATH=%PATH%; C: MinGW bin ( セミコロン ) 3 コンパイル準備 ( その日に一度だけ ) USBメモリのドライブレター ( ドライブ名 ) を確認 ex) D E USBメモリ内に学籍番号のフォルダを作成 ex) 15410 コマンドプロンプトに入力 > d: (USBメモリに移動) > cd 15410 ( 自分のフォルダに移動 ) 6

コンパイル手順 2 4 コンパイルコマンドプロンプトに入力 > gcc ファイル名.c gccとファイル名の間に半角スペースが必要自分のフォルダ内に a.exe が生成される ex) gcc ex01.c 5 実行 コマンドプロンプトに入力 > a.exe 適宜ファイル名を変更すること ( コンパイルするごとに上書きされる ) 7

第 1 週 練習 1. 実行ファイルの作成 & 画面出力 printf 文 ファイルの取り込み 半角スペース #include <stdio.h> 標準ライブラリスタンダード IO( 入出力 ) Main 関数一番初めに実行される処理 { から までが Main 関数で実行される int main(){ printf( Hello World n"); 命令文の最後にはセミコロン ; をつける n は改行 日本語以外は半角英数で入力! 画面に文字を表示させる命令 Hello World と表示されたら成功! ファイル名 prog01.c で保存 & コンパイル 8

練習 1. 実行ファイルの作成 & 画面出力 printf 文 演習 1 printf 文を 5, 6 行追加した文章を表示せよ 改行位置も工夫すること printf(" こんにちは世界 n"); printf( いえ こんにちは宇宙 n こんばんは宇宙 "); Main 関数内に printf を記述すれば その分だけ表示される Printf ( xxx ) の xxx の前か後ろに n を付けないと printf が連結される 16 進数とは ファイル名 ex01.c で保存 & コンパイル & 提出 10 進数は 0 から 9 までの数字を使って数を表し 数が 0 から 1 2 3 と順に増えていき 7 8 9 までは 1 桁 次は桁上がりして 10 となる 16 進数には 16 種類の数字がありますが 1~9 とアルファベットの A ~ F を 数字 として使用 16 進数は 0 から F までの 16 種類の数字を使って数を表し 数が 0 から 1 2 3 と順に増えていくとき 7 8 9 の次は A B C と続き D E F までは 1 桁ですが 次に桁上がりして 10 になります 10 進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 16 進数 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 9

練習 2. 変数の型 #include <stdio.h> 変数の型を宣言 int main(){ int 整数型 int i, j; char 文字型 float k; i = 10; j = 2; k = 30.2515; float double 単精度浮動小数点型倍精度浮動小数点型 printf("i = %d n j = %d n k = %f n", i, j, k); j = i; // = は代入を意味する k = (float)i ; // 実数型へ変換 printf("i = %d n j = %d n k = %f n", i, j, k); フォーマット指定子 %d 10 進数の整数 %x 16 進数の整数 %f 実数 %c 1 文字 %s 文字列 // はコメントの意味 実行されない ファイル名 prog02.c で保存 & コンパイル %.2f 小数点以下の桁数の指定 演習 2 上記の変数 i について 16 進数の整数で表示せよ また 変数 k について小数点以下 2 桁までの表示 (30.25) にせよ ファイル名 ex02.c で保存 & コンパイル & 提出

練習 3. キーボード入力 scanf 文 & 四則演算 #include <stdio.h> int main(){ int a[2] ; char c[100]; printf(" 整数を 2 つ入力してください > "); scanf( %d %d,&a[0], &a[1]); [ ] 内は0から始まる配列 a[0], a[1] // 整数型の変数配列 aを2 個作りなさい // 文字型の変数配列 cを100 個作りなさい 1 つ目の入力値を a[0] 2 つ目の入力値を a[1] に代入する printf(" 入力された数字の和は %dです n", a[0]+a[1]); printf(" 文字列を入力してください>"); scanf("%s",&c); & はアドレス演算子 printf(" 入力された文字列は %sです n",c); 11 ファイル名 prog03.c で保存 & コンパイル

練習 3. キーボード入力 scanf 文 & 四則演算 演習 3 キーボードから 10 進数の整数を 3 つ入力し その平均値を整数で表示せよ #include <stdio.h> int main(){ int a[_] ; printf( 整数を3つ入力してください> "); scanf(, ); printf( 平均は %dです n, ); 配列の入れ物を 3 つ用意する 3 つの入力を受付け 配列に代入する 3 つの変数から平均を求める 12 ファイル名 ex03.c で保存 & コンパイル & 提出

第 2 週 練習 4. サブルーチン ( 関数の取扱 ) 商の計算をする関数を作成 これをサブルーチンとして利用する 変数 z の値を返す #include <stdio.h> int shou(int x, int y){ int z; z = x / y; return z; int main(){ int a = 10, b = 3, c; c = shou(a, b); printf(" 商は %d n", c); return 0; // 終了時に0を返す 省略可 サブルーチン 変数 a と b を整数型変数 x と y として受け取る サブルーチン shou に変数 a と b を送る ファイル名 prog04.c で保存 & コンパイル

練習 4. サブルーチン ( 関数の取扱 ) 演習 4 練習 4 に余りを計算するサブルーチンを追加し 余りも表示するプログラムにせよ #include <stdio.h> int shou(int x1, int y1){ int z1; z1 = x1 / y1; return z1; int amari(int x2, int y2){ int z2; z2 = x2 y2; return z2; int main(){ int a = 10, b = 3, c, d; c = shou(a, b); d = amari(, ); printf(" 商は %d n", c); printf( 余は %d n", d); return 0; // 終了時に0を返す 省略可 余りの算出 z = x % y; ファイル名 ex04.c で保存 & コンパイル & 提出

練習 5. 繰り返し for 文 表示を 10 回繰り返すプログラム 指定回数だけ繰返す #include <stdio.h> int main(){ int i, j; j = 10; for (i = 0; i < j; i++) { printf(" 現在の値は %d です n", i); i = 0 iは0からスタート i < j iがjより小さい間繰り返す i++ iは1ずつ増加する ( i=i+1) 条件式で利用できる不等号 < <= > >= ==!= ( 未満 ) ( 以下 ) ( 超える ) ( 以上 ) ( 等しい ) ( 等しくない ) ファイル名 prog05.c で保存 & コンパイル

練習 5. 繰り返し for 文 演習 5 任意の数字 ( 学籍番号の下 3 桁 ) から 1000 までの数字を足し合わせた合計を表示せよ #include <stdio.h> int main(){ 変数 ( 整数型 ) を 2 つ用意 j は合計値で初期値 0 for (i は ( 学籍番号下 3 桁 ) から始まり i が 1000 になるまで繰り返し i は 1 ずつ増加する ) { 合計値 j を表示せよ j は j に i を加えたもの ; int i, j; j = 0; for (i= ; i 1000;i++){ j = j + i; printf( 合計値は %d, j); ファイル名 ex05.c で保存 & コンパイル & 提出 16

練習 6. 繰り返し while 文 条件を満たす間 繰返す 10 から 1 つずつ数字を加算し 500 を越えるのが何回目かを表示する #include <stdio.h> int main(){ int i, j, k; i = 10; // 加算する数値 j = 0; // 合計を入れる変数 k = 0; // 加算した回数 while (j <= 500){ j = j + i; i++; k++; printf(" 合計が500を越えたのは %d 回目 ",k); ( ) 内の条件を満たしている間 { 内を繰り返し実行 ファイル名 prog06.c で保存 & コンパイル

練習 6. 繰り返し while 文 演習 6 貯金が毎年 1.01 倍ずつ増えるとする キーボードから最初の金額と目標金額を入力し 目標金額まで達する年数を表示せよ 整数型変数を2つ用意 ; 小数点型変数を2つ用意 ; kを利率 (*1.01) とする ; scanfで変数を2つ入力を受ける ; 貯金額 iが目標金額 jより大きくなるまで繰り返す { 貯金額は 貯金額 利率 ; 繰り返しを1 回実行すると1 年 ; 計算された年数を表示する ; #include <stdio.h> int main(){ int j,l=0; _( 型の宣言 )_ i,k; k=1.01; printf(" 現在の金額 目標金額の順で入力 n"); scanf( ",&i,&j); while(i j){ i=i*k; l++; printf( %d 年かかります n",l); ファイル名 ex06.c で保存 & コンパイル & 提出 18

第 3 週 練習 7.if else: 条件分岐 偶数か奇数かを判別する #include <stdio.h> int main(){ int x; printf(" 整数を入力してください> "); scanf("%d",&x); printf(" 入力された数字 %dは", x); if (x % 2 == 0){ もし x 2の余りが0ならば printf( 偶数 ); 偶数 を表示 else { しなさい そうでなければ printf( 奇数 ); 奇数 を表示 しなさい printf(" です n"); ファイル名 prog07.c で保存& コンパイル 19

練習 7.if else: 条件分岐 演習 7 練習 7 のプログラムにおいて 負の値や 0 を入力した場合は 例外としてエラーとするように if else 部分を書き換えよ もし 入力値 x が 0 より大きいなら もし x 2 の余りが 0 なら 偶数です と表示そうでなければ 奇数です と表示する そうでなければ 0 以下の数字です と表示する if (x ) { if ( ) { printf ( ); else { printf ( ); else { printf ( ); ヒント : if 文を入れ子にする (if 文のなかに if 文を入れる ) ファイル名 ex07.c で保存 & コンパイル & 提出 20

練習 8.else if: 条件分岐の入れ子 &&, : 論理演算子 2 つの数字がどちらも偶数か どちらも奇数か それ以外かを判別する #include <stdio.h> int main(){ int a[2]; printf(" 整数を2つ入力してください> "); scanf("%d %d",&a[0], &a[1]); if (a[0]%2==0 && a[1]%2==0){ printf( 両方とも偶数です n ); もし a[0] が偶数かつa[1] が偶数の場合は 両方とも偶数です と表示 else if (a[0]%2!=0 && a[1]%2!=0) { もし a[0] が偶数でなく かつ a[1] が偶数でない場合は printf( 両方とも奇数です n ); else { そうでなければ printf( 一方が奇数です n ); する 両方とも奇数です と表示 一方が奇数です と表示 論理演算子 && AND (~かつ~) OR (~もしくは~) ファイル名 prog08.c で保存 & コンパイル 21

練習 8.else if: 条件分岐の入れ子 &&, : 論理演算子 演習 8 1~12 月のうち 1 つの数字入力し 春夏秋冬の季節を表示せよ 春 :3~5 月夏 :6~8 月秋 :9~11 月冬 :12 1 2 月 3 以上かつ5 以下 (a>=3 && a<=5) 6 以上かつ8 以下 (a>=6 && a<=8) 9 以上かつ11 以下 (a>=9 && a<=11) それ以外 (a==12 a==1 a==2) ファイル名 ex08.c で保存 & コンパイル & 提出 演習 9 3 つの数字を入力し 大きい順に並べ替えよ a[3] と b[3] を用意する もし a[0] > a[1] ならば b[0] に a[0] を代入 b[1] に a[1] を代入そうでなければ b[0] に a[1] を代入 b[1] に a[0] を代入する もし b[1] > a[2] ならば b[2] に a[2] を代入そうではなく b[0] > a[2] ならば b[2] に b[1] を代入 b[1] に a[2] を代入 そうではなく b[0] < a[2] ならば b[2] に b[1] を代入 b[1] に b[0] を代入 b[0] に a[2] を代入する 3 つの数字を大きい順に並べると b[0] > b[1] > b[2] ファイル名 ex09.c で保存 & コンパイル & 提出 22

第 4 週 演習 10. 総合演習 演習 10 野球のスコアボードを作成せよ Level.1 基本機能 9 回までの表 裏の得点を順に入力 各チーム名を入力 もしくはプログラム文中で設定しておき 入力するたびに得点と合計点を表示する ( ヒント ) for もしくは while で繰り返す scanf で入力を受け付ける printf で表示する Level.2 9 回表で後攻チームの得点が多い場合 裏は入力せず終了 ( ヒント ) while と論理演算子? それとも if で対応する? 23

演習 10. 総合演習 Level.3 9 回裏で同点の場合 決着がつくまで延長戦を行う Level.4 延長戦の有無を含めてスコアボードを表示する 表示例 1 2 3 4 5 6 7 8 9 合計 Aチーム 0 0 1 0 2 0 1 0 1 5 Bチーム 1 0 0 0 1 1 0 3 x 6 ファイル名 ex10.c で保存 & コンパイル & 提出.exe ファイルも提出 24