Skip to content

KimiyukiYamauchi/java.2014

Repository files navigation

演習の環境設定手順

  1. java.2014」を「git clone」
    $ git clone https://github.com/KimiyukiYamauchi/java.2014 (任意のディレクトリ名)

  2. リモートリポジトリ「origin」を「java.2014」に変更
    $ git remote rename origin java.2014

  3. 各自のGithubに演習をアップするためのリポジトリを作成

  4. 上で作成したリモートリポジトリに「origin」と名前をつける
    $ git remote add origin (各自のリモートリポジトリのURL)

  5. ローカルリポジトリをリモートにpushする
    $ git push -u origin master

  6. jUnit-4.10.jar」をダウンロードし、ローカルリポジトリに保存

  7. 以降は以下の操作

    • 演習を作成し、講師提出する場合、

      1. 「master」branchに切り替え。
        $ git checkout master

      2. 演習の作業を行うbranchを作成し、それにcheckout
        $ git checkout -b (演習リポジトリ名)

      3. 演習を作成する
      4. テストコードを実行し、問題がないことを確認する
      5. 成果物をadd, commitで、リポジトリに登録
        $ git add -A
        $ git commit -m "コメント"

      6. 演習の成果物を「master」branchにmerge
        $ git checkout master
        $ git merge (演習リポジトリ名)

      7. ローカルの「master」をGithubに上げる
        $ git push

      8. 講師に演習を作成した旨連絡
    • ひな形などの最新を入手する場合、

      1. java.2014」を「git pull」
        $ git pull java.2014 master

演習問題

  1. Ex1

    1. Ex1_0
      「Hello World!」と表示する

    2. Ex1_2
      テキストP20 演習 1-2
      各行に1文字ずつ自分の名前を表示するプログラムを作成せよ。

    3. Ex1_3
      テキストP20 演習 1-3
      各行に1文字ずつ自分の名前を表示するプログラムを作成せよ。
      姓と名の間は1行空けること

  2. Ex2

    1. Ex2_0
      テキストP32 List 2-6

    2. Ex2_1
      テキストP33 演習 2-1
      List 2-6(Ex2_0)の変数へ値を代入している箇所を小数部分を持つ実数値を代入する
      ように変更しなさい

    3. Ex2_2
      テキストP33 演習 2-2
      三つのint型変数に値を代入し、合計と平均を求めるプログラムを作成せよ

    4. Ex2_00
      テキストP36 List 2-9

    5. Ex2_3
      テキストP40 演習 2-3
      キーボードから読み込んだ整数値をそのまま反復して表示するプログラムを作成せよ

    6. Ex2_4
      テキストP40 演習 2-4
      キーボードから読み込んだ整数値に10を加えた値と10を減じた値を出力するプログラムを
      作成せよ

    7. Ex2_5
      テキストP41 演習 2-5
      二つの実数値を読み込み、その和と平均を求めて表示するプログラムを作成せよ

    8. Ex2_6
      テキストP41 演習 2-6
      三角形の底辺と高さを実数値で読み込んで、その面積を表示するプログラムを作成せよ

    9. Ex2_000
      テキストP44 List 2-14

    10. Ex2_7
      テキストP44 演習 2-7
      以下に示すプログラムを作成せよ

      • 1桁の正の整数値(すなわち1以上9以下の値)をランダムに生成して表示。
      • 1桁の負の整数値(すなわち-9以上-1以下の値)をランダムに生成して表示。
      • 2桁の正の整数値(すんわち10以上99以下の値)をランダムに生成して表示。
    11. Ex2_8
      テキストP45 演習 2-8
      キーボードから読み込んだ整数値プラスマイナス5の範囲の整数値をランダムに生成
      して表示するプログラムを作成せよ。

    12. Ex2_9
      テキストP45 演習 2-9
      以下に示すプログラムを作成せよ(実数値の乱数の生成にはnextDouble()を使うこと)

      • 0.0以上1.0未満の実数値をランダムに生成して表示。
      • 0.0以上10.0未満の実数値をランダムに生成して表示。
      • -1.0以上1.0未満の実数値をランダムに生成して表示。
    13. Ex2_10
      テキストP47 演習 2-10
      名前の姓と名を個別にキーボードから読み込んで、挨拶を行うプログラムを作成しなさい


