【第2章】一度作ったプログラムを修正しましょう
2022.04.04

 一度作ったプログラムは未来永劫ずっとそのまま使われるということは滅多にありません。不具合が見つかって修正の必要が出てきた、もっと便利で使いやすく改良して欲しいという要望が出てきた、ゲームならルールやキャラクタ設定を変更したいなど、最初のバージョン(版)に追加・修正等を加えなくてはならない場面はいくらでもあります。プロのプログラマのお仕事の半分以上はこれだったりするくらいです。ここでは前の章で作ったプログラムを呼び出して(*1)追加・修正する方法を覚えましょう。
[実習2]プログラムの修正
 それではVB2022を起動してください。前章までの実習が終わっていれば起動後の画面は図2-1のようになっていると思います。



図2-1.VB2022起動後の画面


 画面左に先ほど作ったプログラムConsoleApp1という名前があります。これをクリックします(*2)。


図2-2.前に作ったプログラムが呼び出された


 すると前章で作ったプログラムが呼び出され図2-2のようになります(少々時間がかかります)。
 では、このプログラムを次のように修正します。前章でお気づきかと思いますが、プログラム作成画面はWordかメモ帳のように使えますので、太字の部分のみ追加修正します。

Console.WriteLine("Hello Everyone")
Console.WriteLine(3 + 5)
Console.WriteLine(3 - 5)
Console.WriteLine(5 * 3)
Console.WriteLine(5 / 3)
Console.WriteLine(5 ¥ 3)
(*3)
Console.WriteLine(5 Mod 3)



図2-3.修正後のプログラム


 追加・修正が全部済むと図2-3のようになります。
 さあ、プログラムがどのように変わったかさっそく実行してみよう!
 そう思った方は、もう一度前章を読み直してください。プログラムを作成したら実行前にまず保存でしたね。これは前に作ったプログラムの修正の場合でも同じです。前章と同じく「ファイル」→「すべて保存」で保存しましょう。保存したら実行してみましょう。実行結果は図2-4のようになったと思います。


図2-4.修正したプログラムの実行結果画面


[プログラムの解説]
 図2-4をもう一度見てください。プログラムの各行の左に上から1、2、3・・・と連番がふられています。これは何行目ということを示す行番号です。この程度の短いプログラムではあまりありがたみはありませんが、100行以上の長いプログラムを作っている時にはたいへん重宝します。以下、プログラムの説明ではこの行番号を使ってお話します。
 まず5行目です。Console.Writeline( )は前章でやったとおり、コンソール(操作卓)に1行で( )の中味を表示する命令でした。( )内がストリングの場合、お使いのパソコンで入れられる文字、表示できる文字なら何でも入れられます。今回はHello! Everyoneに変更したので実行画面にもHello! Everyoneと表示されています。
 6行目と7行目は前章でやった足し算と引き算の計算結果の表示です。
 8行目から11行目の( )内も何かの計算式のように見えますが、*、/、¥、Modって何だ?と思われた方が多いと思います。*は算数で使う×(かける)の意味で、/は÷(割る)です。VB2022に限らずほとんどのプログラミング言語では、掛け算、割り算ではこうなっています。
じゃ¥とかModは?この2つは小学校3、4年生で習う割り算を思い出してください。たとえば10÷3の場合、商は3余り1とやりました。この商を求めるのが¥で、余りを求めるのがModです。プログラムの各行と実行結果を照らし合わせて確認してください。
 これら+、-、*、/などの文字が計算式で使われるとき、これらの記号(文字)を演算子、とよびます。演算子には計算の他、比較や条件判定、ストリングの連結に使われるものなどいろいろな種類があるのですが、普通の計算に使われる演算子を算術演算子といいます。

図2-6.VB2010の算術演算子


[コラム]コンピュータってどういう機械?(1)
 [コラム]では、コンピュータの基本についていろいろお話してゆきます。一日も早くVB2022によるプログラミングだけを覚えたいという方は読み飛ばしていただいても今後の実習には差支えありませんが、管理人としてはプログラミング実習を通してコンピュータの基本を学びたいという方にはぜひ読んでいただきたいお話をしてゆくつもりです。まず最初は、コンピュータとはどういう機械なのかを知っておきましょう。

図2-7.近年のパソコン(2019年11月現在)


 上の写真は管理人が仕事や当コンテンツ制作に使っているパソコンです。私がパソコンを初めて手にした時代とは異なり、こんなコンパクトなボディで持ち歩き可能、電源アダプタ、各種ケーブル、マウス全部含めて重量は3kgあるかないかでしょうか。しかし、このA4版のルーズリーフノート程度の大きさの箱の中には大きく分けると図2-8のような装置が詰まっています。

