どうも、だいぶ慣れてきたですかね。
前回は文字の表示とか標準ライブラリとかについて
ちょっとゆっかせたですね。

今回はいよいよ計算するプログラムば書こうて思います。
Vol.004あたりでちょろっと変数とかデータ型の話ばしたばってが
そん変数ば使います。
じゃあ早速書いてみゅーかね。
#include <stdio.h>

int main(void)
{
int a;
a = 100;
printf("a=%d\n", a);
return 0;
}
プログラム名は「ampro005.c」とでもしてみようかて思います。
で、コンパイルばしてみてください。
もうコマンド書かんちゃよかでしょもん?
gcc ampro005.c -o ampro005
ですね。

・・・おんも甘かですなぁw

そんなら、できたampro005.exeば実行してみてください。
a=100
って表示されたて思います。
ここでまたわからん表記と関数の出てきたですね。
まずint a;ばってん、これはint型の変数ばaっていう名前で作る(宣言)しとるとです。
int型についてはVol.004で説明しとるとおり、16ビットか32ビットの数値ば扱えるって
書いとります。

環境によって違うばってが、まぁ大体32ビットが多かて思います。
16ビットは大昔ん環境でしょうな、見たこつはなかです。
64ビット環境なら64ビットの場合もあったりするかもしれんです。
なんせ、intがそん環境が一番扱いやすかサイズにさるるこつん多からしかけんですね。

で、次ですばってがa = 100;です。
一般の数学的な式でいけば、「aと100は等しい」っていう意味になるばってが
C言語では(ていうか多くの言語では)ぎゃん書き方ばした場合は
a100代入するって意味になっとです。
ようは=の右側ん値ば左側ん変数aに入れるとたな。

そして新しゅー出てきた関数printfです。
こんも文字ば表示する関数ばってんが、色々とフォーマット指定して
表示んでくっとです。

まずプログラムば実行して表示されるa=100ばってが、
ここはどん部分になるかって言えば
"a=%d\n"の部分がそれに該当すっとです。
a=っていうとはそんまま表示されてわかるばってんが、%d\nって一体何のこつかい?
って思うですね。

こっはですね、%d\nの2つに分けられるとです
(ていうかこん例ではたまたま2つ連続で並んどるだけです)
まず%dの方ば説明すっですね。

これは「数字ば10進数で出力する」っていう意味になっとです。
改めて見てみゅーかな。
printf("a=%d\n", a);
カンマで区切ってaっていうとの指定されとるですね?
こんaっていう変数の値ば%dの所に10進数で表示ばするごつなります。
aには100の代入されとるけん100と置き換わって表示されとるですね。
aん所は変数じゃなくてもよかけん、aって書かずに下んごて
直接、値ば100って書いても同じごつ表示されます。
printf("a=%d\n", 100);

ちなみにこん%dはカンマで区切った所の値ば表示すっとばってが、
複数書くこつんでくっとです。
たとえば
printf("a=%d そして%d\n", a, 999);
ぎゃん書いたらどげんなるかって言えば
次んごて表示さるるです。
a=100 そして999

左側から順番にカンマで区切った値に展開されていくとです。
一番左の%da、つまり100が代入されとるけん100
そん次の2番目の%daの後にカンマで区切って直接999って
数字の書いてありますね、こん直接書いてある数字が置き換わっとです。

だけんぎゃんふうに書けば複数の数字ば1回のprintfで表示でくるごつなっとです。

あと、ぎゃん感じで桁数指定もでくっとですよ。
例えば10000100って表示させたか場合は%05dって書けばよかです。
もし%5dって書いたら  100って感じで頭ゼロじゃなくて空白で揃えらるるです。

ちなみに%dは数字ば10進数で表示するって書いたばってが、他にも色々あって
16進数で表示する場合%xとか8進数なら%oとか、文字なら%cとか文字列なら%sとか
あるです。
それ以外にも色々あるとばってが、それはそん時使う場合にゆっかしゅーて思います。

何でぎゃんこつせなんかっていうたら、putsの引数はint型じゃなかけん
数字とかint型変数ば直接書いてもエラーになっとは当然やっとです。

さて、次ですばってが\nってなんじゃろかい?
って話ですね。
これは改行ば表しとっとです。

さっきのプログラムばぎゃんふうに\nば取っ払ってコンパイルして実行してみてください。
#include <stdio.h>

int main(void)
{
int a;
a = 100;
printf("a=%d", a);
return 0;
}
こっが\nば取っ払う前
ampro005-02¥1
で、こっが\nば取っ払った後
ampro005-02
改行のいっちょ少なかでしょ?
ちなみにputsで出力した時はどぎゃんだったでしょうか?
ampro002-01
画像の使いまわしばってが、改行入っとりますね。
putsは自動的に改行ば入れてくるるとです。

