<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/ankundora/">
    <title>プログラミング @ wiki</title>
    <link>http://w.atwiki.jp/ankundora/</link>
    <atom:link href="https://w.atwiki.jp/ankundora/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>プログラミング @ wiki</description>

    <dc:language>ja</dc:language>
    <dc:date>2011-11-08T18:52:02+09:00</dc:date>
    <utime>1320745922</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/ankundora/pages/27.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ankundora/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ankundora/pages/38.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ankundora/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ankundora/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ankundora/pages/37.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ankundora/pages/35.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ankundora/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ankundora/pages/30.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ankundora/pages/21.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/ankundora/pages/27.html">
    <title>変数</title>
    <link>https://w.atwiki.jp/ankundora/pages/27.html</link>
    <description>
      **「変数」のページです

ゲームなどを作るのであれば変数は必要不可欠でしょう

#highlight(c){{
#include &lt;stdio.h&gt;

int main()
{
	int a = 1;

	printf(&quot;a = %d です\n&quot;,a);

	return 0;
}
}}

実行結果

#image(http://www.fastpic.jp/images/006/6610802456.png)

この場合、「a」が変数にあたります

&amp;bold(){変数}
#highlight(){あるデータを保管しておいて、使いたいときに呼び出せるもの}

変数の利点は「自分の分かりやすい名前を付けることが出来る」ということです（但し特殊文字や定数は駄目です）

流れは、

「int a = 1;」で変数を宣言し（簡単に言うと作るということです）

「[[printf]]関数」で画面に出力しています


まず「int a = 1;」から見ていきます

もう気付いてるかもしれませんが

ここでは「a」を宣言するだけでなく「a」に「１」を代入（保管するようなことです）しています

なので[[Ｃ言語]]では「=」は等号ではなく「代入」を意味します


最初の「int」は「データ型」と言い、その変数の「データ型」を指定します

なぜそんなことをしなければいけないかと言うと&amp;bold(){実数(小数)より整数の方が単純であり、処理がはやい}、というような事があるからです

つまり、整数のデータしか扱わないのに、実数のデータ型を使う、ということになると&amp;bold(){処理の無駄}になってしまう、と言うことです

変数の宣言は
#highlight(c){
データ型　変数名;}
です

あれ？と思ったかもしれません

例のソースコードでは「データ型　変数名」のあとに続き、つまり代入部分があります

そう、変数は宣言と代入を同時にできるのです

その場合は「代入」とは言わず、「初期化」といいます


また、変数を同時に何個か宣言するときは

#highlight(c){int a,b,c … ;}

とします

データ型（VisualStudioWiki引用）
|データ型	|サイズ|	意味|	範囲|
|bool	|1Byte	|論理型	|true(0以外) / false(0)|
|char	|1Byte	|文字型	|-128 ～ 127|
|unsigned char	|1Byte	|符号なし文字型	|0 ～ 255|
|wchar_t	|2Byte	|ワイド文字型	  |-|
|short (int)	|2Byte	|短長整数型	|-32768 ～ 32767|
|unsigned short (int)	|2Byte	|符号なし短長整数型	|0 ～ 65535|
|int	|4Byte	|整数型	|-2147486948 ～ 2147483647|
|unsigned (int)	|4Byte	|符号なし整数型	|0 ～ 4294967295|
|long (int)	|4Byte	|長整数型	|-2147486948 ～ 2147483647|
|unsigned long (int)	|4Byte	|符号なし長整数型	|0 ～ 4294967295|
|float	|4Byte	|単精度浮動小数点型	|-3.4E+38 ～ 3.4E+38|
|double	|8Byte	|倍精度実数	|-1.7E+308 ～ 1.7E+308|
|long double	|8Byte	|拡張精度浮動小数点型	|-1.7E+308 ～ 1.7E+308|　
|__int8	|1Byte 	|拡張整数型	|-128 ～ 127|
|__int16	|2Byte 	|拡張整数型 	|-32768 ～ 32767|
|__int32	|4Byte	|拡張整数型	|-2147483648 ～ 2147483647|
|__int64	|8Byte	|拡張整数型	|-9223372036854775808 ～ 9223372036854775807|
|void	|0Byte	|空のデータ型 	| -|


