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);
}
}
|
実行結果
問題
問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の違いも自分で確かめることができてよかった。