2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

文章題で身に付くプログラミング思考入門️ by TheWaggleAdvent Calendar 2024

Day 9

プログラマになりたいならカンニングしてよ|文章題で身に付くプログラミング思考入門️(9/25)

Last updated at Posted at 2024-12-08

はじめに

普段あなたは「さっきの」とか「あれ」とか言いますか?
私はつい言ってしまいます。そして大体、聞き返されます。

「さっきのって何のこと?」「あれってどれ?」

私が普段会話する相手はITエンジニアなので、曖昧なことは大抵許されません。
かく言う私も、ほとんどの場合聞き返してます。

エンジニアの会話って、そんな感じじゃないですか?ですよね。
正直言ったら面倒くさいですが、それ以上に「大事だよね」と言う価値観が共有されています。

『文章題で身に付くプログラミング思考入門️』は、日常や文章問題からプログラミング思考を身に付けていく、簡単で身近で、あなたをちょっと輝かせてくれるシリーズです。

今回は、変数とデータの再利用について解説していきます。

前回のまとめ

目覚ましスヌーズの繰り返し処理

  • あらかじめ、条件とその時の処理を想定して洗い出しておきましょう。
  • 処理の順番を考えましょう。
  • 必ず終了させましょう。

前回の記事はこちら
第一回はこちら

対象者

  • プログラミングの考え方を学びたい人
  • プログラミングに挫折したことのある人
  • 論理的思考を鍛えたい人
  • 文系の人
  • エンジニアの思考を理解したい人

概要

さて、 第二回の記事でプログラミングについて少し触れました。

初期値:初めから決まっている情報を明らかにする
定義:どのような情報が欲しいのかを明確にする
変数:ある特定の情報を受け取るための箱
条件分岐:得られた情報が当てはまったかどうかによって処理を変える
代入:欲しいデータを記憶する
返り値:結果を知る

データを扱うときは、大きく2つに場合分けできます。

  1. データを後で再利用したい
  2. 今だけデータが処理できればいい

1の場合はデータを保存しておかないと、後で再利用できませんね。
例えば、ユーザーの名前などです。

逆に2の場合は、計算が終わればデータには消えてもらった方が都合が良いです。
一時的な対応や計算のために使いたい時などです。

データを保存したい時に必要になるのが、

定義:どのような情報が欲しいのかを明確にする
変数:ある特定の情報を受け取るための箱
代入:欲しいデータを記憶する

です。

第三回でお話しした通り、

コンピューターは頭が堅いです。
言い換えると、コンピューターが受け取る情報は厳格にルール化されています。

なので、コンピュータにデータを保存させるためには、

  • これから渡したいデータがどのような種類なのかを 定義 し、
  • データを保存するための箱である 変数 を用意させ、
  • その箱には 名前 を付け、
  • 箱に入れたいデータの内容が何なのかを明確にし、代入 して記憶させる

という準備が必要になります。

一つずつ紐解いていきましょう。

定義

これから渡したいデータがどのような種類なのかを 定義

そうです、データの種類を特定しなければなりません。
なぜなら、データの種類によってコンピュータ側の準備が変わるからです。

例えば、あいうえお123を同じものとして扱うことは感覚的にも違和感がありませんか?
あいうえお + 123 を計算しようとは思いませんよね。
コンピュータにとっても、あいうえお123 はデータの種類が別です。

このようなデータの種類を データ型 と言います。

コンピュータ側の動きとしては、どのくらいのメモリ量をどの場所に確保するか?が変わってきます。

ではデータ型にはどんな種類があるのでしょうか?

代表的なのは、

  • 文字列型:"こんにちは"
  • 数値型:123
    などですね。

実は、プログラミング言語によって多少の違いがあります。
わからなかったり迷ったりした時は、あなたの使いたいプログラミング言語の 公式リファレンス を検索して、データ型を調べましょう。
公式リファレンスとは、プログラミング言語の辞書のことです。そこに全て載っています。

