順位付け

順位付け

自分より大きい値がいくつあるか

1. 単純全比較
    Dim scoreList(4) As Integer
    Dim rankList(4) As Integer
    Dim i, j, rank As Integer

    Call SetScoreListData(rankList)

    For i = 0 To UBound(scoreList)

        rank = 1

        For j = 0 To UBound(scoreList)

            If scoreList(i) < scoreList(j) Then
                rank = rank + 1
            End If

        Next j

        rankList(i) = rank

    Next i

    For i = 0 To UBound(scoreList)
        Debug.Print scoreList(i) & "点 : " & rankList(i) & "位"
    Next i
  • 自分自身を含め、全ての要素と比較。
  • 順位は必ず 1 から開始。
  • 自分より大きい値を見つけるたびに順位を 1 増やす。
  • 同点は同順位。
  • 比較回数 n × n (n²)回。
  • コードが単純
📝データ 設定/出力
Sub SetScoreListData(ByRef rankList() As Integer)
    scoreList(0) = 85
    scoreList(1) = 92
    scoreList(2) = 76
    scoreList(3) = 92
    scoreList(4) = 60
 End Sub
85点 : 3位
92点 : 1位
76点 : 4位
92点 : 1位
60点 : 5位
2. 組合せ比較
    Dim scoreList(4) As Integer
    Dim rankList(4) As Integer
    Dim i, j As Integer

    Call SetScoreListData(rankList)

    '全員1位で初期化
    For i = 0 To UBound(rankList)
        rankList(i) = 1
    Next i

    For i = 0 To UBound(scoreList) - 1

        For j = i + 1 To UBound(scoreList)

            If scoreList(i) < scoreList(j) Then
                rankList(i) = rankList(i) + 1

            ElseIf scoreList(i) > scoreList(j) Then
                rankList(j) = rankList(j) + 1

            End I

        Next j

    Next i

    For i = 0 To UBound(scoreList)
        Debug.Print scoreList(i) & "点 : " & rankList(i) & "位"
    Next i
  • 同じ組み合わせを二度比較しない。
  • 初期値は全員1位。
  • 比較回数 n(n-1)/2。
📝データ 設定/出力
Sub SetScoreListData(ByRef rankList() As Integer)
    scoreList(0) = 85
    scoreList(1) = 92
    scoreList(2) = 76
    scoreList(3) = 92
    scoreList(4) = 60
 End Sub
85点 : 3位
92点 : 1位
76点 : 4位
92点 : 1位
60点 : 5位
3. 過去問【4】

📦出力画面

📍第71回【4】問2
第71回【4】問2_01
📍第70回【4】問1
第70回【4】問1_01


📘 ダウンロード教材について

この教材は、全国商業高等学校協会の情報処理検定の過去問題をもとに作成された、
学習支援用のマクロ付きExcelファイルです。

  • マクロは 売上集計や平均点の計算など、検定形式に沿った処理を行います。
  • 外部との通信やファイル操作は一切行いません。
  • 教育目的で無償提供しており、改変・再配布はご遠慮ください。

ご利用の際は、マクロを有効にする必要があります。学校のPCで使用する場合は、先生にご確認ください。

ファイル名 サイズ (KB) ダウンロード
第71回【4】問2.zip 17
第70回【4】問1.zip 12

戻る


© 2026 - Blazor 情処の味方

サポーターズ
Thread Light
An unhandled error has occurred. Reload 🗙