SSブログ

Java:メソッドの課題(演習問題) [勉強]

先ほどのwhile文の課題(演習問題)に引き続き、今度はメソッドの課題(演習問題)です。
「メソッドとは、なんぞや?」と思いますよね。C言語やってた人は「関数と同じっぽいYO」と言うと「ほほーー」となるそうです。

では、メソッドの課題(演習問題)は以下の通りです。
問題8-1:
「長方形の縦の長さと横の長さを引数で渡すと、面積の値を返すメソッドを作成し、それを実行するクラスを作成せよ」

問題8-2:
「引数で文字と数値を渡すと、その文字を渡した数値の回数だけ表示するメソッドを作成し、それを実行するクラスを作成せよ」

問題8-3:
「引数で整数値を渡すと偶数かどうか判定するメソッドを作成し、それを実行するクラスを作成せよ」

問題8-4:
「1~1000の間のランダムな数を返すメソッドを作成し、それが偶数かどうか判定するクラスを作成せよ」

問題8-5:
「与えられた文字列が回文(前から読んでも後ろから読んでも同じ)になっているかどうかを判定するプログラムを作成せよ」

問題8-6:
「文字列の中に "abc"という文字があったら"***"に置き換えて出力するプログラムを作成せよ」

です。
問題8-5「回文判定」は、既にUPしたから今回はスルーしますね。

 

 

以下、問題8-1の回答ソースです。

import java.io.*;

public class Rectangle {
 public static void main(String[] args) {
  BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));
  try {
   System.out.print("縦の長さを入力してください。(整数) :");
   int x = Integer.parseInt(kbd.readLine());
   System.out.print("横の長さを入力してください。(整数) :");
   int y = Integer.parseInt(kbd.readLine());
   System.out.println(x +"×"+ y +"の長方形の面積は"+menseki(x,y)+"です。");
  } catch (IOException e) {
   System.out.println(e);
  } catch (NumberFormatException e) {
   System.out.println("正しい数値(整数)を入力してください。");
  }
 }
 public static int menseki(int tate, int yoko) {
  return (tate*yoko);
 }

こんな感じでイイよね?? たぶん。変数名が"tate"とか"yoko"とか、分かりやすいでしょ?
次、問題8-2の回答ソースです。

import java.io.*;

public class PrintString {
 public static void main(String[] args) {
  BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));
  System.out.print("表示させたい文字を入力してください。 :");
  try {
   String line = kbd.readLine();
   System.out.print("表示させたい回数を数値で入力してください。 :");
   int n = Integer.parseInt(kbd.readLine());
   
   Print(line,n);
  } catch (IOException e) {
   System.out.println(e);
  } catch (NumberFormatException e) {
   System.out.println("正しい数値を入力してください。");
  }
 }
 public static void Print(String moji, int n) {
  for (int i=0; i < n; i++) {
   System.out.println(moji);
  }
 }
}

サクサクいきますよー。
次、問題8-3の回答ソースです。

import java.io.*;

public class Number {
 public static void main(String[] args) {
  BufferedReader kbd = new BufferedReader (new InputStreamReader(System.in));
  System.out.print("数値(整数)を入力してください。 :");
  try {
   evenOrOdd(Integer.parseInt(kbd.readLine()));
  } catch (IOException e) {
   System.out.println(e);
  } catch (NumberFormatException e) {
   System.out.println("正しい数値を整数で入力してください。");
  }
 }
 public static void evenOrOdd(int n) {
  if (n%2 == 0) {
   System.out.println("入力された数値" + n + " は偶数です。");
  } else {
   System.out.println("入力された数値" + n + " は奇数です。");
  }
 }
}

ちょっと数値入力をline読みで文字列→整数変換を1行ですましたりして、しかもそのまま引数としてメソッドに渡してみたりしてます。
で、次、問題8-4の回答ソースです。

public class Number2 {
 public static void main(String[] args) {
  int num = random();
  if (num%2 == 0) {
   System.out.println(num + "は偶数でした。");
  } else {
   System.out.println(num + "は奇数でした。");
  }
 }
 public static int random() {
  return (int)(Math.random() *1000);
 }

この辺までは楽勝ですよ。特定された機能(処理)の部分をメソッド化するだけですからねぇ。
で、問題8-5「回文判定」は既にUP済みなので、スルーします。
次、問題8-6の回答ソースです。

import java.io.*;

public class TextReplace {
 public static void main(String[] args) {
  BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));
  try {
   System.out.print("文字列を入力してください。 :");
   String line = kbd.readLine();
   rePlace(line);
  } catch (IOException e) {
   System.out.println(e);
  }
 }
 public static void rePlace(String s) {
  String ss = s.replace("abc","***");
  System.out.println(ss);
 }
}

String replace()で文字列の置換してます。これ、char型だけかと思ってたけど、文字列でも置換できるんですねぇ。この文字列置換は、回文判定プログラムの後に、シコシコ書いていました。

メソッドの課題(演習問題)はこんな感じですかねぇ。

で、次のJavaネタなんですが・・・
教科書の7章while文の練習問題で、テキストファイルからの標準入力をあるルールにそって加工してHTMLファイルに変換するというのがあったので、次のブログ記事にUPしますね。

 


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:資格・学び

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。