Assignment_.java 課題 : 転置行列 / class Assignment_ public static void main(string[] args) int i,j; int[][] array = 1,,,,,,,,,,,,,1,1,; 行 列行列 i

Similar documents
K227 Java 2

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

プログラミングA

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

2

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

JavaプログラミングⅠ

JavaプログラミングⅠ

2

JavaプログラミングⅠ

JavaプログラミングⅠ

JavaプログラミングⅠ

Assignment_.java 0 Assignment_.java 課題 : 台形の面積 / class Assignment_ public static void main(string[] args) throws IOException キーボード準備 int top, bottom,

r1.dvi

8 if switch for while do while 2

明解Javaによるアルゴリズムとデータ構造

問題1 以下に示すプログラムは、次の処理をするプログラムである

オブジェクト指向プログラミング・同演習 5月21日演習課題

Microsoft Word - java a.doc

プログラミング入門1

プログラミング入門1

明解Javaによるアルゴリズムとデータ構造

Java講座

デジタル表現論・第6回

プログラムの基本構成

情報処理Ⅰ

プログラミング入門1

新・明解Javaで学ぶアルゴリズムとデータ構造

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

プログラミング入門1

Prog1_15th

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

新・明解Javaで学ぶアルゴリズムとデータ構造

マークアップ言語

r02.dvi

ohp02.dvi

2

Week 1 理解度確認クイズ解答 解説 問題 1 (4 2 点 =8 点 ) 以下の各問いに答えよ 問題 bit 版の Windows8.1 に Java をインストールする時 必要なパッケージはどれか 但し Java のコンパイルができる環境をインストールするものとする 1. jdk

スライド 1

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

新・明解Java入門


//// Assignment4_1.java // // 課題 1: 長方形の面積 /////////////////

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は


