どうもこんにちは、線形代数の勉強も始めたしゃーまんです。
今日からバリバリ、やったところを書いていきたいと思います。
昨日の記事はこちらです。
大学を合格してから始めるwindowsでプログラミング 2日目
C言語 ~変数~
プログラミングの中では、変数という概念があります。
これは数字などを一時的に保存しておく箱のようなものらしい。
この変数というものにも種類があって、それぞれ入れられる数字などの大きさや、種類が違う。代表的な奴としてはこのようなもの
- int
- short
- long
- float
- double
- char
- unsigned int
これ以外にもunsigned char BYTE UCHARなどもあるみたい。
この種類は、大まかに3つに分けられます。
- 整数を扱うことができるもの
- 少数などを扱えるもの
- 文字を扱えるもの
こんな感じで分けられる。上で言うとint, short, long, unsigned intが整数。float, doubleが少数、文字を扱えるのがchar。
変数の大きさ(?)も色々あるっぽい。
intのほうがshortよりも使える数字の大きさが大きい、また、longはintよりももっと大きい数を使える。
リストにしてみた。
変数の型 | 扱える数字 | 最小 | 最大 |
---|---|---|---|
int | 整数 | -2,147,483,648 | 2,147,483,648 |
short | 整数 | -32768 | 32768 |
long | 整数 | -2,147,483,648 | 2,147,483,648 |
float | 少数 | -3.402823e+38 | 3.402823e+38 |
double | 少数 | -1.797693e+308 | 1.797693e+308 |
char | 文字 | -128 | 128 |
e+nは $10^n$ のことみたい。そう考えるとdoubleの扱える数字が半端ない。
文字の表示
昨日書いたコードでは、ただ単に Hello World
と出力するだけだった。
これ以外にも、文字を変えれば出力できる文字は変えられるけど、それ以外にも、変数の内容も表示できるらしい。
変数を表示してみる
上のセクションで、変数のことについて書いたので、実際に変数を出力してみた。
文字の出力は printf();
でできたので、またこれを使っていけば出力できるらしい。
書いたコードはこんな感じ。
#include <stdio.h>
// ちなみに、バックスラッシュ(/)を二つ続けて書くとコメントとなって、
// 人間は読むことができるけど、コンパイラはこの文字を無視するらしい
// こういう時に、どういうプログラムかと説明するときとかに便利そう。
int main(){
int a; // これで int の型の変数の a というものを作ることができるらしい
a = 10;
printf("aの変数の数字は %d です。\n", a);
return 0;
}
これで変数のaが出力されるらしい。
実際にやってみたら出力された。
とりあえず、やってみたけど出力される文字の中で %d
ってなるのが意味わからなかったので調べてみた。
変換指定文字列?
調べてみると、%dというものは変換指定文字列の一つらしい。どうも、文字の中でそれがあると、良しなに数字などに変換される文字。
今回は
aの変数の数字は %d です。
というところの%dの部分が、変数のaの数字に変更されて出力されるみたい。
これも変数の型で % の後ろに来る文字が違う。
- intなどの整数の時 ... %d
- doubleなどの少数の時 ... %f, %lf, %e
- charなどの文字の時 ... %s
などがある。けど、 ○○の確率は△△% みたいにprintfの中で %
を表示したいときは
○○の確率は△△%%
のように、%を二つつなげてあげる。
出てくれる。
少数を表示してみた。
数字の計算
プログラミングで何をするかといわれて、一番最初に考えたのが、計算だった。計算は人間がよくやる形でできるみたい。
けど、数学とはちょっと勝手が違くて、左辺に答えが出てくる感じになる。
変数 = 計算式
みたいな感じ。
yという変数に、2+3を計算した結果を入れたいときは。
y = 2 + 3;
でyに5という数字が入ってくる。
ほかにも、計算の演算子は +
, -
, *
, /
が使用できる。プラスマイナスはそのまんまの意味だけど、 *
は掛け算、/
は割り算として定義されている。
ほかにも mod(割り算のあまり) が%
で定義されている。
数字同士で計算もできるけど、変数同士も計算できるみたい。
変数同士の計算について
変数同士の計算について、面白いことが分かった。
今ある変数に数字を足したいときは。
a = a + 1;
でaという変数に +1 できる。
数学で言えば
x = x + 1
になる、数学的にはちょっと変な感じがするけど、プログラミングではきちんと動いてくれる。
これ以外にも、インクリメント
やデクリメント
という、その数字を直接カウントアップ、カウントダウンしてくれる。
インクリメントは
a++;
で動く、これはうえで書いたa = a + 1
と同じになる。
デクリメントは+を-に変更してくれればいい感じ~。
実際のところ、for文while文のところまでは色々やってみたんですが、明日が早いので、準備のためにもここで筆をおこうと思います。
土日は色々と予定があるので、お休みさせてください。
3日目の記事は変数と、printのところで終わり終わり。