見ながらやったらいいのです。
公式リファレンスを使わないプロはいません。ここが学校のテストと全く違う所です。

カンニングする方が偉いです。カンニングしながらやってください。

正しい情報を獲得して、その場で試す。これが、早くプロレベルに到達するための近道です。

簡単に説明してくれている記事はたくさんありますが、多くの場合は執筆者の解釈が含まれます。たくさんの人の解釈を知ることはとても良いことです。あなたの世界を広げてくれます。

ただし、あなたが絶対的に信用している相手でなければ、そのコードを鵜呑みにしない方が得策です。公式リファレンスを元に書くようにしましょう。

変数

データを保存するための箱である 変数 を用意させ、

変数:ある特定の情報を受け取るための箱

例えば「入れ物を用意してね」と言われたら、「どんな入れ物がいいのかな?」と迷いませんか?
逆に「詰め替えティッシュ用のケースを用意してね」と言われたら、迷わなくていいので助かります。

コンピュータも同じです。
「このデータ型用のメモリを用意してね」と頼む必要があります。

名前

その箱には 名前 を付け、

後で使いたいデータは、人間とコンピュータとが共通して使う明確な名前が必要です。
変数の名前の場合は、そのまま 変数名 と呼びます。

「さっきの」とか「あれ」だと何を指すのかが不明確になりますね。
人間の場合は文脈で判断できたりします。AIも割と正確に推測してくれたりしますね。

ただし、プログラミングの世界では曖昧さは許されません。
特に、間違えると重大な損害を引き起こすデータを扱う場合もありますから、厳格に名前を管理し、正確に参照することが必要です。

そして、名前の付け方も重要です。
変数名を読んで、どんなデータが中に入っているのか予測できるような名前にしましょう。
現場ごとに命名ルールが定められている場合も多いでしょう。

名前は、プログラミングの世界でもとても大事です。
詰め替えティッシュ用のケースに名前を付けるとして「ティッシュ1・ティッシュ2」とか「太郎・花子」とかはイマイチですね。
知っている人にしか通じませんから。
例えば「リビング用ティッシュ・寝室用ティッシュ」と名前を付けてみたら、「リビングで使うためのティッシュなのかな。リビングに置いてあるんじゃないかな」と予測できます。

代入

箱に入れたいデータの内容が何なのかを明確にし、代入 して記憶させる

代入とは、用意した変数に、実際にデータを入れて記憶させることです。
「リビング用ティッシュ」と言う名前の変数も、用意しただけでは中身が空っぽです。
使うためには、ケースに詰め替えティッシュを入れる必要がありますね。

プログラミングのコードだと

living_room_tissue = "詰め替えティッシュ"

こんな感じに書くことが多いです。

数学と違って、=は左辺と右辺の等価を表すのではなく、左辺に右辺の値を代入しなさいという命令です。

まとめます。

  • 定義:データ型を明示
  • 変数:データを記憶させるためのメモリを確保
  • 名前:後で呼び出すためにつける
  • 代入:実際にデータを入れて記憶させる

ティッシュで例えます。

  • 定義:詰め替えティッシュを入れる
  • 変数:詰め替えティッシュ用のケースに入れる
  • 名前:リビング用ティッシュと名付ける
  • 代入:リビング用ティッシュ詰め替えティッシュを入れる

これで「リビング用ティッシュちょうだい」と言ったら、ティッシュが使えるようになりましたね。

次回は、文章の構造をプログラムにしてみます。

まとめ

プログラミングでは、

  • カンニングする方が偉いです。カンニングしながらやってください。
  • 数学と違って、=は左辺と右辺の等価を表すのではなく、左辺に右辺の値を代入しなさいという命令です。

最後に

ここまで読んでくださってありがとうございます!
少しでも役に立ったら「いいね」をください。続ける励みになります。
反応をもらって記事を良くしていきたいので、忌憚のない意見をコメントにいただけたら嬉しいです。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?