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

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

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

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

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

プログラミング基礎

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

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

ポインタ変数

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

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

kiso2-09.key

PowerPoint Presentation

PowerPoint Presentation

プログラミング実習I

Microsoft Word - no103.docx

物質工学科 田中晋

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

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

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

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

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

cp-7. 配列

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

gengo1-2

Microsoft Word - no11.docx

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

演習課題No12

Microsoft Word - no02.doc

Microsoft PowerPoint - prog04.ppt

Microsoft Word - 3new.doc

kiso2-03.key

C C UNIX C ( ) 4 1 HTML 1

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

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

スライド 1

PowerPoint プレゼンテーション

Microsoft PowerPoint - class04.ppt

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

プログラミング基礎

講習No.10

講習No.1

Microsoft Word - COMP-MATH-2017-FULLTEXT.doc

ポインタ変数

<4D F736F F D20438CBE8CEA8D758DC03389F0939A82C282AB2E646F63>

Microsoft PowerPoint - kougi2.ppt

講習No.9

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

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

Microsoft PowerPoint - C4(反復for).ppt

Microsoft Word - no202.docx

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

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

Microsoft PowerPoint - 4.pptx

memo

講習No.8

gengo1-8

プログラミング基礎

第2回講義:まとめ

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

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

ポインタ変数

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

C 言語固有の命令で全部で32 個 の関数C 言語第 1 回 C 言語って?( シラバス 1 2 回目 ) 関数型言語 コンピュータに実行してもらう命令はすべて関数の中に記述されている 関数がプロ グラム

フローチャートの書き方

Microsoft PowerPoint - 3.pptx

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

Microsoft PowerPoint - lec4.ppt

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

gengo1-10

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

Microsoft PowerPoint - lec10.ppt

第9回 配列(array)型の変数

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

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

Prog1_6th

Microsoft Word - no13.docx

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

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

ポインタ変数

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

02: 変数と標準入出力

Report#2.docx

< F2D837C E95CF CF68A4A94C5816A2E6A>

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

講習No.12

演算増幅器

memo

PowerPoint Presentation

gengo1-12

/* sansu1.c */ #include <stdio.h> main() { int a, b, c; /* a, b, c */ a = 200; b = 1300; /* a 200 */ /* b 200 */ c = a + b; /* a b c */ }

Microsoft PowerPoint - prog08.ppt

kiso2-06.key

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

プログラミング実習I

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

Report#2.docx

計算機プログラミング

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

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

Transcription:

第 1 回 (4/16) 参考書 : [1] B.W. カーニハン,D.M. リッチー著 : プログラミング言語 C 第 2 版 ANSI 規格準拠, 共立出版, 1989 年. [2] 高橋麻奈著 : やさしい C 第 2 版, ソフトバンククリエイティブ, 2003 年. [3] 柴田望洋著 : 新版明解 C 言語入門編, ソフトバンククリエイティブ, 2004 年. [4] 林晴比古著 : 新 C 言語入門シニア編, ソフトバンククリエイティブ, 2004 年. [5] ハーバート シルト著 : 独習 C 第 3 版, 翔泳社, 2002 年. [6] スティーブ オウアルライン著 : C 実践プログラミング第 3 版, オライリー ジャパン, 1998 年. 講義ノート : http://cis.k.hosei.ac.jp/~wakahara/ 評価方法 : 出席点 20 点宿題点 60 点挑戦課題点 20 点

Ⅰ. 問題処理とプログラミング 1. 文字と数値の取扱い 1 プログラムの書き方 例題 1-1 ディスプレイに出力結果 1-1のような文字を表示してみなさい 出力結果 1-1 Coffee or tea? Coffee, please. Sugar? Yes, please. Milk, too? No, thank you. 考え方 Cで文字を出力するには,printf 関数を使い, 改行する場合は, \n を使う プログラム 1-1 01 /* E1-1 */ 02 /* 文字の出力 */ 03 #include <stdio.h> 04 05 main() 06 { 07 printf("coffee or tea?\n"); 08 printf("coffee, please.\n"); 09 printf("sugar?\n"); 10 printf("yes, please.\n"); 11 printf("milk, too?\n"); 12 printf("no, thank you.\n");