次に「printf関数」を見てみます

printfで画面に文字を出力しているのですが、

なぜ「a = %d」と書いてあるのに画面では「a = 1」となっているのでしょうか

理由は「%d」にあります

「%d」のようなものを「書式文字」といい、文字列に変数などのデータを入れることが出来ます

この場合の書き方は
#highlight(c){printf(&quot; 書式文字 &quot; ,変数);}

これによって書式文字のところに変数が出力されます

また、２つ以上の変数を出力したいときは
#highlight(c){printf(&quot; 書式文字１　書式文字２・・・&quot;,変数１,変数２・・・);}

とします

書式文字
|書式文字|内容|
|%d・%i|１０進数の整数|
|%f|１０進数の実数|
|%u|符号無し１０進数の整数|
|%o|８進数の整数|
|%x|１６進数の整数|
|%c|文字コードに対応した文字|
|%e|指数|
|%s|文字列|
|%p|メモリアドレス|



では、ソースコードをこう書き換えてください
#highlight(c){{
#include &lt;stdio.h&gt;

int main()
{
	int a = 1;

	int b = 2;

	b = a;

	printf(&quot;b = a = %d です\n&quot;,b);

	return 0;
}
}}

実行結果
#image(http://www.fastpic.jp/images/778/9837474051.png)


順番に追っていきます

最初に「int a = 1;」でデータが「１」の変数aを、

「int b = 2;」でデータが「２」の変数bを宣言、初期化します

次の「b = a;」がポイントです

まず、これによって

「右側の値」が「左側の変数」に代入されている、ということを押さえて下さい

今回は右側の値というのは「変数a」にあたります

つまり&amp;bold(){変数は数字と同じように扱える}という事です


ポイントを見る前にprintfのところを見てみましょう

「printf(&quot;b = a = %d です\n&quot;,b);」

これは「b = a = bの値」と、画面に出力していることになります

画面には「b = a = 1」と書いてあるので

bの値が「１」ということです


bは初期化したときは内容が２だったのに何で？！

というと、その後に書いてある「b = a;」によって「b」に「aの値」、すなわち１が代入されているわけですが、

初期化したときの２はどこにいったんだ、ということになります


なんと、「b = a;」をしたとき、「bの値」は２が上書きされて１になったんです


代入と言うのは今まであった値を上書きして新しい値を入れる、ということが分かったと思います










変数には、有効範囲があります

それは、スコープ（中カッコの中）です

サンプル
#highlight(c){{
例

if()
{
       int a;

       if{
                 int b;

       }     //変数「b」の有効範囲はここまで

}　　　//変数「a」の有効範囲はここまで
}}    </description>
    <dc:date>2011-11-08T18:52:02+09:00</dc:date>
    <utime>1320745922</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ankundora/pages/16.html">
    <title>用語辞典</title>
    <link>https://w.atwiki.jp/ankundora/pages/16.html</link>
    <description>
      **プログラム用語辞典

他の言語と被った用語が出てきた場合はそのすべてに言語の種類を書いておいてください

***あ