$ java Ex2 (Enter)
姓:山内 (Enter)
名:公之 (Enter)
こんにちは山内公之さん。
  1. Ex3

    1. ex3_0
      整数値を引数でもらい、その値が0より大きい場合は「その値は正です」を返し、それ以外は「その値は0か負です」を返す関数「String ex3_0(int n)」を作成

    2. ex3_1
      整数値を引数でもらい、引数の値の絶対値を返す関数「int ex3_1(int n)」を作成

    3. ex3_2
      二つの正の整数値を引数でもらい、第2引数(b)が第1引数(a)の約数であれば『bはaの約数です』と、そうでなければ『bはaの約数ではありません』と返す関数「String ex3_2(int a, intb)」を作成

      ex3_2(12, 4) => "4は12の約数です"
      ex3_2(12, 5) => "5は12の約数ではありません"

    4. ex3_3
      二つの整数値を引数でもらい、第1引数(a)と第2引数(b)の大小関係を以下のいずれかで返す関数「String ex3_3(int a, intb)」を作成
      『aの方が大きいです』『bの方が大きいです』『同じ値です』

      ex3_3(8, -9) => "8の方が大きいです"
      ex3_3(-11, 9) => "9の方が大きいです"
      ex3_3(3, 3) => "同じ値です"

    5. ex3_4
      正の整数値を引数でもらい、それが5で割り切れれば『その値は5で割り切れます』と、そうでなければ『その値は5では割り切れません』と返す。また、正でない整数値の場合『正でない整数値です』と返す関数「String ex3_4(int a)」を作成

      ex3_4(15) => "その値は5で割り切れます"
      ex3_4(11) => "その値は5で割り切れません"
      ex3_4(-1) => "正でない整数値です"

    6. ex3_5
      正の整数値を引数でもらい、それが10の倍数であれば『その値は10の倍数です』と、そうでなければ『その値は10の倍数ではありません』と返す。また、正でない整数値の場合『正でない整数値です』と返す関数「String ex3_4(int a)」を作成

      ex3_5(1000) => "その値は10の倍数です"
      ex3_5(1001) => "その値は10の倍数ではありません"
      ex3_5(-1) => "正でない整数値です"

    7. ex3_6
      正の整数値を引数でもらい、それを3で割った値に応じて『その値は3で割り切れます』『その値を3で割った余りは1です』『その値を3で割った余りは2です』のいずれかを返す。また、正でない整数値の場合『正でない整数値です』と返す関数「String ex3_6(int a)」を作成

      ex3_6(3) => "その値は3で割り切れます"
      ex3_6(1) => "その値を3で割った余りは1です"
      ex3_6(2) => "その値を3で割った余りは2です"
      ex3_5(-1) => "正でない整数値です"

    8. ex3_7
      正の整数値を引数でもらい、値に応じて、優/良/可/不可判定して返す。また、正でない整数値や100を超える値の場合『範囲(0~100)外の値です』と返す関数「String ex3_7(int a)」を作成
      0~59 => "不可"
      60~69 => "可"
      70~79 => "良"
      80~100 => "優"

      ex3_7(0) => "不可"
      ex3_7(59) => "不可"
      ex3_7(60) => "可"
      ex3_7(69) => "可"
      ex3_7(70) => "良"
      ex3_7(79) => "良"
      ex3_7(80) => "優"
      ex3_7(100) => "優"
      ex3_7(-1) => "範囲(0~100)外の値です"
      ex3_7(101) => "範囲(0~100)外の値です"

    9. ex3_8
      二つの実数値を引数でもらい、大きい方の値を返す「double ex3_8(double a, double b)」を作成

      ex3_8(-0.5,0.5) => "0.5"
      ex3_8(-0.1,0) => "0"
      ex3_8(-0.1,-0.2) => "-0.1"
      ex3_8(1.1, 1,2) => "1.2"

    10. ex3_9
      二つの整数値を引数でもらい、それらの値の差を返す「int ex3_8(int a, int b)」を作成

      ex3_9(3, -2) => "5"
      ex3_9(-2, -3) => "1"
      ex3_9(2, 3) => "1"
      ex3_9(0, -1) => "1"
      ex3_9(1, 0) => "1"

    11. ex3_10
      二つの整数値を引数でもらい、それらの値の差が10以下であれば『それらの差は10以下です』、そうでなければ『それらの差は11以上です』を返す「String ex3_10(int a, int b)」を作成

      ex3_10(-1, 9) => "それらの差は10以下です"
      ex3_10(10, -1) => "それらの差は11以上です"
      ex3_10(10, 0) => "それらの差は10以下です"
      ex3_10(-11, 0) => "それらの差は11以上です"
      ex3_10(-11, -1) => "それらの差は10以下です"

    12. ex3_11
      三つの整数値を引数でもらい、それらの最小値を返す「int ex3_11(int a, int b, int c)」を作成

      ex3_11(1, 0, -1) => "-1"
      ex3_11(-1, -2, -3) => "-3"
      ex3_11(0, 0, 1) => "0"
      ex3_11(-1, -1, 0) => "-1"
      ex3_11(10000, 100000, 10001) => "10000"

    13. ex3_12
      三つの整数値を引数でもらい、それらの中央値を返す「int ex3_12(int a, int b, int c)」を作成

      ex3_12(1, 2, 3) => "2"
      ex3_12(0, 0, -1) => "0"
      ex3_12(-1, -2, -3) => "-2"
      ex3_12(0, 0, 0) => "0"
      ex3_12(-1, -2, 0) => "-1"

    14. ex3_13
      1つの整数値を引数でもらい、それに対応する季節を返す「String ex3_13(int a)」を作成
      12~2 => "冬"
      3~5 => "春"
      6~8 => "夏"
      9~11 => "秋"
      それ以外 => "範囲(1~12)外の値です"

      ex3_13(12) => "冬"
      ex3_13(2) => "冬"
      ex3_13(3) => "春"
      ex3_13(5) => "春"
      ex3_13(6) => "夏"
      ex3_13(8) => "夏"
      ex3_13(9) => "秋"
      ex3_13(11) => "秋"
      ex3_13(0) => "範囲(1~12)外の値です"
      ex3_13(-1) => "範囲(1~12)外の値です"
      ex3_13(13) => "範囲(1~12)外の値です"

  2. Ex4

    1. ex4_1
      int型の配列を引数でもらい、その配列の要素を昇順(小さい順序)でソートして返す「int [] ex4_1(int [] a)」を作成

      3, 2, 1, 0 , -1, -2 , -3 => -3, -2, -1, 0, 1, 2

    2. ex4_2
      int型の配列を引数でもらい、その配列の要素を降順(大きい順序)でソートして返す「int [] ex4_2(int [] a)」を作成
      できればex4_1とは別のアルゴリズムで!

      -3, 2, -1, 0 , 1, -2 , 3 => 3, 2, 1, 0, -1, -2 , -3

    3. ex4_3
      int型の配列を引数でもらい、その配列の要素の符号を判定し、判定結果を文字列の配列として返す「String [] e4_3(int [] a)を作成

      -3, 2, -1, 0 , 1, -2 , 3 => "負", "正", "負", "零" , "正", "負", "正"

    4. ex4_4
      正の整数値を引数でもらい、その桁数を返す「int ex4_4(int a)」を作成

      1254 => 4
      111111 => 6
      4 => 1
      33 => 2
      123456789 => 9

    5. ex4_5
      正の整数値を引数をもらい、1から引数の値までの和を求めそれを返す「int ex4_4(int a)」を作成

      10 => 55
      99 => 4,950
      10,001 => 50,015,001
      100,02 => 50,025,003
      9,999 => 49995000

    6. ex4_6
      正の整数値を引数でもらい、そのすべての約数を整数の配列で返す「int [] ex4_6(int a)」を作成

      4 => 1, 2, 4
      100 => 1, 2, 4, 5, 10, 25, 50, 100
      66 => 1, 2, 3, 6, 11, 22, 33, 66
      1 => 1
      9999991 => 1, 9999991

    7. ex4_7
      正の整数地を引数でもらい、それが素数であるかを判定する「boolean ex4_7(int n)」を作成
      素数とは2以上n未満のいずれの数でも割り切ることができない整数nのこと

      1 => false
      2 => true
      9999973 => true
      9999991 => true
      9999999 => false

    8. ex4_8
      int型の配列を引数でもらい、その配列の要素の合計を返す「int ex4_8(int [] a)」を作成

      1000, 2000, 3000 => 6000
      1, 2, 3, 4, 5, 6, 7, 8, 9, 10 => 55
      -3, -2, -1, 0, 1, 2, 3 => 0
      1 => 1
      -1, -2, -3, -4, -5, -6, -7, -8, -9, -10 => -55

    9. ex4_9
      int型の配列を引数でもらい、その配列の要素の平均を返す「int ex4_9(int [] a)」を作成
      但し、平均は四捨五入して整数で求める

      1001, 2002, 3007 => 2003 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 => 6
      -3, -2 , -1, 0, 2, 4, 6 => 1
      0, 1, -2 => 0
      -1, -2, -3, -4, -5, -6, -7, -8, -9, -10 => -5

  3. Ex5

    1. ex5_1
      int型の配列を引数でもらい、その配列の要素の平均を返す「double ex5_1(int [] a)」を作成

      1001, 2002, 3007 => 2003.333...
      2, 3, 5, => 3.33333...
      1, 2, 3, 4, 5, 6, 7, 8, 9, 10 => 5.5
      0, 1, -2 => 0.33333...
      -1, -2, -3, -4, -5, -6, -7, -8, -9, -10 => -5.5
  4. Ex6

    1. ex6_1
      要素型がint型で要素数が5の配列に対して、先頭から順に5, 4, 3, 2, 1を代入して返す「int [] ex6_1()」を作成

    2. ex6_2
      要素型がdouble型で要素数が5の配列に対して、先頭から順に1.1, 2.2, 3.3, 4.4, 5.5を代入して返す「double [] ex6_2()」を作成

    3. ex6_3
      int型の要素を持つ配列を返す「int [] ex6_2(int a, int b)」を作成。int型の引数を2つもらい、最初の引数(a)分のint型の要素を2番めの引数(b)の値で初期化して返す

      10, 0 => {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
      1, 1000 => {1000}
      3, 1 => {1, 1, 1}
      10, -1 => {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
      2, 2 => {2, 2}

    4. ex6_4
      int型の要素を持つ配列をもらい、その合計、平均、最高、最低をint型の配列に{合計, 平均, 最高, 最低}の形式で返す「int [] ex6_3(int [] a)」を作成
      なお、平均は小数点以下四捨五入で整数値として求める

      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} => {55, 6, 10, 1}
      {-1, -2, -3, -4, -5, -6, -7, -8, -9, -10} => {-55, -5, -1, -10}
      {-10, 1, -1, 10, -5, 3, 1, 2, -8, -5, -11} => {-23, -2, 10, -11}
      {50, 70, 45, 22, 91, 82, 77, 14, 3, 1} => {455, 46, 91, 1}
      {-50, -70, -45, -22, -91, -82, -77, -14, -3, -1} => {-455, -45, -1, -91}

    5. ex6_5
      int型の要素を持つ配列とint型の2つの引数をもらい、1番目の引数の配列から2番めの引数の整数値を検索して、見つかったその位置を返す。見つからなかったら「-1」を返す「int ex6_5(int [] a, int key)」を作成
      但し、等しい値が複数ある場合は最も先頭に位置する値を返す

      {1, 2, 3, 4, 5, 5, 7, 8, 5, 5}, 5 => 4
      {-1, -2, -3, -4, -5, -5, -7, -8, -5, -5}, -5 => 4
      {1, 2, 3, 4, -1, -2, -3, -3, -3, -1} , -1 => 4
      {1, 2, 3, 4, 1, 2, 3, 3, 3, 1} , 5 => -1
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} , 0 => 0

    6. ex6_6
      int型の要素を持つ配列とint型の2つの引数をもらい、1番目の引数の配列から2番めの引数の整数値を検索して、見つかったその位置を返す。見つからなかったら「-1」を返す「int ex6_6(int [] a, int key)」を作成
      但し、等しい値が複数ある場合は最も末尾に位置する値を返す

      {1, 2, 3, 4, 5, 5, 7, 8, 5, 5}, 5 => 9
      {-1, -2, -3, -4, -5, -5, -7, -8, -5, -5}, -5 => 9
      {1, 2, 3, 4, -1, -2, -3, -3, -3, -1} , -1 => 9
      {1, 2, 3, 4, 1, 2, 3, 3, 3, 1} , 5 => -1
      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} , 0 => 9

    7. ex6_7
      配列aから要素a[idx]を削除するメソッドex6_7を作成せよ。
      void ex6_7(int [] a, int idx)
      削除はa[idx]より後ろの全要素を一つ前にずらすことによって行うこと。なお、移動されずに余ってしまう末尾要素a[a.length - 1]の値は変更しなくてよい。

      {1, 3, 4, 7, 9, 11}, 2 => {1, 3, 7, 9, 11, 11}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} , 0 => {2, 3, 4, 5, 6, 7, 8, 9, 10, 10}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} , 9 => {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} , 1 => {1, 3, 4, 5, 6, 7, 8, 9, 10, 10}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} , 8 => {1, 2, 3, 4, 5, 6, 7, 8, 10, 10}

    8. ex6_8
      配列aから要素a[idx]を先頭とするn個の要素を削除するメソッドex6_8を作成せよ。
      void ex6_8(int [] a, int idx, int n)
      削除はa[idx]より後ろの全要素をn個前方にずらすことによって行うこと。なお、移動されずに余ってしまう要素の値は変更しなくて良い。

      {1, 3, 4, 7, 9, 11}, 1, 3 => {1, 9, 11, 7, 9, 11}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 2, 5 => {1, 2, 8, 9, 10, 6, 7, 8, 9, 10}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 0, 9 => {10, 2, 3, 4, 5, 6, 7, 8, 9, 10}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 9, 9 => {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 0, 0 => {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

    9. ex6_9
      配列aの要素a[idx]にxを挿入するメソッドを作成せよ。
      void ex6_9(int [] a, int idx, int x)
      挿入に伴ってa[idx]~a[a.length-2]を1つ後方にずらさなければならない。 例
      {1, 3, 4, 7, 9, 11}, 2, 99 => { 1, 3, 99, 4, 7, 9}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 2, 5 => {1, 2, 5, 3, 4, 5, 6, 7, 8, 9}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 0, 0 => {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 9, 9 => {1, 2, 3, 4, 5, 6, 7, 8, 9, 9}
      {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 5, 100 => {1, 2, 3, 4, 5, 100, 6, 7, 8, 9}

    10. ex6_10
      配列aと配列bの全要素の値を交換するメソドを作成せよ。
      void ex6_10(int [] a, int [] b)
      二つの配列の要素が等しくない場合は、小さい方の要素数分の要素を交換すること。

      int [] a = {1, 2, 3, 4, 5, 6, 7}
      int [] b = {5, 4, 3, 2, 1}
      で、ex6_10(a, b)を呼び出した後、
      配列aは{5, 4, 3, 2, 1, 6, 7}、配列bは{1, 2, 3, 4, 5}とならなければならない。

    11. ex6_11
      配列aと同じ配列(要素数が同じで、すべての要素の値が同じ配列)を生成して返却するメソッドex6_11を作成せよ
      int [] ex6_11(int[] a)

    12. ex6_12
      配列aの要素の中で値がxである全要素のインデックスを先頭から順に格納した配列を返却するメソッドex6_12を作成せよ
      int [] ex6_12(int [] a, int x)

      配列aの要素が{1, 5, 4, 8, 5, 5, 7}でex6_12(a, 5)と呼びだされた場合、返却する配列は{1, 4, 5}となる(値が5である要素のインデクスを並べたものとなる)。

    13. ex6_13
      配列aから要素a[idx]を削除した配列を返却するメソッドex6_13を作成せよ。
      int [] ex6_13(int [] a, int idx)

      配列aの要素が{1, 3, 4, 7, 9, 11}のときにex6_13(a, 2)と呼びだされた場合、返却する配列の要素は{1, 3, 7, 9, 11}となる。

    14. ex6_14
      配列aから要素a[idx]を先頭とするn個の要素を削除した配列を返却するメソッドex6_14を作成せよ。
      int [] ex6_14(int [] a, int idx, int n)
      削除はa[idx]より後ろの全要素をn個前方にずらすことによって行うこと。

      配列aの要素が{1, 3, 4, 7, 9, 11}のときex6_14(a, 1, 3)と呼び出された場合、返却する配列の要素は{1, 9, 11}となる。

    15. ex6_15
      配列aの要素a[idx]にxを挿入した配列を返却するメソッドex6_15を作成せよ
      int [] ex6_15(int [] a, int idx, int x)
      挿入に伴ってa[idx]以降の全要素を一つ後方にずらすこと。

      たとえば配列aの要素が{1, 3, 4, 7, 9, 11}のときにex6_15(a, 2, 99)と呼び出された場合、返却する配列の要素は{1, 3, 99, 4, 7, 9, 11}となる。

  5. Ex7

    1. ex7_1
      二つのint型整数a, bの最小値、三つのint型整数a, b, cの最小値、配列aの最小値を求める、以下に示す多重定義されたメソッドを作成せよ。
      int ex7_1(int a, int b)
      int ex7_1(int a, int b, int c)
      int ex7_1(int [] a)

    2. ex7_2
      int型整数xの絶対値、long型整数xの絶対値、float型実数xの絶対値、double型実数xの絶対値を求める、以下に示す多重定義されたメソッド郡を作成せよ。
      int ex7_2(int x)
      long ex7_2(long x)
      float ex7_2(float x)
      double ex7_2(double x)

    3. ex7_3
      整数値の内部ビットを表す文字列を返すメソッドを作成する。引数の型(byte, short, int, long)により多重定義する
      String ex7_3(byte x)
      String ex7_3(short x)
      String ex7_3(int x)
      String ex7_3(long x)
      例(引数がbyte型の場合)
      3 => "00000011"
      -3 => "11111101"
      127 => "01111111"
      -128 => "10000000"
      0 => "00000000"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published