【勉強日記】プログラミングって何?【第1回】

プログラミング

プログラミング・・・?むずかしそう・・・・・・

まえがき

このブログでは、未経験のSEである筆者がプログラミング学習を進めるなかで、つまずいたことや難しかったことをより分かりやすく知ってもらうための解説をしていきます。

未経験者や初心者に読んでいただくことを前提として記事を掲載していきますので、これから学習を始められる方、学習を進めているけれどうまく進まない方への助けとなれば幸いです。

もくじ

  • そもそもプログラミングって何?
    • プログラムのざっくり構造
      • 順接 
      • 条件分岐 
      • ループ
    • プログラミングの部品(中身)の説明 
      • データ (扱いたい結果など)
        • 変数
        • リスト
      • 処理 (やりたいこと)
        • メソッド
        • 関数
  • まとめ

そもそもプログラミングって何?

よく聞くけどわからない

「プログラミング」とは「プログラム」を作る作業のことです。と言われても、「じゃあ、プログラムって何?」と疑問に思ってしまいます。

プログラムとは「コンピュータにしてほしい処理を順番に書き出したもの」です。

人間であれば、なんとなく予想して「次はこうすればいいのかな」と動くことができますが、コンピュータには想像する力がありません。一連の動きを厳密に、コンピュータにも読み取れるかたちで命令する(=プログラムする)必要があります。

命令する文ひとつだけでは、単純なことしかコンピュータに伝えられません。しかし、複数の文を組み合わせれば複雑なプログラムを書くことができます。

プログラムの構造 ~プログラムの全体を考えよう~

プログラムはコンピュータに命令する文がたくさん集まったもの、というのがわかりました。では、この一つ一つの文はどのような流れで処理されていくのでしょうか。

一般的に、現在使われているプログラミングの手法は「構造的プログラミング」と呼ばれています(ダイクストラという偉い人が提唱しました)。

構造的プログラミングでは、プログラムは主に「順接」「条件分岐」「反復(ループ)」の3つの要素から成り立っています。

順接

プログラムのなかのたくさんの命令文は、上から順番に処理されていきます。これを順接といいます。

条件分岐

プログラムは条件によって処理が分岐する場合があります。これを条件分岐といいます。

反復(ループ)

プログラムは、一部の処理を繰り返して実行する場合があります。

この3つの要素が、実際にどのようにプログラムに表れているか確認してみます。

じゃんけんゲームを例に見てみましょう。

  • じゃんけんゲーム
    1. ゲームスタート
    2. お互いが手を出す
    3. 勝敗を判定
    4. 自分があいこか勝ちならもう一度ゲームをする。
    5. 負けたらじゃんけんゲームは終了

このようなゲームのプログラムを作るとしたら、どのような流れになるでしょうか。フローチャートに書き起こしてみましょう。

このように、どのようなプログラムの流れも基本的に順接条件分岐反復(ループ)の3つの要素から構成されています。

プログラムの中身 ~プログラムに使う部品を考えよう~

プログラムの流れは3つの要素から成り立っていることがわかりました。しかし、全体の流れを把握しただけではプログラムは動きません。ひとつひとつの命令文を見ていく必要があります。

ひとつひとつの命令文は、「A」は「Bをする」といったように、「データ」と「やってほしい処理」に分かれています。この「データ」と「処理」はプログラムの部品のようなものです。

◇データ ~表したい情報を変数にしよう~

じゃんけんゲームの例を考えてみましょう。「お互いの手を出す」の場合、「私が出した(入力した)手」と「相手(コンピュータ)が出した手」という情報が必要です。この情報がないと、「勝敗を判定」するさいに何と何を比べればよいか分からなくなってしまいます。

このように、プログラムをつくるうえで必要な情報をデータとして扱うために必要なのが変数です。

変数って何?

変数と聞くと数学のイメージが出てくると思いますが、プログラミングではすこし意味合いが違います。変数とは扱いたいデータに名前をつけたものです。変数は自分で設定することができます。

A=1  こんな感じ

じゃんけんゲームで例えると、後で勝敗を判定するさいに「私が出した(入力した)手」「相手(コンピュータ)が出した手」の情報がほしいので、これらを変数に宣言します。

My_hand=x

Com_hand=y ・・・変数を宣言する

これは、xというデータ(変数)にはMy_handという名前が付いているよ、という意味です。変数の名前は左側に、変数は右側に書きます。

変数の名前は後で変わることがないので、わかりやすく書きます。一方で、このxやyにはいろんな値が入ります。じゃんけんゲームなら、自分が出したりする手としてグーかチョキかパーのデータのどれかがxに入ります。

このように変数を宣言することで、情報をあとでコンピュータに処理してほしいデータとして扱うことができます

◇処理 ~関数という機能を呼び出そう~

変数というデータをプログラムに登場させても、何かをする機能がなければプログラムは動きません。プログラムが動くまでもう一息・・・!

プログラムにおいて、特定の処理を行う機能を関数と呼びます。これも数学のイメージがありますが、すこし意味合いが違ってきます。

関数には次の要素があります。

  • 関数名
  • 引数
  • 返り値

関数のイメージとしては、自販機を思い浮かべるとわかりやすいです。

自販機にお金を入れてボタンを押すと飲み物が出てきます。自販機が関数、引数はお金、返り値は飲み物です。

関数は、プログラミング言語によってあらかじめ用意されているものがあります。関数は自分でつくることも可能です(今回は説明を省きます)。

この関数の引数に変数を渡すことで、変数の値によって処理の結果が変わってきます。

このように、データと処理を組み合わせることで一つの命令文が完成していきます。

まとめ

プログラムでは、まず大まかな流れの構造として順接条件分岐反復(ループ)の3つの要素があります。これらが組み合わさって上から順番にしてほしい処理が行われていきます。

大まかな流れを考えたら、一つの段階のなかでデータと処理するための機能が合わさった文を考えていきます。

このように、まず大まかな流れ→ひとつひとつのブロックごとに必要な命令文→命令文に必要なデータと処理(変数と関数)と段階ごとに考えていくと、プログラムをつくるうえで理解しやすいです。

未経験者や初心者の場合、まずどこからプログラミングの勉強をしたらいいかわかりません。ネットで検索しても、わからない単語や断片的な知識が多いと思います。筆者もかなりひるみました。

まずは、自分がつくりたいプログラムの全体像をざっくりつかむことがとても大切だと日々実感しています。見通しが立つと「ここまでやれるかも」というふうに学習にも前向きになれるので、ぜひ試してみてください。

ここまで読んでくださってありがとうございました!

コメント

タイトルとURLをコピーしました