どうもピーマンです。今回の記事では、
この11の学ぶべきことは、c言語に限らず、ほとんどのプログラミング言語に当てはまることなので、プログラミングに興味を持っている方や、実際に何を学べばいいのかわからない方は、この記事で具体的に学ぶことを全体的にイメージしていただけると、とても上達が早くなるので、しっかりとこれから学ぶことについて、理解しておきましょう!
1、C言語実際に書くための環境(エディタ)
まず、はじめにc言語を勉強していく上で、どうしても必要になる作業環境について、説明していきたいと思います。
C言語を書く場所
プログラミングと聞くと、ほとんどの方が、黒い画面で謎の文字を羅列しているのを思い浮かべると思いますが、一番はじめに必要になるものがその謎の黒い画面のように、文字を書いていくソフト(エディタ)になります。
そして、このプログラムを書くためのソフト。実は、特殊なものでなく、windowsに搭載されているような、「メモ帳」を代わりに使うこともできるんです。笑
しかし、windowsの「メモ帳」を実際に使っているプログラマは、数少ないでしょう。これには、簡単な理由があります。それが
「優秀なプログラマは、全力でサボる」
と言うものです。笑
プログラミングを、実際にしていると分かると思いますが、なんのサポート機能もついていない「メモ帳」などを使っていると、書き間違いをしてしまった時も「どこが間違っているのか見つけるのが困難」だったり、プログラムを書くのに、とてもたくさんの時間がかかってしまいます。
なので、ほとんどの人は、プログラムを書くときに、「超高性能なメモ帳」のようなソフト(エディタ)を使います。
エディタをインストールしよう!
C言語を勉強していく上で、エディタは、どうしても必要になりますので、メモ帳を使っても構いませんが、効率的に勉強していきたい方は、エディタをインストールしましょう。
エディタの種類や、おすすめのエディタなどの以下のページで詳しく説明しているので、まずは、エディタをPCにインストールしてから次のコンパイルへ、進みましょう!!。
C言語を実際に書くための環境(エディタ)の紹介やインストール方法

2、コンパイルとは?(コンパイラ)
次に、C言語にとって一番大切だと言っても過言ではない、「コンパイル」、について説明していきたいと思います。
コンパイルってなに?
まずは、コンパイルについて簡単に説明します。
コンピュータに命令をするのがプログラミングですが、実コンピュータは、c言語を直接理解することができません。
そこで、人間でも理解できるプログラム(c言語で書いたプログラム)を一度、コンピュータが理解することのできる機械語に翻訳してから実行するんです。
この機械語に翻訳するという作業のことをコンパイルと言います。そして、コンパイルをするソフトのことをコンパイラと呼びます。
C言語が高速なのはコンパイルのおかげ
pythonや、javaなどのプログラミング言語には、コンパイルという作業がありません。
しかし、コンピュータはプログラミング言語を直接理解することができないので、これらのプログラミング言語は、実行時に1文ずつ機械語に翻訳しながら実行されます(インタプリンタ型)。
このタイプのプログラミング言語は、1つずつ翻訳しながら実行するので、プログラムの実行速度が非常に遅いです。
それに比べて、c言語は、機械語への翻訳をプログラムの実行前に先に行うので、実行時に余計な動作が必要なく、とても高速に動くことができると言うわけです。
短いプログラムだと、あまり差が生まれませんが、大規模なプログラムになってくると、びっくりするほどの差が出てきます。
コンパイルの方法
コンパイラには、パソコンでコンパイルするのものと(オフライン)、ウェブ上でコンパイルする(オンライン)のものが存在します。
前者は、少し設定がめんどくさく、後者はとても楽です。
この2つの種類のコンパイラの使い方や、導入方法は、以下のサイトで説明していきたいと思います!

