☆課題☆

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

問題

「programming」という文字を逆にして表示させるプログラムを作成せよ。(配列か制御文を使うこと)



模範回答例


  1. public class rep2{
  2. public static void main(String args[]){
  3. int i;
  4. char[] a = {'p','r','o','g','r','a','m','m','i','n','g'};
  5. char[] b = {0,0,0,0,0,0,0,0,0,0,0};
  6. for(i=0; i<=10; i++){
  7. System.out.print(a[i]);
  8. }
  9. System.out.print("の反対は");
  10. for(i=0; i<=10; i++){
  11. b[i] = a[10-i];
  12. System.out.print(b[i]);
  13. }
  14. System.out.println();
  15. }
  16. }


実行結果


[nw0630:~] j06030% java rep2
programmingの反対はgnimmargorp

考察

  1. クラスrep2の宣言。
  2. 定型文。
  3. 整数の変数i。
  4. aという箱の中に順番に文字を入れていく。a[0]にはp。
  5. bという箱の中身の初期化。
  6. for文。a[0]からa[10]まで表示させるためにiを繰り返させる。
  7. programmingという文字の表示。
  8. 「の反対は」という文字の表示。
  9. for文。今度はb[0]からb[10]まで表示させるためにiを繰り返させる。
  10. 10,9,8,7…と逆に表示させるためにa[10-i]とする。
  11. 10,9,8,7…となったb[i]を表示させる。
  12. 改行。






  13. 今回は制御文のfor文を使って文字を出力した。


    同様の動きをするC言語のソース

    #include
    main(){
      int i = 0;
      char a[] = "PROGRAMMING";
      char b[12];
    
      while(a[i] != '\0')
        {
          b[i] = a[10-i];
          i++;
        }
      b[11] = '\0';
      printf("%sの反対は%s\n",a,b);
    }
    

    感想


    問題を自分で考えて作るということが大変だった。
    report6でやった文字を逆にするというのを作ってみた。
    javaとcの違いは結構大きいと思った。
    あとhtmlを少し見やすくしてみた。