図2-8.コンピュータを構成する各装置

 ここまでで私たちは簡単な計算を行うプログラムを作って実行してみましたが、その計算を行なっているのが演算装置です。コンピュータの演算装置は計算の他にも様々な仕事をします。たとえばパソコンゲームの場合、勝ち負けの判定やマウスの動き、アニメーションの表示などは実は膨大な量の計算処理であり、この演算装置が司っています。
 その演算装置に対して、コンピュータで処理するデータを入れるための装置が入力装置であり、パソコンならキーボードやマウスがそうです。そしてディスプレイやプリンタなど処理した結果を印字したり表示するのが出力装置です。
 そしてコンピュータのコンピュータらしい機能といえば記憶です。これを担当するのが記憶装置ですが、記憶装置には、主記憶装置補助記憶装置があります。この2つの違いについては後の章で説明します。最近のパソコン、タブレット、スマートフォンなどは、特にこれを意識しないで使えるものがほとんどですが、プログラムを作る立場の者としてはこの違いをしっかり把握しておく必要があります。
 これらの各装置が間違いなく動作するように監視、指令を出しているのが制御装置です。演算装置と制御装置を合わせて中央処理装置(Central Processing Unit=CPU)と呼びます(*4)。
 図2-9の中にデータの流れと制御の流れというものがありますが、ひと口に言えばデータの流れは私たちがプログラムで作ってゆく流れで、人間の動作で言えば「カレーライスを食べる」「仕事をする」など自分の意思でどうこうすることができるものです。制御の流れは自律神経のように、体中に血液と酸素を送るために心臓を動かす、空腹になったので胃液の分泌を止めるなど自分の意思でどうこうすることができないものです。

[昔はよかったなぁ]
 このコーナーは主に1980年代までパソコンに標準で搭載されていたBASICでのプログラミングをお仕事、趣味にしていた方(私と同世代?)に、当時のBASICとVB2022の違いをお話するものです。もちろんお若い方でも昔のBASICってどんなものだったのか知りたいという方は歓迎です。昔のBASICは各パソコンメーカーにより若干の違いがありましたが(標準化されていなかった)、ここではどのメーカーのBASICにも共通していた命令・関数を使ってお話してゆきます。
 この章の実習でやったプログラムを昔のBASICで書くとこうなります。
10 PRINT "Hello! Everyone"
20 PRINT 3 + 5
30 PRINT 3 - 5
40 PRINT 5 * 3
50 PRINT 5 / 3
60 PRINT 5 ¥ 3
70 PRINT 5 MOD 3
80 END
 VB2022との違いのひとつは行番号です。昔のBASICは各行の行番号はプログラマ自身が付けるもので、行の順番を示すとともに各行のラベルの役割をもっていました。たとえばGOTO 10などのようにGOTO命令を使ってプログラムの実行順序を変えることができましたが、VB2022では行番号はVB2022が勝手に付け、プログラムの編集やデバッグに活用するものです。GOTO 1のような使い方はできなくはないのですが、昔のBASICのように無制限にどこへでもというわけにはいきません)。このことはぜひ早いうちに慣れてください。
 昔のBASICで書かれたこのプログラムを実行するとこうなります。

図2-9.この章のプログラムを昔のBASICで実行すると

 このように昔のBASICでは数値を表示するとき、デフォルトで最上位桁の左に符号用の半角スペースが空き、マイナスの数のときはそこに半角の-が入りました。図2-5と見比べていただけばわかりますが、VB2022では特別な書式設定をしない限り符号用の半角スペースが空くことはなく、デフォルトでは数値もストリングも左詰めで表示されます。


(注)
(*1)パソコンに向かって「おーい、プログラム出ておいで」と呼びかけるわけではありません。プログラムやデータをコンピュータ本体に取り込むことです。コンピュータ屋さんがよく使う言葉なので慣れておきましょう。
(*2)VB2022では一度作ったプログラムを呼び出す方法はいろいろあるのですが、今は最も簡単なこの方法を使うことにします。
(*3)半角の¥マークです。お使いのOS、ブラウザによってはバックスラッシュ(左上から右下への斜線)で表示される場合があります。
(*4)近年、CPUの意味が少し曖昧になっています。というのは実際の部品(回路)としては、制御装置が電源部(ACアダプタのことではありません)に組み込まれている製品があったり、大規模集積回路の発達で、演算装置、制御装置、主記憶装置が部品として一体化したマイクロプロセッサが普及してきたためです。


コメント一覧
コメント投稿

名前

URL

メッセージ

- CafeNote -