13 } エディット コンパイル リンク 実行のしかた $ emacs E1-1.c <-- ソースコードファイル E1-1.c を作成する $ gcc -c E1-1.c <-- コンパイルが実行されて, オブジェクトコードファイル E1-1.o ができる $ gcc E1-1.o <-- リンクが実行されて, 実行可能コードファイル a.out ができる 実行は $./a.out $ gcc E1-1.c <-- コンパイル リンクが実行されて,a.out ができる 実行は $./a.out $ gcc E1-1.c -o E1-1 <-- 実行可能コードファイルの名前を指定して E1-1 を作る 実行は $./E1-1 練習問題 1 1. プログラム1-1の行 02 を右の /*--------------------------------- ように, 書き換えて実行しなさい 文字の出力 -----------------------------------*/ 2. プログラム 1-1 の行 07, 09, 11 の \n を取り除いてプログラムを実行しなさい 3. プログラム 1-1 の行 07 を次のように, 書き換えて実行しなさい printf("\ncoffee\n or\n tea?\n");

2 整数型データの取扱い 例題 1-2 a を 20,b を 5 として,a と b の和および差を求めるプログラムをつくりなさい 出力結果 1-2 20 + 5 = 25 20-5 = 15 考え方 Cでは, 変数 (a,b など ) を使うとき, その変数にどのような値がはいるか前もって宣言しなければならない プログラム 1-2 01 /* E1-2 */ 02 /* 二数の和と差 */ 03 #include <stdio.h> 04 05 main() 06 { 07 int a, b, wa, sa; 08 a = 20; 09 b = 5; 10 wa = a + b; 11 sa = a - b; 12 printf("%d + %d = %d\n", a, b, wa); 13 printf("%d - %d = %d\n", a, b, sa); 14 }

3 実数型データの取扱い 例題 1-3 実数型の変数 a に 2.5 を代入して, その 2 乗と 3 乗の値を求めるプログラムをつくりなさい 出力結果 1-3 2.5^2 = 6.250000 2.5^3 = 15.625000 考え方実数を取り扱うときは, 変数を float 型で宣言する プログラム 1-3 01 /* E1-3 */ 02 /* 実数の 2 乗と 3 乗 */ 03 #include <stdio.h> 04 05 main() 06 { 07 float a, b, c; 08 a = 2.5; 09 b = a * a; 10 c = a * a * a; 11 printf("2.5^2 = %f\n", b); 12 printf("2.5^3 = %f\n", c); 13 }

練習問題 2 1.a を 1.23,b を 4.56 として a と b の和, 差, 積, 商を求めるプログラムをつくりなさい 2. 変数 x に 0.5,y に 2.3 を代入して,x 2 +y 2 と x 2 -y 2 を求めるプログラムをつくりなさい 3. 変数 x に 3.4,y に 1.5 を代入し,(x+y) 2 と (x-y) 2 を求めるプログラムをつくりなさい

4 文字型データの取扱い 例題 1-4 変数 x, y, z にそれぞれ A, a, 2 を代入して, 出力結果 1-4のように,2 文字分ずつあけて 1 行に A a 2 と表示し, さらに,A, a, 2 の JIS コードを 16 進数と 10 進数で表示するプログラムをつくりなさい 出力結果 1-4 A a 2 41 61 32 65 97 50 考え方 1 文字を取り扱うときは, 変数を char 型で宣言する 2コンピュータのメモリには, 文字や記号もすべて 2 進数で記憶される プログラム 1-4 01 /* E1-4 */ 02 /* 文字型データの取扱い */ 03 #include <stdio.h> 04 05 main() 06 { 07 char x, y, z; 08 x = 'A'; 09 y = 'a'; 10 z = '2'; 11 printf("%c %c %c\n", x, y, z); 12 printf("%x %x %x\n", x, y, z); 13 printf("%d %d %d\n", x, y, z); 14 }