だけん、printfで書く場合とputsで書く場合は注意せんばぎゃん違いのあっですよ。
#include <stdio.h>

int main(void)
{
puts("あいうえお");
puts("かきくけこ");
return 0;
}
こん場合の表示は
あいうえお
かきくけこ
って表示さるっとばってが、
#include <stdio.h>

int main(void)
{
printf("あいうえお");
printf("かきくけこ");
return 0;
}
こん場合は
あいうえおかきくけこ
って改行されずに出てくるです。
putsと同じごつ表示させるには
#include <stdio.h>

int main(void)
{
printf("あいうえお\n");
printf("かきくけこ\n");
return 0;
}
って感じで\nば書いてやる必要のあっとです。
ちなみにputs\nば入れたらどげんなるて思うですか?
#include <stdio.h>

int main(void)
{
puts("あいうえお\n");
puts("かきくけこ\n");
return 0;
}
ぎゃん感じです。
あいうえお

かきくけこ

putsは改行入れんでも改行の入っとるとに
更に\nば入れたら改行のもういっちょ入るとです。

必ず行末に書かんばつまらんってわけでもなかけん
ぎゃん感じにも書けるとです。
#include <stdio.h>

int main(void)
{
printf("あ\nい\nう\nえ\nお\n");
return 0;
}
出力結果はどげんなるかは想像どおりです。
ですね。
ちなみにC言語系の言語ではこん\マークは特殊文字として
扱われるとです。

こん改行も\nって表記するですよね?
ぎゃんふうに\で始まる特殊な文字んこつば
エスケープシーケンスって言うとです。
一応、覚えとってください。忘れてもよかですけど。

ちなみに半角の¥(円)マークは環境によっては\(バックスラッシュ)で
表示される環境もあるとばってが、それは環境の違いなだけで
文字コード0x5cならどちらで表示されようが問題はなかっです。
ただ、表示が違うだけで内部は同じだけんですね。
あなたの環境で\nは「¥n」と「\n」どっちに見ゆっですか?

これで一通り変数の中ば表示さする方法のわかりましたけん、
実際に計算ばしてみゅーかて思います。
そんならさっき作ったプログラムばぎゃんふうに書き換えてみてください。
#include <stdio.h>

int main(void)
{
int a;
a = 100;
a = a + 5;
printf("a=%d\n", a);
a = a - 10;
printf("a=%d\n", a);
a = a * 15;
printf("a=%d\n", a);
a = a / 15;
printf("a=%d\n", a);
a = 5 + 15 * 3 - 10 / 2;
printf("a=%d\n", a);
return 0;
}
んで、コンパイルして実行してみます。
ampro005-03
ぎゃん出力されます。
いっちょいっちょ順番に見ていこうて思います。
まずいっちょ目のa=105ですね。
これは最初、a=100でaに100の代入さるっですね。
そして次にa = a + 5ってあるばってんが、
これはa+5の結果ばまたaに代入せろって意味です。
aは100の代入されとるけん、そん100に5ば足せば105ですね。
で、そん105になった結果の表示されとるとです。

2番目ばってんが、a = a - 10って書いてあります。
これはもうわかるて思うばってんが、a-10の結果ば
aに代入せろって事です。
aはこん時点で105やけんか、105から10ば引けば95になって
そん95ばaに代入してから表示させとるけんa=95って表示されます。

3番目はa = a * 15ってなっとります。
「*」は何かっていうと掛け算の「×」の意味です。
Windowsん電卓ばみて下さい。×じゃなくて*になっとるですね。
大抵のプログラミング言語では掛け算ば*で表すとです。
だけん*は×って思とってもらえればよかです。
ちなみに「*」の読み方は何ていうか知らん人おりますか?
「じごんす」じゃなかですよ、似とるばってが。
これは「アスタリスク」って言うとです。
ばってんが、天草んしーなら「じごんす」で通じるて思います。
・・・と、じごんすはどげんでんよかですばってが、
ようはaが95やけん95×15になるっちゅーことですね。
そん答えばaに代入して表示しとるわけやっけんが、
そん答えの1425が表示されとるとです。

4番目はa = a / 15ばってがもう察してくれらすですね。
*が×なら/は÷です。
/は「スラッシュ」ていうとです。
こん時点でのaの値は1425やけんそっば15で割れば95になっですね。
まぁ、15掛けて15で割るけん元に戻るだけばってが。
で、そればaに代入して表示しとるけん、95の表示されとるですね。

5番目ばってが、これは今までんaは関係なしに数式ば書いてあるですね。
5 + 15 × 3 - 10 ÷ 2
の計算結果ばaに代入して表示しとるだけです。
計算すれば45やけん45て表示されとるですね。