本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(Java) サンプル問題 知識科目 第 1 問 (

デジタル表現論・第4回

Javaによるアルゴリズムとデータ構造

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

I java A

Microsoft Word - NonGenList.doc

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

Prog1_6th

2

Java演習(4) -- 変数と型 --

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

問題 01 以下は コンソールより年齢を入力させ その年齢にあった料金を表示するプログラムである 年齢ごとの金額は以下の通りである 年齢の範囲金額 0 歳以上 6 歳以下 120 円 7 歳以上 65 歳未満 200 円 65 歳以上無料 package j1.exam02; import java

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

解きながら学ぶJava入門編

Microsoft Word - NonGenTree.doc

Quick Sort 計算機アルゴリズム特論 :2017 年度 只木進一

問題1 以下に示すプログラムは、次の処理をするプログラムである

Java Java Java Java Java 4 p * *** ***** *** * Unix p a,b,c,d 100,200,250,500 a*b = a*b+c = a*b+c*d = (a+b)*(c+d) = 225

JavaプログラミングⅠ

メソッドのまとめ

JavaプログラミングⅠ

プログラミングA

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

Programming-C-9.key

Microsoft Word - CompA-Ex doc

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 3 回コレクションと例外処理 テクノロジックアート 瀬嘉秀

アルゴリズムとデータ構造1

プログラミングA

Prog2_9th

II Java :30 12:00 I. I IV II. III. IV. ( a d) V. : this==null, T == N A ActionListener C class D actionperformed G getsource I implements K

r3.dvi

プログラミング基礎I(再)

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

情報実習Ⅱ

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

JavaプログラミングⅠ

10/8 Finder,, 1 1. Finder MAC OS X 2. ( ) MAC OS X Java ( ) 3. MAC OS X Java ( ) / 10

Microsoft Word - keisankigairon.ch doc

Prog1_3rd

JavaプログラミングⅠ

ALG2012-A.ppt

Java updated

基礎計算機演習 実習課題No6

教材ドットコムオリジナル教材 0から始めるiアフ リ リファレンス i アプリ簡易リファレンス ver i アプリ Java 独自のメソッド (1)iアプリの命令を使えるようにする import com.nttdocomo.ui.*; (2) 乱数を使う import java.u

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

: : : TSTank 2


Java学習教材

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

Transcription:

1 1 0 1 Assignment_1.java 課題 1: チェッカー / class Assignment_1 public static void main(string[] args) int i,j; チェッカー用の 次元配列 int[][] checker=new int[][]; チェッカーパターンを書き込む for(i=0;i<checker.length;i++) for(j=0;j<checker[i].length;j++) if((i+j)%==0 (i-j)%==0)checker[i][j]=1; else checker[i][j]=0; チェッカーパターンを表示する for(i=0;i<checker.length;i++) for(j=0;j<checker[i].length;j++) if(checker[i][j]==1)system.out.print(" "); else System.out.print(" ");

1 1 0 1 0 1 Assignment_.java 課題 : 転置行列 / class Assignment_ public static void main(string[] args) int i,j; int[][] array = 1,,,,,,,,,,,,,1,1,; 行 列行列 int[][] t_array = new int[][]; 転置行列 処理内容の出力 System.out.println(" 転置行列を求めます "); 行列の出力 System.out.println(" 行列 :"); for(i=0;i<array.length;i++) for(j=0;j<array[i].length;j++) System.out.printf("%d ",array[i][j]); System.out.printf("\n"); 行列の転置 for(i=0;i<array.length;i++) for(j=0;j<array[i].length;j++) t_array[j][i]=array[i][j]; 転置行列の出力 System.out.println(" 転置行列 : "); for(i=0;i<t_array.length;i++) for(j=0;j<t_array[i].length;j++) System.out.printf("%d ",t_array[i][j]); System.out.printf("\n");

1 1 0 1 0 1 0 1 0 Assignment_.java 課題 : 行列の積 / class Assignment_ public static void main(string[] args) int i,j,k; int[][] array_a = 1,, 1,-, -, 1,-, 0, 1,-1, 1,-1; 行列 A int[][] array_b = 1, 1,,,-,-1, -1,, 1,, 1, ; 行列 B int[][] array_ab = new int[][]; 行列の積 AB 処理内容の出力 System.out.println(" 行列の積を求めます "); つの行列を出力 for(i=0;i<array_a.length;i++) for(j=0;j<array_a[i].length;j++) System.out.printf("%d ",array_a[i][j]); System.out.printf("\n"); System.out.printf("X\n"); for(i=0;i<array_b.length;i++) for(j=0;j<array_b[i].length;j++) System.out.printf("%d ",array_b[i][j]); System.out.printf("\n"); System.out.printf("=\n"); 積を求める配列を0で初期化 for(i=0;i<array_ab.length;i++) for(j=0;j<array_ab[i].length;j++) array_ab[i][j]=0; 行列の積 for(i=0;i<array_a.length;i++) for(j=0;j<array_b[0].length;j++) for(k=0;k<array_a[0].length;k++) array_ab[i][j]+=array_a[i][k]*array_b[k][j]; 積の出力 for(i=0;i<array_ab.length;i++) for(j=0;j<array_ab[i].length;j++) System.out.printf("%d ",array_ab[i][j]); System.out.printf("\n"); 1

1 1 0 1 0 1 0 1 0 1 Assignment_.java 課題 : 成績処理 / import java.io.*; class Assignment_ public static void main(string[] args) throws IOException int i,j; int num; 学生数 String[] student_id; 各学生の学籍番号 int[][] score_table; 各学生の 科目の点数 int[] total; 各学生の点数の合計 int[] ranking; 順位 int rnk, id_max, max; 順位を求めるために使用 キーボードの準備 BufferedReader br; br = new BufferedReader(new InputStreamReader(System.in)); 処理内容の出力 System.out.println(" 成績処理を行います "); 学生数を入力 System.out.println(" 学生数を入力してください "); num=integer.parseint(br.readline()); 配列要素の確保と初期化 student_id = new String[num]; score_table = new int[num][]; total = new int[num]; ranking = new int[num]; for(i=0;i<num;i++) student_id[i]=""; for(j=0;j<;j++) score_table[i][j]=0; total[i]=0; ranking[i]=0; 各学生の学籍番号と点数を入力する for(i=0;i<num;i++) System.out.println((i+1)+" 人目 :"); System.out.print(" 学籍番号?>"); student_id[i]=br.readline(); for(j=0;j<;j++) System.out.print(" 科目 "+(j+1)+" の点数?>"); score_table[i][j]=integer.parseint(br.readline()); 各学生の成績を集計する for(i=0;i<num;i++) 合計 for(j=0;j<;j++) total[i]+=score_table[i][j];

0 1 0 1 0 1 成績に順位をつける rnk=1; 1 位から順番につける while(rnk<=num) max=0; id_max=0; for(i=num-1;i>=0;i--) 順位がついていない学生でトップを探す if(ranking[i]!=0)continue continue; 順位がついている学生をスキップする if(max<=total[i]) max=total[i]; id_max=i; ranking[id_max]=rnk; rnk++; 集計結果を表形式で出力する System.out.println(" 番号 \t 科目 1\t 科目 \t 科目 \t 合計 \t 順位 "); for(i=0;i<num;i++) System.out.print(student_ID[i]+"\t"); for(j=0;j<;j++) System.out.print(score_table[i][j]+"\t"); System.out.print(total[i]+"\t"+ranking[i]);

1 1 0 1 Assignment_.java 課題 : アスキーアート / class Assignment_ public static void main(string[] args) 数値パターン int[][] figure=0,1,0,0,0,0,0,0,1,0,0,0,0,,,,1,,,0,,,,0,,,,1,,,,0,0,,1,,,,0, 0,,,,0,0,0,0,,,,0,0; 0 次元行列の表示 i=0;i<figure.length;i++) j=0;j<figure[i].length;j++) 各数値に対応する文字を出力 switch(figure[i][j]) case 0:System.out.print(' ');break case 1:System.out.print('_');break case :System.out.print('<');break case :System.out.print('\'');break case :System.out.print(')');break case :System.out.print(',');break case :System.out.print('/');break case :System.out.print('(');break case :System.out.print('=');break case :System.out.print('-');break 改行は一行毎に入れる