----
***い
-&amp;link2(インクルード文,http://www45.atwiki.jp/ankundora/pages/21.html)

----
***う

----
***え
-&amp;link2(エスケープシーケンス,http://www45.atwiki.jp/ankundora/pages/20.html)

-演算
#highlight(){計算処理の事}

-演算子
#highlight(){演算を表す記号}

----
***お
-&amp;link2(オブジェクトファイル,http://www45.atwiki.jp/ankundora/pages/21.html)

-オペランド
#highlight(){演算の対象となる値のこと}

----
***か
-&amp;link2(拡張子,http://www45.atwiki.jp/ankundora/pages/15.html)

-&amp;link2(関係演算子,http://www45.atwiki.jp/ankundora/pages/31.html,,)

----
***き

***く

***け

----
***こ
-コマンドプロンプト
#highlight(){
文字入力による「コマンド」という命令を使って、さまざまな処理を行う。 コマンドはキーボードから入力することで実行され、実行結果は文字として画面に表示される。
「スタート」→「すべてのプログラム」→「アクセサリ」→「コマンドプロンプト」で起動できる}

-[[コメント]]

-&amp;link2(コンパイル,http://www45.atwiki.jp/ankundora/pages/21.html)

----
***さ

***し

***す

***せ

----
***そ
-&amp;link2(ソースファイル,http://www45.atwiki.jp/ankundora/pages/19.html)

----
***た

***ち

***つ

----
***て
-[[定数]]

-&amp;link2(デバッグ,http://www45.atwiki.jp/ankundora/pages/21.html)

----
***と

***な

***に

***ぬ

***ね

***の

----
***は
-&amp;link2(バグ,http://www45.atwiki.jp/ankundora/pages/21.html)

----
***ひ
-&amp;link2(ビルド,http://www45.atwiki.jp/ankundora/pages/21.html)

----
***ふ
-フォア文
&gt;[[for文]]

-フォー文
&gt;[[for文]]

-プリプロセッサ命令
#highlight(){
コンパイルの前に行われる処理のこと
インクルード文や定数定義などがあり、「＃」から始まる}

-プリントエフ
&gt;[[printf]]

----
***へ
-[[変数]]

----
***ほ
-ホワイル文
&gt;[[while文]]

----
***ま

***み

***む

***め

***も

***や

***ゆ

***よ

***ら

----
***り
-&amp;link2(リンク,http://www45.atwiki.jp/ankundora/pages/21.html)

----
***る

***れ

----
***ろ
&amp;link2(論理演算子,http://www45.atwiki.jp/ankundora/pages/31.html,,)

----
***わ
-ワイル文
&gt;[[while文]]

----
***を

***ん

----

***A

----
***B
-.bmp
#highlight(){
ビットマップ形式の画像データファイルに付く拡張子のこと}

----
***C
-.cpp
#highlight(){
C++(plus plus)のソースコードに付く拡張子の事}

----
***D

----
***E
-&amp;link(else文){http://www45.atwiki.jp/ankundora/pages/29.html}

-.exe
#highlight(){
WindowsやMS-DOSなどで標準的に用いられる実行ファイル形式に付く拡張子のこと}

----
***F
-[[for文]]

----
***G

***H

----
***I
-[[if文]]

----
***J

***K

***L

***M

***N

----
***O
-.obj
#highlight(){
オブジェクトファイルの拡張子のこと}

----
***P
-[[printf]]

----

***Q

***R

***S

----
***T
-.txt
#highlight(){
テキスト形式のファイルで標準的に用いられる拡張子のこと}

----

***U

***V

----
***W
-[[while文]]

----
***X

***Y

***Z

----
***￥
-&amp;link2(￥n,http://www45.atwiki.jp/ankundora/pages/20.html)    </description>
    <dc:date>2011-11-05T21:01:33+09:00</dc:date>
    <utime>1320494493</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ankundora/pages/38.html">
    <title>四則演算</title>
    <link>https://w.atwiki.jp/ankundora/pages/38.html</link>
    <description>
      **「四則演算」のページです


#highlight(c){
}    </description>
    <dc:date>2011-11-03T23:10:50+09:00</dc:date>
    <utime>1320329450</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ankundora/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/ankundora/pages/2.html</link>
    <description>
      **メニュー
-[[トップページ]]
-[[メニュー]]
----
**プログラミング
#region(close,[[Ｃ言語]])
[[Ｃ言語]]
-[[はじめに]]
-[[準備]]
#region(close,[[基本]])
[[基本]]
-[[基本　準備]]
-[[基本　基本事項]]
-[[プログラムの流れ]]
-[[printf]]
-[[コメント]]
-[[変数]]
-[[定数]]
-[[if文]]
-[[関係・論理演算子]]
-[[四則演算]]
-[[for文]]
-[[while文]]
#endregion

#region(close,[[応用]])
[[応用]]
#endregion

#region(close,[[DirectX]])
[[DirectX]]
#endregion

[[Ｃ言語　掲示板]]
#endregion

#region(close,[[java]])
[[java]]
#endregion

[[用語辞典]]

----
[[編集について]]

[[history]]

[[掲示板]]

合計：&amp;counter()
今日：&amp;counter(today)
昨日：&amp;counter(yesterday)
トップページの合計：&amp;counter(total, page=トップページ)

----
#search()

----

//**更新履歴
//#recent(20)


&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2011-11-01T21:00:47+09:00</dc:date>
    <utime>1320148847</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ankundora/pages/18.html">
    <title>基本</title>
    <link>https://w.atwiki.jp/ankundora/pages/18.html</link>
    <description>
      **「基本」のページです

「基本」ではコマンドプロンプトを使います

#contents(,option=word)

***[[基本　準備]]
プログラムを始める前にしておく事です
要修正　準備の追加

***[[基本　基本事項]]
プログラムをする前に覚えておくことです
要修正　基本事項の追加

***[[プログラムの流れ]]
どうやってプログラムが実行されているのかの説明です

***[[printf]]
画面への出力です

***[[コメント]]
プログラムを分かりやすくするためのメモです

***[[変数]]
データの入れ物です
修正中

***[[定数]]
編集中
要修正　定数の種類の追加

***[[if文]]
条件分岐です

***[[関係・論理演算子]]
プログラムをより複雑な動きにするために

***[[四則演算]]
編集中

***[[for文]]
ループに使います

***[[while文]]
編集中    </description>
    <dc:date>2011-11-01T21:00:05+09:00</dc:date>
    <utime>1320148805</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ankundora/pages/37.html">
    <title>while文</title>
    <link>https://w.atwiki.jp/ankundora/pages/37.html</link>
    <description>
      **「while文」のページです

while文は[[for文]]と同じループに使いますが、微妙に違うところがあります

#highlight(c){{
}}    </description>
    <dc:date>2011-10-28T23:25:55+09:00</dc:date>
    <utime>1319811955</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ankundora/pages/35.html">
    <title>for文</title>
    <link>https://w.atwiki.jp/ankundora/pages/35.html</link>
    <description>
      **「for文」のページです


for文は指定した処理を決められた数だけループさせるのに使います

#highlight(c){{
#include &lt;stdio.h&gt;

int main()
{
	for(int i = 0; i &lt; 5; i++){
		printf(&quot;%d回目のループです\n&quot;,i);
	}

	return 0;
}
}}


実行結果
#image(for文.PNG)


for文は中カッコ内の処理を決められた回数だけ実行します

#highlight(){{
書き方

for(初期化;条件式;次のループへの処理){
       ループさせる処理
}
}}

