パソコンの理論は正しいけど、いろいろと失敗するんだ。
int result = 100;
int counter = 0;
while(TRUE)
{
counter++;
if (result = 0)
{
break;
}
result--;
}
printf("Yes, [while loop] end! counter:%d \n", counter);
while文は条件を満たさない限り、ずっと同じ処理を繰り返し行う。
最初100でスタート。1ずつ引いていくと
100, 99, 98, ...... , 2, 1, 0, -1 , -2 .....
0を必ず通るはずだ。0を通ったら終了!
しかし・・・待てど暮らせどWhile文から抜けない!?
『私の最後のメッセージは無視されたのか?(泣』
誤:if (result = 0)
正:if (result == 0)
このミスは初心者時代は意外と大丈夫だ。
しかし熟練してきて驕りが発生すると起きてしまうのだ。
『先生、最近タイピングが早すぎです。』
意外とタイピングが早くて凄そうに見えるがビビるべからず。
ゆっくりタイピングしている貴方の方が遥かに効率的でっせ。
While文では、いつも正しい理論が飛び交っているのだ。
常に正しい理論は常に同じ結果しか生まない。
パソコンにはそれが分からないんだよ。
パソコン自体に創造性は2005年現在は皆無!
ロボットも兵器も、まだまだIF文やWhileで状態監視が関の山。
いやあ・・・安心したね!(笑
おまけ要素として、修正後の最後のメッセージを見てみようじゃないか。
counter値は見事に101という結果が出る。
100回やって終わりじゃないんかい?
『違うのかよー・・・じゃあcounterの初期値を-1にするか・・・』
いいや、counterの更新場所が不適切なのさ。
記述場所をWhile文の最後に持ってこよう。
100という結果になるはずだ。こういう所よく間違えるよなあ(−^−;
少し長くなった・・・最後まで読んでくれた方に感謝(苦笑
投稿者:Bystenderat 02 :08
| 日記
| コメント(2 )
| トラックバック(1 )
計算伝言
int Tashizan(int a, int b);
//-------------------------------------
void main()
{
int result = 0;
for (int i=1; i<=100; i++)
{
result = Tashizan(i, result);
}
printf("結果は %d \n", result);
}
int Tashizan(int a, int b)
{
return (a + b);
}
//-------------------------------------
1から100まで足すと5050。そりゃ皆知ってるさ。
プログラムではどんな風に?まあ、頑張って書くとだな。
result = 1+2+3+4+5+6+・・・98+99+100;
そりゃしんどい。書いているウチに間違えてしまうじゃないか(笑
そこで関数を使うのだ。
『ヘイ、値2つ渡すからそれを足し算してくれ。
結果でき次第、俺に返事くれ。頼んだよ。』
それがTashizan関数だ。一番簡単な型を書いてみたつもりだ。
分かりにくい場合は遠慮なく叩いてくれ(苦笑
ミソは「関数内の引数値」と「左辺の値」に同じ変数が用いられている所だ。
これは慣れないとできっこない部分である。
でも足し算ならきっと皆出来るはずさ。これ、やってみて!
投稿者:Bystenderat 00 :50
| 日記
| コメント(0 )
| トラックバック(0 )
文字列で大抵最初やっちゃう(初期化)
char string[100];
string[0] = 'Y';
string[1] = 'e';
string[2] = 's';
string[3] = ' ';
string[4] = 'I';
string[5] = ' ';
string[6] = 'd';
string[7] = 'o';
string[8] = '.';
string[9] = '\n';
printf("%s", string);
ようし、これで間違いなく『Yes I do.』と表示されるはずだ・・・GO!
『Yes I do.
フフフフフフフフフフフフフフフフフフフフフフフフフ』
笑われてしまった!?バカにされた(TT;
実は初期化をしていないとネィテイブコードでは初期化されないのだ。
初期化とは最初にやるべき処理の話です。何でも最初が肝心ってね。
スポーツにしろ、雑談会話にしろ、人との繋がりにしろ・・・
最初って意外と大事なもんですな。プログラミングとて例外ではないのだ。
char string[100] = "";
これで初期化が行われるんだ。100個のcharには全て0値が入る。
初期化、お膳立て、前準備、どんな表現でも良いので覚えておこうや。
投稿者:Bystenderat 02 :26
| 日記
| コメント(0 )
| トラックバック(0 )
もしも・・・お悩みの方
int result = 0;
if ( 0 == result)
{
printf("YES, normal location.");
}
else if ( 1 == result)
{
printf("Sorry, but the location is baaad.");
}
else
{
printf("Haha, Your choice is illigal...");
}
この文章で行くとまずはresultが0か1だと自分の思ったとおりの場所。
0:予想通りですな(−^−
1:間違った内容ですぜ(w
それ以外:知らん。とにかくお前の設定が悪い。
実際の所switch , caseの文法でまとめてしまった方が
スタイリッシュなのだが・・・やはりココは初心者が大前提!
まずは『もしも・・・』ってのがプログラムの基本中の基本。
もしもが増えてきたらresultの値を2だったら・・・3だったら・・・
あるいは-1、−2だったら、と負の数でも拡張可能ですな。
投稿者:Bystenderat 00 :33
| 日記
| コメント(0 )
| トラックバック(0 )
割り算と余り
int i = 0;
int result = 0;
for (i=0; i<10; i++)
{
result = i % 2;
if (result == 0)
{
// 偶数の時の処理
}
else
{
// 奇数の時の処理
}
}
偶数と奇数の分け方は%演算子で余りを出して判別してみようぜ。
これさえ分かれば、for文の幅が広がる感じがするだろう。
投稿者:Bystenderat 00 :16
| 日記
| コメント(0 )
| トラックバック(0 )
プログラミングの例を書こうじゃないか
プログラミングと言うと・・・言語の仕組み、パソコンの特徴、ハードウェアの構成
ロジック、何かいろいろあるんですわ。で、何か書いてみたい事と言えば『ロジック』ハードウェア特性、言語制約、環境設定、そういうの全部抜きで。
後はやっぱりお気楽さをアピールしたい。コテコテの簡単なものしか書いていかないつもりだ。難しい〜〜〜ことやりたくない。ではスタートスタートなり(笑
<足し算する>
int a = 10;
int b = 30;
int result = 0;
result = a + b;
つまりこれでresultは40になる。
足し算は簡単だ。全ての基礎。
投稿者:Bystenderat 01 :23
| 日記
| コメント(2 )
| トラックバック(1 )
| 1 /1 ページ