演習 02
問題 1
円の面積 a
を引数として受け取り、円の円周の長さを返す関数 circumference
を作成して以下のプログラムを完成させよ。
// ここに自作関数を作る
void setup() {
noLoop();
}
void draw() {
println(circumference(10));
println(circumference(20));
println(circumference(30));
}
実行結果
11.209983
15.85331
19.41626
問題 2
文字列 s
を引数として受け取り、s
の長さが偶数だったら true
そうでなかったら false
を返す関数 isEvenLength
を作成して以下のプログラムを完成させよ。
// ここに自作関数を作る
void setup() {
noLoop();
}
void draw() {
String[] strings = {"odd", "even", "AAA", "long message"};
for (int i = 0; i < strings.length; ++i) {
if (isEvenLength(strings[i])) {
println(strings[i] + " is even length");
} else {
println(strings[i] + " is odd length");
}
}
}
実行結果
odd is odd length
even is even length
AAA is odd length
long message is even length
問題 3
引数 n
を引数として受け取り、n
番目の素数を返す関数 nthPrime
を作成して以下のプログラムを完成させよ。
// ここに自作関数を作る
void setup() {
noLoop();
}
void draw() {
println(nthPrime(1));
println(nthPrime(10));
println(nthPrime(100));
}
実行結果
2
29
541
問題 4
数学,英語,プログラミングの試験を行った。教科ごとに合格点,受験者数が異なる。
合格者を数える関数を 1 つだけ作成し,draw
関数内で科目ごとにこの関数を用いて合格者数を求め,コンソールに表示せよ。
各教科の受験者の点数
- 数学 (75 点以上で合格) : 45, 87, 84, 91, 74, 76
- 英語 (80 点以上で合格) : 55, 81, 74, 71, 80
- プログラミング (85 点以上で合格) : 65, 91, 63, 88, 88, 91, 100, 54
実行結果
math: 4
english: 2
programming: 5
問題 5
文字列配列型の messages
を引数として受け取り、文字数が最短のものと最長のものを返す関数 shortestAndLongest
を作成して以下のプログラムを完成させよ。
2 つの文字列を返すためには、要素数 2 の文字列配列を返せば良い。
// ここに自作関数を作る
void setup() {
noLoop();
}
void draw() {
String[] messages = {"Hello", "Hey", "How are you?", "What’s up?"};
String[] result = shortestAndLongest(messages);
println("shortest: ", result[0]);
println("longest: ", result[1]);
}
実行結果
shortest: Hey
longest: How are you?