3、実際に動かしてみよう!!
ここより、上の項目でプログラミングをするための準備をしてきた方、お疲れ様です!
ここからは、準備もすんだので、実際にプログラムを書いていきたいと思います。
まずは、「Hello World!」と表示するためのプログラムを作って見ましょう!
全く意味のわからないそこのあなた。
大丈夫です。私もなぜこの文なのか全くわかりません。
しかし、プログラムを学ぶときは、この「Hello World」を表示するプログラムを1番初めに勉強すると、太古の昔から決まっています。(深く考えないで笑)
それでは、以下のページで、プログラムを初めてのプログラムの書き方を書いているので、実際に書いて、実行して見ましょう。

4、”バケツ”のような数(変数)
皆さんは、中学校で習った”x”や”y”などの変数というものを覚えていますか?
ここでは、この変数をバケツに例えて、わかりやすく説明していきます。
変数で何ができるの?
まず、このバケツ(変数)を使うと、どんなことができるようになるのか説明します。
- キーボードから入力した数字を変数に入れることができる。
- 足し算や引き算、掛け算や割り算と組み合わせると、入力した身長と体重などからBMIなどの値を出すことができる。
- できることの幅がとても広がる
こんなかんじですかね。
一言で表すと、「バケツ(変数)は、プログラミングのすべて」です。
この変数がないと、何も始まりません。1つ上の項目で「Hello World」を表示させましたがこれだけだと何もできないのと変わりません。
しかし、計算と変数が加わることにより、できることがびっくりするほど増えるのです。
プログラミングに取り入れてみよう!
ってことで、「Hello World」を実際に表示させることに成功した方は、この変数へ、進んでいきましょう!。
バケツのような数(変数)を実際に使ってプログラミングをしよう!

5、「もし〜なら〜を実行」!(分岐処理)
次に、条件分岐について、書いていきたいと思います。
条件分岐でできること
簡単に説明すると以下のようなものです。
「もし、室温が25度以下なら暖房をつける」
「もし、室温が25度以上なら冷房をつける」
とても便利だと思いませんか?
この条件分岐を使うと、例えばエアコンを作るとときに、センサーから取得した気温を元に、室温を自動で最適に維持するためのプログラムが作れます。
スマホの画面に触れているか判断するのも、電源ボタンが押されたかどうか判断するのも、すべてこの条件分岐がベースとなっています。
このブログでプログラミングを勉強している方は、現在
- 画面に文字を表示させる
- キーボードから数字を入力する
- 入力された数字を変数に代入し、計算する
ということが現在できるはずです。
ここに条件分岐が加わると、入力した数字により、実行するプログラムを変更することができるようになるので、できることがさらに広がります。
よくある「あなたの性格診断」のようなもの、だって作ることができるようになりますね!。
c言語で条件分岐をするためには?
それでは、ここまで進んでくることができた方は、条件分岐へ進みましょう。
ここからは、できることが爆発的に増える代わりに、難易度が少し上がってくるので、じっくり学習していきましょうね!

6、同じ処理を繰り返そう!(繰り返し処理)
条件分岐を終えて、ここまでくることができた方へ、朗報です。
プログラミングは、
- 順次(上から処理を実行)
- 分岐(条件により処理を変える)
- 反復(処理を繰り返す)
という3大要素によって成り立っています。そして、この3大要素だけあれば理論上どんなプログラムでも作ることができるのです。
ここまで、Hello Worldと変数で順次、「もし〜なら〜を実行」で条件分岐を学びました。そして、今回やる反復(同じ処理を繰り返す)で3大要素が揃います。ここまでくれば、作りたいものが作れないということが起こらなくなるので、しっかり習得しましょう。
反復(同じ処理を繰り返す)でできること
1つ前の条件分岐の時に、条件分岐を使用すると、エアコンの温度を自動で維持できるようになることを例として、紹介しました。
しかし、条件分岐だけだと、1度実行するとそれっきりで、「エアコンで例えると永遠に冷房がついたままになってしまいます。」
そこで、条件分岐に反復を加えて、5分に1度実行するようにプログラムを書き換えると、そのエアコンは、永遠に冷房と暖房を自動で切り替えることができる素晴らしい機能を手にします。
繰り返し処理をやってみよう!
同じ処理をなんども繰り返す時には、必ず使うのでしっかり学習しましょう。

