記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
「情報」のプログラミングが全くわからない…
このように、高校の「情報1」科でプログラミング問題が登場しますが、「全くわからない」と困っている方に向けた記事です。
「変数」「関数」は数学で出てくるものと似ているようで違うし、「配列って何?」というように新しい概念の言葉も出てきて、イメージしづらく混乱してしまうこともあるでしょう。
そこでこの記事では、学習塾で情報科も指導している筆者が
プログラミング問題がわからない人に身につけて欲しいポイントやコツを紹介します。
ぜひ最後まで読んでみてください!
- 教育業界・学習塾で10年以上勤務。
- 500人以上の生徒に学習・進路指導
- 指導した受験生の合格率 94.7%
- 学習塾で「情報」科を指導・プログラミングの講師
- 「X」で情報Ⅰの語句チェック配信中(@kotozeni)
目次
まずは、プログラミングの問題を解くために必要なのは「プログラミングの基礎」を理解することです。
プログラミングでは
- 値・文字列
- 変数
- 配列
- 演算子
- 制御文(条件分岐)
- 制御文(繰り返し)
- 関数
といった、基本事項があります。
これらを正しく理解しなければプログラミングの問題は解けません。逆に言うと、この基本事項を抑えれば解ける可能性が確実に上がるのです。
それぞれの事項を簡単に紹介しましょう。
値・文字列
値は現実世界で使う、数字などの値のことを指します。
ただ、日本語や(文字としての)数字、「言葉」を表示させたい時には、「文字列」として扱うようにしてあげないといけません。
文字列にするには「” ”(ダブルクオーテーション)」囲ってあげる必要があります。
例
- 値: 3 , 100 ,10000 など
- 文字列: ”プログラミング”、”情報1”、”abcdefg” など
変数
変数とは、数字や文字などのデータを格納するために用意する箱のようなものです。
プログラムでは数字や文字などのデータを変数に格納(代入)することがほとんどです。
変数を使う際・定義する際には
- 英数字を使う
- 格納するデータの性質などを表す単語やローマ字で表記する 例:tate , yoko , width , length
- 変数名が複数の単語にわかれるときには「_」で繋ぐ 例:kingaku_kei
- データを変数へ格納する(代入する)ときには「=」を使う
というルールがあります。
変数にデータを書くのすることを「代入する」といい、「=(イコール)」を使います。
重要な点は数学で使う「=」の意味と違うということです!
配列
配列とはデータを格納する変数のまとまりのことです。
1つの変数につき、1つのデータしか格納できませんが、変数を束にして持つ配列なら、それぞれの変数にデータを格納することができるため、複数のデータを処理する時に役立ちます。
配列を使う際・定義する際には
- 英数字を使う
- 格納するデータの性質などを表す単語やローマ字で表記する 例:tate , yoko , width , length
- 変数名が複数の単語にわかれるときには「_」で繋ぐ 例:kingaku_kei
- データを変数へ格納する(代入する)ときには「=」を使う
- 配列名は先頭文字が大文字
- 「配列名[]」で表記し、[]の中の数字は添字(そえじ)といい、配列が持つ変数(箱)の数を表す
- 添字は(特に問題文で説明がない限り)0 から始まる
というルールにもとに行われます。
演算子
演算子には「算術演算子」「論理演算子」「比較演算子」があります。
算術演算子とは、「値を計算するために使われる記号」のことで、その多くが算数・数学でも使われているものです。
論理演算子とは
「かつ」「または」「否定(=●●ではない)」のことで、複数の条件を組み合わせて、より複雑な条件を表すときに使います。
比較演算子は大小関係を示すために使用します。
比較演算子は数学でも使用しているため、馴染み深いものばかりです。
制御文(条件分岐)
条件分岐とは「もし〜なら」という条件を示す文章を用いて、
- 値などが条件を満たす場合
- そうでない(条件を満たさない)場合
それぞれで実行する処理を分けるために用いられます。
制御文(繰り返し)
繰り返しとは「指定した処理を繰り返す」ことです。
繰り返しを指定するには、「繰り返し用のコード」を記述し、そのコードブロックの中に「繰り返す際の条件」と「繰り返したい処理」を記述します。
関数
関数はメソッドと呼ばれ、処理をまとめたものとして捉えましょう。
実際のプログラミング言語にはすでにプリセットされている関数とエンジニアが定義する(いわばオリジナルの)関数の2つに分けられます。
関数はコードの中で定義されていることも多いですので、定義されている部分を読み解けるようにしましょう。
▶︎コチラの記事で基礎となる項目をより詳しく解説しています。理解を深めるためにぜひ活用してください!
【情報I】プログラミング問題に強くなる10個の基礎(苦手な人必見)プログラミング(プログラム)問題では変数や配列を頻繁に使用します。
多くの人が、この変数や配列に慣れていないため、プログラミング問題に苦戦してしまうのだと思います。
逆に言うと、変数や配列に強くなれば、プログラミング問題にも強くなるのです。
そのためには、変数や配列が「その時点でどのような値が代入されているのか」を把握することが大切です。
たとえば
次のPythonプログラムにおいて、次の値が入力された際に実行結果として表示されるものを選びなさい。
def f(x):
s = 1
for i in range(x):
s = s * x
return s
N = int(input('input N = '))
print('answer = ', f(N))
#実行結果
answer = ア
【設問】Nに2を入力した場合、実行結果に表示されるのは、ア
このようにプログラミング問題では、変数などを使って処理していきます。
このコードではプログラムを実行すると変数Nに値を代入するところから始まります。(6行目)
設問にあるように、Nに2を入力すると、7行目で関数「f(N)」が呼び出され、関数の中の処理が実行されます。
関数の内容は3行目に「for i in range(x)」とあるので、(ここで、xはf(N)の引数で渡された「2」が入ります)
0から1(x-1)まで処理を繰り返すことになります。
そのため、
ループの回数 | i | x | s |
---|---|---|---|
初期値 | – | 2 | 1 |
1回目のループ | 0 | 2 | 2 |
2回目のループ | 1 | 2 | 4 |
このように、繰り返し処理中に変数の中の値がどんどんと変わっていき、最終結果が5行目の「return」で呼び出し元に返されます。
複雑に見えますが、このように、「その時点でどのような値が変数に入っているのか」ということを把握することができれば、プログラミング問題で高得点に近付くでしょう。
共通テストでプログラミング問題を解くために必要になるのが「具体的な例から一般化(抽象化)してプログラミングコードで表現する力」です。
ある一つの事象のときだけ成立するのではなく、どのような場合、どのような数字でも成立するようにコードを整えるのがプログラミング問題の特徴です。
たとえば
【問題】
あるレストランの注文システムにおいて、顧客がメニューから料理を選択して注文をすると、オーダーリストに注文が追加されます。オーダーリストは注文された順番に料理名と価格が表示されます。以下は3つの注文がある場合のオーダーリストの例です。
- スパゲティ 800円
- ピザ 1,200円
- サラダ 600円
問1.Aさんはスパゲティを、Bさんはサラダを注文した。この時、2人のお会計は●●円である。●●に入る数字を解答しなさい。
問2. AさんとBさんのお会計を算出するプログラミングコードを実装したい。以下のコードを完成させなさい。
(コードはここでは省略)
問3. AさんとBさんが食事中に友人のCさんが合流し、一緒に食事をした。このように人数が増えても良いようにコードを改修した。以下のコードを完成させなさい。(コードはここでは省略)
というように、問1では問題文章を正確に読めば解ける問題、問2以降で抽象化してプログラミングコードに変換するような問題展開がされています。
「情報」で高得点を取るためにも同様に、設問で表示されている具体例から抽象化できるように訓練しましょう。
一つ目は参考書を使った学習です。プログラミングの基本事項を網羅しているものは少ないですが、
「ベストフィット情報1」は詳しく掲載されています。
ベストフィット情報1 [ 実教出版編修部 ]
ただし、採用されているプログラミング言語が「Python」のため、「JavaScript」や「VBA」「Scratch」を採用されている高校に通っている人にとっては難しく感じるでしょう。
▶︎こちらの記事でも詳しく紹介しています。
高校情報Ⅰ おすすめ参考書・問題集【2024年2月】最新書籍と選び方【情報1】1ヶ月完成!プログラミング基礎問題集30題
最後に、学習塾で「情報」科を指導し、プログラミング講師でもある筆者が作成したプログラミング基礎問題集を紹介いたします。
【高校情報Ⅰ】プログラミングが苦手な人必見!疑似言語コードの読み解きを1ヶ月でマスターする基礎問題集
noteで販売しています。ログイン不要でご購入できます
この問題集は初心者向けの基礎レベルの問題集で、大学入学共通テストで採用されている「疑似言語」に対応しています。問題数はたったの30問、プログラムのソースコードを読み解くことに焦点を当てた問題が収録されています。
この問題集を使って演習を行うことで、プログラミングに慣れ、大学入学共通テストで高得点を目指す基礎固めをすることができます。
さらに、全問解答例、解説もついているため、自己学習にも最適です。ぜひ、この機会にプログラミングに慣れ、自信をつけましょう!
高校の情報1のプログラミング問題がわからない人に向けて、コツと学習方法を紹介しました。
慣れるまでは時間がかかりますが、演習量を増やせばどんどんとコードを読み解く力も向上するでしょう。
ぜひ、諦めずにチャレンジしてみてください!
最後まで読んでいただきありがとうございました。
この記事が少しでも参考になれば幸いです。
それではまたここで会いましょう!
にほんブログ村ブログ村に参加中です。上のバナーをクリックいただくだけで当ブログにポイントが入ります。いつも応援クリックありがとうございます。
Twitter やってます。
新着記事のお知らせをしていますのでぜひフォローしてください!人気の記事
この記事を読んだ人はこちらの記事も読んでいます。
▶︎「【塾長分析】大学入学共通テスト2025「情報」まとめ【難易度・対策】」
共通テスト「情報」対策に必要なことは?塾講師が解説!勉強法と参考書▶︎「【最新】(情報1)共通テスト試作問題 難易度と3つの対策」
【最新】(情報1)共通テスト試作問題 難易度と3つの対策スポンサーリンク