Report4(11/22締め切り)
@制御文と配列を用いてオリジナルのJavaアプリケーションによる初級問題(なるべく短い行数で)を作成し、模範解答例を示せ。
併せて、同様な動作を行うC言語のソースコードを示せ。
・問題プログラム
下のプログラムは、11月のカレンダーを表示させるプログラムである。A~を穴埋めせよ。
public class Rep4_a { public static void main(String[] args) { System.out.println("11月のカレンダー"); // 2次元配列の定義 [ A ]= { {" 日"," 月"," 火"," 水"," 木"," 金"," 土"}, {" "," 1"," 2"," 3"," 4"," 5"," 6",}, {" 7"," 8"," 9","10","11","12","13"}, {"14","15","16","17","18","19","20"}, {"21","22","23","24","25","26","27"}, {"28","29","30"}, }; // i = 0 から始めて i < 6 である間は繰り返し for ( B ) { System.out.println(i + "週目"); // j = 0 から初めて j < November[i].length である間は繰り返し for ( C ) { System.out.print(November[i][j] + "; "); } System.out.println(""); } } } |
・解答
[A]=String[][] November
(B)=int i = 0; i < 6 ; i++
(C)=int j = 0; j < November[i].length; j++
・実行結果
11月のカレンダー 0週目 日; 月; 火; 水; 木; 金; 土; 1週目 ; 1; 2; 3; 4; 5; 6; 2週目 7; 8; 9; 10; 11; 12; 13; 3週目 14; 15; 16; 17; 18; 19; 20; 4週目 21; 22; 23; 24; 25; 26; 27; 5週目 28; 29; 30; |
@配列について
a.一次元配列というのは、共通の名前を使用してアクセスすることが可能な、同じの型を持つ一連の変数のことである。 配列内の個々の変数は配列要素と呼ばれる。
↓一次元配列の宣言
type varName[]; |
typeにはJavaの有効なデータ型を指定し、varNameには配列の名前を指定する。
〜考察〜
1.System.out.println("11月のカレンダー");
で文字列を表記する。
2.String[][] November =
で、2次元配列の定義をおこなう。
・String[][] November でも String November[][]でも良い。
・下は実際に数字と曜日を格納している様子である。
{" 日"," 月"," 火"," 水"," 木"," 金"," 土"},
{" "," 1"," 2"," 3"," 4"," 5"," 6",},
{" 7"," 8"," 9","10","11","12","13"},
{"14","15","16","17","18","19","20"},
{"21","22","23","24","25","26","27"},
{"28","29","30"},
3.最初のfor文はi = 0 から始めて i < 6 である間は繰り返すことを表している。
4.System.out.println(i + "週目");で出力。
5.次のfor文はj = 0 から初めて j < November[i].length である間は繰り返すことを表している。
for (int j = 0; j < November[i].length; j++) {
・c言語でのプログラム
#include<stdio.h> printf("11月のカレンダー\n"); /* i = 0 から始めて i < 6 である間は繰り返し*/ if(i==0){ |
〜感想と反省〜
問題は簡単につくったつもりなのに、c言語に変換するのがとても手間取った。友人の多大なる力を借り、AM6:00にようやく仕上がりました。疲れた...。テストがあるので頑張ります!
〜参考文献〜
独習Java 第2版 〜ジョゼフ・オニール〜
C実践プログラミング 第3版