1.1 プログラミングとは (C++からのプログラミング入門
はじめに
僕自身、C++を勉強するためにプログラミングの入門シリーズを記事にして書いていきたいと思います。今予定しているには第一章としてC++の基本文法です。 予定している読者はプログラミングを勉強したことがない方で、基礎からしっかりとコンピュータサイエンスのことを勉強したい方向けです。今回のシリーズを全て読んでいいただけると、プログラミングの基礎を理解できるように作っていくつもりです。ただ、論理や基礎に重点を置きたいので、作りたいもの(Webやゲームなど)がある方、つまりプログラミングの応用に興味がある方はにはこちらのシリーズを参考にするよりも他のものを調べたほうが良いと思います。特に WebはC++を勉強しても仕方がないところはあります。 この記事ではこれから勉強するプログラミングとは何かということをお話します。
プログラミングの定義
実際に説明をはじめて行く前に、これから全て話すことは全て僕の中の理解や解釈です。教科書や一般的な解釈や理解とは違い場合がありますのでご理解いただけると幸いです。
僕はプログラミングをこのようことだと考えます。 プログラミング: C++やJavaなどのプログラミング言語で機械を動かすこと
プログラミングを説明するために「プログラミング」を使ってしまってますが、「プログラミング言語」というのはC++やJavaなど具体的な例をあげれるのでこのようにしました。 ここの定義で大事なことは機械を動かすことです。私たちは毎日と言っていいほど機械を動かしています。マウスを利用してカーソルを動したり、アイコンをタッチしてアプリを開くなどです。ただそのようなことはプログラミングとは呼ぶことは難しいでしょう。 もう少し深く考えてみましょう。一つの例として、何気なくしているキーボートで文字を入力するということを取り上げていきます。どうしてキーボードにある「A」のボタンを押すだけでパソコンの画面には「a」という文字が出るのでしょうか。それは「A」というキーを叩くことで、どこかの誰かさんが書いたプログラミングが動き、そのプログラムが機械に「"a"を画面に出力する」ように命令しているからです。そのプログラムを言語を使って設計、実装することがプログラミングです。
機械語とプログラミング言語
プログラミング言語はいくつもあります。それぞれに長所、短所があり簡単に「この言語がいい」とは言えません。今回はC++という言語を勉強していきます。C++は非常に基本的な言語で比較的に機械語に近いものです。よく0と1というのをお聞きすると思いますが、機械語というのは機械が直接処理できる言葉の事を指します。そうです、一般的に機械はプログラミング言語を直接処理することはできません。プログラミング言語は機械語に変換される必要があります。その変換することをコンパイルといいます。
実際にプログラミングをみてみる
このようにあーだこうだ説明をされても実際にプログラミング言語というのはどういうものなのかということをみてみないとイメージがわきにくいですね。ということで、実際にプログラミング言語を見ていきましょう。ここでは最も単純な動きのひとつである文字を出力するプログラムをみてみます。
#include <iostream> int main() { std::cout << "プログラミングは面白い" << std::endl; return 0; }
このプログラムは「プログラミングは面白い」という文字を画面に表示してくれます。
今現在は全くわからなくて大丈夫です。これからこのようなものを書いていくことになります。 実際にこのプログラムを動かすには機械語に直し(コンパイル)なければなりません。それはいろいろと作業があるため、それとこちらのプログラムの詳しい説明は次の記事にしたいと思います。
Interval natationってなに?
Interval notationとは
数学において、ある範囲を2つの数字で表す方法のひとつです。
英語圏の数学の問題では、xの値をinterval notationを用いて示しなさいという問題が多々見られます。
例えば、「3から5のあいだ」を簡潔に2つの数字と記号(Interval notation)で書いてしまうと
- (3,5)
- [3,5]
の二種類で表されます。
日本では・・・
日本ではこういう書き方をしないと思います。
「3から5のあいだ」の表し方は
- 3 < x < 5
- 3 ≦ x ≦ 5
の二通りです。
丸括弧と四角括弧の違い
勘の鋭い方はお気づきかもしれませんが、
丸括弧()はその数字を含まないときに使う記号で
四角括弧[]はその数字を含むときに使うものです。
例えば、「3時から5時のあいだに公園にいる!」と友達が言ったとします。
仮にその友達が、
3時ちょうどに公園に着き、5時ちょうどに公園を出た時、
[3, 5]
3時0000000.....1秒に公園に着き、5時ちょうどに公園を出た時、
(3, 5]
3時ちょうどに公園に着き、5時0000000.....1秒に公園を出た時、
[3, 5)
3時0000000.....1秒に公園に着き、5時0000000.....1秒に公園を出た時
(3,5)
と表します。
複雑な範囲
例えば、その友達が3時0000000.....1秒に公園に着き5時ちょうどにに公園を出て行き、6時0000000.....1時にまた公園に帰ってきて、8時ちょうどに出ていったとすると、
(3,5] U (6,8]
と表すことが出来ます。
アメリカの授業の好きなところ
初めに
現在、僕はアメリカに留学中でそこの授業でいいところだと個人的に思ったことがあるので、考えを表現し頭の中を整理する、読み手にとってわかりやすい表現をする練習を兼ねて書きます。
先生が言うことはあくまで先生の考え
これはあくまでも僕が現在行っている学校での経験をもとにした考えなので、あまり強い主張だとは言えませんが。
アメリカの学校ではあくまでも先生は模範解答としてではなく、一個人としての考えを主張する。
上記の主張を感じたきっかけですが、現在通っている学校では先生が問の答えを述べるとき、「I think...」や「My answer is... 」と自分の意見であることを意味する前置きをする場面が僕は頻繁にあると感じてるからです。
具体的な例題を出すとすると、英語の授業で読者の主張したい考えが最も顕著に現れている文はどれかという問いに対して、僕が受けている先生たちは「I would like to say... 」など、「あくまで僕の個人の意見だよ」と前置きを多々します。
日本で僕が受けていた授業では、「私は・・・」などと聞いた記憶がありません。