課題


問題

c言語

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
#include 

int main(){
  int x[] = {1,2,3,4,5,6,7,8,9};
  int c =0;
  int i,t;
  printf("1から9の中で3で割ったときの余りが1のものは、\n");
  for(i=0;i<9;i++){
    t = x[i] % 3;
    if(t == 1){
      printf("%d\n",x[i]);
      c++;
    }
  }
  printf("の%dつです。\n",c);
  return(0);
}
このプログラムと同じ動作をするJavaプログラムを作成せよ。

ソースプログラム

exa.java

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
class exa{
    public static void main(String args[]){
        int x[]={1,2,3,4,5,6,7,8,9};            // ------------------------------------ (a)
        int c =0;              // ----------------------------------------------------- (b)
        int i,t;               // ----------------------------------------------------- (c)
        System.out.println("1から9の中で3で割ったときの余りが1のものは、");
        for(i=0;i<9;i++){      // ----------------------------------------------------- (d)
            t = x[i] % 3;      // ----------------------------------------------------- (e)
            if(t == 1){        // ----------------------------------------------------- (f)
                System.out.println(x[i]+"");    // ------------------------------------ (g)
                c++;           // ----------------------------------------------------- (h)
            }
        }
        System.out.println("の"+c+"つです。");    // ------------------------------------ (i)
    }
}

実行結果

% javac exa.java
% java exa
1から9の中で3で割ったときの余りが1のものは、
1
4
7
の3つです。

考察

 (a)-xに整数の値1~9までを格納
 (b)-cに0を格納
 (c)-整数型でi,tを定義
 (d)-9回繰り返す
 (e)-xを3で割ったあまりをtに格納
 (f)-tが1の時に行う
 (g)-x[i]の値を出力
 (h)-cを1つ増やす
 (i)-cの値をはさんで、文字を出力



感想

今回はc言語から先に作り、そのあとJava言語で作ったのでソースコードが似たようになりました。c言語は久しぶりでしたが、それほど苦労することなくできたのでよかったです。また、Javaに直す時に、思っていたほどエラーがでなかったので驚きました。htmlは前回の構成と同じようにやりましたが、表現しずらいところもあったので、もう少し考えようと思います。

参考文献