ところで、
こん答えは45じゃなくて25じゃろもん!
・・・って思ったしーは小学生からやり直さんばつまらんですよw
小学生の時なろたはずです
「掛け算と割り算は足し算と引き算より先に計算します」って
思い出したですか?
C言語でも計算の順序はきちんと決まっとるとです。
もし、わがおもとるごたる順番で計算させたかなら算数と一緒で
()カッコばつければよかです。
a = (((5 + 15) * 3) - 10) / 2;
こっで、aの値は25になっですね。

どぎゃんでしょうか?
こっが算術演算子ば使った計算式の書き方です。

四則演算以外にも色々と演算子のあっとばってが、
それもおいおい紹介していこどもとります。

そんなら今回はこの辺で。
今回で5回目になっですね。
さて今回は何ばすっとやったかきゃー忘れたけん
前回書いた記事ば見らんばつまらんですなw

じゃったじゃった、文字ば出力したとやったですね。
そんプログラムがこれです。
int puts(const char* str);

int main(void)
{
puts("Hello,Work天草");
return 0;
}

このputsっていう関数ばってんが、どこにも処理の実体ば書いとらんとに
なんでコンパイルん時にエラーにならんかって話です。

まずぎゃんふうにプログラムば書いてみて下さい。
int puts(const char* str);

void hellowork(void)
{
puts("Hello,Work天草");
}

int main(void)
{
hellowork();
return 0;
}
プログラムの名前は「ampro003.c」とでもしゅーかぃ。

保存したらコンパイルばしてみてください。
コンパイルの方法はわかっですね?
今回までは書くですばい。
gcc ampro003.c -o ampro003

さて、出来上がったプログラムば実行してみましょうかぃ。
ampro003.exeって打てばよかですね

Hello,Work天草
って表示されたって思います。

どぎゃんなっとるかって言えば、プログラムの実行されたら
main関数から始まるって言うたですよね?
で、プログラムは基本的に上から下さん流れるけんまずにmain入ったら
今度はhelloworkっていう関数ば呼び出すごつ書いてあるけん
こん関数の呼ばれます。

で、helloworkの関数の中さん入って(ひゃあって)行って、puts関数ば呼び出して
文字ば表示すっとです。

そしたら次は何もなかけんhelloworkの関数ば抜けて呼ばれた所に戻るとです。
helloworkから戻ってきたら次はreturn 0;mainば抜けて
プログラムの終了すっとですね。

ほんならもういっちょプログラムば作ってみましょうかい?
次のごつ書いてみて下さい。
int puts(const char* str);

void hellowork(void)
{
puts("Hello,Work天草");
}
プログラムは「amlib003.c」にしてみましょうかね。

そしてさっき作った「ampro003.c」もぎゃんふうに書き換えてみてください。
void hellowork(void);

int main(void)
{
hellowork();
return 0;
}

そしてコンパイルばすっとですばってんが、
今回はこんソース2つば使ってコンパイルばしていっちょのexeば作ります。
コンパイルの仕方ばってんが、ぎゃん入力します。
gcc ampro003.c amlib003.c -o ampro003

今回はいつもと違うけん画像ば載せときます。
ampro003-01
新しく作ったソースばいっちょ追加(赤線の所)してコンパイルしました。
で、同じごと実行したら上んごつHello,Work天草って出ますね。

ぎゃん感じでソースファイルば分けて書けるとですね。
そんかわり、main関数は全部の中で1つしか書いたらつまらんです。
あっちゃこっちゃmain関数ば書いたらどんmain関数から開始してよかか
わからんけん、コンパイルでけんです。
また、main関数ば書かんなら「どっからスタートすっとかわからん!」って
これまたコンパイルエラーになるですばってんが。

そもそも、C言語では同じ名前ん関数は1個しか作られんとです。
だけんmain関数も1個しか書けんとは当然やけん。
C++はオーバーライドとか名前空間とかのあるけん同じ名前の
関数ば条件付きで作りはさるるばって、こりゃC言語じゃけんですね。

んで、何の言いたかかって言えば、hellowork関数はmain関数のある
「ampro003.c」にプロトタイプしか宣言しとらんですね。
実際に処理ば書いた(実装したて言う)とは「amlib003.c」で書いとるです。

だけん、コンパイルしたら最終的に「amlib003.c」のhelloworkば見つけて
呼び出せるごつしてexeのでくっとです。

だけん、色々関数ば別のソースファイルに書いて、そん関数ば
他のプログラムでも使えるもでくっとです。
そぎゃん感じで関数ば集めて再利用でくるごつしたとばライブラリって
言うたりします。

ばってんが、putsとかはどこにも実装ば書いてなかですよね?
実はこんputsはC言語のコンパイラに付属しとる標準ライブラリっていう
ライブラリの中にある関数のひとつで、自動的に実装された部分のふっついてくるとです。
だけん、コンパイルしたらそん関数の実装部分ば見つけてきてからexeの出来あがっとですね。

