平方根を表示するプログラムを作成2 API仕様
import java.io.*;
public class kadai15_2_1
{
public static void main(String[] args) throws IOException
{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("平方根を求めたい整数値を入力して下さい。");
String str = br.readLine();
int num = Integer.parseInt(str);
double heihokon = Math.sqrt(num);//Math.sqrt使用しました。
System.out.print(num + "の平方根は" + heihokon + "です。");
}
}
あら便利簡単に出す事ができますね!
平方根を表示するプログラムを作成1
/*入力した数値の平方根を表示するプログラムを作成せよ*/
ニュートン法で書いてみました。
import java.io.*;
public class kadai15_1 {
public static void main(String[] args) throws IOException
{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("平方根を求めたい整数値を入力して下さい。");
String str = br.readLine();
int num = Integer.parseInt(str);
double heihokon;
int i,j;
j=10;
heihokon=0;
do {
heihokon+=1;
} while (heihokon*heihokon<num);
for (i=0;i<j;i++) {
heihokon=(heihokon+num/heihokon)/2;
}
System.out.print(num + "の平方根は" + heihokon + "です。");
}
}
値2を入れた表示結果
平方根を求めたい整数値を入力して下さい。
2
2の平方根は1.4142135623730951です。
for&配列課題 配列を降順にソートするプログラム2
前回の課題をArrays.sortを使って作成してみました。
import java.util.Arrays;
public class kadai14_1 {
public static void main(String[] args)
{
int[] a = {6838,5758,113,7515,1015,5627,3010,7419,6212,4086,
2160,4005,729,7644,7475,1693,5514,4139,2088,6521};
//ソートする
Arrays.sort(a);
//逆順にする
int length = a.length;
int[] b = new int[length];
for(int i=0; i<length; i++) {
b[i] = a[length - i - 1];
}
for(int i=0; i<a.length; i++) {
System.out.println((i+1) + "番目は" + b[i] + "です。");
}
}
}
for&配列課題 配列を降順にソートするプログラム1
/*下記の配列の内容を降順に整列して表示するプログラムを作成せよ。
int[] a = {6838,5758,113,7515,1015,5627,3010,7419,6212,4086,
2160,4005,729,7644,7475,1693,5514,4139,2088,6521};*/
public class kadai14_2_1 {
public static void main(String[] args)
{
int[] a ={6838,5758,113,7515,1015,5627,3010,7419,6212,4086,
2160,4005,729,7644,7475,1693,5514,4139,2088,6521};
//配列をソートさせる為の繰り返し文
for(int s=0; s<a.length-1; s++){
for(int b=s+1; b<a.length; b++){
if(a[b] > a[s]){
int tmp = a[b];
a[b] = a[s];
a[s] = tmp;
}
}
}
for(int c=0; c<a.length; c++){
System.out.println((c+1) + "番目は" + a[c] + "です。");
}
}
}
表示結果
1番目は7644です。
2番目は7515です。
3番目は7475です。
4番目は7419です。
5番目は6838です。
6番目は6521です。
7番目は6212です。
8番目は5758です。
9番目は5627です。
10番目は5514です。
11番目は4139です。
12番目は4086です。
13番目は4005です。
14番目は3010です。
15番目は2160です。
16番目は2088です。
17番目は1693です。
18番目は1015です。
19番目は729です。
20番目は113です。
となります!
配列課題 値によって振る舞いを出力し、最終的に0で終了プログラム 完成!
/*
値によって振る舞いを出力し、
最終的に0で終了するプログラムを書きなさい。
値をいくつ保存しますか?2
値を入力してください。3
none none
値を入力してください。4
3 none
値を入力してください。5
4 3
値を入力してください。0
終了します。*/
import java.io.*;
public class hairetu_irekae
{
public static void main(String[] args) throws IOException
{
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("値をいくつ保存しますか?");
String str = br.readLine();
int num = Integer.parseInt(str);
String[] hairetu = new String[num];
int i,j,k;
for(i=0; i<num; i++){
hairetu[i] = "none";
}
for(j=0; j<10; j++){
System.out.println("値を入力して下さい。");
String str2 = br.readLine();
if(str2.equals("0"))
break;
System.out.println((hairetu[0] + " ") + hairetu[1]);
for(k=hairetu.length-1; k>0; k--){
hairetu[k] = hairetu[k-1];
}
hairetu[0] = str2;
}
System.out.println("終了します。");
}
}
表示結果
値をいくつ保存しますか?
2
値を入力して下さい。
3
none none
値を入力して下さい。
4
3 none
値を入力して下さい。
5
4 3
値を入力して下さい。
0
終了します。
まだ出力結果をループさせる事が出来るはずですけど、一旦ここで中断。
配列練習 3個の配列に入れ替え挿入 更に3回以上入力させる!
![ペタしてね](https://stat100.ameba.jp/blog/ucs/img/decoPeta/pc/decoPeta_16.gif)
import java.io.*;
public class hairetu_2_1 {
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//配列の準備、初期化
String[] hairetu = {" none", " none", " none"};
int i;
//5回入力させ、順番を入れ替え配列[2]は随時消して行く
for(i=0; i<5; i++){
System.out.println("値を入れて下さい。");
String str2 = br.readLine();
//配列代入定義(ここをループ出来ないか思案中....)
hairetu[2] = hairetu[1];
hairetu[1] = hairetu[0];
hairetu[0] = str2;
System.out.println(hairetu[0] + hairetu[1] + hairetu[2]);
}
}
}
表示結果
値を入れて下さい。
2
2 none none
値を入れて下さい。
3
32 none
値を入れて下さい。
4
432
値を入れて下さい。
5
543
値を入れて下さい。
6
654
となりますが、もう少し簡略化出来るのではと思います!
配列の置き換え基礎 中間報告!これ間違い....
![ペタしてね](https://stat100.ameba.jp/blog/ucs/img/decoPeta/pc/decoPeta_15.gif)
import java.io.*;
public class hairetu_1 {
public static void main(String[] args) throws IOException
{
System.out.println("値をいくつ保存しますか?");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int num = Integer.parseInt(str);
String[] hairetu = new String[3];
System.out.println("値を入力して下さい。");
String str2 = br.readLine();
String num2 = str2;
hairetu[0] = num2;
hairetu[1] = "none ";
hairetu[2] = "none ";
System.out.println(hairetu[1] + hairetu[2]);
hairetu[1] = hairetu[0];
System.out.println("値を入力して下さい。");
String str3 = br.readLine();
String num3 = str3;
hairetu[0] = num3;
System.out.println(hairetu[1] + hairetu[2]);
hairetu[2] = hairetu[1];
hairetu[1] = hairetu[0];
System.out.println("値を入力して下さい。");
String str4 = br.readLine();
String num4 = str4;
hairetu[0] = num4;
System.out.print(hairetu[1] + hairetu[2]);
System.out.println("値を入力して下さい。");
String str5 = br.readLine();
String num5 = str5;
hairetu[0] = num5;
System.out.println("終了します");
}
}
結果表示は
値をいくつ保存しますか?
2
値を入力して下さい。
3
none none
値を入力して下さい。
4
3none
値を入力して下さい。
5
43値を入力して下さい。
0
終了します
になりますが、配列は最初に2個用意されてるのに無駄に3個用意して一個隠しています。
最後も0を入力していますが、他の数字を入れても
”終了します”が表示されますよね!
う~ん.....
やりたいことには近いけれどこれはほど遠いんですよね......
配列の置き換え基礎 途中!
![ペタしてね](https://stat100.ameba.jp/blog/ucs/img/decoPeta/pc/decoPeta_16.gif)
これをfor文で書き直さないと駄目なのですが、その前に一文づつコードで書いて見ました。
import java.io.*;
public class hairetu_1 {
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] hairetu = new String[3];
String str = br.readLine();
String num = str;
hairetu[0] = num;
hairetu[1] = "none ";
hairetu[2] = "none ";
System.out.print(hairetu[0] + hairetu[1] + hairetu[2]);
hairetu[1] = hairetu[0];
String str2 = br.readLine();
String num2 = str2;
hairetu[0] = num2;
System.out.print("¥n");
System.out.print(hairetu[0] + hairetu[1] + hairetu[2]);
hairetu[2] = hairetu[1];
hairetu[1] = hairetu[0];
String str3 = br.readLine();
String num3 = str3;
hairetu[0] = num3;
System.out.print("¥n");
System.out.print(hairetu[0] + hairetu[1] + hairetu[2]);
}
}
結果表示は
3none none 4
43none 5
543
なので初歩的な書き方は出来るんですよね!
他のforにネストする時迷うのは何故でしょう.....