大抵は「初期化」のところで変数を宣言し、その変数に何度目のループかということを記録しておきます

なので「次のループへの処理」のところで　＋１　をします

また、「条件式」が真（０以外）の時に中カッコ内の処理が実行されます

流れを書くと、


①for文へ到達
　　　↓
②「初期化」
　　　↓
③「条件式」（真だったら下へ、偽だったら⑥へ）
　　　↓
④処理の実行
　　　↓
⑤「次のループへの処理」（③に戻る）

⑥for文から脱出


となっています

#highlight(c){
大抵の書き方

for(int i = 0;i &lt; ループしたい回数;i++);
}




サンプルコードでは変数「i」を[[printf]]関数で使っています

「i」はfor文の中で宣言されているとしても、ひとつの変数にかわりはありません

なのでfor文の中であれば、その変数を使うことが出来ます    </description>
    <dc:date>2011-10-26T20:41:24+09:00</dc:date>
    <utime>1319629284</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ankundora/pages/1.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/ankundora/pages/1.html</link>
    <description>
      **プログラミング@ウィキへようこそ!
&gt;プログラム全般の参考サイトです
&gt;プログラム＠ウィキでは編集者を募集しています!

&amp;mobile(){このサイトはPC向けに作られています　携帯では見にくい場所があります}
プログラミング@wikiはプログラムに関する情報を追加、修正するサイトです

編集をする場合は、「[[編集について]]」に書いてあることを理解した上で行なってください    </description>
    <dc:date>2011-10-12T00:47:55+09:00</dc:date>
    <utime>1318348075</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ankundora/pages/30.html">
    <title>基本　基本事項</title>
    <link>https://w.atwiki.jp/ankundora/pages/30.html</link>
    <description>
      **「基本　基本事項」のページです


