メインコンテンツへスキップ
見出し画像

【擬似言語⑪裏】ずらしループで移動平均のbinを可変にする(基本情報技術者, 科目B, アルゴリズム)

    このNoteでは、「3日に移動平均」「5日の移動平均」って感じで、枠(bin)を指定して移動平均を計算してくれる関数を作ります。

    以下のNoteを読んでから取り組む課題です。
    >【擬似言語④】平均のNote
    >【擬似言語⑪】移動平均(3bin)のNote


    このNoteは、私がIT専門学校で授業したことを基に作成しています。
    IT専門学校でFEは第一目標として、カリキュラムが構築されています。何も知らずに入学しても、1年生10月にはFE合格していきますよ。実績ある教育ノウハウを詰め込んだので、少しでも信頼して頂けたら嬉しいです。

    >全Noteへのリンク(FE節)
    ※科目Aのテーマ別/科目B/旧FE午後など沢山作りました!


    前回組んだ移動平均(3bin)

    >【擬似言語⑪】ずらしループ(移動平均)のNote で、3枠の移動平均を計算する擬似言語を作りました。

    画像
    実数型の配列: data ← {10, 12, 15, 11, 14}
    実数型の配列: result ← {0, 0, 0}
    整数型: N ← dataの要素数
    整数型: i
    
    for (i を 1 から N - 2 まで 1 ずつ増やす)
      result[i] ← (data[i] + data[i + 1] + data[i + 2]) / 3
    endfor

    計算結果は3個(=データ5個-(3枠-1))なので、resultの要素数は3個にしました。
    ※あとオトナの事情で、dataとresultを実数型にさせて頂きました。気にしないで下さい。




    課題 | 移動平均(2bin)

    では課題。「2枠の移動平均の擬似言語を作ってください」。

    すぐにできますね。

    実数型の配列: data ← {10, 12, 15, 11, 14}
    実数型の配列: result ← {0, 0, 0, 0}
    整数型: N ← dataの要素数
    整数型: i
    
    for (i を 1 から N - 1 まで 1 ずつ増やす)
      result[i] ← (data[i] + data[i + 1]) / 2
    endfor

    変更箇所は、
    ❶resultを4要素(=データ5個-(2枠-1))。
    ❷平均計算の式を変更(配列から2つ足して、2で割る)

    ❷が変更できれば基礎はOK、❶に気づいたなら慎重さも併せ持ってて良いですね。




    課題 | 移動平均(任意のbin)

    では本題。「移動平均する枠数(bin)を引数で受け取って計算」するように改良して下さい。

    ❶resultの要素数が、binで変わっちゃいます。

    2つの方式あります。
     「resultの末尾に追加」を使うと楽(科目Bでもたまに出てます)。
     「result←{dataの要素数 - (bin-1)個の0}」でもOK。

     
     
    大学・専門学校の先生の解説Note。 学生時代にITパスポート試験・基本情報技術者試験・応用情報技術者試験を独学で高得点合格。情報処理安全確保支援士試験(セキスペ)・データベーススペシャリスト試験・ネットワークスペシャリスト試験・G検定なども取得。 2027年にPD-S受験予定。