1 1 Assignment_.java 課題 : ドリルの採点 / class Assignment_ public static void main(string[] args) ドリル答案 int[][] ans=,,,,,, -,,-,,,1, -,-,; ドリルの表示と採点 i=0;i<ans.length;i++) if(ans[i][0] + ans[i][1] == ans[i][]) System.out.print(" "); else System.out.print(" "); System.out.println(" 問 "+(i+1)+" "+ans[i][0]+"+"+ans[i][1]+"="+ans[i][]);

1 1 0 1 0 1 0 1 0 1 0 1 Assignment_.java 課題 : 迷路脱出 / import java.util.*; class Assignment_ public static void main(string[] args) int[][] map= マップデータ 1,0,1,1,1, - 1は壁 1,0,0,0,1, - 0は道 1,1,1,0,1, - はゴール 1,0,0,0,1, 1,1,,1,1; int[] user_pos=0,1; 現在位置 int[] user_pos_can=new new int[]; 次の移動先候補 char key; 移動用キー入力 boolean ok; 移動先に移動可能か? Scanner scr=new Scanner(System.in); do 描画 i=0; i<map.length; i++) j=0; j<map[i].length; j++) if(user_pos[0]==i && user_pos[1]==j) System.out.print(" "); else else switch(map[i][j]) case 0: System.out.print(" ");break case 1: System.out.print(" ");break case : System.out.print(" ");break ゴールのチェック if(map[user_pos[0]][user_pos[1]]==) System.out.println(" ゴールです!!"); キー入力と移動候補座標 user_pos_can[0]=user_pos[0]; user_pos_can[1]=user_pos[1]; key=scr.next().charat(0); switch(key) case 'w': user_pos_can[0]-=1;break case 'a': user_pos_can[1]-=1;break case 's': user_pos_can[0]+=1;break case 'd': user_pos_can[1]+=1;break 移動候補座標のチェック ok=true true; if(!(user_pos_can[0] >=0 && user_pos_can[0] < map.length && user_pos_can[1] >=0 && user_pos_c an[1] < map[0].length)) ok=false false; if(ok==true && map[user_pos_can[0]][user_pos_can[1]]==1) ok=false false; 現在地の更新 if(ok==true true) user_pos[0]=user_pos_can[0]; user_pos[1]=user_pos_can[1]; while while(true true);

