伝えたいこと日記

WEB開発/読書/バイク/ポーカー 皆でやると楽しいよ?

第2章 Hello,World!

2.1 プログラム

  1. コンピュータに何かをさせるには、何をするか正確に(極端なほど詳細に)伝える必要がある。そうした【何をするか】の説明をプログラムと呼ぶ。
  2. プログラミングとは、そうしたプログラムを記述し、テストすることである。
  3. 誰でもプログラムをすでに理解しているということになる。
  4. 【近くの映画館まで車で行く方法】【2階のトイレに行く方法】【電子レンジで食事を温める方法】などなど...これらとプログラムをわけ隔てるものは【精度】である!
  5. コンピュータは全く持って要領が悪い!ex.廊下って何? 右に曲がるって何? 階段を上がるにはどうすれば良いの?

2.2 最初のプログラム

 

#include "std_lib_facilities.h"

 

int main()

{

 cout<<"Hello,World!!:¥n";

 return 0;

}

 

  1. コメントはプログラマの意図を明らかにするために使用される
  2. cout = character output stream
  3. std = standard
  4. プログラムはコンピュータとプログラマの2人の読み手の為に書かれる
  5. #を使ってincludeされるファイルはヘッダーファイルと呼べれ拡張子.hがつけられる
  6. coutなどの用語の定義が示されることになる
  7. コンピュータはmainという名の関数を探し出し、その中に書かれた命令から実行する
  8. 関数とは、複数(0個以上)の命令をひとまとまりにして名前を付けたものであり、【その関数の中に書かれた命令が、書かれた順番に実行される】ためのものである。通常は以下の4つの部分から構成される
  9. 戻り値の型
  10. 今回の場合は、intであり実行を要求した側に関数が返す結果の種類を指定する。intは予約語なので他の何かの名前として使用することはできない
  11. 名前
  12. mainが名前にあたる
  13. パラメータリスト
  14. ()内は空なので今回は空
  15. 関数の本体
  16. {}で囲まれており関数が実行するアクションを列挙する
  17. main関数は【システム】によって戻り値は使用しないが、UNIXなどの一部のシステムではプログラムの正常終了の可否をしらべるために戻り値を使用するのである
  18. ↑return 0; の意味 ※ちなみに書かなくてもreturn 0;であるかのように振る舞う

 

2.3 コンパイル

  1. ソースコード=人間が読める形式
  2. 拡張子: cpp .h
  3. 実行可能ファイル、マシンコード、オブジェクトコード=コンピュータ理解できる形式
  4. 拡張子: .obj .o
  5. コンパイラは文法に非常にうるさい、少しでもミスがあれば仕事をしない難儀な野郎だ
  6. 多くのC++文は;で終了することを忘れてはいけない
  7. 1つの文が終了し次の文が開始することをコンパイラに知らせるのが;の役割
  8. コンパイラは私たちが招く多くの問題から私たちを救ってくれているのである。
  9. コンパイラプログラマの味方であり、最も頼りになる存在なのである
  10. コンパイラが吐き出すエラーメッセージを理解できるようになることが言語のスキルアップには欠かせないのである

2.4 リンク

 Q1

実行画面にHello,World!の文字列を表示すること

Q2

名前

戻り値の型

パラメータ

内容本体

Q3

 main

Q4

LINUX系のOSにおいて、正常にビルドが終了したことを知らせるため。なお、特に記述がなければプログラムは0を戻り値として返すことになる

Q5

人間が記述したソースコードをコンピュータが理解できるオブジェクトファイル/マシンコードに変換すること

Q6

外部からヘッダーファイルを取り込みこと。ヘッダーファイル内には用語の定義などが記述されている

Q7

ヘッダーファイルであることを明示している

Q8

 マシンコードの集合を実行可能ファイルにまとめる役割

Q9

ソースファイルは人間が書いて人間が理解するためのもの、オブジェクトファイルはソースファイルをコンパイラし、コンピュータが理解できる形に変換したもの

Q10

統合開発環境の略称(Interractive Development Interface)プログラムにの実装に必要なものがパッケージ化されて用意されている

Q11

実践してみないと分らないことはたくさんある

 

練習問題

Q1

何も持たずに立ち上がる

右を向く

2歩前進する

左を向く

2歩前進する

右を向く

ドアを開ける

1歩前進する

ドアを閉める

1歩前進する

右を向く

2歩前進する

左を向く

左足を前に1段目にかける

右足を2段目にかける

左足を3段目にかける

階段がなくなったならば、両足をそろえる

左を向く

ドアを開ける

前に進む

正しい部屋であるかどうか確認する

FIn

 

用語の定義

//

コメントアウト用の文字

二重スラッシュ。この後に書かれたものは全てコメントである

<<

出力演算子と呼ばれ、>>の右に書かれたものを左の出力ストリームに送る

C++

Cが発展した言語

幅広いプログラミングタスクの為に開発されたプログラム言語

コメント

プログラムの理解を助けるためにプログラマーが記述するコメント

コードで直接表現できないプログラマの意図を説明するために書かれる。

たいていの場合一番役に立つのは自分自身にとってである

コンパイラ

コードを人が読める形式から、機会が読める形式に変換するもの

ソースコードをオブジェクトコードに変換するもの

コンパイルエラー

コンパイル時に発生するエラー

コンパイルによって検出されるエラー

cout

シーアウトと発音する。Charactor outputo systemの略称で標準出力ストリームを表す

モニタに文字列を表示する関数

実行可能プログラム

プログラムのうち機械が直接理解できる形式のもの

.exeの拡張子を持つファイルでプログラムの実行に使用する

関数

複数の命令をひとまとめにして名前をつけたもの

命令の集まり。名前、戻り値の型、パラメータ、関数本体から構成される。

ヘッダー

#includeを用いてインクルードされるファイル全般

main関数の上に記述し用語の定義などが記されているファイル。拡張子は.h

IDE

 

統合開発環境のことであり、プログラム開発に必要なあらゆるものがセットになっているもの

#include

外部かヘッダーファイルを読み取るための命令

 

ライブラリ

用語の定義などが記されているファイル、ヘッダーファイルの1種

リンカ

複数のオブジェクトファイルを結び付けて実行可能ファイルを生成するプログラム

main()

 あらゆるC++ファイルに含まれている関数

オブジェクトコード

 ソースコードコンパイルすることによってコンピュータが理解できる形式に変換したもの

出力

 画面上にデータを表示すること

プログラム

 何らかの問題解決を行うために記述される命令の集合体

コンピュータに対して、何をするかを正確に伝える必要があるが、その何をするかの説明のこと

ソースコード

 プログラムの実際の姿

 プログラムにおける最小単位。セミコロン;で1つ1つの文は区切られる