ここではプログラムを始める前に覚えておきたいことが書いてあります


***プログラムの流れ

プログラムは&amp;bold(){基本的に上に書いてある処理から順に実行されていきます}

あくまで基本的になので例外もありますが、

これが分かっていないと何もできないので気を付けてください

----

***四則演算

プログラムでは
×（掛け算）・・・*（アスタリスク）
÷（割り算）・・・/（スラッシュ）

あまり・・・％（パーセント）
　　　　例　１１ ％ ３ ＝ ２　（１１÷３＝３あまり２）

になります    </description>
    <dc:date>2011-10-02T14:44:51+09:00</dc:date>
    <utime>1317534291</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ankundora/pages/21.html">
    <title>プログラムの流れ</title>
    <link>https://w.atwiki.jp/ankundora/pages/21.html</link>
    <description>
      **「プログラムの流れ」のページです

まずはこのプログラムを入力してみましょう
#highlight(c){{
#include &lt;stdio.h&gt;

int main(){
	printf(&quot;Hello World\n&quot;);

	return 0;
}
}}

そしたら&quot;Ctrl&quot;+&quot;F5&quot;を押してください


#image(http://www.fastpic.jp/images/156/6635517994.png)


こう表示されたと思います

まず、ソースコードから実行ファイルが作られる事を「ビルド」と言います

また、ビルドはだいたいは「コンパイル」と「リンク」で出来ています

-コンパイル
#highlight(){
ソースコードを、コンパイラをつかって人間が読みやすいコンピューター言語から
コンピュータ上で実行可能な形式（オブジェクトファイル）に変換すること
}

-オブジェクトファイル
#highlight(){
機械語(コンピュータのCPUが直接実行できる言葉)で書かれたコード
}

-リンク
#highlight(){
オブジェクトファイルやライブラリをリンカしてまとめ、実行可能ファイルにすること
}

-ビルド
#highlight(){
コンパイルやリンクをしてソースコードを実行可能ファイルにすること
}

また、Visual C++の上の方に「デバッグ」というところがあります

見てみると今回行った&quot;Ctrl&quot;+&quot;F5&quot;は「デバッグなしで開始」というのに対応していることが分かると思います

-デバッグ
#highlight(){
プログラムの誤り(バグ)を探すこと
}

「バグ」とは英語で虫という意味です

今、「デバッグ開始」を選ぶとウィンドウがすぐに閉じてしまうので「デバッグなしで開始」にしています


では、ソースコードを見ていきます

#highlight(c){
注意：プログラムは「 &quot; ～ &quot; 」の中など以外は半角文字しか使いません

　　　なのでもし全角スペースを使ってしまったらエラーになり、

　　　見つけ出すのに苦労してしまうので気を付けてください
}



プログラムの基本の基本となることがあります

それは&amp;bold(){基本的に、ソースコードの上から実行されてゆく}

ということです

これを分かっていないとプログラムができないので、注意してください



#highlight(c){
#include &lt;stdio.h&gt;
}

この部分は「インクルード文」といいます

-インクルード文
#highlight(){
「include」とは「含める」という意味で
ソースファイルの先頭などで、別のソースファイルなどを読み込み利用できるようにする機能のこと
}

この場合は「[[printf]]」というものを利用できるようにするために「stdio.h」と言うものを読み込んでいます

「studio」ではなく「stdio(スタンダード(標準) アイオー(Input Output　入出力)」なので間違えないようにしてください

また、「#include」のように「#」で始まるものを「プリプロセッサ命令」と言います

では次を見てみましょう

#highlight(c){{
int main(){
	printf(&quot;Hello World\n&quot;);

	return 0;
}
}}

int main()はプログラムのメイン部分であり、このなかで色々な処理が行われます

そのままですね

中括弧の間( {～} )が「int main()」の内容、つまりメイン部分となります

printfは次の「printf」でreturnは今度説明します

今回は難しい言葉が沢山出て来ました

まだ無理やり全部覚えようとしなくていいので、流れだけ覚えておいてください    </description>
    <dc:date>2011-10-02T14:41:22+09:00</dc:date>
    <utime>1317534082</utime>
  </item>
  </rdf:RDF>
