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

【擬似言語③】合計 | 自己更新式と初期値(基本情報技術者, 科目B, アルゴリズム)

    このNoteでは、よくある合計計算(sum←sum+i)をテーマにします。プログラム的な学びは「初期値/初期化へ考慮」と「引数での汎用性」です。

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

    ぜひ一緒に学習を進めていきましょう!


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

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


    プログラムならではの”自己更新”する式

    簡単に「1から3の整数(1, 2, 3)の合計を計算する」擬似言語を作ってみます。変数sumに、足す数(1, 2, 3)を随時加算する方式(sum←sum+i)で、forループを使ってみます。

    〇calcSum()
      整数型: sum
      整数型: i
    
      for (i を 1 から 3 まで 1 ずつ増やす)
        sum ← sum + i
      endfor
    
      sum を表示する

    >【FEB】擬似言語の教科書Noteの⑥で「a ← a + 1」と自分に+1して自分に代入し直す式を紹介しました。”プログラムならでは”の書き方ですね。数学で「a = a + 1」はあり得ないですもん。

    ところで、バグがあることに気づきましたか?数学的ではなく、コンピュータ側の事情による不具合。>【FEB】擬似言語の教科書Noteの⑲




    初期値が重要な計算

    前節のバグ。正解は「sum←0で初期化していない」です。

    >【FEB】擬似言語の教科書Noteの⑲ で”1回目のループ(i=1)の時「sum←sum+1」を実行しますが、sumに何が入ってるか分かりません。もし100が入ってたら、sumは101になってしまいます。”と解説しました。

    sum←0に修正しました。

    〇calcSum()
      整数型: sum ← 0
      整数型: i
    
      for (i を 1 から 3 まで 1 ずつ増やす)
        sum ← sum + i
      endfor
    
      sum を表示する

    iは、for文で「iを1から」で、強制的に1を代入してるのでOK。使う前に代入/初期化がされてれば問題ありません。

    なお「初期値は必ず0、とは限りません」。

    次々でやる最大値や最小値の算出。初期値はしっかり考えねば、計算を間違えます。>【擬似言語⑤】最大値 | 1番目データで初期化のNote




    引数で有用な関数に

    「1から3の合計を計算する関数」なんて、使い道がありません。利用者が指定した数から数までの合計計算ができるように改良します。

    〇calcSum(整数型: startNum, 整数型: endNum)
      整数型: sum ← 0
      整数型: i
    
      for (i を startNum から endNum まで 1 ずつ増やす)
        sum ← sum + i
      endfor
    
      sum を表示する

    引数を設け「startNum」から「endNum」までの合計を計算する関数に改良しました。ちったぁ役立ちそうな関数になりましたね。




    まとめ

    お疲れ様でした!

    今回は、for文の基礎を生かして「初期化の必要性も考えよう」って学びに派生しました。

    初期化は「必ずやる/できる」わけじゃないですが、「必ず考えて」下さい。

    こんな感じで、基礎を生かして実例で擬似言語を作って、さらにプログラム的な考察や工夫を深めていきたくて、理解シリーズを作ってます。>【FEB】擬似言語の教科書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。 学生時代にITパスポート試験・基本情報技術者試験・応用情報技術者試験を独学で高得点合格。情報処理安全確保支援士試験(セキスペ)・データベーススペシャリスト試験・ネットワークスペシャリスト試験・G検定なども取得。 2027年にPD-S受験予定。