はじめに
この資料は第1回プログラミング講座~第3回プログラミング講座を、まとめて復習するために作成しました。内容的には基本の基本です。
プログラムとは?
残念ながらコンピューターは自動では動いてくれません。人間が命令を与えてあげる必要があります。そのために使うのがプログラムです。最終的にはCPUが理解できる形(機械語)に変換されます。しかしそれでは人間が理解し難いので、人間が理解しやすいプログラムであったりと多くの種類があります。(高級言語)
アルゴリズム
アルゴリズムは問題を解決するための手段や方法のことです。プログラムを書く上で必要になってきます。アルゴリズムを改良することでプログラムの実行速度が速くなったり、処理が軽くなったりします。
変数
例)
int num;
int count;
float ans;
bool isNameEmpty;
double aaaiiiuuu;
変数はデータを格納する入れ物の役割をします。変数には2種類の要素があります。「データ型」と「変数名」です。
「データ型」はどんなデータを入れるのかを決めます。例えば「int」はintegerの略で整数型です。データ型によって格納できる値に限りがあるので、適切に型を選択する必要があります。他にも多くの型が存在します(データ型)。
「変数名」は入れ物の名前です。変数名は一部の単語(予約語)を除いて自由に決めることが出来ますが、理解しやすい名前が推奨されてます(命名規則)。
代入演算子
例)
num = 1;
count = 0;
ans = 1.2f;
isNameEmpty = true;
2.5 = aaaiiiuuu; //エラー
入れ物を用意したら中にデータを格納する必要があります。そこで使うのが代入演算子です。「=」ですが数学のイコールの意味とは全く違います。意味は右辺を左辺に代入です。データ型にあったデータを格納する必要があります。型が違うとデータ型が変換されたり(型変換)、エラーが出る場合もあります。
算術演算
例)
num = num + 1; //numに1足したものをnumに格納する
count++; //count = count + 1と等価
ans = ans - 3.2f;
aaaiiiuuu / 4; //計算のみで代入はしない
プログラムでも算術演算ができます。代表的なものは
意味 | 構文 |
---|---|
加算 | + |
減算 | - |
乗算 | * |
除算 | / |
剰余 | % |
です。整数 + 少数
の計算を行った計算結果は少数になります(暗黙的型変換)。
例)
int hoge = 1, foo = 1;
double banana = 1.2;
hoge = banana + foo; //int型の値に変換されて格納される
banana = banana + foo; //double型の値に変換されて格納される
○ 整数型 = 整数型 * 整数型
○ 実数型 = 実数型 + 整数型
× 整数型 = 実数型 + 整数型
なお「×」と書きましたが、あえてそのような処理をする場合もあります。計算時はデータ型と型変換を意識する必要があります。これは実際にコードを書いて結果がどうなるのか確かめるのが一番理解が深まると思います。
if文
if文は条件分岐文です。条件式がtrue(真)
の時、false(偽)
の時など条件を指定します。条件には後述の比較演算子などを使用します。
例)
if(/*条件式*/){
//条件式が真の時実行
} else {
//条件式が偽の時実行
//elseは省略可能
}
具体例)
int ans = 38;
if(ans >= 60){
//合格
} else {
//不合格
}
とあったらこの場合不合格になります。
int count = 0;
if(count = 10){
//countが10の時実行したい処理
}
とい言うようなプログラムを書いたとします。しかしこのプログラムは想定した動作をしません。それは条件式が「==」ではなく「=」になっているからです。どのような動作になってしまうのかは試してみるといいと思います。
比較演算子
意味 | 構文 |
---|---|
小なり | a < b |
小なりイコール | a <= b |
大なり | a > b |
大なりイコール | a >= b |
非等価 | a != b |
等価 | a == b |
主にこれらを使用します。等価は「==」なので間違えないように。
論理演算子
意味 | 構文 |
---|---|
論理積(かつ) | && |
論理和(また) | || |
複数の条件を指定したい場合などに使用します。これらを上手くしようすると複雑なif文もきれいに書くことができるかもしれません。言語によってはある条件を満たした時、評価がスキップされるのを利用することもあります(短絡評価)
for文
for文は繰り返し文です。
for(/*初期化式*/;/*条件式*/;/*変数可変式*/){
//処理
}
条件式が真の間実行されます。
具体例)
for(int i = 0;i < 10;i++){
//処理
}
これはiの値が0,1,2,3,4,5,6,7,8,9と増えて行きます。i++
はi = i + 1
と同じ意味です。仮に5ずつ増加したい場合はi = i + 5
もしくはi += 5
と書きます。
C++の場合は初期化式の中で変数宣言をすることが出来ますが、授業などでC言語などを使ってる場合は、エラーが出ることがあるので注意して下さい。(ビルドしたい場合は-std=c99,C11
などで検索してみてください)
for(;;;){
//処理
}
と書くと無限ループになります。他にもいろいろなfor文の使い方、応用があるので気になる人は調べて見て下さい。