標準ライブラリば使わんで画面に文字ば表示するにはものすごめんどくさかけんやっとれんとです。
だけん、そげんよー使うごたっとば標準ライブラリにしてコンパイラとセットにしてあっとですね。
標準ライブラリは「こういう名前の関数で引数はこうで、戻り値はこうでこういう結果を返す」
っていうとが決められとるけんが、コンパイラとか環境の変わっても標準ライブラリの関数なら
同じごつ書いておなじごたる結果の得られるとです。

だけん、標準ライブラリ自体は別にC言語の機能じゃなかっですよ。
他の言語は文字ば出力する機能の言語自体についとったりする場合のあるばってんが
C言語だけでは画面に文字ば出力するとか、ファイルば操作するっていう機能はもっとらんとです。
そげん機能ばC言語だけで作るとは、やおいかんばってが標準ライブラリの関数ば使えば
簡単に操作でくるごつなるとです。

じゃばってんがですよ、プロトタイプば書かんばいきなり関数ば書いたっちゃ
コンパイラはわかってくれんとです。
いきなり何の宣言もなか関数ば使うとば許してくれんけんです。

なんかこんgccはプロトタイプ宣言なかったっちゃ標準関数は
いきなり関数書いてもコンパイル通るごたんね・・・
ほ、本当ならつまらんはずです!!(そぎゃんふうにして話ば進めます)

で、いっちょいっちょ標準関数のプロトタイプば書くとのめんどくさかですよね?
そこで、そぎゃん標準関数のプロトタイプ宣言ば一気にしてしまう方法のあっとです。
次んごつプログラム書いてください。
#include <stdio.h>

int main(void)
{
puts("Hello,Work天草");
return 0;
}
ソースの名前は「ampro004.c」でよかです。

ここで見慣れんとのまた出てきたですね。

#include <stdio.h>
こりゃ何かっていうと、
stdio.hっていうファイルん中身ばコンパイルすっときにここに展開せろ」
っていう意味です。
こん.hの拡張子のファイルは何かって言えば、ヘッダーファイルっていうて、
関数のプロトタイプとか定数とか色々書いてあるファイルです。
だけん、コンパイルん時にここに書いてある内容の展開されるけん
わざわざ自分で関数のプロトタイプば書かんでよかっです。
putsのプロトタイプもこん中で宣言してあるはずです。

興味んあるならMinGWばインストールしたフォルダん中ば探してみてください。
「stdio.h」っていうファイルのどっかにあるですよ。
同じ名前んとの何個かあるかもしれんばってが、そんうちんどれかが展開さるるはずです。
テキストエディタで開けばプロトタイプとかの宣言のよんにゅ書いてあるです。
そんかわり間違ってもファイルは修正せんごつしてください!
勝手に修正したらおかしくなる可能性のあるけんですね。
そこにあるファイルは絶対に変更したらつまらんファイルです。

ちなみにstdioは「標準入出力」の「Standard Input/Output」を略して
「stdio」になっとるんじゃなかろうかって思います。
他にも文字列操作用の関数の宣言されとるstring.hや時間関連の操作のできるtime.h
とか、色々ありますばってんが、それはまた順次紹介していくごてします。

さて、これで晴れて入門書の最初に書かれとるであろう所に立ちました。
入門では最初、こん#include <stdio.h>おまじないとか紹介してある場合も
あったりすっとですが、そぎゃんわけあるかいwwwって思った事のあったもんで、
わざわざぎゃん回りくどくちっとずつ説明ばしたとです。

これからは標準ライブラリば使ってプログラムば書いて行きます
(標準ライブラリんなからんば始まらんけん)

ちなみにHello,Work天草って表示するampro004のプログラムはDOSプログラムばってんが
Windowsプログラムとして書けばぎゃん感じでしょうかね。
(これもC言語ですばい)
#include <windows.h>
#include <tchar.h>

int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,
LPTSTR lpCmdLine, int nShowCmd)
{
MessageBox(NULL, TEXT("Hello,Work天草"),
TEXT("雇用促進祈願"), MB_OK);
return 0;
}
プログラムは「amwin01.c」にしてみました。

コンパイルするには-mwindowsっていうオプションばつけんばんです。
ampro003-02

実行したらぎゃんメッセージの出ます。
ampro003-03


全然標準関数ば使っとらんですね?ていうか最初はわけくちゃわからんですよね?
C言語でWindowsプログラミングする場合はWindowsAPIっていうとば使います。
そん基本的なヘッダがwindows.hです。
また、main関数じゃなくてWinMain関数(_tWinMain)から始まります。
ここではMessageBox関数がWindowsAPIになるですね。

