第5講 もしもボックス=if文の学習
第5話 最高点とその教科を発見するには?
例えば、データが
国語=39
社会=74
数学=90
理科=24
英語=50
すなわち、
a=39
b=74
c=90
d=24
e=50
となっているとき、最高点90とその教科を探し出すにはどうしたらよいでしょうか。

教科の点数を入れる箱(変数)とは別の箱(教科)を用意します。
その別の箱の名前をwとしましょう。

w=0;としておいてから以下の手順@からDを踏みます。
@ wとaを比較してaの方が得点が高いときには、
   wの値をaの値に書き換えます。 
A wとbを比較してbの方が得点が高いときには、
   wの値をbの値に書き換えます。
B wとcを比較してcの方が得点が高いときには、
   wの値をcの値に書き換えます。
C wとdを比較してdの方が得点が高いときには、
   wの値をdの値に書き換えます。
D wとeを比較してeの方が得点が高いときには、
   wの値をeの値に書き換えます。
以上の手順を踏めば、最高点90を取り出すことが出来るのがお分かりでしょうか。

具体的にトレース(動きを追うことをトレースといいます。
トレースはプログラミングしていく上でとても大切なことです。
トレースする習慣を身につけてください。)
しましょう。
a=39 b=74 c=90 d=24 e=50
@ w=0とa=39を比較すると当然aの方が得点が上ですから、
   w=a;の操作を実行します。wの内容が39に置き換わります。
A w=39とb=74を比較すると当然bの方が得点が上ですから、
   w=b;の操作を実行します。wの内容が74に置き換わります。
B w=74とc=90を比較すると当然cの方が得点が上ですから、
   w=c;の操作を実行します。wの内容が90に置き換わります。
C w=90とd=24を比較すると当然wの方が得点が上ですから、
   何もしません。wの中身は90のままです。
D w=90とe=50を比較すると当然wの方が得点が上ですから、
   何もしません。wの中身は90のままです。
以上の過程を通して、確かにwには最高点90が入り、
そのwを表示すれば、最高得点90は表示されます。

問題は、最高得点だった教科をどうやって見いだすかです。
そのためにwとは異なる箱hを用意しておき、h=0;としておきます。
そして、
@でwの内容が置き換わったときにはh=1;とします。
Aでwの内容が置き換わったときにはh=2;とします。
Bでwの内容が置き換わったときにはh=3;とします。
Cでwの内容が置き換わったときにはh=4;とします。
Dでwの内容が置き換わったときにはh=5;とします。
最後にこのhの値を利用すれば、最高得点の教科も分かります。
例えば、最終的にh=3ならば数学が最高得点であった教科であることになります。
では、皆さんプログラミングに挑戦していましょう。

第4話へ 第6話へ

a


初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