差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
lecture:kiso2:2018:ex14 [2019/01/08 08:37]
sano
lecture:kiso2:2018:ex14 [2019/09/23 13:22] (現在)
sano ↷ lecture:kiso2:2019:ex14 から lecture:kiso2:2018:ex14 へページを移動しました。
ライン 1: ライン 1:
 ===== 第14回の演習課題 ===== ===== 第14回の演習課題 =====
 +=== ex14-masu.c ===
 +要素の値が 0 から100 の範囲にある大きさ50の整数型の配列変数 data[] と,配列 data[] の要素の値が 0〜9, 10〜19, …, 90〜99, 100 のような10刻みの範囲に何個ずつ含まれているかを*で出力するプログラム ex14-masu.c の一部が以下のように与えられてる. ex14-masu.c 完成させて__kiso2コマンドを用いて提出しなさい。__
 +
 +<code C ex14-masu.c>​
 +#include <​stdio.h>​
 +
 +#define N 11 //​a[]の個数
 +#define M 50 //​data[]の個数
 +
 +/* 関数のプロトタイプ宣言 */
 +
 +int main(void)
 +{
 +   int data[] = {57, 25, 5, 82, 39, 37, 3, 16, 1, 7, 80, 4, 72, 81, 95, 8, 67, 83, 9, 95, 40, 13, 34, 49, 100, 83, 79, 5, 90, 11, 8, 96, 89, 38, 30, 45, 59, 90, 32, 71, 42, 6, 57, 84, 97, 17, 84, 51, 64, 56};
 +
 +   int a[N]={0}, i; //​10刻みの範囲に何個ずつ含まれているかを格納する配列 a
 +   ​proc(a,​data); ​  //​10刻みの範囲に何個ずつ含まれているかを格納する処理
 +
 +   ​for(i=0;​i<​N;​i++){
 +      printf("​%3d - %3d: ", /* %dに対応する変数 */ );
 +      starwrt( /* 対応する変数 */ );
 +   }
 +   ​return 0;
 +}
 +
 +void proc( /* 対応する引数 */)
 +{
 +  int i;
 +  for(i=0;​i<​M;​i++)
 +    a[data[i]/​10]++;​
 +  return;
 +}
 +
 +
 +void starwrt(int n)
 +{
 +   int i;
 +   ​for(i=0;​i<​n;​i++)
 +      printf("​*"​);​
 +   ​printf("​\n"​);​
 +   ​return;​
 +}
 +</​code> ​  
 +
 +実行例:
 +<​code>​
 +t180900@s01cd0542-160:​~/​kiso2-2018/​ex14$ ./ex14-masu
 +  0 -   9: **********
 + 10 -  19: ****
 + 20 -  29: *
 + 30 -  39: ******
 + 40 -  49: ****
 + 50 -  59: *****
 + 60 -  69: **
 + 70 -  79: ***
 + 80 -  89: ********
 + 90 -  99: ******
 +100 - 109: *
 +</​code>​
 +
 +=== ex14-shaku.c ===
 +関数 kuku() は、2つのint型の変数 a,b の値を引数として受け取ると a行 b列の九九表を作る関数である。
 +関数 kuku()を定義しないさい。
 +
 +また、2つの整数値 x,y を入力するとこの関数 kuku() を用いて九九表を書くプログラム ex14-shaku.c を完成させて__kiso2コマンドを用いて提出しなさい。__
 +ただし、整数値 x,y の入力と九九表の出力は繰り返し行えるものとし、x,​y どちらかに 0 以下の値が入力されるとプログラムを「終了します」と出力して終了するものとする。
 +
 +実行例:
 +<​code>​
 +t180900@s01cd0542-160:​~/​kiso2-2018/​ex14$ ./​ex14-shaku
 +l? 9
 +m? 9
 +  |   ​1 ​  ​2 ​  ​3 ​  ​4 ​  ​5 ​  ​6 ​  ​7 ​  ​8 ​  9
 +----------------------------------------
 + ​1| ​  ​1 ​  ​2 ​  ​3 ​  ​4 ​  ​5 ​  ​6 ​  ​7 ​  ​8 ​  9
 + ​2| ​  ​2 ​  ​4 ​  ​6 ​  ​8 ​ 10  12  14  16  18
 + ​3| ​  ​3 ​  ​6 ​  ​9 ​ 12  15  18  21  24  27
 + ​4| ​  ​4 ​  ​8 ​ 12  16  20  24  28  32  36
 + ​5| ​  ​5 ​ 10  15  20  25  30  35  40  45
 + ​6| ​  ​6 ​ 12  18  24  30  36  42  48  54
 + ​7| ​  ​7 ​ 14  21  28  35  42  49  56  63
 + ​8| ​  ​8 ​ 16  24  32  40  48  56  64  72
 + ​9| ​  ​9 ​ 18  27  36  45  54  63  72  81
 +l? 10
 +m? 4
 +  |   ​1 ​  ​2 ​  ​3 ​  4
 +--------------------
 + ​1| ​  ​1 ​  ​2 ​  ​3 ​  4
 + ​2| ​  ​2 ​  ​4 ​  ​6 ​  8
 + ​3| ​  ​3 ​  ​6 ​  ​9 ​ 12
 + ​4| ​  ​4 ​  ​8 ​ 12  16
 + ​5| ​  ​5 ​ 10  15  20
 + ​6| ​  ​6 ​ 12  18  24
 + ​7| ​  ​7 ​ 14  21  28
 + ​8| ​  ​8 ​ 16  24  32
 + ​9| ​  ​9 ​ 18  27  36
 +10|  10  20  30  40
 +l? 4
 +m? 8
 +  |   ​1 ​  ​2 ​  ​3 ​  ​4 ​  ​5 ​  ​6 ​  ​7 ​  8
 +------------------------------------
 + ​1| ​  ​1 ​  ​2 ​  ​3 ​  ​4 ​  ​5 ​  ​6 ​  ​7 ​  8
 + ​2| ​  ​2 ​  ​4 ​  ​6 ​  ​8 ​ 10  12  14  16
 + ​3| ​  ​3 ​  ​6 ​  ​9 ​ 12  15  18  21  24
 + ​4| ​  ​4 ​  ​8 ​ 12  16  20  24  28  32
 +l? 0
 +m? 4
 +t180900@s01cd0542-160:​~/​kiso2-2018/​ex14$ ./​ex14-shaku
 +l? 4
 +m? 0
 +</​code>​
 +
 +=== ex14-miran.c ===
 +関数 f() は引数 x の値を受け取ると x*x/2 の値を返す関数である。
 +また、関数 g() は引数 x の値を受け取ると x*x/3 の値を計算し出力する関数である。
 +
 +以下の実行例を実現するように、適切な引数の型と返り値の型を選び、関数 f() と g() を定義しなさい。
 +さらに、これらの関数 f(), g() を用いて、値 x を入力すると f(), g() の結果を出力するプログラム ex14-miran.c を作成し__kiso2コマンドを用いて提出しなさい。__
 +ただし、値 x の入力と計算結果の出力は繰り返し行えるものとし、x に 0 が入力されるとプログラムは終了するものとする。
 +また、プログラムの実行直後には、f() と g() の計算式を出力すること(実行例を参照)。
 +
 +実行例:
 +<​code>​
 +t180900@s01cd0542-160:​~/​kiso2-2018/​ex14$ ./​ex14-miran
 +f(x)=x*x/2
 +g(x)=x*x/3
 +
 +x? 1
 +f(1)=0.50
 +g(1)=0.33
 +x? 2
 +f(2)=2.00
 +g(2)=1.33
 +x? 3
 +f(3)=4.50
 +g(3)=3.00
 +x? 10
 +f(10)=50.00
 +g(10)=33.33
 +x? 100
 +f(100)=5000.00
 +g(100)=3333.33
 +x? 2019
 +f(2019)=2038180.50
 +g(2019)=1358787.00
 +x? 0
 +</​code>​
 +
 +
 +
 +
 +
  
  • lecture/kiso2/2018/ex14.1546904228.txt.gz
  • 最終更新: 2019/01/08 08:37
  • by sano