以前のリビジョンの文書です


演習課題 ex02-2.c

次のソースファイル ex02-2.c は、立方体の一辺の長さを整数値として入力し、その立方体の体積と表面積を求めるために書かれたプログラムである。 ただし、このソースファイル ex02-2.c には幾つかの間違いが含まれている。

このプログラムを正しく動作するように修正し、修正したソースファイル ex02-2.ckiso2コマンドを用いて提出しなさい。

ex02-2.c
include <stdio.h>
 
int main {
   int l           /* 一辺の長さ */
   int v, s;       /* 体積 v と表面積 s */
 
   scanf("%d", &l)
   printf(立方体の一辺の長さを入力して下さい: );
 
 
   printf("一辺の長さが %d の立方体の体積は l*l*l です。\n" l, v);
 
   s = 6 * (a*2);
   print("一辺の長さが %d の立方体の表面積は %d です。\n", l,  s);
 
  return 0;

実行例:

t180900@s01cd0542-160:~/kiso2-2018/ex02$ ./ex02-2
立方体の一辺の長さを入力して下さい: 3
一辺の長さが 3 の立方体の体積は 27 です。
一辺の長さが 3 の立方体の表面積は 54 です。

演習課題 ex02-3.c

1つの整数値 $a$ を入力すると、$a^2$ と $a^3$ の値を整数値として出力するプログラム ex02-3 を作成し、そのソースプログラム ex02-3.ckiso2コマンドを用いて提出しなさい。

実行例:

t180900@s01cd0542-160:~/kiso2-2018/ex02$ ./ex02-3
a の値を入力して下さい 3 
a*a = 9
a*a*a = 27
t180900@s01cd0542-160:~/kiso2-2018/ex02$ ./ex02-3
a の値を入力して下さい 0
a*a = 0
a*a*a = 0
t180900@s01cd0542-160:~/kiso2-2018/ex02$ ./ex02-3
a の値を入力して下さい -2
a*a = 4
a*a*a = -8

演習課題 ex02-4.c

前期の計算機基礎実習Iの第13回 13.1 ゲームを作ろう で数当てゲーム hitblow.c を作成した。 この hitblow.c と同様の動作をする Linux 上の実行ファイル ex02-4 を作成し、そのソースファイル ex02-4.ckiso2コマンドを用いて提出しなさい。

このとき、hitblow.c を Linux上で動作させるためには、およそ以下のような変更が必要となる。

  • turtle.h に代わり stdio.h をインクルードする。
  • tPrintf() 関数に代わり、printf()関数を利用する。
  • tScanf() 関数に代わり、scanf()関数を利用する。
  • t で始まる幾つかのタートルグラフィックス用の関数を削除する。

実行例:

t180900@s01cd0542-160:~/kiso2-2018/ex02$ ./ex02-4
1回目 ? 123
0H1B
2回目 ? 234
0H1B
3回目 ? 345
1H0B
4回目 ? 367
1H2B
5回目 ? 376
おめてとう。正解です。

演習課題 ex02-5.c

1つの整数値 $a$ を入力すると、$a^{-2}, a^{-\frac{1}{2}}, a^\frac{1}{2}, a^2$ の値をそれぞれ実数値として出力するプログラム ex02-5 を作成し、そのソースファイル ex02-5.ckiso2コマンドを用いて提出しなさい。

実行例:

t180900@s01cd0542-160:~/kiso2-2018/ex02$ ./ex02-5
a の値を入力して下さい 3 
a^(-2) = 0.111111
a^(-1/2) = 0.577350
a^(1/2) = 1.732051
a^(2) = 9.000000
t180900@s01cd0542-160:~/kiso2-2018/ex02$ ./ex02-5
a の値を入力して下さい 0
a^(-2) = inf
a^(-1/2) = inf
a^(1/2) = 0.000000
a^(2) = 0.000000
t180900@s01cd0542-160:~/kiso2-2018/ex02$ ./ex02-5
a の値を入力して下さい -2
a^(-2) = 0.250000
a^(-1/2) = -nan
a^(1/2) = -nan
a^(2) = 4.000000
この問題では、$a^\frac{1}{2}$ を計算させる必要があります。 C言語では、このような数学関数を計算させるための標準関数が幾つか用意されています。この数学関数を使うためには、math.h というファイルを #include 文でインクルードする必要があります。 また、math.h をインクルードしたソースファイルから実行ファイルを作る場合、C言語コンパイラ cc にとくべつなコマンドラインオプションを付けてコンパイラを実行しなければなりません。 これらの数学関数の使い方やコンパイルの方法は、この実習でも後日解説しますが、余裕のある人は使い方を調べてこの問題に挑戦してみて下さい。
実行例の計算結果には、infnan が現れています。 inf は、Infinity(無限大) の略で、計算結果が計算機で表現できる範囲を超えた場合や、ゼロで除算された場合に表示されます。 また、nan は、Not A Number(数値ではない) の略で、計算機では表現できない不正な計算が行われた場合、例えば、0/0 などの不定な計算や負数の平方根や対数などが計算された場合に表示されます。
  • lecture/kiso2/ex02.1537790859.txt.gz
  • 最終更新: 2018/09/24 21:07
  • by sano