大学カタログ

図 1 情報の広がり情報の広がり 3

コンピュータとプログラミング

コンピュータが命令を実行するしくみ、問題を解く手順(アルゴリズム)の表し方、プログラミング、乱数などを使ったシミュレーションを学ぶ単元です。共通テストの「情報 I」でも、プログラムを読み解く問題が出題されます。

パソコン教室で、流れ図を描いたノートを見ながらプログラムを打ち込む高校生と、さいころを振って結果を記録する高校生たち

ひとことで言うと

だれが行っても迷わない買い物メモ

「牛乳を 1 本。売り切れなら豆乳」「卵は安い方を 2 パック」。こう書いたメモなら、だれが買い物に行っても同じ物を買って帰れます。プログラミングは、こうした迷わない指示を、書いたとおりにしか動かないコンピュータに向けて書く作業です。

01

コンピュータのしくみ: 5 つの装置と、限りのあるビット

コンピュータは、制御装置・演算装置・記憶装置・入力装置・出力装置の 5 つでできています。制御装置と演算装置を合わせたものが CPU です。CPU は、記憶装置から命令とデータを取り出して処理します。スマートフォンも同じ構成で、タッチパネルは入力装置と出力装置を兼ねています。

この構成の元になる考え方は、19 世紀にさかのぼります。イギリスのチャールズ・バベッジは 1834 年、穴を開けたカードで命令を与える計算機、解析機関を構想しました。数を蓄える「ストア」と、計算する「ミル」を分ける設計は、今のメモリと CPU の関係と同じです。

1843 年には、エイダ・ラブレスがこの機械で数学の問題を解く手順を発表し、最初のプログラマーと呼ばれることもあります。ラブレスは、この機械が数だけでなく、音楽を作曲できるかもしれないとも書いていました。

情報 I では、コンピュータが数を決まったビット数で扱うことも学びます。8 ビットで表せる整数は 0 から 255 までで、255 に 1 を足すと 8 ビットの箱からあふれます(オーバーフロー)。小数も正確に表せないことがあり、コンピュータの計算はいつも正しいとは限りません。

5 つの装置の役割と、ビット数の限りを知ると、コンピュータの得意と苦手が見えてきます。

図解コンピュータの 5 つの装置

コンピュータ
  • 制御装置ほかの装置に指示を出す(CPU)
  • 演算装置計算や比較をする(CPU)
  • 記憶装置命令とデータをしまう
  • 入力装置キーボード・マウス・カメラ
  • 出力装置画面・スピーカー・プリンター
金属の歯車と軸が何段にも重なった、19 世紀の計算機の一部
ロンドンの科学博物館にある、バベッジの解析機関の試作の一部。計算を受け持つ「ミル」と印刷の装置で、バベッジが亡くなる 1871 年までに作られたのは、この一部だけでした。写真: Science Museum London / SSPL(CC BY-SA 2.0・Wikimedia Commons)

02

アルゴリズムと流れ図: うるう年を正しく判定する

問題を解く手順をアルゴリズムといいます。情報 I では、アルゴリズムを文章や流れ図(フローチャート)などで表し、プログラムに直します。流れ図は、処理を長方形、条件による分かれ道をひし形で描き、矢印でつなぐ図です。

うるう年の判定を考えます。国立天文台によると、西暦が 4 で割り切れる年はうるう年です。ただし、100 で割り切れて 400 で割り切れない年は平年です。そのため 2000 年はうるう年でしたが、2100 年は平年になります。

流れ図にするときは、400、100、4 の順に「割り切れるか」を調べると、まちがえにくくなります。条件を調べる順番を逆にして 4 から調べると、2100 年をうるう年と判定するプログラムができてしまいます。書いたら、2024 年、2025 年、2100 年、2000 年で確かめます。

プログラムでは、割り算の余りが 0 かどうかで「割り切れるか」を調べます。多くの言語では余りを求める記号に「%」を使い、「year % 4 == 0」のように書きます。数行で書けるので、授業で使っている言語ですぐに試せます。

条件を調べる順番まで決めて、手順は初めてまちがいなく動きます。

図解うるう年を判定する順番

  1. 1400 で割り切れる?はい → うるう年(例: 2000 年)
  2. 2100 で割り切れる?はい → 平年(例: 2100 年)
  3. 34 で割り切れる?はい → うるう年(例: 2024 年)
  4. 4どれでもない平年(例: 2025 年)

04

シミュレーション: さいころを一瞬で 6 万回振る

現実の出来事の大事な部分だけを取り出し、式や図で表したものをモデルといいます。モデルを使って結果を予測するのがシミュレーションです。預金の利息のように決まった規則で変わるものは確定モデル、さいころのように偶然を含むものは確率モデルで表します。

確定モデルの例として、10 万円を年 5% の複利で預けると、9 年後に約 15 万 5,000 円になり、1.5 倍を超えます。くり返しの処理を 1 つ書けば、10 年分でも 100 年分でも同じように計算できます。

確率モデルには乱数を使います。乱数は、どの数も同じ確率で出るように作られた数です。1〜6 の乱数を 60 回作ると、目の出方はかなりばらつきます。6 万回にすると、どの目も 1 万回に近づきます。1 回 3 秒で振っても 50 時間かかる実験を、一瞬でくり返せるのがシミュレーションの強みです。

モデルは現実を単純にしたものなので、結果が現実と合うかを確かめ、モデルを直すことも学習の一部です。大学では、プログラミング入門やアルゴリズムとデータ構造、数値計算の授業に続きます。機械工学や経済学の研究でも、シミュレーションは欠かせない道具です。

クイズコンピュータとプログラミングクイズ

本文を思い出しながら答えてください。

  1. Q1うるう年の決まりで、西暦 2100 年はどうなる?

  2. Q2順番に並んだ 1,000 件のデータを二分探索すると、多くて何回で見つかる?

  3. Q38 ビットで 0〜255 を表すとき、255 に 1 を足すとどうなる?

0 / 3 問に回答

高校生のうちに試せること

  • うるう年を判定するプログラムを書く

    授業で使っている言語で、西暦を入れるとうるう年かどうかを表示するプログラムを書きましょう。2000 年、2024 年、2025 年、2100 年の 4 つで正しく判定できれば完成です。条件の順番を入れ替えると、どこでまちがえるかも試してください。

  • さいころの乱数で、出る目を数える

    1〜6 の乱数を 60 回と 6 万回作り、それぞれの目が出た回数を数えるプログラムを書きましょう。棒グラフにして並べると、回数を増やしたときにばらつきがどう変わるかがよく分かります。

  • 線形探索と二分探索の回数を比べる

    1 から 1,000 までの数を順に並べた配列を作り、決めた数を線形探索と二分探索で探すプログラムを書きましょう。比べた回数を表示すると、最大 1,000 回と 10 回の差が実感できます。

「コンピュータとプログラミング」に関連するコミュニティ

研究室・部活・サークルなど、全国の 116 件から探せます。

研究室をすべて見る(43 件)

よくある質問

数学が苦手でも、プログラミングはできますか?

できます。情報 I のプログラムで使う計算は、四則演算と、割り算の余りや大小の比べ方が中心です。うるう年の判定のように、条件を順番に整理する力のほうが大切です。

授業で使う言語と、大学で使う言語が違っても大丈夫ですか?

大丈夫です。順次・分岐・反復や、変数、関数といった考え方は、どの言語でも共通です。1 つの言語で手順を組み立てた経験があれば、大学で別の言語を学ぶときにも生かせます。