第4回[平成16年5月11日(木)]:PN04ー04.ppt
型と演算、キャスト、変換指定
今日の内容
0
1
2
3
4
前回の復習
型と演算(混合演算)
キャスト
変換指定
課題(第2章までの総合演習)
皆さんのレポートから
• 考えている途中で答え合わせが始まってしまって全部できなかっ
pptの印刷を
たです。 → 時間を長めに取るように心がけます。
• 理解することができた。
忘れずに持参
• 難しくなってきた。しっかり予習・復習しないとついて行かないと
して下さい!
思った。 → 予習・復習を御願いします。
• 次の授業は違う科目を取っているため、プログラミング演習に出
[常に宿題だと
られません。入門の方ではパソコンを使って実際にやらないので
分かりづらいです。
思って下さい]
→ オープン利用室を使って各自で演習をして下さい。
• 後ろの席は紙が配られるのが前の席より遅いので書き上がるま
で時間がかかるので、後ろの席に合わせてほしい。
→ 早めに紙を配るようにします。
• 少し進むのが早い。 → できるだけゆっくりを心がけます。
• ちょっと難しい。全く分かりません。 → 教科書を良く読む
• 先週休んだだけど、全然分からなくなってきた。後、もう少しゆっ
くり話してほしい。 → 欠席したときには、必ず自分で復習を!
皆さんのレポートから
• 小数点がある時は、double とかfloat
を使うのか?
→ はい。
• 3e6 の説明を詳しくして
→ 浮動小数点数の表現の仕方
(整数部分)(小数点)(小数点以下の部分)
12.34 .567 123. 0.12 3.0
(仮数部分)(e)(指数部分[整数])
1.2e5 0.34e-8 34e+5 3E6
復習
基本データ型
• 整数型(int, short int)
32 ビット ; -2147483648..2147483647
16 ビット ; -32768 .. 32767
• 浮動小数点型(float,double)
32 ビット ; ±1.2e-38~±3.4e38
64 ビット ; ±2.2e-308~±1.7e308
• 文字型(char)
仮数部e指数部
1文字をクォーテーションで囲む (ASCII文字)
8 ビット ; -128~127 (整数値として)
printf の制御文字列(書式)
復習
• printf (書き出すデータ);
書き出すデータが文字列の場合; " " で囲む
→ "朝日大学 \n 情報管理学科\n"
書き出すデータが数値、文字の場合;変換指定子
内部表現(2進数で表現)
書式を指定できる
%d, %c, %f
人間が理解しやすい10進数字、文字で表示
printf("1日は %d 秒\n",24*60*60);
変換指定子(まとめ) 復習
printf("%d",15*2+18*4);
計算結果の (102)10 が整数値を表す
102
printf("%c",15*2+18*4);
計算結果の (102)10 が文字コードを表す
'f'
printf("%f",1.5*2+1.8*4);
計算結果の 0.102×102 が浮動小数点数を表す
10.200000
式の型(整数型、浮動小数点
型)
*/
+ー
整数型
浮動
小数点型
整数型
%
浮動
小数点型
/
整数化
浮動
小数点型
演習(商と余りの値)
問.次の演算結果の値を求めよ。
(1) 3 / 2
(8) 4 % 2
(2) 3.4 / 2
(9) 2 % 4
(3) 4.2 /2.1
(10)
7 % 3
(4) 10 / 2.0
(11) -7 % 3
(5) 5.5/-1.1
(12)
(6) –4 / 2
(13) –7 % -3
(7) –11 / 2.
(14) –3 % 7
7 % -3
代入式の注意事項
代入演算子 = の左辺は変数名
右辺の結果は左辺の型に合わせられる
(浮動小数点型の変数名)
=(浮動小数点型の式);◎
(整数型の変数名)=(整数型の式); ◎
(浮動小数点型の変数名)=(整数型の式);
//実数化
(整数型の変数名)=(浮動小数点型の式);
//切り捨て
演習(型に注意)
a
x
各変数の値をトレースしよう。b
y
int a, b; double x, y;
a=3; b=2; x=4.5; y=6.;
a+b = x;
y = a + b;
a = 1.5; b = x + y; a = 3 + x;
b
=
x
+
0.5;
キャスト演算子
List2-10,11 二つの整数値 a, b を入力し、
その平均値を出力せよ。
int a, b;
printf("整数A:");scanf("%d",&a);
printf("整数B:");scanf("%d",&b);
printf("平均値は%d\n", (a+b)/2 );
printf("平均値は%f\n", (a+b)/2.0 );
printf("平均値は%f\n",
(double)(a+b)/2 );
演習(式の表現)
問.次の数学上の式をプログラムの中での式の
表現に直せ。
(1)
(2)
a
1 1

