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

【擬似言語⑤課題】最小値 | 最大値探索の関数を流用する(基本情報技術者, 科目B, アルゴリズム)

    このNoteでは、最小値を見つける関数を作ります。最大値を見つける関数を流用するので超簡単ですよ。>【擬似言語⑤】最大値のNote


    テキストの基礎を生かして、プログラム的な考察/工夫を学んでいきます。基礎と実用にギャップを感じる方のために作りました。
    >【FEB】擬似言語の教科書Note
    ぜひ一緒に学習を進めていきましょう!

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

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


    最大値→最小値

    最大値を見つける「findMax関数」の流れ。
    ❶1番目のデータを暫定チャンピオン(最大値)にする
    ❷data配列を順番に、暫定チャンピオンと比べる
    でdataを全て比べたら最大値が分かる寸法。

    〇findMax(整数型の配列: data)
      整数型: maxVal
      整数型: i
    
      maxVal ← data[1]
    
      for (i を 2 から dataの要素数 まで 1 ずつ増やす) 
        if (data[i] > maxVal)
          maxVal ← data[i]  / チャンピオンの交代 */
        endif
      endfor
    
      maxVal を表示する

    最小値を見つける「findMin関数」も全く同じですね。
    ただし、❷の判定で不等号を変える必要あり。

    〇findMin(整数型の配列: data)
      整数型: minVal
      整数型: i
    
      minVal ← data[1]
    
      for (i を 2 から dataの要素数 まで 1 ずつ増やす)
        if (data[i] < minVal)
          minVal ← data[i]  / チャンピオンの交代 */
        endif
      endfor
    
      minVal を表示する

    これだけです。

    • 関数名と変数名をちょいと変えて。
      findMaxをfindMinに。
      maxValをminValに。
      ※変えなくても動きますが

    • 不等号を変える。
      「data[i] > maxVal」を「data[i] < minVal」に。




    初期値を1番目のデータにしてて良かった

    暫定チャンピオンを1番目のデータにしてたのが良かったです。

      maxVal ← data[1]
      minVal ← data[1]


    もし初期値を使っていた場合、検討が必要でした。

    例えば、0~100点のテストの場合。

      maxVal ← -1
      minVal ← 101

    などのように範囲外の値を代入して、「1番目のデータが必ずチャンピオン(最大値, 最小値)」に変わるようにする必要がありました。

    もし0~100点って範囲がない値だったら大変です。

    なので「どーせ、実データを入れるんだから、強制的に1番目を入れちゃえ」って発想になったんです。>【擬似言語⑤】最大値のNote(データで初期化)




    まとめ

    お疲れ様でした!

    関数を流用して簡単でしたね。初期化もしっかり検討されてたので良かった。>【擬似言語⑤】最大値のNote

    流用だけじゃ非効率な場合は改良します。それはまた今度。>【擬似言語アルゴ②課題C】複数個分のシフトのNote*

    中央値や最頻値を算出する関数も作りたいですね。
    >中央値のNote(企画中*)
    >最頻値のNote(企画中*)

    ではでは。


    最後に私のお薦めの演習順番。
    ❶学習前の”分からせ”
    >【FEB】サンプル問題2のNote
    ❷テキスト
    >【FEB】擬似言語の教科書Note
    >【FEB】擬似言語の理解演習Note ←いまこの辺
    ↓※必要なら
    うかる! 基本情報技術者 [科目B・セキュリティ編](amazon)
    うかる! 基本情報技術者 [科目B・アルゴリズム編](amazon)
    ❸各年度の公開問題
    >【FEB】令和07年科目BのNote
    >【FEB】令和06年科目BのNote
    >【FEB】令和05年科目BのNote
    ➍解法の総復習(➋や➌と併用可)
    >【FEB】擬似言語の11の解法Note
    ➎模擬試験
    >【FEB】サンプル問題1のNote(擬似言語)
    >【FEB】サンプル問題1のNote(セキュリティ)

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

    この記事が参加している募集

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