知能情報処理 資料

 

Cと同様ですが・・・

プロトタイプ宣言

関数の定義がmain関数よりも後に出てくるときは、main関数よりも前に、後から定義される関数の名前と引数を宣言する。

 

2重配列:ポインタを使って使うこともできる(サイズを可変にするときは必須)。

ここではサイズが決まっているので、簡単に、配列を宣言して使う。

 

☆疑似乱数の生成

rand()関数

iostreamincludeすればそれに含まれているので、stdlib.hincludeする必要はない。

0以上RAND_MAX以下の整数を返す関数。疑似乱数であり、単にrand()を使うと、乱数の出方がいつも同じになる。そこで、それを避けるために(乱数らしく、使う度に異なる値を出すために)、乱数の初期値を決めるsrand関数を最初に一度用いる。

srandには引数が必要で、同じ引数だと同じ乱数系列となるので、実行毎に値が異なる、時間の情報を用いる→time関数。

 

time関数

time(NULL)

で、グリニッチ標準時(GMT)の1970 1 1日の00:00:00 から現在までの経過時間を秒単位で返す。

 

☆配列の関数への受け渡し

 

C++特有の文法

#include <iostream>を使う

cout, cinによる入出力

printf, scanfの代わりに、cout, cinを使うことができる。

cout << 変数名あるいは定数 <<変数名あるいは定数;

例:

cout << "計算結果は" << a << "です\n";

ただし、coutは、stdという名前空間の中にあり、単にcoutを使うとエラーになる。coutを使うときは、std::coutとする。あるいは、std::をいちいちつけるのが面倒な場合は、はじめに

using namespace std;

と宣言しておいて、

cout

を使えばよい。

 

cinについては、

cin >> 変数名;とする。

 

配列の大きさを動的にとる方法(たとえばnを入力し、その値のサイズの配列a[n]を確保するというようなもの)は簡単にできるが、ポインタの使用が必須となるので、プログラミング技術で混乱するのを避けるため、この授業ではなるべくあからさまにポインタは使わない。