C言語によるWindowsAPIプログラミングは最初にとっかかるには敷居が高すぎだけん
まずは、地味にコンソールプログラミング(今しよるやつです)からしたがよかです。

もっと手軽にWindowsプログラム作りたかならC#とかVB.netとかいろいろあるけん
そっちば選んだ方が幸せになれるて思うです。
それらはめんどくさかWindowsAPIば覆い隠してくるっけんC言語に比べれば
非常に生産性のよかです。

おまけとして他の言語で「Hello,Work天草」ば出す場合ば書いてみました。
ぎゃん感じでしょうかね?

Perl
#!/usr/bin/perl
print "Hello,Work天草\n";
exit;

PHP
<?php
        echo "Hello,Work天草\n";
?>

Java
class Hello{
public static void main(String args[]){
System.out.println("Hello,Work天草");
}
}

Javascript
<html><head></head><body>
<script type="text/javascript">
<!--
document.open();
document.write("Hello,Work天草");
document.close();
// -->
</script>
</body></html>

色々と言語はあるばってんが、書き方の違うでしょ?

ばってんが、見てんとおり、文法自体はC言語に近かとです。
多くの言語はC言語の文法ば基本にしとるこつの多かけん
C言語ば覚えとくと他ん言語も覚えやすかて思います。
文法だけじゃなくてポインタの概念も知っとるとと知らんとじゃ
全然違うけんですね。(ポインタについてはまだ先で説明ばします)

今回で5回目で、毎回説明のわかりづらかて思うばってんが、
わからん部分は質問ばしてくれろばわかる範囲で答えるけんですね。
わからんともググッて調べてみます。(わが勉強にもなるし)

そんならば、今回はこの辺で。
こんばんわ。
朝んしーはおはようございます。
昼んしーはこんにちわ。

前回は何もせんプログラムば作ったですね。
一通りプログラムば書いて、コンパイルして、
実行するっちゅー手順がどぎゃん感じかわかったでしょうか?

コンパイルする時はコマンドプロンプトで
gcc ソースファイル -o 作成する実行ファイル
って打てば、コンパイルされて、エラーのなからんば
実行ファイルのできるとですね。

ここらへんのイメージばわかりやすくするごつ画像ば使って
説明ばしてきたばってんが、今後は画像はあんま使わんごてして
説明します。(あんぐらいしかせんけん画像なしでも、えった変わらんて思います)

そんなら、前回のプログラムば説明していきます。
int main(void)
{
	return 0;
}

こっはですね、関数て呼ばれるもんです。
関数っちゅーとは数学とかでも聞いたこつあるて思うとばってんが、
プログラミングで言う関数は簡単に言えば「処理を一まとめにしたもの」
って事になっとです。

C言語は関数の中に処理ば書いてそれば他ん関数から呼び出して
組合わせて行く感じになっとです。

関数の構文ばってんがぎゃん感じになっとるです。

戻り値の型 関数名(引数の型)
{
  処理の内容
}

前回のプログラムの例でいけば、
intが戻り値の型、mainが関数名、voidが引数の型ってなっとります。
そして、C言語は実行された時、一番最初にmain関数の呼び出されるとです。
つまり、前回こんプログラムば実行した時もmainが呼ばれよったとです。

そして処理の内容ばってんが、return 0; ってなっとるですね。
これは、こん関数から0ていう数字ば返して関数ば抜けるぞ!って言う意味です。
C言語はmain関数ば抜けたらプログラムの終了するとです。

さて、もういっちょわからんとのあっですね?
intって何?って。

これは戻り値の型ば表しとるとですが、型って何な?って思うですよね。

C言語には基本的なデータ型のあって、変数っていう数字ば入れる入れ物ば
作れるとばってんが、そんときどんぐらいの
大きさにするかっていうとが型によって変わってくっとです。
で、基本的な型はぎゃんとのあります。

char  ・・・ サイズは最低でも1バイト(8ビット)、
         扱える数値の範囲は1バイトなら-128~127
short ・・・ サイズは概ね2バイト(16ビット)、正式にはshort intばってintは省略可。
         扱える数値の範囲は2バイトなら-32768~32767
int   ・・・ サイズは2か4バイト(16か32ビット)、
         扱える数値の範囲は4バイトなら-2147483648~2147483647
long  ・・・ サイズは4か8バイト(32か64ビット)、正式にはlong intばってintは省略可。
         扱える数値の範囲は8バイトなら-9223372036854775808~9223372036854775807

ってなっとるとばってんが、処理系によってサイズとか符号の有り無しの違う場合のあるけん
気をつけとった方がよかですよ。
ちなみにMinGWのサイズば調べたらぎゃんなっとったです。
ampro002-02


