• 検索結果がありません。

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

1 【問題1】 次のプログラムの出力結果を a~d の中から選べ。

public class Problem1 {

public static void main(String[] args){ int i=2; int j=3; System.out.println("i"+j); } } a) 23,b) 5,c) i3,d) ij 【問題2】 次のプログラムの出力結果を a~d の中から選べ。 public class Problem2 {

public static void main(String[] args){ int a=6; if((a>=2)&&(a<=5)){ System.out.print("A"); }else if(a!=4){ System.out.print("B"); } if(a==6){ System.out.print("C"); } } } a) A,b) B,c) C,d) BC 【問題3】 次のプログラムの出力結果を a~d の中から選べ。 public class Problem3 {

public static void main(String[] args){ for(int i=1; i<3; i++){

System.out.print(i-1); }

} }

(2)

2 【問題4】 以下に示すプログラムは、配列を初期化し、合計値を求めるプログラムである。(A)と(B)に適 切なコードを記述してプログラムを完成させよ。但し有効範囲内にないデータは加算しないものとする。 class TotalNumber {

public static void main(String[] args){ int[] a = new int[1000];

// (A) 解答条件 // (1) ループカウント変数は i とする // (2) ループ終了条件には配列の length をしようする // (3) 配列 a[ ] は、Math.random()*1000 を使って適切に初期化せよ (A) // (B) 解答条件 // sum は合計値を代入し、count は、データ数をカウントするために用いる //

int sum=0, count=0;

// (1) ループカウント変数は i とする

// (2) ループ終了条件には配列の length をしようする

// (3) 配列 a[ ] は、333 より大きく、667 以下の数を有効範囲とする (B)

}

System.out.println("有効範囲のデータ数は " + count + " で、合計は " +sum + "です"); }

}

【問題5】 次のプログラムを実行した時の出力結果を実行順に示せ。 import java.util.*;

class Book {

private String title; private String author;

public Book(String tit, String auth){ title = tit; author = auth; }

public String getauthor(String title){ return author; } public String gettitle(String author){ return title; } }

class BookStore{

ArrayList<Book> bookstore = new ArrayList<Book>(); boolean flag;

public BookStore(ArrayList<Book> books){ bookstore = books;

}

public void bookseach(String str){ flag = true;

for(int i=0; i<bookstore.size(); i++){

if( bookstore.get(i).getauthor(str).equals(str) ) {

System.out.println("作者は " + bookstore.get(i).getauthor(str) ); flag = false;

break;

(3)

3 System.out.println("本のタイトルは " + bookstore.get(i).gettitle(str) ); flag = false; break; } } if(flag) System.out.println("作者または本が見つかりません"); } }

public class BookCustomer {

public static void main(String[] args){

ArrayList<Book> bookarray = new ArrayList<Book>(); Book[] bk = new Book[10];

bk[0] = new Book("Java","Gosring"); bk[1] = new Book("Neuro","Amari"); bk[2] = new Book("Fuzzy","Zadeh"); bk[3] = new Book("C_langage","Rich"); bk[4] = new Book("Linux","Linus"); bk[5] = new Book("Mathmatica","Wolfram"); bk[6] = new Book("Lapack","Dongarra"); bk[7] = new Book("Ruby","Matsumoto"); bk[8] = new Book("Toron","Sakamura"); bk[9] = new Book("Windows","Bill"); for(int i=0; i<bk.length; i++){

bookarray.add(bk[i]); }

BookStore bks = new BookStore(bookarray);

String[] seachtestwords = { "Java", "Amari" ,"Fuzzy" ,"Rich" ,"Linux", "Wolfram","Lapack","Matsumoto","Toron","Bill" , "UNIX", "Algebra", "Matlab" };

for(int i=0; i<seachtestwords.length; i++){ System.out.print(i + "---> "); bks.bookseach( seachtestwords[i] ); } } } 【問題6】下記の実行結果となるようなプログラムを作成したい。次の①~⑤に当てはまるものを下記の部 品群(1)~(7)から選びなさい。(実行によりHi!、Hello の表示位置はかわることは有り得るがその点は 考慮しなくて良い。) // クラス class ①{ //run メソッド public void run(){

System.out.println("Tread Start!"); ② System.out.println("Tread End!"); } } //メイン

public class Test{

public static void main(String args[]){ ③

(4)

4 ⑤

} }

【実行結果】 C:¥ Java >java Test Hi! Tread Start! Hello Hello Hi! Hello Hello Hi! Hello Tread End! Hi! Hi! 【部品群】 (1) // 5 回 500 ミリ秒毎に"Hello"と表示する for(int i = 0 ; i < 5 ; i++ ){ System.out.println("Hello"); try{ Thread.sleep(500); }catch(Exception e){} } (2) // スレッドを開始 t.start(); (3)

