第2章 Hello,World!
2.1 プログラム
- コンピュータに何かをさせるには、何をするか正確に(極端なほど詳細に)伝える必要がある。そうした【何をするか】の説明をプログラムと呼ぶ。
- プログラミングとは、そうしたプログラムを記述し、テストすることである。
- 誰でもプログラムをすでに理解しているということになる。
- 【近くの映画館まで車で行く方法】【2階のトイレに行く方法】【電子レンジで食事を温める方法】などなど...これらとプログラムをわけ隔てるものは【精度】である!
- コンピュータは全く持って要領が悪い!ex.廊下って何? 右に曲がるって何? 階段を上がるにはどうすれば良いの?
2.2 最初のプログラム
#include "std_lib_facilities.h"
int main()
{
cout<<"Hello,World!!:¥n";
return 0;
}
- コメントはプログラマの意図を明らかにするために使用される
- cout = character output stream
- std = standard
- プログラムはコンピュータとプログラマの2人の読み手の為に書かれる
- #を使ってincludeされるファイルはヘッダーファイルと呼べれ拡張子.hがつけられる
- coutなどの用語の定義が示されることになる
- コンピュータはmainという名の関数を探し出し、その中に書かれた命令から実行する
- 関数とは、複数(0個以上)の命令をひとまとまりにして名前を付けたものであり、【その関数の中に書かれた命令が、書かれた順番に実行される】ためのものである。通常は以下の4つの部分から構成される
- 戻り値の型
- 今回の場合は、intであり実行を要求した側に関数が返す結果の種類を指定する。intは予約語なので他の何かの名前として使用することはできない
- 名前
- mainが名前にあたる
- パラメータリスト
- ()内は空なので今回は空
- 関数の本体
- {}で囲まれており関数が実行するアクションを列挙する
- main関数は【システム】によって戻り値は使用しないが、UNIXなどの一部のシステムではプログラムの正常終了の可否をしらべるために戻り値を使用するのである
- ↑return 0; の意味 ※ちなみに書かなくてもreturn 0;であるかのように振る舞う
2.3 コンパイル
- ソースコード=人間が読める形式
- 拡張子: cpp .h
- 実行可能ファイル、マシンコード、オブジェクトコード=コンピュータ理解できる形式
- 拡張子: .obj .o
- コンパイラは文法に非常にうるさい、少しでもミスがあれば仕事をしない難儀な野郎だ
- 多くのC++文は;で終了することを忘れてはいけない
- 1つの文が終了し次の文が開始することをコンパイラに知らせるのが;の役割
- コンパイラは私たちが招く多くの問題から私たちを救ってくれているのである。
- コンパイラはプログラマの味方であり、最も頼りになる存在なのである
- コンパイラが吐き出すエラーメッセージを理解できるようになることが言語のスキルアップには欠かせないのである
2.4 リンク
Q1
実行画面にHello,World!の文字列を表示すること
Q2
名前
戻り値の型
パラメータ
内容本体
Q3
main
Q4
LINUX系のOSにおいて、正常にビルドが終了したことを知らせるため。なお、特に記述がなければプログラムは0を戻り値として返すことになる
Q5
人間が記述したソースコードをコンピュータが理解できるオブジェクトファイル/マシンコードに変換すること
Q6
外部からヘッダーファイルを取り込みこと。ヘッダーファイル内には用語の定義などが記述されている
Q7
ヘッダーファイルであることを明示している
Q8
マシンコードの集合を実行可能ファイルにまとめる役割
Q9
ソースファイルは人間が書いて人間が理解するためのもの、オブジェクトファイルはソースファイルをコンパイラし、コンピュータが理解できる形に変換したもの
統合開発環境の略称(Interractive Development Interface)プログラムにの実装に必要なものがパッケージ化されて用意されている
Q11
実践してみないと分らないことはたくさんある
練習問題
Q1
何も持たずに立ち上がる
右を向く
2歩前進する
左を向く
2歩前進する
右を向く
ドアを開ける
1歩前進する
ドアを閉める
1歩前進する
右を向く
2歩前進する
左を向く
左足を前に1段目にかける
右足を2段目にかける
左足を3段目にかける
階段がなくなったならば、両足をそろえる
左を向く
ドアを開ける
前に進む
正しい部屋であるかどうか確認する
FIn
用語の定義
//
コメントアウト用の文字
二重スラッシュ。この後に書かれたものは全てコメントである
<<
出力演算子と呼ばれ、>>の右に書かれたものを左の出力ストリームに送る
Cが発展した言語
幅広いプログラミングタスクの為に開発されたプログラム言語
コメント
プログラムの理解を助けるためにプログラマーが記述するコメント
コードで直接表現できないプログラマの意図を説明するために書かれる。
たいていの場合一番役に立つのは自分自身にとってである
コードを人が読める形式から、機会が読める形式に変換するもの
ソースコードをオブジェクトコードに変換するもの
コンパイルエラー
コンパイル時に発生するエラー
コンパイルによって検出されるエラー
cout
シーアウトと発音する。Charactor outputo systemの略称で標準出力ストリームを表す
モニタに文字列を表示する関数
実行可能プログラム
プログラムのうち機械が直接理解できる形式のもの
.exeの拡張子を持つファイルでプログラムの実行に使用する
関数
複数の命令をひとまとめにして名前をつけたもの
命令の集まり。名前、戻り値の型、パラメータ、関数本体から構成される。
ヘッダー
#includeを用いてインクルードされるファイル全般
main関数の上に記述し用語の定義などが記されているファイル。拡張子は.h
統合開発環境のことであり、プログラム開発に必要なあらゆるものがセットになっているもの
#include
外部かヘッダーファイルを読み取るための命令
ライブラリ
用語の定義などが記されているファイル、ヘッダーファイルの1種
リンカ
複数のオブジェクトファイルを結び付けて実行可能ファイルを生成するプログラム
main()
あらゆるC++ファイルに含まれている関数
オブジェクトコード
ソースコードはコンパイルすることによってコンピュータが理解できる形式に変換したもの
出力
画面上にデータを表示すること
プログラム
何らかの問題解決を行うために記述される命令の集合体
コンピュータに対して、何をするかを正確に伝える必要があるが、その何をするかの説明のこと
プログラムの実際の姿
文
プログラムにおける最小単位。セミコロン;で1つ1つの文は区切られる