これだけは押さえておきたいプログラミングの基礎

トップページへ戻る

ここではC言語をベースに説明しますが、土台となる部分の理解・考え方はほとんどのプログラミング言語で共通しています。その共通部分を簡潔に解説していきます。

変数

変数とは、文字や数値を格納しておくための箱のようなものです。
具体的には、
箱の名前をboxとすると、
box=3;
と記述することで、boxという箱の中に数字の3を代入することができます。
文字を代入したい場合は、
box ='A';
と記述します 。
変数名は、以下の条件の範囲内であれば自由に名前をつけることができます。
@英数字とアンダーライン。
A数字は先頭文字につかえない。
Bほとんどの言語では大文字小文字を区別している。

なおJAVAやC、BASIC、FORTRUNなどでは変数を使用する前に、どういったものを箱の中に格納するのか、あらかじめ宣言しておかなければなりません。これを型宣言と言います。(PerlやJavaScriptでは、このような宣言は不要です。)
たとえば、変数名をboxとし、この中に数値を代入したい場合は、
int box; 
box=3;
のように記述します。変数boxの前に、intと記述することで、boxの中にはこれから整数を代入する、と宣言したことになります。主な型の種類は以下のとおりです。

int 4バイトの整数
long 8バイトの整数
char 文字
float 単精度浮動小数点数
double 倍精度浮動小数点数
boolean 真 or 偽

目次へ

配列

変数と同じく、数値や文字を格納するための箱のようなものですが、配列は変数と違って、あるグループをひとつの箱に整理して入れておくといったイメージになります。
たとえば、りんご、みかん、バナナを果物のグループとしグループ名(配列の名前)をfruitとしたならば、
fruit[0]="りんご";
fruit[1]="みかん";
fruit[2]="バナナ";
のように代入します。(※MFCを利用しないC言語では、文字列を配列に代入する場合の書き方が上記とは異なりますが、他言語の解説も兼ねている便宜上、MFCのCStringクラスを利用して文字列を代入しているものとします。)
[ ]中の数字のことを添字といい、これを変数で表すこともできます。
変数や配列がなぜ必要なのかは、後で説明します。

配列を利用する場合も、あらかじめ型宣言しておく必要があります。(PerlやJavaScriptでは、このような宣言は不要です。)
整数型の配列を宣言する場合は、
int fruit[要素数];
のように記述します。

目次へ

式と演算子

簡単に言うと、 計算式のことです。
xという変数に1+1の結果を代入したい場合は、
x=1+1;
このように記述します。
式の中の「+」のことを演算子と呼び、数値のことをオペランドといいます。オペランドは変数で表すこともできます。
とえば
x=2;
x=x+1;
とすると、まず変数xに2を代入し、続いてxにx+1の計算結果を代入する、つまりx=2+1;と同じ結果になります。
主な演算子は次のとおりです。

+
加算
-
減算
*
乗算
/
除算
%
剰余
++
インクリメント(1を加える)
--
デクリメント(1を減らす)

目次へ

反復処理

ある処理を複数回繰り返したい場合に使います。

y=0;
for( int x=1 ; x<4 ; x++){
    y=y+x;
}

上のfor文は、初期値としてxに1を代入し、xが4になるまでxを1ずつ増加させながら中括弧{ }内の処理を行うというものです。
つまり中括弧内の処理(y=y+x;)を、xに1を加えながら3回繰り返していることになります。
上の式を展開すると、次のようになります。
1回目 x=1 → y=y+1;
2回目 x=2 → y=y+2;
3回目 x=3 → y=y+3;

この結果、yの値は、y=1+2+3で6となります。

次にある3人のテストの点数を配列に格納し、その合計を求めます。

tensu[0]=61;  //1人目は61点
tensu[1]=75;  //2人目は75点
tensu[2]=93;  //3人目は93点
y=0;
for( int i=0 ; i<3 ; i++){
    goukei=goukei+tensu[i];
}

上のコードを展開すると、
goukei=tensu[0]+tensu[1]+tensu[2]=61+75+93で、goukeiの値は229となります。

複雑な計算でも、変数や配列を用いることによって簡潔にまとめることができます。

目次へ

選択

Aさんのある資格試験の点数は、80点でした。70点を合格ラインとします。

ten=80;
if(ten > 70){
    合格と画面に表示する処理
}else{
    不合格と画面に表示する処理
}

if(条件式){条件式が真ならば、この中の処理を行う}
else{条件式が偽ならば、この中の処理を行う}

上のサンプルは、変数tenが70より大きければ、合格と画面に表示し、そうでなければ不合格と画面に表示します。
このようにif文を使うことによって、条件に応じた処理を各別に行わせることができます。

主な比較演算子は、以下のとおりです。(ただしPerlにおいては、文字列を比較するときの演算子が下記のものと異なってきます。詳しくはPerl/CGIで掲示板を作ろうのところで解説しています。)

数値を比較する場合
==
等しいならば
!=
等しくなければ
>
左辺が右辺より大きければ
<
左辺が右辺より小されば

目次へ


関数

関数は、ある特定の処理を、何度も実行させたいときに利用します。
たとえば、YESかNOかを選択させる処理を、いろんな場面で呼び出したい場合、

”メールを送信しますか?”と画面に表示する処理
dialog();    //YESかNOかを選択させる関数呼び出し
    (中略)
”登録しますか?”と画面に表示する処理
dialog();    //YESかNOかを選択させる関数呼び出し

void dialog(void){    
     YESかNOかを選択させる処理
}

関数名();  
のように記述することで、 YESかNOかを選択させる関数呼び出せます。 (上のサンプルでは、dialog();の部分、dialogが関数名になります。)
戻り値 関数名(引数){ 処理内容 }  
関数本体は、このように宣言し、{ }の中括弧の中に、処理内容を記述します。
(上のサンプルでは、void dialog(void){ }の部分

戻り値引数を説明するために もうひとつ例を挙げます。
y=x+1という計算式を、xの値を変えつつ何度も呼び出したい場合、

x=2;
y=keisan(x);  //関数呼び出し

x=5;
y=keisan(x);  //関数呼び出し

int keisan(int a){
     b=a+1;
  retuen(b)
}

まずkeisan関数本体で、xの値を受け取ります。この受け取る値のことを引数といいます。
計算した結果を返す値のことを戻り値といいます。
上の例では、int型の値を受け取り、int型の値を返すので、 int 関数名(int a)のような宣言形式となっているのです。
最初の例では、引数も戻り値もありません。その場合は、voidと指定します。
(※ちなみにC言語で関数を使用する場合、変数や配列と同様にあらかじめ関数の型宣言をしておく必要がありますが、他言語の解説も兼ねている便宜上、ここでは割愛します。)

目次へ