他にもfloatとかdoubleとかいう浮動少数型のあるとばってんが、あんまいっぺんにしたっちゃ
わけんわからんごてなるけん、それはまた別ん機会に説明しますけん。

例えばint num;
って書いたら、「int型の数値を入れられるnumって言う数値の入れ物ば作ったばい!」
ってなります。

で、戻り値ならばintの値ば返すけん、その範囲の数字ならば0じゃなくても返せるとたな。
ただし、main関数の戻り値は0が正常終了で0以外は異常終了みたく扱う場合の多かけん
どげん数値ば戻すかは空気読めなって事ですw

こん型の前にunsignedってつければ符号無しば表して、マイナスの値が扱えん分、
プラスの値の方がようけ扱えるようになっとです。
例えば2バイトのunsigned shortならば、-32768~32767じゃなくて
0~65535までの扱えるごつなるとです。

ちなみにunsignedではなくて、signedっていうともつけられます。
これは省略した場合とほぼ同じで符号のあるぞって言う意味です。
だけん、intsigned intは同じ扱になっとたな。
ばってんが、charだけは処理系依存になって
省略したらunsignedだったりsignedだったりするけん確実にどっちにしたかかば
決めるならばsigned charとかunsigned charとか明確に書いてやれば間違いなかった。

で、引数の型のvoidって何や?
って思わすかもしれんばってが、こんvoidっていうとは空虚(なんもなか)っていう意味で
引数は何もいらん!って意味です。

戻り値ばvoidにするごつもでくっとですよ。
戻り値ば返さんならよかだけの話じゃけん。
そんかわり、voidっていう型の変数は作れんです。
なんもなかわけやっけんw
ポインタは別ばってんが。。。それも今後説明するごつしますけん。


で、ごちゃごちゃわかりにくくなったけんmain以外の関数も作ってみようて思います。
では、ぎゃんふうにプログラムば書いてみてください。
void amakusa(void)
{
}

int main(void)
{
	amakusa();
	return 0;
}

プログラム名は「ampro002.c」とでもしゅーかい。
そっばコンパイルしてみます。
コンパイルはコマンドプロンプトで
gcc ampro002.c -o ampro002
でよかったですね。
もちろん、前回作った場所と同じ所に保存しとかんばんですよ。

で、出来上がったampro002.exeば実行してください。
コマンドプロンプトでampro002.exeって入力すれば実行でくるですね(.exeは省略可)

また何も表示されんですね。
(何かを表示する処理ば書いとらんけん当然ばってが)
でもコンパイルはきちんとされとるです。
前回と変わった部分はわかるですか?
amakusaっていう関数ば作って呼び出しとるですね。
呼び出し方は関数名(引数)っていう書き方ばってが、引数はvoidで
何もなかけん()だけ書いとります。
で、命令の終わりに必ず;(セミコロン)のついとるですね。
これもC言語の決まりで、ステートメント(一連の命令)の終わりには必ずセミコロンば
つけんばつまらんとです。

さて、amakusaっていう関数の中身は何も書いてなかですよね。
だけん何もせん関数になります。

じゃあ、こんプログラムばぎゃんふうにmainとamakusaば入れ替えて
コンパイルしてみてください。
int main(void)
{
	amakusa();
	return 0;
}

void amakusa(void)
{
}
どぎゃんなったですか?
なんじゃいWarning(警告)の出たですね。
何でかって言うたら関数ば呼び出しとる所より前に関数の定義されとらんけんです。
通常ならエラーになってexeは作られんとばってんが、最近のgccは
えらい気の聞いとるですね、何かexe作られたですw

ばってんが、本来は後方参照できん言語やけん、ぎゃん書き方はつまらんとです。

ばってん関数の処理は下ん方に書いたり別のファイルに処理内容ば書いたりして
上ん方でそん関数ば呼び出したか時のあっとです。

そぎゃん場合にはどげんするかって言えば、呼び出す前に
そん関数の形ば一旦宣言しとってやればよかとです。

プログラムんアタマにいっちょぎゃん感じで追加してみてください。
void amakusa(void);

int main(void)
{
	amakusa();
	return 0;
}

void amakusa(void)
{
}

で、コンパイルしてみてください。
何もエラーの出んごつなったでしょ?
これは関数の処理ば書かんで関数の型だけ書いたもんです。
こればプロトタイプっていうとですばってんが、これのあるおかげで
コンパイラが「amakusaって名前の関数は別ん場所で処理内容ば書かれとるとばいな」
って感じで処理ばしてくれて、実際に関数の本体ば見つけたらそれば呼び出すごつして
コンパイルしてくれるとです。えらかですね。

だけんぎゃん感じで関数の実体ば消してしまえば
void amakusa(void);

