Kotlin練習問題1-2:配列の平均値を計算しよう

記事内に商品プロモーションを含む場合があります

Kotlinの初心者向け問題1-2:配列の平均値を計算しよう

この問題を解くために必要な知識:
コメントの書き方、変数と定数、基本データ型、算術演算と論理演算、入力と出力、import文、配列、分岐処理(if、if~else、when)、繰り返し処理(for、while、do~while)、Null安全スマートキャスト

<<前の問題 問題集Top 次の問題>>

Kotlinの文法「配列」とは

ここでは配列の意味や使い方を復習します。必要ない方はここをクリックして練習問題へ飛びましょう。




配列は、複数の値を一つの変数にまとめて扱うための便利な仕組みです。

この記事では、Kotlinの配列について詳しく説明し、基本的な使い方や配列操作の方法を学びます。

配列とは?

配列とは、同じデータ型の値を連続して並べたデータ構造のことです。例えば、複数の整数や文字列を一つの変数にまとめて扱いたい場合に配列を使います。

配列の要素にはインデックス(番号)でアクセスします。インデックスは0から始まるので、最初の要素はインデックス0、2番目は1となります。

Kotlinでの配列の宣言

Kotlinで配列を作成するには、arrayOf関数を使います。以下は、いくつかの配列の例です。

例: 配列の宣言
fun main() {
    // 整数の配列
    val numbers = arrayOf(1, 2, 3, 4, 5)

    // 文字列の配列
    val names = arrayOf("Alice", "Bob", "Charlie")

    // 各要素の表示
    println(numbers[0])  // 出力: 1
    println(names)    // 出力: Bob
}

この例では、numbersは整数の配列、namesは文字列の配列です。

printlnを使って、インデックスを指定して特定の要素にアクセスしています。

配列の操作

要素の変更

配列の要素を変更するには、インデックスを使って直接指定します。

fun main() {
    val fruits = arrayOf("Apple", "Banana", "Cherry")
    
    // 2番目の要素を変更
    fruits = "Orange"
    
    println(fruits)  // 出力: Orange
}

このように、インデックスを使うことで、配列内の任意の要素を変更することができます。

配列のサイズ

Kotlinの配列は固定サイズです。つまり、作成後にサイズを変更することはできませんが、別の配列を作り直すことで対応できます。

fun main() {
    val numbers = arrayOf(1, 2, 3, 4, 5)
    
    // 配列のサイズを確認
    println("配列のサイズ: ${numbers.size}")  // 出力: 配列のサイズ: 5
}

便利な配列操作

Kotlinでは、配列に対する便利な操作が多数提供されています。ここでは、いくつかよく使われる操作方法を紹介します。

forループを使った配列の走査

配列内の要素を一つずつ処理する場合、forループが便利です。

fun main() {
    val animals = arrayOf("Cat", "Dog", "Elephant")
    
    // 配列の要素を順番に出力
    for (animal in animals) {
        println(animal)
    }
}

このループでは、配列の各要素がanimalに代入され、順番に出力されています。

配列のソート

Kotlinでは、配列を簡単にソートすることができます。

fun main() {
    val numbers = arrayOf(5, 3, 8, 1, 2)
    
    // 配列を昇順にソート
    val sortedNumbers = numbers.sortedArray()
    
    // ソート後の配列を表示
    println(sortedNumbers.joinToString())  // 出力: 1, 2, 3, 5, 8
}

この例では、sortedArrayを使って配列を昇順にソートし、joinToStringで要素をカンマ区切りで出力しています。

配列の初期化方法

配列はarrayOf以外にも、特定の値やサイズで初期化することができます。

特定のサイズで初期化

fun main() {
    // サイズが5の配列を0で初期化
    val zeros = Array(5) { 0 }

    // 配列の要素を表示
    println(zeros.joinToString())  // 出力: 0, 0, 0, 0, 0
}

この例では、サイズ5の配列をすべて0で初期化しています。

Arrayコンストラクタにサイズと初期値を指定することで、好きな値で配列を初期化できます。

まとめ