練習問題 3 1. 変数 x, y, z にそれぞれ C, P, U を代入して,4 文字分ずつあけて 1 行に C P U と表示し, さらに C, P, U の JIS コードを 16 進数,8 進数および 10 進数で表示するプロ グラムをつくりなさい 但し,16 進数の場合は頭に 0x,8 進数の場合は頭に 0 が付くよ うに表示すること 例えば, 文字 C ならば 0x43,0103 となる 2. 変数 x, y, z のそれぞれに 0x43, 0x52, 0x54 を代入して, その JIS コードの文字を 2 文字分ずつあけて 1 行に表示するプログラムをつくりなさい 3. 変数 a, b, c, d, e のそれぞれに H, O, S, E, I の JIS コードを 16 進数で代入して, HOSEI と表示するプログラムをつくりなさい

2. 入出力関数 1 整数型データの入出力 例題 1-5 出力結果 1-5のように, キーボードから二つの整数 a, b を入力して,a 2 +b 2 とa 2 -b 2 の値を求めるプログラムをつくりなさい 次に,2 組の整数を表 1-6に示した値として, その表を完成させなさい 出力結果 1-5 整数 1は?5 整数 2は?7 5^2 + 7^2 = 74 5^2-7^2 = -24 整数 1 (a) 整数 2 (b) a 2 +b 2 表 1-6 5 8 12-19 11-74 -79 7 9 35-27 -63 35-97 a 2 -b 2 考え方キーボードからデータを入力するには,scanf 関数を使う 流れ図を書いてから, プログラムをつくる

プログラム 1-5 01 /* E1-5 */ 02 /* 整数型データの入出力 */ 03 #include <stdio.h> 04 05 main() 06 { 07 int a, b, c, d; 08 printf(" 整数 1は?"); 09 scanf("%d", &a); 10 printf(" 整数 2は?"); 11 scanf("%d", &b); 12 c = a * a + b * b; 13 printf("%d^2 + %d^2 = %d\n", a, b, c); 14 d = a * a b * b; 15 printf("%d^2 - %d^2 = %d\n", a, b, d); 16 }

練習問題 4 1. キーボードから二つの整数 a, b を入力して,a と b の和, 差, 積を求めるプログラムをつくりなさい 2. キーボードから二つの整数 a, b を入力して,(a+b) 2 と (a-b) 2 の値を求めるプログラムをつくりなさい 次に,a と b の値を表 1-7に示した数値として, その表を完成させなさい 整数 1 (a) 整数 2 (b) (a+b) 2 表 1-7 8 15 12 23-47 -15-37 5 17-29 -17 34-33 -48 (a-b) 2 3. キーボードから 16 進数 a を入力して, 対応する JIS コードおよび 8 進数表示を出力するプログラムをつくりなさい 変数 a は char 型で宣言します 出力例 16 進数 a は? 0x55 a の JIS コード= U a の 8 進数表示 = 0125

2 実数型データの入出力 例題 1-6 出力結果 1-6のように, 半径 rを入力すると, 円周の長さ n と円の面積 s を出力するプログラムをつくりなさい ただし, 円周の長さは小数第 1 位まで, 円の面積は小数第 2 位まで, 求めること 次に, 半径 rの値を 15.3 としてそれぞれの値を出力させなさい 出力結果 1-6 半径 rは?15.3 円周 = 96.1 面積 = 735.41 考え方円周の長さnは,n=2 3.14159 ( 半径 ) で求め, 円の面積 s は,s=3.14159 ( 半径 ) ( 半径 ) で求める プログラム 1-6 01 /* E1-6 */ 02 /* 円周の長さと円の面積 */ 03 #include <stdio.h> 04 05 main() 06 { 07 float p, r, n, s; 08 p = 3.14159; 09 printf(" 半径 r は?"); 10 scanf("%f", &r); 11 n = 2 * p * r; 12 printf(" 円周 = %.1f\n", n); 13 s = p * r * r; 14 printf(" 面積 = %.2f\n", s); 15 }

練習問題 5 1. 半径 rと高さhを入力すると, その大きさの円柱と円錐の体積をそれぞれ小数第 1 位まで出力するプログラムをつくりなさい 出力例 半径 r は? 3.5 高さ h は? 5.0 円柱の体積 = 192.4 円錐の体積 = 64.1 2. 陸上競技の 100m 走のタイム [s] を入力すると, 平均速度を秒速 [m/s] と時速 [km/h] の単位で小数第 1 位まで出力するプログラムをつくりなさい 出力例 100m 走のタイム [s] は? 14.1 秒速 = 7.1 [m/s] 時速 = 25.5 [km/h]