知能情報工学演習I 第9回(後半第3回) 課題の回答

Slides:



Advertisements
Similar presentations
知能情報工学演習 I 第 12 回( C 言語第6 回) 課題の回答 岩村雅一
Advertisements

A B x y z 復習 構造体変数 普通の変数 x y z 構造体変数 x y z 箱のイメージ 引き出しのイメージ
コンピュータープログラミング(C言語)(3) 1.関数と分割コンパイル (復習) 2.キーボード入力
ポインタ プログラミング入門2 第10回 芝浦工業大学情報工学科 青木 義満
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
基礎プログラミングおよび演習 第9回
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
問題 1 キーボードから入力した数の合計を計算するプログラムを 作成せよ。最初に、何個の数を入力するかその数を入力 するようにする。
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
プログラミング入門2 第2回 型と演算 条件分岐 篠埜 功.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
プログラミング応用 printfと変数.
知能情報工学演習I 第9回( C言語第3回) 課題の回答
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
知能情報工学演習I 第12回(後半第6回) 課題の回答
今までの練習問題の復習.
第13章 文字の取り扱い方 13.1 文字と文字型変数 13.2 文字列 13.3 文字型配列への文字列の代入
知能情報工学演習I 第9回(後半第3回) 課題の回答
第13章 文字の取り扱い方 13.1 文字と文字型関数 13.2 文字列 13.3 文字型配列への文字列の代入
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
高度プログラミング演習 (02).
知能情報工学演習I 第8回( C言語第2回) 課題の回答
復習 2次元配列 4列 j = 0 j = 1 j = 2 j = 3 i = 0 i = 1 i = 2 3行
プログラミング基礎B 文字列の扱い.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
2013年度 プログラミングⅡ ~ 計算してみよう ~.
2015年度 プログラミングⅡ ~ 計算してみよう ~.
整数データと浮動小数データ.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
プログラミング序論演習.
復習 2次元配列 4列 j = 0 j = 1 j = 2 j = 3 i = 0 i = 1 i = 2 3行
知能情報工学演習I 第7回(後半第1回) 課題の回答
知能情報工学演習I 第11回( C言語第5回) 課題の回答
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
第13章 文字の取り扱い方 13.1 文字と文字型変数 13.2 文字列 13.3 文字型配列への文字列の代入
C言語講座 制御(選択) 2006年 計算技術研究会.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
標準入出力、変数、演算子、エスケープシーケンス
知能情報工学演習I 第8回(後半第2回) 課題の回答
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
第4章 double 小数型の変数;.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
知能情報工学演習I 第12回( C言語第6回) 課題の回答
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
第3回簡単なデータの入出力.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
プログラミング序論演習.
プログラミング入門2 第5回 配列 変数宣言、初期化について
printf・scanf・変数・四則演算
第2章 数値の入力と変数 scanfと変数をやります.
知能情報工学演習I 第11回(後半第5回) 課題の回答
C言語講座第5回 2017 構造体.
C言語講座 四則演算  if ,  switch 制御文.
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
知能情報工学演習I 第10回( C言語第4回) 課題の回答
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

知能情報工学演習I 第9回(後半第3回) 課題の回答 岩村雅一 masa@cs.osakafu-u.ac.jp

課題1 10進数の整数を入力し、8進数と16進数を出力するプログラムを作りなさい。 #include<stdio.h> int main(void){ int a; printf(“10進数を入力: "); scanf("%d",&a); printf("8進数: %o\n",a); printf("16進数: %x\n",a); return 0; } 10進数の整数を入力し、8進数と16進数を出力するプログラムを作りなさい。

課題1:実際にあった間違い 「12進数に変化させたい文字は?」 変数宣言が最初にない。 printf文の引数が足りない。 正しくは16進数。 int main(void) { int a; … printf(""); char name[100]; printf文の引数が足りない。 printf("8進数に変換すると%o,16進数に変換すると%xになります\n",a);

課題2 double型なので 角度を入力させ、その余弦(cosine)を返すプログラムを作りなさい。 #include<stdio.h> #include<math.h> int main(void){ double deg, rad; printf("角度を入力してください\n"); scanf("%lf", &deg); rad=deg*M_PI/180.0; printf("cos(%f°)=%fです。\n",deg, cos(rad)); return(0); } 角度を入力させ、その余弦(cosine)を返すプログラムを作りなさい。 #include <math.h>のM_PIを使うことができる。 double型だけど

課題2:実際にあった間違い ラジアンに変換していない。 float型をscanfで読み込むときに%lfを使っている。 float a; scanf("%fl",&a); printfでfloat型を表示するときに%lfを使っている。 二重に間違っている。 float d; printf("その角度の余弦は、%lf です\n",d);

課題3 身長、体重、名前を入力し、名前とBMIを返すプログラムを作りなさい。 出力例:「◯◯さんのBMIは◯◯です。」 #include<stdio.h> int main(void) { float h, w; char name[100]; printf("名前: "); scanf("%s", name); printf("身長(m): "); scanf("%f", &h); printf("体重(kg): "); scanf("%f", &w); printf("%sさんのBMIは%fです。\n", name, w/(h*h)); return 0; } 身長、体重、名前を入力し、名前とBMIを返すプログラムを作りなさい。 出力例:「◯◯さんのBMIは◯◯です。」

課題3:実際にあった間違い(その1) scanfで文字列を入力するときに、&をつける。 コンパイルが通らない。 char a[100;] char name[100]; scanf("%s",&name); gccだと、何故か動く(サービス?)けど、本来は間違い。他のコンパイラで動く保証がない(はずな)ので注意。 コンパイルが通らない。 char a[100;] 文字列にchar型の2次元配列を使っている。 + scanfで文字列を入力するときに、&をつける。 char a[100][100]; printf("名前は?:"); scanf("%s",&a);

課題3:実際にあった間違い(その2) printfで変数に&を付けている。 名前を入力させない。 配列の範囲外を使っている。 float f3; printf("%f",&f3); 名前を入力させない。 配列の範囲外を使っている。 float x[3]; … x[3]=x[1]/(x[0]*x[0]);

課題4 float int 整数を入力し、10の位を四捨五入するプログラムを作りなさい。 例:123を入力すると、100を返す。789を入力すると、800を返す。 回答例1: float型で入力 回答例2: int型で入力 #include<stdio.h> int main(void) { float a; printf("Input: "); scanf("%f",&a); printf("%dの四捨五入は%d\n", (int)a, (int)(a/100.0+0.5)*100); return 0; } #include<stdio.h> int main(void) { int a; printf("Input: "); scanf("%d",&a); printf("%dの四捨五入は%d\n", a, (a+50)/100*100); return 0; } float int 123.0 / 100.0 + 0.5  1.73 123 + 50  173 173 / 100  1 1.73  1

課題4:実際にあった間違い 数式中で中括弧を使っている。 (何故か正しく動いている!) if文を使っている。 b = (int){(a+50) / 100}; if文を使っている。