Micomprocedure Wiki
Inner/役職ソート/プログラミング/2014プログラミング講習会/第2回
をテンプレートにして作成
開始行:
#contents
今回はプログラミングの基本となる部分である変数、関数あたりをやっていきます!
*変数 [#da2214af]
変数とは、さまざまな数字や文字のデータを入れておく「箱」のようなものです。
変数を使いたいときは初めに、
''(装飾子) 変数の型 (装飾子) 変数名 (=初期値)''
を書くことで使えるようになります。
変数の型とは大雑把にいうとその箱は整数か、小数か、文字なのかを決めるものです。
下の表はその型の一覧です。
|型 |内容|内容例 |補足|
|int |整数|1,123,-72|小数を入れようとすると小数点以下が切り捨てられる|
|float |実数|-12.345000 | |
|double |実数|上と同じ |こちらはfloatより大きな値を扱える。計算もこちらの方が速いようなので、小数を扱うなら、floatよりdoubleがおすすめ|
|char |文字|'a','!','1' |ここでの1は整数の1とは意味が違うので注意|
|bool |真偽値|true, false |「真」「偽」の二択だけのデータを扱う場合この型を使うと分かりやすい|
変数の名前は「英数字と一部記号のみ」「名前の先頭に数字は使えない」「予約語(void,int,returnなどと同じ名前)は使えない」などいくつか決まりはありますが、おおよそ自分の好きな名前で作れます。
例
#code(cpp){{
int a; //整数型aを宣言
char moji='N'; //文字型mojiを宣言して初期値としてNを代入
}}
変数は同一スコープ内であらかじめ宣言しなければいけません。
#code(cpp){{
int a; //{}の外でaを宣言
if(...){
a=10; //使ってOK!
}
}}
#code(cpp){{
if(...){
int a; //{}の中でaを宣言
}
a=10; //ここでは使えないのでエラー!
}}
*基本的な演算子 [#o442d892]
**四則演算 [#j60e41c5]
+,-,*,/
一般的な四則演算です。(*は×、/は÷の意味)
また、普通の計算式と同じように *,/ は +,- よりも優先して計算されます。
**剰余(モジュロ) [#zcf241cf]
%
割り算のあまりを求めます。
**インクリメント,デクリメント [#q1d2a997]
++,--
整数型の変数に対して++を付けると1増え、--を付けると1減ります。
変数の前につける(前置)か後につける(後置)かで処理が異なり、
前に付けた場合は、値が加算(減算)されてから使われ
後に付けた場合は使われた後に加算(減算)されます。
**代入 [#a906262b]
=
右辺を左辺へ代入します。''等式ではありません''。
つまり、
a=a+1
はaにa+1を代入しろという意味で書くことができます。(++aと同じ意味)
**比較 [#f20fe17b]
==, !=, <, >, <=, >=
この演算子の右辺と左辺を比較する演算子です。これは後に出てきますが、条件分岐ifや繰り返しwhileなどと一緒に使います。
-==は右辺と左辺が等しいならば「真」
-!=は右辺と左辺が等しくないならば「真」
-<は右辺が左辺よりも大きいならば「真」
-<=は右辺が左辺以上ならば「真」
となります。
==(比較)と=(代入)はよく書き間違えるので注意!!
**論理AND,OR [#s6f7e17b]
&& ||
上の比較と一緒に使うことが多いです。
たとえば、
a==b && c==d
はaとbが等しい、かつcとdが等しいならば「真」
a<0 || a>100
はaが0より小さい、または100より大きいならば「真」
ということになります。
*構文 [#b6465ca2]
**コメント [#n6a6ed9b]
コメントとは、プログラムの動作には一切関係なく、プログラムを書くときのメモ書きのようなものです。
/* と */ で文を挟むと挟んだ部分はコメントとなります。
// をつけるとその後ろの部分が1行だけコメントになります。
#code(cpp){{
/*
コ
メ
ン
ト
*/
//コメント
}}
コメントは変数などの説明を書いたり一時的に使わない行を残したままにしておくことができます。特に、説明は自分だけでプログラムを作る場合でもなるべく書くようにしましょう。
**条件分岐 [#sc602138]
***if [#y2276540]
意味通りもし〜ならという意味で使います。基本的な使い方は、
if(条件式){
//条件式が真であった場合の動作
}
となります。
また、その下に、
else if(条件式){
//条件式が真であった場合の動作
}
と書くと上のifが「偽」かつこの条件式が「真」である場合に{}の中の動作に入ります。さらに、if,else ifの下に、
else{
//動作
}
と書くとif,else ifですべて「偽」であった場合に{}の中の動作に入ります。
例
#code(cpp){{
if(a>100){
//aが100より大きい場合
}
else if(a>50){
//aが100以下で、50より大きい場合
}
else if(a>0){
//aが50以下で、0より大きい場合
}
else{
//aが0以下の場合
}
}}
***switch [#r854dfc0]
switch(式){
case 1:
//式が1の場合の動作
break;
case 2:
//式が2の場合の動作
break;
default:
//式が上のcaseにない場合の動作
break;
}
使い方としてはこんな感じです。式には整数型、文字型の変数もしくは定数のみを入れられます。
ある場合においてifよりもswitchの方がきれいに書くことができますが、すべてifでも書けるのでifだけ覚えておけば大丈夫です。
**繰り返し [#t90c4a8f]
同じような事を繰り返す場合、繰り返し文が使えます。
***for [#x10ec8dc]
for(初期化式; 継続条件式; 再初期化式){
繰り返したい動作
}
で使えます。実際には、
#code(cpp){{
for(int i=0;i<10;++i){
//繰り返し文
}
}}
のように書けば、i=0を代入して始まり、一回繰り返すごとに++iされ、i<10を満たさなくなったら繰り返しから抜けます。
***while [#pc02e029]
forの他にもう一つ、whileという繰り返しもあります。
while(継続条件式){
繰り返したい動作
}
と書きます。上の例と同じ動作にするには、
#code(cpp){{
int i=0;
while(i<10){
//繰り返し文
++i;
}
}}
となります。
forとwhileどちらでも書けますが、その時使いやすいほうを使いましょう。
*関数 [#td436e0c]
数学の関数
#tex(f(x)=x^2)
を思い浮かべてもらうのが速いと思います。
つまり、いくつかの変数(引数という)を受け取り、何かした後、一つの変数を返します(戻り値または返り値という)。
#code(cpp){{
int func(int x){
return x*x; //返す値
}
int main(){
int a=10;
int b;
b=func(a); //a(=10)を渡すとaの二乗が返ってくるのでそれをbに代入
}
}}
このように関数を定義する場合、
''戻り値の型'' 関数の名前(''引数の型 変数名,引数の型 変数名, ...''){
この関数が呼ばれた時の動作
''return'' 戻り値の型と同じ変数など;
}
と書くことで定義することができます。
関数の名前は変数同様、いくつかの決まりに従い、好きな名前を付けられます。
また、引数や戻り値を持たない関数もあります。
その場合、void型を使います。
引数や戻り値を持たない関数の例
#code(cpp){{
void func(void){
DrawString(100,100,0xffffff,"Hello!"); //座標(100,100)に白文字で「Hello!」と表示
return;
}
int main(){
func();
}
}}
以前、動作テストのためにコピーしてもらったコードの中のDrawPixel(100,100,0xffff)なども関数のひとつです。
ここら辺はゲーム制作というよりプログラミングの基礎なので、このページで分からないという方はC++言語入門で検索するといろんなところで教えてくれます。
*おまけ [#ac026a87]
-プログラミングの練習をしたいけどいい問題がない、という人は下のページにある問題を解いてるといいんじゃないかな。
http://judge.u-aizu.ac.jp/onlinejudge/
#comment
終了行:
#contents
今回はプログラミングの基本となる部分である変数、関数あたりをやっていきます!
*変数 [#da2214af]
変数とは、さまざまな数字や文字のデータを入れておく「箱」のようなものです。
変数を使いたいときは初めに、
''(装飾子) 変数の型 (装飾子) 変数名 (=初期値)''
を書くことで使えるようになります。
変数の型とは大雑把にいうとその箱は整数か、小数か、文字なのかを決めるものです。
下の表はその型の一覧です。
|型 |内容|内容例 |補足|
|int |整数|1,123,-72|小数を入れようとすると小数点以下が切り捨てられる|
|float |実数|-12.345000 | |
|double |実数|上と同じ |こちらはfloatより大きな値を扱える。計算もこちらの方が速いようなので、小数を扱うなら、floatよりdoubleがおすすめ|
|char |文字|'a','!','1' |ここでの1は整数の1とは意味が違うので注意|
|bool |真偽値|true, false |「真」「偽」の二択だけのデータを扱う場合この型を使うと分かりやすい|
変数の名前は「英数字と一部記号のみ」「名前の先頭に数字は使えない」「予約語(void,int,returnなどと同じ名前)は使えない」などいくつか決まりはありますが、おおよそ自分の好きな名前で作れます。
例
#code(cpp){{
int a; //整数型aを宣言
char moji='N'; //文字型mojiを宣言して初期値としてNを代入
}}
変数は同一スコープ内であらかじめ宣言しなければいけません。
#code(cpp){{
int a; //{}の外でaを宣言
if(...){
a=10; //使ってOK!
}
}}
#code(cpp){{
if(...){
int a; //{}の中でaを宣言
}
a=10; //ここでは使えないのでエラー!
}}
*基本的な演算子 [#o442d892]
**四則演算 [#j60e41c5]
+,-,*,/
一般的な四則演算です。(*は×、/は÷の意味)
また、普通の計算式と同じように *,/ は +,- よりも優先して計算されます。
**剰余(モジュロ) [#zcf241cf]
%
割り算のあまりを求めます。
**インクリメント,デクリメント [#q1d2a997]
++,--
整数型の変数に対して++を付けると1増え、--を付けると1減ります。
変数の前につける(前置)か後につける(後置)かで処理が異なり、
前に付けた場合は、値が加算(減算)されてから使われ
後に付けた場合は使われた後に加算(減算)されます。
**代入 [#a906262b]
=
右辺を左辺へ代入します。''等式ではありません''。
つまり、
a=a+1
はaにa+1を代入しろという意味で書くことができます。(++aと同じ意味)
**比較 [#f20fe17b]
==, !=, <, >, <=, >=
この演算子の右辺と左辺を比較する演算子です。これは後に出てきますが、条件分岐ifや繰り返しwhileなどと一緒に使います。
-==は右辺と左辺が等しいならば「真」
-!=は右辺と左辺が等しくないならば「真」
-<は右辺が左辺よりも大きいならば「真」
-<=は右辺が左辺以上ならば「真」
となります。
==(比較)と=(代入)はよく書き間違えるので注意!!
**論理AND,OR [#s6f7e17b]
&& ||
上の比較と一緒に使うことが多いです。
たとえば、
a==b && c==d
はaとbが等しい、かつcとdが等しいならば「真」
a<0 || a>100
はaが0より小さい、または100より大きいならば「真」
ということになります。
*構文 [#b6465ca2]
**コメント [#n6a6ed9b]
コメントとは、プログラムの動作には一切関係なく、プログラムを書くときのメモ書きのようなものです。
/* と */ で文を挟むと挟んだ部分はコメントとなります。
// をつけるとその後ろの部分が1行だけコメントになります。
#code(cpp){{
/*
コ
メ
ン
ト
*/
//コメント
}}
コメントは変数などの説明を書いたり一時的に使わない行を残したままにしておくことができます。特に、説明は自分だけでプログラムを作る場合でもなるべく書くようにしましょう。
**条件分岐 [#sc602138]
***if [#y2276540]
意味通りもし〜ならという意味で使います。基本的な使い方は、
if(条件式){
//条件式が真であった場合の動作
}
となります。
また、その下に、
else if(条件式){
//条件式が真であった場合の動作
}
と書くと上のifが「偽」かつこの条件式が「真」である場合に{}の中の動作に入ります。さらに、if,else ifの下に、
else{
//動作
}
と書くとif,else ifですべて「偽」であった場合に{}の中の動作に入ります。
例
#code(cpp){{
if(a>100){
//aが100より大きい場合
}
else if(a>50){
//aが100以下で、50より大きい場合
}
else if(a>0){
//aが50以下で、0より大きい場合
}
else{
//aが0以下の場合
}
}}
***switch [#r854dfc0]
switch(式){
case 1:
//式が1の場合の動作
break;
case 2:
//式が2の場合の動作
break;
default:
//式が上のcaseにない場合の動作
break;
}
使い方としてはこんな感じです。式には整数型、文字型の変数もしくは定数のみを入れられます。
ある場合においてifよりもswitchの方がきれいに書くことができますが、すべてifでも書けるのでifだけ覚えておけば大丈夫です。
**繰り返し [#t90c4a8f]
同じような事を繰り返す場合、繰り返し文が使えます。
***for [#x10ec8dc]
for(初期化式; 継続条件式; 再初期化式){
繰り返したい動作
}
で使えます。実際には、
#code(cpp){{
for(int i=0;i<10;++i){
//繰り返し文
}
}}
のように書けば、i=0を代入して始まり、一回繰り返すごとに++iされ、i<10を満たさなくなったら繰り返しから抜けます。
***while [#pc02e029]
forの他にもう一つ、whileという繰り返しもあります。
while(継続条件式){
繰り返したい動作
}
と書きます。上の例と同じ動作にするには、
#code(cpp){{
int i=0;
while(i<10){
//繰り返し文
++i;
}
}}
となります。
forとwhileどちらでも書けますが、その時使いやすいほうを使いましょう。
*関数 [#td436e0c]
数学の関数
#tex(f(x)=x^2)
を思い浮かべてもらうのが速いと思います。
つまり、いくつかの変数(引数という)を受け取り、何かした後、一つの変数を返します(戻り値または返り値という)。
#code(cpp){{
int func(int x){
return x*x; //返す値
}
int main(){
int a=10;
int b;
b=func(a); //a(=10)を渡すとaの二乗が返ってくるのでそれをbに代入
}
}}
このように関数を定義する場合、
''戻り値の型'' 関数の名前(''引数の型 変数名,引数の型 変数名, ...''){
この関数が呼ばれた時の動作
''return'' 戻り値の型と同じ変数など;
}
と書くことで定義することができます。
関数の名前は変数同様、いくつかの決まりに従い、好きな名前を付けられます。
また、引数や戻り値を持たない関数もあります。
その場合、void型を使います。
引数や戻り値を持たない関数の例
#code(cpp){{
void func(void){
DrawString(100,100,0xffffff,"Hello!"); //座標(100,100)に白文字で「Hello!」と表示
return;
}
int main(){
func();
}
}}
以前、動作テストのためにコピーしてもらったコードの中のDrawPixel(100,100,0xffff)なども関数のひとつです。
ここら辺はゲーム制作というよりプログラミングの基礎なので、このページで分からないという方はC++言語入門で検索するといろんなところで教えてくれます。
*おまけ [#ac026a87]
-プログラミングの練習をしたいけどいい問題がない、という人は下のページにある問題を解いてるといいんじゃないかな。
http://judge.u-aizu.ac.jp/onlinejudge/
#comment
ページ名:
サイト内を検索
AND検索
OR検索
操作メニュー
サークル情報
†
名称
東北大学文化部登録団体
東北大学マイコンプロシージャ
部室
川内北キャンパス内
川内サークル部室棟 4階
416号室
設立
1979年4月1日
(45年前)
活動内容
ゲームの制作・発表等
(
詳細
)
連絡先
こちら
↑
Twitter
†
@micom_procedure からのツイート
このウェブページについて
ここを編集
コンテンツ
†
トップページ
マイコンプロシージャとは?
公開中の作品
その他の作品
資料室
情報室
リンク
部内向けページトップ
最新の20件
2023年05月25日
ContactUs
2022年11月03日
公開中の作品/2021年度新入生プロジェクト/Gravity-Lost
公開中の作品/2021年度新入生プロジェクト/はるさがし
2021年12月13日
公開中の作品/2021年度新入生プロジェクト/落単・タイム・アタック!
公開中の作品/2021年度新入生プロジェクト/神社からの脱出
RecentDeleted
公開中の作品/2021年度新入生プロジェクト/THE Unexpected Fighting Operation
公開中の作品/2021年度新入生プロジェクト
2021年12月03日
公開中の作品/2020年度新入生プロジェクト/城熊
公開中の作品/2020年度新入生プロジェクト
2021年07月18日
公開中の作品
ProcGameJam9
Inneer/C++_const
2021年04月18日
公開中の作品/2020年度新入生プロジェクト/CrossFade
2021年04月17日
2021年度新歓情報
公開中の作品/2020年度新入生プロジェクト/TeamC no game
2021年04月07日
ようこそ
公開中の作品/2020年度新入生プロジェクト/トキノカダイ
2021年04月04日
2020年度新歓情報
2020年09月15日
ProcGameJam10
ここを編集