「共通テスト用プログラム表記」を使った共通テストの新教科「情報」のプログラムの問題を実際に動かして試せるDNCL3とWirth(ヴィルト)を使って検証してみましょう!JavaScriptの実装も参考までにご紹介します。
第3問で出題された、それぞれ制作日数が決まっている9つの工芸品。工芸部の部員でどう分担するかをプログラムで求める問題。
配列Akibiを用意する。この配列の添字(1から始まる。)は部員の番号であり...「共通テスト用プログラム表記」には、「※特に説明がない場合,配列の要素を指定する添字は0から始まる」とあり、今回は指定があるので、下記の各部員の空き日を表す配列の初期値設定も1から順に代入されることになる点に注意。
(共通テスト 情報 第3問 問2より)
「RUN on Wirth Playground」 DNCL3版
空き日(Akibi)の数を変更して、実行結果の変化を見てみましょう。誤答を設定してみるとどう違うかが分かります。
DNCL3/Wirthは日本語変数にも対応しているので、下記のように表現可能です。
「RUN on Wirth Playground」 DNCL3版
次に、工芸品毎に担当者を決めるプログラム。先頭の工芸品から担当者を決めて、その開始日、終了日を表示していきます。
「RUN on Wirth Playground」 DNCL3版
変数を日本語にしたものがこちら。
「RUN on Wirth Playground」 DNCL3版
工芸品を先頭から決めていく場合、特定の部員に仕事が偏ってしまうことも出てきます。うまく収めるにはどうしたらいいでしょう?
考えて楽しい、実装できてうれしい、使ってもらってうれしいのがプログラミング!
参考までにJavaScriptでも実装してみます。工芸品や部員を要素を持つデータとして使うのが一般的です。ノベルフレームワーク「egadv.js」 を使って、無駄にステキな背景で表示するアプリとしてみました。
「RUN on ES-Jam」
空いてるメンバーを取得する getFreeMember 機能を使ったメインループがこちら。
links
- オープンソースの新プログラミング言語、共通テスト用プログラム表記「DNCL3」を実装と共に提案
- Pascalリスペクトの教育用構造化プログラミング言語「Wirth」