第3回目 [4月27日、H.16(‘04)] PE04-03.ppt 演算、整数型と浮動小数点型 本日のメニュー 1)前回の課題・宿題 2)ファイルサーバの利用 3)今日のポイント (演算、整数と浮動小数点数) 4)今日の課題・提出・宿題 前回の課題 1)演習1-4、演習1-5 (p.13)、演習1-6、 演習1-7、演習1-8 (p.15) を順に出力していくプログラムを作成せよ。 2)上の出力に続いて、次の値を順に見出付 きで出力せよ。(式をそのまま入れて良い) 1年は何秒か(24時間/日、60分/時間等) ASCIIコード表の64番目の文字 ファイル名は en2-****.c ファイル名の **** は学籍番号の二桁目と下3桁 例:学生番号 034987 ならば xxx-3987.c 前回の提出 1)プログラムリスト(A4版用紙を縦に使う) 今日の課題の 1)、2)の順にできたところまで のリストを印刷して提出する (必ずA4版の用紙で提出すること) 2)aucopyで en2-****.c を転送する。 3)aucopyで en2-****.exe を転送する。 2)、3)共に必ず aucopy を使って転送すること ファイル名の **** は学籍番号の二桁目と下3桁 例:学生番号 034987 ならば xxx-3987.c 前回の宿題 (1)今日の課題を最後までやる。 (2)教科書第1章を良く復習する。 (1)について、授業中に提出できなかった 場合、提出した後に更に内容を追加した場 合は、オープン利用室から aucopy を使い 4月26日(月)午後1時までに リスト印刷し提出、ファイル転送する。 リストはオープン利用室のレターケース #include <stdio.h> int main(void) { int a, n1, n2, n3, wa; printf("123456 朝日太郎\n"); /* (1)の課題 演習 1-4, 1-5 */ printf("整数を入力してください:"); scanf("%d", &a); printf("その数に10を加えると%dです。" , a+10 ); printf("整数を入力してください:"); scanf("%d", &a); printf("その数から10を減じると%dです\n" , a-10 ); /* (1)の課題 演習 1-6~1-8 */ puts("風\n林\n火\n山"); puts("二つの整数を入力してください"); printf("整数1:"); scanf("%d",&n1); printf("整数2:"); scanf("%d",&n2); printf("それらの積は%dです。\n",n1*n2); puts("三つの整数を入力してください"); printf("整数1:"); scanf("%d",&n1); printf("整数2:"); scanf("%d",&n2); printf("整数3:"); scanf("%d",&n3); wa = n1 + n2 + n3; printf("それらの和は%dです。\n", wa); return(0); } #include <stdio.h> 同じ a の値を int main(void) { 異なった変換指定で int a; 出力する printf("123456 朝日太郎\n"); /* (2)の課題 */ printf("1年は %d 秒です。\n", 365*24*60*60); printf("ASCIIコードの64番目" "は %c です。\n",64); a = 64; printf("ASCIIコードの%d番目" "は %c です。\n", a, a); return(0); } 提出について ◎プログラムについて ・ printf と puts の違い、\n の使い方 ・学籍番号・氏名の出力が無い(減点!) ・変数宣言は main(void) { の直後に記述する 複数行でも可能、同じ変数名は1度だけ宣言 ・scanf("%d",&n); の" "の位置、&の付け忘れ ・scanf,puts,printfの中、 " "は必ず1組 ・かけ算は×ではなく * を使う ・文の最後は ; で終わる → ; の付け忘れ ・プログラム中の全角文字(" "の中以外は不可) → スペース(□),セミコロン(;) 提出について ◎プログラムリスト(印刷提出)について ・コメント、評価(A,B,C,….)を記入して返却する ・リストの印刷提出の無いファイル → 評価を記入する用紙が無い!→ 評価不可能 ・リストは有るが、転送ファイルが無い → プログラムをチェックできない!→ 評価不可能 ◎プログラムファイルの aucopy による提出 ・ファイルを2回以上転送している(最新のもので評価) ・ファイル名が違う、転送フォルダーが違う(減点!) [.Cを.exeに書き換えて転送→PC暴走の可能性あり] ・転送ファイルと印刷の中身が違う(減点!) ファイルサーバー内のファイルの扱い プログラムをFSに保存すると、 en2-****.c というファイルができる → FDにコピーし、aucopyで転送 コンパイル後にできるファイル en2-****.obj → 消去可 en2-****.tds → 消去可 en2-****.exe → FDにコピーし、aucopy で転送 不要なファイル *.tds *.obj は早めに消去すること。 演算子の分類(オペランド数による) 加減演算子 足算:+ 引算:ー 乗除演算子 掛算:* 割算:/ 単純代入演算子 代入:= 剰余:% 2項演算子:(オペランド)(演算子)(オペランド) 単項+-演算子 符号不変:+ 符号反転:ー (演算子)(オペランド) 整数と浮動小数点数 整数[変換指定子:%d] 誤差なく内部表現される 10進数 → 2進数に変換 表現範囲が狭い(せいぜい10桁) 小数点以下は無い ( … -2 -1 0 1 2 …) short int : 2バイト(16ビット) -32,768 ~ 32,767 int, long int : 4バイト(32ビット) -2,147,483,648~2,147,483,647 unsigned int : 4バイト(32ビット) 0 ~ 4,294,967,295 整数と浮動小数点数 浮動小数点数[変換指定子:%f,%lf,%Lf] 指数と仮数による内部表現:123.4→0.1234×103 表現範囲が広いが、誤差を伴う(有効桁数は数桁) 小数点がある: 1.23 12. .56 1.2e2 5E15 [入力: %f、出力:%f ] float : 4バイト 1.2×10-38 ~ 3.4×1038 [有効数字7桁] double : 8バイト [入力:%lf 、出力:%f ] 2.2×10-308 ~ 1.7×10308 [有効数字15桁] long double : 10バイト [入力:%Lf 、出力:%Lf ] 3.4×10-4932 ~ 1.1×104932 [有効数字18桁] 今日の課題 (1)2つの整数を変数 a, b に入力し、a を b で割った時の商と余りを出力せよ。 (2)演習2-1(20頁) 二つの整数を入力せよ。 a, b => 17 3 (3)演習2-2(21頁) 商は 5 です。 (4)演習2-3(27頁) 余りは 2 です。 (1)から(4)を一つのプログラムで実行する。 ファイル名は en3-****.c ファイル名の **** は学籍番号の二桁目と下3桁 例:学生番号 034987 ならば xxx-3987.c 今日の提出 1)プログラムリスト(A4版用紙を縦に使う) 今日の課題の (1)~(4)までで、できたところ までのリストを印刷して提出する (必ずA4版の用紙で提出すること) 2)aucopyで en3-****.c を転送する。 3)aucopyで en3-****.exe を転送する。 2)、3)共に必ず aucopy を使って転送すること ファイル名の **** は学籍番号の二桁目と下3桁 例:学生番号 034987 ならば xxx-3987.c 今回の宿題 4桁の数値=> 6542 ◎キーボードから4桁の 千の位は 6 整数を入力し、それぞ れの桁の数値を求めよ。 百の位は 5 [発展]続けて、各桁の値 の合計と平均を求めよ。 ファイル名:hw3-****.c 十の位は 4 一の位は 2 合計は 17 平均は 4.25 hw3-****.exe • 締め切り: 5月8日(土) 午後1時 • リストの提出は、オープン利用室のレポート入れ • aucopy でのファイル転送フォルダーは、 [森下伊三男]-[プログラミング演習]
© Copyright 2024 ExpyDoc