Assignment_.java 1 1 1 0 1 0 1 0 1 0 1 0 1 Assignment_.java 課題 : 宝探しゲーム / import java.io.*; class Assignment_ public static void main(string[] args) throws IOException BufferedReader br; br = new BufferedReader(new InputStreamReader(System.in)); int[][] map=new int[][]; 宝地図 int trow, tcol; 宝の場所 int row, col; 入力する場所 boolean gotit=false false; 見つかったかどうかのフラグ 地図に 0 を代入します 0 - 掘っていない場所 1 - 掘ったとき 何もなかった場所 - 掘ったとき お宝があった場所 i=0;i<;i++) j=0;j<;j++) map[i][j]=0; 宝の場所をランダムに決定します trow = (int int)(*math.random()); tcol = (int int)(*math.random()); do 地図を表示します i=0;i<;i++) j=0;j<;j++) if(map[i][j]==0)system.out.print(" "); else if(map[i][j]==1)system.out.print(" "); else System.out.print(" "); 宝が見つかったら終了します if(gotit==true true)break System.out.println("\n 掘る場所を入力してください "); 行 [0~] と列 [0~] を入力します do System.out.println(" 行 [0~]?"); row = Integer.parseInt(br.readLine()); while while(row<0 row>); do System.out.println(" 列 [0~]?"); col = Integer.parseInt(br.readLine()); while while(col<0 col>); 地図の更新をしてメッセージを表示します if(row==trow && col==tcol) 見つかった場合 map[row][col]=; System.out.println(" お宝発見 "); 終了するようにフラグを設定します gotit=true true; else 見つからなかった場合 map[row][col]=1; int tmpr = row-trow; int tmpc = col-tcol; 探した場所の周囲 ( 上下左右斜め ) にある場合はお知らせします if( tmpr>=-1 && tmpr<=1 && tmpc>=-1 && tmpc<=1) System.out.println(" ピッピッ!!"); while while(true true);

1 1 0 1 0 1 0 1 0 1 0 1 0 1 Assignment_.java 課題 : ドット描画 / import java.io.*; class Assignment_ public static void main(string[] args) throws IOException キーボードの準備 BufferedReader br; br = new BufferedReader(new InputStreamReader(System.in)); ドット画面を保持する 次元配列 - 0: 1: を表す int[][] dots = new int[][]; 始点座標と終点座標 int sx, sy, dx, dy; 全てゼロで初期化 i=0;i<dots.length;i++) j=0;j<dots[i].length;j++) dots[i][j] = 0; do ドット画面の表示 i=0;i<dots.length;i++) j=0;j<dots[i].length;j++) System.out.print(dots[i][j]==0?" ":" "); 終了メニュー System.out.print(" 線を引きますか?(y or else)"); char ans = br.readline().charat(0); if(ans!= 'y') 座標の入力 do System.out.print(" 始点 x 座標を入力してください "); sx = Integer.parseInt(br.readLine()); while(sx<0 sx>=dots[0].length); do System.out.print(" 始点 y 座標を入力してください "); sy = Integer.parseInt(br.readLine()); while(sy<0 sy>=dots.length); do System.out.print("-> 終点 x 座標を入力してください "); dx = Integer.parseInt(br.readLine()); while(dx<0 dx>=dots[0].length); do System.out.print("-> 終点 y 座標を入力してください "); dy = Integer.parseInt(br.readLine()); while(dy<0 dy>=dots.length); 直線の描画 double vecx, vecy; double len; - 始点から終点のベクトル vecx = dx - sx; vecy = dy - sy; - 単位ベクトルを計算 len = Math.sqrt(vecx*vecx+vecy*vecy); vecx /= len; vecy /= len; - 始点に単位ベクトルを加算しながらドットを塗りつぶし double cx, cy; cx = sx; cy = sy; while(true) dots[(int)(cy+0.)][(int)(cx+0.)] = 1; cx += vecx; cy += vecy; if(math.sqrt((cx-sx)*(cx-sx)+(cy-sy)*(cy-sy))>len+0.) while(true);