通信制高校ルネサンス高等学校

ぐんまプログラミングアワード2018のプログラミング問題が楽しくよい教材

ルネサンス高等学校

ぐんまプログラミングアワード2018のプログラミング問題が楽しくよい教材


明日応募締切の「ぐんまプログラミングアワード2018」は、ぐんまって書いてるが、群馬県だけでなく日本国内に在住または在学する小・中・高校生・大学生・専門学校生で24歳以下の方が参加できるコンテストです。
このテクニカル部門のプログラミングの課題が面白いので紹介したいと思います。

テクニカル部門では、課題をプログラミングしてプログラミング問題の正答数と解答スピードを競うという面白いものになってます。この課題が実に面白いです。
どのプログラムも、少しプログラミングを学習した人であれば作れる内容になってます。
解答スピードを競うというのがあるため、プログラミングの効率化も求められており、複数のロジックでの解が可能なのでやりがいを感じ楽しめる教材にもなります。

今回のコンテストで出題されている課題は下記3問です。

問題(1)群馬県について紹介した英文テキスト(win,mac,unix対応)の中で最も多く使われている文字ベスト3(句読点、記号は除く。大文字と小文字は区別する)を示すプログラムを作りなさい。

問題(2)パソコン画面上で軌跡を残しながら星形(☆)を描くプログラムを作りなさい。

問題(3)21世紀が残りあと何日あるか、パソコンの画面上でカウントダウンするプログラムを作りなさい。(年月日のみでも、時間、分数、秒数まで示すものでも可)

個人的に問題(1)がバリエーションも沢山できるので課題的には好みです。
問題(1)をどのように解いていくのかを考えたいと思います。
このコンテストは、まだ実施されていないので解答は掲載せず、ひとつの考え方を記載します。
下記以外の方法でも解くことができます。どの解き方が最速になるかは色々試さないといけないのが楽しいところですね。

1.一番最初に.txtで提供された英文テキストデータの読み込みを考える

2.読み込んだ文字を一文字ずつ分解する。

3.分解した文字をユニークな文字として一文字ずつカウントする

4.句読点、記号を除外する
(2の段階でする方が速度が上がるかは検証が必要)

5.多く使われた文字を表示する

この出題されている問題は「ファイル読み込み」「文字操作」「変数・配列」「条件式」「繰り返し処理」などを使い、プログラミングしていくので、教育的にもすごく良いです。
また、正規表現を使ってみたり、データベースを使ってみたり、色々な工夫ができるんではないでしょうか。
コンテストに出ない方も、この問題に取り組み、友だちと競い合ってみるのも楽しめます。
世の中にはこのようなコンテストが多数あるので、プログラミングに興味のある方は実力を高めるためにチャレンジして欲しいです。


最新の記事