a b
cd
a c
2
bc 
c
e
d
f
演習(式の表現)
問.次の数学上の式をプログラムの中での式の
表現に直せ。
(3)
2
3
4
aa a  a
出力桁の指定[整数]
"%-6d,%-6d"
"%6d,%6d"
"%d,%d"
printf("%d%d"
,1234,5678)
%d
左詰(右側空白無し)
12345678
%md
m桁右詰(左側空白)
1234,
%-md
1234
1234,5678
5678
"%3d,%3d"
m桁左詰(右側空白)
,5678
"%-3d,%-3d"
演習
値 123 はどのように表示されるか?
%-1d
%1d
%-2d
%2d
%-3d
%3d
%-4d
%4d
%-5d
%5d
%-6d
%6d
%-7d
%7d
出力桁の指定[浮動小数点数]
printf("%f%f"
,12.3,4.567)
"%-11f,%-11f"
"%11f,%11f"
"%f,%f"
%f
左詰(右側空白無し)
12.3000004.567000
12.300000,4.567000
%mf
m桁右詰(左側空白)
12.300000,
%-mf
4.567000
%3f
m桁左詰(右側空白)
12.300000
,4.567000
%-3f
出力桁の指定[浮動小数点数]
"%11.12f"
"%-11.6f"
"%11.6f"
"%11.0f" ,12.345678901)
printf("%f"
%m.nf
%-m.nf
"%11.0f"
"%11.6f"
右詰m桁、小数点以下n桁
左詰m桁、小数点以下n桁
12
mが無い場合
12.345679 小数点以下
の桁だけ指定
"%-11.6f"
12.345679
"%11.12f"
12.345678901???
出力桁の指定(%m.nf,%-m.nf)
m桁内に小数部分がn桁で右詰(左詰め)表示
xの値→1.23456 0.0123 123.456
%6.0f
1
0
123
%6.1f
1.2
0.0
123.5
%6.2f
1.23
0.01 123.46
%6.3f
1.235
0.012 123.456
%6.4f 1.2346 0.0123 123.4560
%-6.2f 1.23
0.01
123.46
%-6.5f 1.23456 0.01230 123.45600
演習
値 32.67410 はどのように表示されるか?
%5.2f
%-5.2f
%6.0f
%-6.0f
%6.5f
%-6.5f
%8.2f
%-8.2f
%8.4f
%-8.4f
%2.1f
%-2.1f
%1.3f
%-1.3f
出力桁の指定[浮動小数点数:補
足]
"%11.12e"
"%11.2e"
"%11.0e"
"%e"
printf("%e"
,12.345678901)
%m.ne
%-m.ne
"%e"
"%11.0e"
"%11.2e"
"%11.12e"
右詰m桁、小数点以下n桁
左詰m桁、小数点以下n桁
1.234568e+01
指数形式
の表示
1.23e+01
1e+01
1.2345678901??e+01
第2章までの総合演習
(1)画面に、『本日は晴天なり』と表示す
るプログラムを書いてみよう。
(2)単位を互いに換算するプログラムを書い
てみよう。
(a)センチ(cm)とインチの換算[1インチ
=2.54cm]
(b)ドル($)と円(\)の換算[1$=\109.5]
F
(c)摂氏C(℃)と華氏F(°)の換算
5
C  ( F  32)
9
第2章までの総合演習
(3)単価 a 円のハンバーガーを n 個買
い、 y 円札を出したら、お釣りはいくらにな
るでしょう?
この計算をするプログラムを書いてみよう。
(4)上底a、下底b、高さh の台形の面積 S
s
( a b ) h
2
を計算するプログラムを書いてみよう。
第2章までを振り返って
・受講に当たっての注意点
予習:pptファイルをaucopyでダウンロードする
印刷し、演習問題をやってみる
授業:印刷資料を持参する
演習問題の答え合わせ
分からないところは必ず質問する
復習:演習問題や課題の理解を深める
教科書を読み直してみる
自分で考えてプログラムを書き、実行する
今日の課題
これまで半期間授業を受けた事につい
て以下の質問に答えよ
• 授業内容
不十分な所、中止・継続事項、良かった所
プレゼンテーション(表示、話、時間)
• 受講状態
予習・復習、演習は十分したか?
質問はしたか?、何%ぐらい理解できたか?
• 前学期後半の授業への提案、意見
ダウンロード

Document