C(シー)言語(げんご)で情報(じょうほう)オリンピック Day(デー)1(ワン)

情報オリンピックへのご招待(しょうたい)

国際(こくさい)科学オリンピックの世界へ

スポーツ系(けい)のオリンピックはすでにご存知でしょう。スポーツと違って文化系(ぶんかけい)のオリンピックも存在(そんざい)します。まず動画(どうが)をご覧(らん)ください。

情報(じょうほう)オリンピックは、指定した時間内に与(あた)えられた問題をいかに早くて正確(せいかく)なプログラムを書けるか(つまりアルゴリズム)を競(きそ)い合う競技(きょうぎ)です。情報オリンピックの様子(ようす)をご覧ください。

いかがでしたか。コンピュータを動かす力を手に入れ、中高生(ちゅうこうせい)しか参加(さんか)できないこの世界規模(きぼ)の情報オリンピックで活躍(かつやく)してみませんか。

自分(じぶん)が天才(てんさい)ではないので、できるかなと心配(しんぱい)するかもしれませんが、そんなことがありません。十分(じゅうぶん)に勉強(べんきょ)すれば大丈夫(だいじょうぶ)です!一番(いちばん)重要(じゅうよう)なのは興味(きょうみ)あるかどうかだけです。

プログラミングとは

プログラミング(Programming)とはプログラム(Program)を書くことです。ではプログラムがなんでしょうか。ニクラウス・ヴィルト教授(きょうじゅ)【1934/2/15生まれ、スイスの計算機(けいさんき)科学者(かがくしゃ)】が以下(いか)のようにプログラムを定義(ていぎ)しました。

プログラム = データ構造(こうぞう) +  アルゴリズム

データ構造とは、簡単(かんたん)にいえばものです。例えば自然数(しぜんすう)の行列(ぎょうれつ)1,2,3,4...は一つのデータ構造になります。アルゴリズムものをいかに動(うご)かすということです。自然数に対して加減乗除(かげんじょうじょ)の操作(そうさ)はアルゴリズムになります。「1+2」もプログラムですし、「2+3✕5」も一種(いっしゅ)のプログラムと言えます。

すこし複雑(ふくざつ)な例(れい)をあげましょう。5リットルのボトルと3リットルのボトルがそれぞれ1つがあるとしましょう。この場合(ばあい)、2つのボトルという仕組み(しくみ)はデータ構造になります。この2つのボトルを使って4リットルの水を量(はか)りたい場合(ばあい)は、どうすればいいでしょうか。

答えを見るまえに、10分ぐらい答えを考えてみてください。これからも問題を解けるときに、まず必ず(かならず)自分で考えてください。そうしますと徐々(じょじょ)に考える力(ちから)を身(み)につけることができます。

以下の手順(てじゅん)でボトルを操作すればよいのです。

1)2つのボトルを空(あ)きにします。

2)5Lのボトルに満(まん)タンになるまで水を注(そそ)ぎます。

3)5Lのボトルから3Lのボトルに満タンになるまで水を注(そそ)ぎます。

4)3Lのボトルを空きにします。(水をどこかに捨てます)

5)5Lのボトルの水を全部3Lのボトルに注ぎます。

6)5Lのボトルを満タンにします。

7)3Lのボトルが満タンになるまで5Lのボトルから水を注ぎます。

おめでとうございます!これで4Lの水を量る(はかる)ことができました。1)〜7)の手続き(てつづき)はこの問題のアルゴリズムになります。

定規(じょうぎ)を使(つか)えば一発(いっぱつ)で4Lの水を量れるんじゃないかという疑問(ぎもん)があるかもしれません。しかし、この問題では、定規を書いてませんし、ボトルにメモリがあるとも書いておりません。アルゴリズム指定(してい)したデータ構造(この問題の場合は2つのボトルだけ)しか操作できません。これは制約(せいやく)条件(じょうけん)と言います。これから直面(ちょくめん)した問題には、いろいろな制約条件がでてきますが、書いてないものを勝手(かって)につけくわえることができません。

このような様々(さまざま)な問題はプログラムです。プログラムは問題を解く力(ちから)であり、小学生でもすでに色々(いろいろ)なプログラムを経験(けいけん)したはずです。

情報(じょうほう)サイエンスの世界(せかい)では、プログラムといえば、特に電子(でんし)機器(きき)を動(うご)かしたり、ネットワークを繋(つな)いだり、ロボットを操作(そうさ)したり、数学(すうがく)の問題をとけたりとかができます。

このようなプログラムを書くことがプログラミングなんです。

これから情報オリンピックに参加できるための知識をすこしずつ教えますので、まだなにもわからなくても、継続(けいぞく)して勉強すれば、十分(じゅうぶん)に情報オリンピックに活躍できます。

Day1 まとめ

プログラミング
プログラム
情報オリンピック
データ構造
アルゴリズム
5Lのボトルと3Lのボトルで4Lの水を量る








この記事が気に入ったらサポートをしてみませんか?