int main(void)
{
amakusa();
return 0;
}
「関数の実体の見つからん!」っていう
エラーば吐いて、コンパイルエラーになっとです。

さて、なごなごなったですね、そんじゃいよいよ文字ば表示してみましょうか。
プログラムばぎゃんふうに書き換えてください。
int puts(const char* str);

int main(void)
{
puts("Hello,Work天草");
return 0;
}

Hello,Worldじゃなかですよ、「ハローワーク」ですw
天草で雇用が増える事ば願ってそぎゃんしましたw

で、こればコンパイルして実行してみてください。

ぎゃん感じで文字が表示されましたか?
ampro002-01

ぎゃんなれば成功です。

はて、それにしてもputsっていう関数の実体はどこにも書いとらんですね?
何でコンパイル通ったとでしょうか?
そりゃまた次回にちょっと説明ばしますけんね。
さて、MinGWもインストールしてテキストエディタもインストールして
今回からいよいよプログラムば書いて行くけんですね。
サクラエディタばインストールしたしーは、使い方慣れたですか?

そんなら、最初にふさわしか拍子抜けのプログラムば書きたいと思います。
言葉の言語も日本語とか英語とかあるばってんが、プログラミングの
言語も色々あって、それぞれ書き方の違うとです。

今回はC言語ばっていうことで、C言語のルール(文法)に沿って
プログラムば書いて行きます。

まず、テキストエディタば開いて次んごつ書いてください。
(別にメモ帳でっちゃよかですよ)
int main(void)
{
	return 0;
}

return 0;の所の前の空白は半角スペースかタブです。
間違っても全角スペースは入れんごつしてください。
C言語の構文の決まりですけん。
入れるスペースとかタブの数は別に決まっとらんけん好きんごつどうぞ。

こりゃ参考画像です。
ampro001-01

なるべくコピペせんごつ、わがで入力するごつした方がよかですばい。

そしたら、書いたプログラムば保存します。
ファイル名はampro001.cとでもしましょうかい。

最初のMinGWのインストールん最後に、コマンドプロンプトば
フォルダ作ってコピーしたて思いますが、書いたプログラムは
そこに保存するごつしてください。
そん方が作業のしやすかけんです。

※ファイル名は半角英数字で拡張子は「.c」で保存するごつしてください。
ampro001-02

保存したプログラムのアイコンばってんが、こりゃ環境によって違うけん
これとは違うアイコンになっとる可能性のあるですよ?
ウチんPCにゃVisual Studioっていうとの入っとるけんぎゃんアイコンになっとるだけですけん。

よかですか?
保存したらテキストエディタは×で閉じてください。

じゃあこればコンパイルします。
MinGWのインストールの最後にコピーしたコマンドプロンプトの
アイコンのあっですよね?(そこと同じフォルダに保存したプログラムは入れとりますか?)

そしたらコマンドプロンプトば起動して次んごつ入力してください。
ampro001-03

gcc ampro001.c -o ampro001

です。
入力したら[Enter]ば押してみて下さい。

しばらくしてぎゃん風に何もメッセージの出らんでキーボード入力ば
受け付けるごつなったら成功です。
ampro001-04


もし、次んごたるエラーの出たら書いたプログラムば開いたまんまにしとらんか
確認してみてください。
サクラエディタなら排他制御ばせんごつ設定できるけんそこば「しない」にすれば
開いたままっちゃよかて思います。
ampro001-05
その他、エラーが出たら入力したコマンドが間違っとらんか、プログラムがまちがっとらんか
確認してみてください。
プログラムのおかしかなら、コンパイラが何行目のおかしかてゆっかせてくれるはずです。


プログラムのコンパイル(ビルド)に成功したらみてんど、exeファイルんできとるです。
(登録された拡張子の表示ばせんごつしとるなら.cも.exeも表示はされんばってが)
ampro001-06
今回作った拡張子の「.c」のプログラムば書いたファイルば「ソースコード」とか
「ソースファイル」とか言います。
単純に「ソース」とか「コード」って言う場合もあっですけどね。

で、出来上がった「.exe」のファイルは実行ファイルとかロードモジュールとか言います。
実際に実行できるプログラムんこつです。

そんならさっそくこん出来上がったプログラムばいごかしてみたかて思います。
「ampro001.exe」ばダブルクリックして実行してみてください。

・・・

・・・・・・

・・・どぎゃんですか?
何か表示されたですか?

おそらく一瞬だけ黒いウィンドウの開いてすぐ閉じたて思います。
何て表示されとったかわからんですよね?

そんならわかる所で実行します。
コンパイルしたコマンドプロンプトは開いとるですよね?
そこで次んごつ出来上がったプログラム名ば入力してみて
[Enterば押してみて]下さい。(.exeは省略してもよかですよ)
ampro001-07


・・・何も表示されんですね?