MyRunnable implements Runnable (4)

// スレッドクラスのインスタンスを作成 MyThread t = new MyThread();

(5) // 1 秒毎に"Hi!"と 5 回表示する for(int i = 0 ; i < 5 ; i++ ){ System.out.println("Hi!"); try{ Thread.sleep(1000); }catch(Exception e){} } (6)

MyThread extends Thread (7)

// スレッドクラスのインスタンスを作成 Runnable r = new MyRunnable(); Thread t = new Thread(r);

(5)

5 【問題7】 プログラムの説明とプログラムを読んで、設問に答えよ。 【プログラムの説明】 3人の人間が3つの椅子を交互に移るようなゲームを考える。ルールは以下の通りである。 z 最初に3人はそれぞれ自分のID と同じ ID の付いた椅子に座っているものとする。 z 座ってから5000ms 経ったら椅子から離れなければならない。 z 椅子を離れたら、直前に自分が座っていた椅子以外の椅子が空いているか検索する。空いている椅子が合 った場合は次にその椅子に座ると決める。 z 空いている椅子があった場合でも1000ms の間はその椅子に移動することが出来ない。1000ms 後、その 目指すべき椅子がまだ空いていたらその椅子に移動する。

本プログラムは、Isutori, Person, Chair の3つのクラスから構成されており、マルチスレッドを用いている。

従って、少なくともどれかのクラスはRunnable インターフェースを実装しなければならない。

【プログラム】 // Isutori.java

public class Isutori 【 A 】{

public static void main(String[] args) { Chair[] chair = new Chair[3]; chair[0] = new Chair(0); chair[1] = new Chair(1); chair[2] = new Chair(2);

Person[] person = new Person[3]; person[0] = new Person(0, chair); person[1] = new Person(1, chair); person[2] = new Person(2, chair);

Thread[] thread = new Thread[person.length]; for( int i = 0; i < person.length; i++ ) {

thread[i] = new Thread(person[i]); thread[i].start(); } } 【 B 】 } // Person.java

public class Person 【 C 】{ private int id;

private Chair[] chair; private int position;

public Person(int id, Chair[] chair) { this.id = id; this.chair = chair; position = chair[id].getID(); chair[position].setStatus("used"); } 【 D 】 } // Chair.java

public class Chair 【 E 】{ private int id;

(6)

6 public Chair(int id) { this.id = id; }

public synchronized void setStatus(String status) { this.status = status;

}

public int getID() { return id; }

public synchronized String getStatus() { return status; } 【 F 】 } 設問 (1) 【 A 】, 【 C 】, 【 E 】のうち少なくとも1箇所には次のプログラムが入る。入っても良い箇所総 てのアルファベットを解答欄に記入しなさい。 implements Runnable (2) 【 B 】, 【 D 】, 【 F 】のうち少なくとも1箇所には、のプログラムが入る。入っても良い箇所総 てのアルファベットを解答欄に記入しなさい。

public void run() { while( true ) { // 5000ms 間座る try { Thread.sleep(5000); } catch(Exception e) {} // 席から離れる chair[position].setStatus("released"); // 以前座っていた椅子以外に空いてる椅子があるか検索する int search = -1;

for( int i = 0; i < chair.length; i++ ) {

if( (chair[i].getStatus() == "released") && (chair[i].getID() != position) ) { search = i; break; } } // 空いてる椅子があった場合 if( search != -1 ) { // 1000ms 待つ try { Thread.sleep(1000); } catch(Exception e) {} // 待っている間に誰かに捕られてしまったかもしれないので、再度空いてるか確認し、 // 空いていればその席に移る

if( chair[search].getStatus() == "released" ) { position = chair[search].getID(); chair[position].setStatus("used"); System.out.println("Person "+id+"は"+chair[position].getID()+"番目の椅子に移動しました。"); } } } }

参照

関連したドキュメント

が前スライドの (i)-(iii) を満たすとする.このとき,以下の3つの公理を 満たす整数を に対する degree ( 次数 ) といい, と書く..

メイン プログラムウィンドウでの作業 [スタート] → [すべてのプログラム] → [Acronis] → [PrivacyExpert] → [Acronis Pricacy Expert

LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。

次に、第 2 部は、スキーマ療法による認知の修正を目指したプログラムとな

“〇~□までの数字を表示する”というプログラムを組み、micro:bit

The purpose of this course is for students to acquire basic knowledge required for AI Solution

は,医師による生命に対する犯罪が問題である。医師の職責から派生する このような関係は,それ自体としては

けることには問題はないであろう︒