7、進化版、バケツの数(配列)
プログラミングの3大要素を習得してきた皆さんお疲れ様です。
ここから先は、プログラミングをする上で、とても便利でできることの幅が広がるような機能を説明していきたいと思います。
進化版、バケツの数(配列)とは?
これは 4、で紹介した変数を進化させたようなものです。
説明が難しいのですが、たくさんの繋がった変数(例x1, x2, x3, x4, ・・・・)をイメージしてもらえると、いいと思います。
この配列を使用すると、使えるデータの量が増えるので、文字列を扱うことが可能になったり、入力されたたくさんの数字を一括で計算したり、数字を大きい順に並べ替えたり、とてもプログラミングが楽しくなっていきます。
進化版バケツ(配列)を使ってみよう!
それでは、実際に配列を使っていきましょう!

8、同じ処理をブロック化!(関数)
次に説明するのは、皆さんもよく知っている、自動販売機のような機能「関数」です。
関数って何?
自動販売機というものは、お金を入れ「購入」という処理をすることで、飲み物などが出てきます。
関数はこれにとてもよく似ていて、ある数値を自動販売機のようなブロック(関数)に渡すことによって、そのブロック(関数)内で何かの処理を行い、その結果を出力することができるのです。
そして、関数は処理する内容をブロック化しただけのものなので、同じ処理をなんども行う時に、前回使ったブロック(関数)を再利用することができ、プログラムをとても省略することができます。
関数を実際に使ってみよう
それでは、大規模なプログラムを、省略化することができる関数を実際に使ってみましょう

9、データの受け渡し方(ポインタ)
つぎに、ここでは、ポインタについて説明していきたいと思います。
ポインタってなに?
正直、私がC言語を勉強していて、一番難しいと感じたのが、このポインタです。
今でも、「あれ、どう動くんだっけ???」と言う風になることがよくあります。
そう言うことで、ここでは、がっつり説明しませんが、簡単に言うと変数などを保存しているメモリの住所を取得する機能です。
ポインタを使ってみよう
とても難しいので挫折する方も多いかもしれませんが、以下のページでしっかり習得しましょう。
ポインタの詳しい説明や、使い方はこちら
URL
10、超進化版、バケツの数!!!(構造体)
ここでは、「構造体」というものについて説明していきたいと思います。
構造体ってなに?
構造体とは、4、の変数で学んだいろいろな形の変数型をひとまとめにすることができる機能です。
本来であれば、文字を格納するための変数と、数字を格納するための変数は、一緒にまとめて使うことができません。
しかし、この「構造体」を使用するとそれが可能になるのです。
構造体を使ってみよう
それでは実際に構造体を使ってみましょう。文字で説明を見るよりも実際にコードを書いていく方が絶対に、わかりやすいはずです。
構造体の詳しい説明や使い方
URL
11、ファイルを読み書き(ファイル入出力)
ここでは、ファイルの入出力について説明していきたいと思います。
ファイルの入出力でできること
いよいよ、最後の項目です。
プログラミングをここまで進めてきた皆さんには、わかると思いますが、いままでの方法だと、プログラムを終了した時に、全てのデータが消えてしまいます。
そこで登場するのが、このファイルの入出力です。
ゲームの「セーブと同じことができるようになる」と言うとピンと来る人もいるでしょう。
そして、ファイルに書き出したデータを読み込むことで、前回のデータからプログラムをスタートすることもできるんです。
また、実験データのファイルなどを読み込んで、プログラミングを使い解析などをすることもできるようになります。
ファイルの入出力を実際に使ってみよう!
それでは、ファイルの入出力を実際に行っていきましょう。
少し、複雑ですが慣れればできることは、無限大です。
ファイル入出力の説明と詳しいやり方
URL