Kotlinの配列は、複数の値をまとめて管理できる非常に便利なデータ構造です。

基本的な操作や便利なメソッドを覚えることで、配列を効果的に使えるようになります。

今回紹介した基本的な配列の使い方をぜひ自分でコードを書きながら練習してみてください。




Kotlin練習問題1-2_配列の平均値を計算しよう

配列の平均値を計算しましょう。

5つの整数(10 , 20 , 30 , 40 , 50)を含む配列を作成し、それらの平均値を計算して出力するプログラムを作成してください。

この問題の要件

以下の要件に従ってプログラムを作成してください。

  • 5つの整数を含む配列を作成してください。配列の名前はnumbersとすること。
  • 配列内の全要素を順に足し合わせ、合計を求めてください。
  • 合計を求めた後、配列の要素数で割って平均値を計算し、averageという変数に格納してください。
  • 平均値をprintlnを使って出力してください。出力される文字列は「平均値: 」で始まるようにしてください。

ただし、以下のような実行結果となること。

----- ↓出力される結果の例↓ -----

平均値: 30.0

----- ↑出力される結果の例↑ -----

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。

1.main関数の定義
 1-1. 配列numbersを定義し、5つの整数を格納
 1-2. 変数sumを定義し、初期化
2.forループによる配列の要素を順に足し合わせる処理
 2-1. ループ内で各要素をsumに加算
3.平均値の計算
 3-1. sumを配列の要素数で割り、averageに格納
4.計算結果の出力
 4-1. averageを出力

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

fun main() {
    val numbers = arrayOf(10, 20, 30, 40, 50) // 5つの整数を含む配列を作成
    var sum = 0 // 合計を格納する変数を初期化

    // 配列の全要素を順に足し合わせる
    /* ***【穴埋め問題1】***
    ここに配列`numbers`の各要素を`sum`に足し合わせるコードを書いてください。
    */

    // 平均値を計算(合計を要素数で割る)
    /* ***【穴埋め問題2】***
    ここで`sum`を`numbers`の要素数で割り、平均値を計算して`average`に格納するコードを書いてください。
    */
    println("平均値: $average") // 平均値を出力
}

 

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。

解答例

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

********************

fun main() {
    val numbers = arrayOf(10, 20, 30, 40, 50) // 5つの整数を含む配列を作成
    var sum = 0 // 合計を格納する変数を初期化

    // 配列の全要素を順に足し合わせる
    for (number in numbers) {
        sum += number
    }

    // 平均値を計算(合計を要素数で割る)
    val average = sum.toDouble() / numbers.size
    println("平均値: $average") // 平均値を出力
}

********************

正解コードの解説

このKotlinプログラムは、配列に含まれる5つの整数の平均値を求めるシンプルな例です。コードの各部分を解説します。

配列の定義と初期化

val numbers = arrayOf(10, 20, 30, 40, 50)

まず、numbersという名前の配列を定義しています。arrayOfを使って、配列内に5つの整数(10, 20, 30, 40, 50)を格納しています。この配列は後で計算に使用します。

合計値を格納する変数の初期化

var sum = 0

次に、sumという名前の変数を0で初期化します。この変数は、配列内の全ての整数を足し合わせた合計を格納するために使用します。

配列内の要素を順に足し合わせる

for (number in numbers) {
    sum += number
}

この部分では、forループを使用して、配列numbersの各要素を順にsumに足し合わせています。

numberは配列内の各整数を指し示し、sum += numberという記述は、sumnumberを加えるという意味です。

平均値の計算

val average = sum.toDouble() / numbers.size

ここでは、合計sumを配列の要素数で割ることで平均値を計算しています。

sum.toDouble()は、sumを小数点を含む数値に変換することで、割り算の結果が小数になるようにしています。numbers.sizeは配列の要素数を返します。

平均値の出力

println("平均値: $average")

最後に、計算された平均値をprintlnを使って出力します。出力は「平均値: 30.0」のようになります。

<<前の問題 問題集Top 次の問題>>

この問題への質問・コメント

この問題を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Kotlin練習問題集へ戻る
    トップページへ戻る