report2

課題

制御文と配列を用いてオリジナルのJavaアプリケーションによる初級問題(なる
べく短い行数で)を作成し、
模範解答例を示せ。併せて、同様な動作を行うC言語のソースコードを示せ。


次のプログラムソースを見て、後の問いに答えよ。

report2.javaのソース

public class report2 {
    public static void main(String args[]) {
        int Q1 = 0;

        int[] a = {55,63,7,233,301,113,31,544,333};
        int Q2 = 0;

        for(int i = 0;[   1   ]; i++) {
            Q1 = Q1 + a[i];
            if ([  2  ]) {
                Q2 = Q2 + a[i];
            }
        }
        [        3       ]("Q1 = " + Q1);
        [        3       ]("Q2 = " + Q2);
    }
}


実行結果

Q1 = 1680
Q2 = 396

問題

問1 for文の条件文で,iが9回+1されるようにするには、[ 1 ]が入る。 問2 if文でQ2に、3で割り切れる数の足し算が入るように、[ 2 ]に条件文を入れよ。 問3 ()内が出力されるように[ 3 ]に適当なクラス、メソッド、オブジェクトを入 れよ。


解答


問1 答え;i < 9

iが0から始まっているので、iが8になるまで+1し続ければいい。ということは、
条件文では、[i < 9]ということになる。


問2 答え;a[i]%3 == 0

3で割り切れるということは、余りが0ということなので、演算子は%を使い、
上記のように書くことができる。このとき、3で割り切れるのは63と333があり、
これらの足し算がQ2に出力されている。(63 + 333 = 396)


問3 答え;System.out.println

javaでの出力には、上記のものを使う。この時、"println"の"ln"の部分は改行
するという意味である。

完成されたソース
public class report2 {
    public static void main(String args[]) {
        int Q1 = 0;

        int[] a = {55,63,7,233,301,113,31,544,333};
        int Q2 = 0;

        for(int i = 0; i < 9; i++) {
            Q1 = Q1 + a[i];
            if (a[i]%3 == 0) {
                Q2 = Q2 + a[i];
            }
        }
        System.out.println("Q1 = " + Q1);
        System.out.println("Q2 = " + Q2);
    }
}

c言語による記述

report2.cのソース
#include lt;stdio.hgt;

int Q1 = 0;
int a[] = {55,63,7,233,301,113,31,544,333};
int Q2 = 0;
int i;

int main(){
  for (i = 0; i < 9; i++ ) {
    Q1 = Q1 + a[i];
    if (a[i]%3 == 0) {
      Q2 = Q2 + a[i];

    }
  }
  printf("Q1 = %d\n", Q1);
  printf("Q2 = %d\n", Q2);
  return(0);
}
1、#include lt;stdio.hgt;はc言語の決まり文句。
2、int型のQ1,a[],Q2,iという入れ物を用意。
   Q1,Q2には0を入れる。
   a[]には9個の値を用意し、最初(55)が0番目、最後(333)が8番目になっ
ている。
3、c言語では値を入れる時は","を、java言語では"+"を使う。
4、c言語の"printf"と、java言語の"System.out.print"は等しい。


感想

 今回の課題は、『自分で問題を作成し、自分で解答をする!』という今までに
ない感じでよかったと思う。けれども、問題をどういう風に作ったらいいか?と
か、解説はどうやったら解りやすいか?ということを考えるのが難しかった。
 また、c言語での記述もあって、いい復習になったと思う。c言語とjavaの違いも自分で確かめることができてよかった。