そりゃそぎゃんです。
こりゃ何もせんで、じき終了するプログラムやけん当然です。

これが最初のプログラムですばい。
入門書とかにゃ最初は大抵「Hello,World」とかの文字ば出力するとがのっとるばってんが
文字ば表示するとは、次回に今回作ったプログラムば説明してから
文字の表示に進むごつします。

なんさま、いっぺんにしたっちゃ覚えきらんけん(おっがそぎゃんやけん)
せしこーてせんごつ、ちっとずつ進めます。

そんなら、また次回に!
こんばんわ、前回は開発環境ば作ってもろたばってんがどぎゃんやったでしょうか?
もし「わけくちゃわからん!」って人のおらすなら、遠慮せんで質問ばしてください。
おっが知っとる範囲でならお答えしますけん。
Windowsで話ば進めますばってんが、macんしーもプログラミングばしたかならば
Xcodeっていうアプリばインストールすればgccの使わるるごつなるらしかですばい。
詳しくは知らんけん、わがで調べてくださいw

んなら始めます。
今回は「テキストエディタ」っていう類のソフトばインストールします。
Windowsに標準でついとる「メモ帳」もテキストエディタです。
そんなら何でわざわざインストールすっとかって言うと、メモ帳はおろいかシンプル過ぎて
プログラム書くとにゃ機能の少なかけん、もっと機能のよかテキストエディタば使うごつします。
(別にメモ帳でもよかっですばい)

じゃ、どれがよかかって話ばってんが、こりゃ好みのあるけん、わが好きんとば使えな。
・・・って言うたら知らんしーは困らすけん一応オススメば書けば「秀丸エディタ」です。

ばってんが、困った事にこん秀丸エディタは有料ソフトやけんライセンスば購入せんばつまらんとです。
ライセンスは4200円ぐらいで消費税の上がれば値上がりするって話やけん買うなら今です。
(ステマじゃかですよw)

ばってんが、全機能ば無料でお試しとして使えるけん無料で使ってみて気に入れば
買うてもよかて思います。銭ば払おごんなかならアンインストールすればよかけんですね。
詳しくは「秀丸エディタ」でググってみてみらっせばよかです。

まぁ、さすがにガッツリこっで仕事するっちゅー人じゃからんばわざわざ銭払うて買うまでは
しゅーごんなかでしょうけん、フリーソフトば今回は紹介します。
Linux使いとかん人はどうせviとかemacsば使わすですもんね?

で、フリーのテキストエディタもようけあっとばってん、有名かつが「サクラエディタ」です。
多分これが有名て思います。

そんならそんサクラエディタばダウンロードします。

まず、http://sakura-editor.sourceforge.net/download.htmlば開いてみて下さい。
そしたらV1(ANSI版)とV2(Unicode版)ってあると思います。
どっちがよかかって言われたら、今時Win95/98/Meは使っとるしーはおらっさんど?
だけんV2のUnicode版ばダウンロードしてください。
sakura01


日本で開発されたけんMinGWの時と違って日本語でわかりやすかでしょ?
だけん説明は端折りますばってが、わからんならコメントば書いてくれろば
わかる範囲で答えます。


そしたらダウンロードしたsinst2-x-x-x.exeば実行してください。
(xの部分はバージョンで変わるて思います)

インストールするっちゃけん、これは「はい」でよかですね。
sakura02



Vista以降んしーは毎度ながらこれの出たら「はい」ば押して実行してください。
sakura03



こりゃ迷わず「次へ」でよかですね。
sakura04


インストール先ば指定すっばってんが特にこだわりのなかならそんまま「次へ」
sakura05



こりゃとりあえずそんままにして「次へ」
sakura06



1台のPCばユーザー切り分けて何人かで使いよるならわがで決めればよかです。
自分しか使わんならどぎゃんでんよかです。
わからんなら、書いてあっですね、親切でよかですなw
sakura07



別にそんままでよかけん「次へ」
sakura08



ここは個人の好みで好きんごつしてよかです。
決めたら「次へ」
sakura09



変更すっとなら「戻る」で戻って変更して、こっでよかなら「インストール」ば押す。
sakura10



インストールの始まるけんちょっと待っとけばよかです。
sakura11


終わったら「完了」です。
sakura12


後は起動して使ってみてください。
ショートカット作っとらんなら、インストール先のフォルダーば開いて
sakura.exeば起動すればよかです。

設定とかようけあるばってんが、その辺はわがで弄って好きんごつ設定してください。

※サクラエディタの画面(使いよればじき慣るっど)
sakura13

今回はここまでです。

次回からよよんこてプログラムば書いていこうて思いますけん
よろしくお願いします。
前へ  5 6 7 8 9 10 11 12 13 14  次へ ]      97件中 41-45件