情報オリンピック2024一次予選1回目終了につき

デフォルトアイキャッチ

今年も生徒の力試しの一環として参加してみました。一次予選は3回あり、まだ10月と11月の分は残っていますが、当校でも通過者がいました(小学生が小6が2名、中学生が中1が1名、中2が1名でした。追記:2回目の予選でさらに中学1年生が1名。追記2:3回目の予選でさらに中学2年生が1名)


雑感

さて今回の参加で特に感慨深いのは当校の一次予選通過者の中にいわゆる学校の成績が振るわない偏差値40以下の生徒さん(Aさんとします)も含まれていたことです。

その中の1つだけ軽く紹介すると「具体化、手順化、コード化」と呼ぶもので、Aさんにはそうしたものを教えていました。もちろん客観的に見れば、それは萌芽と呼べる段階ですし、まだ徹底が足りません。ですが今回の結果をきっかけにして学校の勉強にも着実につながっていくと感じています。なぜなら今回の情報オリンピックのAさんの好結果はオモチャやゲームで遊んで浪費するだけでは決して得られない「本物の自己肯定感」を培うキッカケになったからです。ぜひこれをお読みの皆さんもAさんに続いてほしいところで、プログラミングを通して本当に意味のあるものを掴んでほしいと考えています。


一次予選なら色々な言語で挑戦できます。

一方でAIが爆発的に進歩している世の中ですのでプログラミングに限らず自分が興味をもったものに積極的に挑戦してほしいとも感じています。

また今回の参加者はPythonコースの在籍者のみでしたが一次予選までなら日本語プログラミング言語など幅広い言語でも参加できます。みなさんも興味があれば参加してみるのも良いかと思います。ちなみに今回の問題を日本語プログラミング言語「なでしこ」で書くとこのような形になるかと思います。少し冗長に書きましたがプログラム未経験者の方にも「これなら僕にも/私にもできそう」と感じてもらえれば嬉しいです。また問3、問4になると大学入試共通テスト「情報Ⅰ」にもつながるレベルかと思います。

#問題A--------------------------------------
A=「」と尋ねて整数変換
表示(整数部分(A/5))

#問題B--------------------------------------
X=「」と尋ねて整数変換
答え=0
番号を1からXまで繰り返す:
  もし(番号%2=0)ならば:
    答え=答え-2
  違えば:
    答え=答え+3
表示(答え)

#問題C--------------------------------------
N=「」と尋ねて整数変換
S=「」と尋ねて文字列変換
答え=「」
Sを反復:
  表示(対象)
  もし(対象=「J」)ならば:
    答え=答え&「O」
  違えばもし(対象=「O」)ならば:
    答え=答え&「I」
  違えばもし(対象=「I」)ならば:
    答え=答え&「J」
表示(答え)

#問題D--------------------------------------
入力リスト=「」と尋ねて「 」で区切って配列数値変換
N=入力リスト[0]
M=入力リスト[1]
A=「」と尋ねて「 」で区切って配列数値変換
B=「」と尋ねて「 」で区切って配列数値変換

答え=0
Aを反復:
  餡=対象
  Bを反復:
    皮=対象
    和=餡+皮
    大きい方=配列最大値([餡、皮])
    美味しさ=和*大きい方
    答え=答え+美味しさ

表示(答え)

※問題や解答例(C++, Python)については情報オリンピック日本委員会のHPで確認できます(https://www2.ioi-jp.org/joi/2024/2025-yo1/