Kazukiの同人3DRPG制作【第二話】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001Kazuki
2010/09/19(日) 04:46:22ID:6P+qj1XKttp://www.kazuki-sendo.com/game/
発展途上中の素人Kazukiを中心として
DirectX9による3DRPG制作に挑戦します。
開発言語は、C++です。
長く苦しい戦いになると思われますが、
同人ゲーム制作の限界への挑戦が、当企画のテーマでもあります。
0873名前は開発中のものです。
2010/09/22(水) 03:21:52ID:uXUhUOYT0874名前は開発中のものです。
2010/09/22(水) 03:22:15ID:KlyUHZKS1.1
2.空白(スペース)
3.A
4.空白(スペース)
5.e
6.n
7.i
8.f
9.e
10.d ←ここまで読んで、ようやく「define」であることを理解
11.# ←ここまで読んでようやく「呼び出すんだね?ラジャー!」
何度も失礼・・。
0875名前は開発中のものです。
2010/09/22(水) 03:23:33ID:a9eeuuzq0876名前は開発中のものです。
2010/09/22(水) 03:24:58ID:ZhuFa4Bc# で始まる行であることをまず認識しないとプリプロセッサが動けないんだが
0877名前は開発中のものです。
2010/09/22(水) 03:26:08ID:ZhuFa4Bcその指摘は見えないようになってるらしい
0878名前は開発中のものです。
2010/09/22(水) 03:26:19ID:8Kfyr4O9「数学の式や関数って、プログラムで使う式や関数とは別物だから混同しないほうがいいよw
同じなのは見た目だけw」
0879名前は開発中のものです。
2010/09/22(水) 03:26:49ID:uXUhUOYTまさか読んだ上で言ってるの?
0880名前は開発中のものです。
2010/09/22(水) 03:29:56ID:8Kfyr4O9カズキくんみたいに自分の知ってることだけでC++を理解しようとすると勘違いするから
前もって言ってくれてたのね
0881名前は開発中のものです。
2010/09/22(水) 03:31:18ID:ZhuFa4Bcごく簡単なものでいいから一度でもパーサを書いてみてから語って欲しいものだ
0882名前は開発中のものです。
2010/09/22(水) 03:33:46ID:KlyUHZKSじゃあ、寝るわ。
0883名前は開発中のものです。
2010/09/22(水) 03:34:10ID:jq8AzszGはい、説明して!
0884名前は開発中のものです。
2010/09/22(水) 03:34:38ID:uXUhUOYTいつも通りだね
0885名前は開発中のものです。
2010/09/22(水) 03:35:15ID:ZhuFa4Bc0886名前は開発中のものです。
2010/09/22(水) 03:35:39ID:h9k+fC0i1.# ←プリプロセスっすね 準備するっす
2.d
3.e
4.f
5.i
6.n
7.e
8. ←defineっすね?ぱねぇww使いすぎ
9.T ←マクロ名っすか "T"
10,E ←Eっすね "TE"
11. N ← N "TEN"次は?
12. ←途切れたんで"TEN"でいいんすね
13. 1 ←代入は"1"・・・と
14.0 ←0、後は? "10"
15.\n ←おk、"TEN"って識別子を"10"に変えるんすね、覚えとくっす
僕のdefineちゃんはこんな感じ
0887名前は開発中のものです。
2010/09/22(水) 03:37:02ID:uXUhUOYTどっちかっていうとプリプロセッサちゃん
0888名前は開発中のものです。
2010/09/22(水) 03:38:46ID:KlyUHZKSこれの場合は、;を書いてるから
そこで一区切りになって考えます。
たしか;はそういう意味だったはず。
つまり、こうだね?
#define A(a) {a=a+1;a=2;a=a+3;}
{a=a+1;a=2;a=a+3;}
↑
この部分だけ考えるね?
a=a+1;
a=2;
a=a+3;
↑
中身をこんな風に分解。
これをそれぞれ後ろから読む
0889名前は開発中のものです。
2010/09/22(水) 03:39:09ID:h7AWls07一番後ろはきっと5000スレくらいなので気長に待ってください。
0890名前は開発中のものです。
2010/09/22(水) 03:40:15ID:ZhuFa4Bc#include <stdio.h>
int main(){ int a = 3; int b = 2; a = a * (b + 10); printf("%d\n", a); return 0; }
↑のプログラムがどう読まれるか解説してね。あと↓のも
#include <stdio.h>
int
main(){
int
a
=
3;
int
b
=
2;
a
=
a
*
(b
+
10);
printf("%d\n",
a);
return
0;
}
0891名前は開発中のものです。
2010/09/22(水) 03:40:53ID:KlyUHZKS1.a=a+3;
2.a=2;
3.a=a+1;
順番を間違った(^^;
0892名前は開発中のものです。
2010/09/22(水) 03:42:46ID:ZhuFa4Bcまちがい。プリプロセッサは ; を特別扱いしたりしない
0893名前は開発中のものです。
2010/09/22(水) 03:43:58ID:KlyUHZKS絶対に嫌w
わざと読みにくく書いて困らせようとしているのが、
その文章から読み取れるから。
自分で考えろ。
0894名前は開発中のものです。
2010/09/22(水) 03:45:00ID:uXUhUOYT0895名前は開発中のものです。
2010/09/22(水) 03:45:00ID:h9k+fC0iならa=0で入れたらaは3になるんだね?
0896名前は開発中のものです。
2010/09/22(水) 03:46:02ID:9XaaDgHAじゃあ、
int a = 1 ;
A(a)
のあとのaは3ですね
マジパネェっす
0897名前は開発中のものです。
2010/09/22(水) 03:46:16ID:ZhuFa4Bc0898名前は開発中のものです。
2010/09/22(水) 03:46:46ID:uXUhUOYT周りの人が可哀想で泣けて来るわ
0899名前は開発中のものです。
2010/09/22(水) 03:48:35ID:uXUhUOYTそんなの初歩だよ」
とか言い出すと予想
0900名前は開発中のものです。
2010/09/22(水) 03:48:41ID:a9eeuuzq0901名前は開発中のものです。
2010/09/22(水) 03:49:44ID:KlyUHZKS違う。
初期化してるから毎回変わる。
1.a=a+1;
2.a=2;
3.a=a+3;
1.は1
2.は2
3.は何かな?
これぐらいは解るよね?
0902名前は開発中のものです。
2010/09/22(水) 03:50:34ID:uXUhUOYT0903名前は開発中のものです。
2010/09/22(水) 03:52:42ID:UQTbKj7R前から読んでるじゃんw
>>891といってることが違いますよ?
0904名前は開発中のものです。
2010/09/22(水) 03:54:46ID:KlyUHZKSなんか、ややこしくなったけど。
とにかく、
#define A(a) {a=a+1;a=2;a=a+3;}
↑
この場合は、後ろの}←から読む。
改行しようが何しようが一緒!
{ }で囲まれたブロックを一つの関数として考えていきます。
0905名前は開発中のものです。
2010/09/22(水) 03:55:49ID:ZhuFa4Bc俺は別に考える必要はないよ。この二つのプログラムがコンパイラでどう処理されるか
は (もちろん概要だが) 知ってるから。
キミはその「後ろから前」説を
「コンパイラはプログラムを後ろから読むんだ!だって前から読んだらどこで終わったらいいかわからないじゃないか!」
ってことを根拠にしてたんだよね。
でも「;」が区切りになることを認めちゃったらその根拠が崩れちゃうんじゃないの?
0906名前は開発中のものです。
2010/09/22(水) 03:57:03ID:KlyUHZKSa=a+1
から読む。
失礼w
上のはミスです
0907名前は開発中のものです。
2010/09/22(水) 03:57:15ID:h9k+fC0iとにかくじゃないよおおおおおお
>>891
の順番なら3が出るはずなのに
実際は5が出てるんだよおおおおおおおお
期待した値と違う結果が出てコンパイラがエラーや警告で教えてくれないんだよ!??
最悪のエラーじゃないか!!
0908名前は開発中のものです。
2010/09/22(水) 03:58:02ID:UQTbKj7R分かりました{}をとりましょう
#define A(a)a=a+1;a=2;a=a+3;
エラーは出ませんよ?
改行したら出るけどなw
0909名前は開発中のものです。
2010/09/22(水) 03:58:34ID:KlyUHZKS失礼しました。
0910名前は開発中のものです。
2010/09/22(水) 03:59:19ID:uXUhUOYTなぜ{}の中だけ前から処理するの?
普通に考えて全部前から処理していってなにが問題なの?
0911名前は開発中のものです。
2010/09/22(水) 04:00:26ID:uXUhUOYTコンパイルと、実行
は分けて考えろよ
0912名前は開発中のものです。
2010/09/22(水) 04:01:34ID:uXUhUOYTプリプロセスと、コンパイルと、実行
で良いか
0913名前は開発中のものです。
2010/09/22(水) 04:02:54ID:ZhuFa4Bcふーん、じゃ、とっておき
#include <stdio.h>
#define BEGIN {
#define END ;}
#define FOO(x, y) {int a = x int b = y
#define BAR(x) x; }
int main()
BEGIN
FOO(3;, 2;)
a = a * (b + 10);
BAR(printf("%d\n", a))
END
これでもちゃんと動くれっきとしたCプログラムだけど、これはどんなふうに読まれる?
0914名前は開発中のものです。
2010/09/22(水) 04:04:16ID:KlyUHZKS#define A(a) {a=a+1;a=2;a=a+3;}
↑
これを分解
最後の}から読み始めて、
a=a+1;
a=2;
a=a+3;
上記のようにまず、三つに分解する。
これを、上から順番に、実際は左から右に読んで、
最終地点の;をスタートにして、前に向かって読む。
終わったら次の行を読む。
この場合、{ }内は、
{ ←これが0地点
0915名前は開発中のものです。
2010/09/22(水) 04:06:08ID:9XaaDgHA>>908
0916名前は開発中のものです。
2010/09/22(水) 04:06:32ID:ZhuFa4Bcなんでそんなややこしいことしなきゃならんの? 前から読めばいいのに
それにプリプロセスとコンパイルは違うって皆が言ってるの、耳に入らないの?
0917名前は開発中のものです。
2010/09/22(水) 04:07:40ID:KlyUHZKSだから向きだよ。
演算子は、それぞれの考える向きが決まっている。
検索すれば出てくると思うけど。
0918名前は開発中のものです。
2010/09/22(水) 04:08:17ID:h9k+fC0iそれも
最後から読み始めて、
a=a+1;
a=2;
a=a+3;
のように分解する
で切り抜けられる気がしてきた
0919名前は開発中のものです。
2010/09/22(水) 04:09:06ID:roNSNMqea[0]=0;
この簡単な式の説明して見てよ
0920名前は開発中のものです。
2010/09/22(水) 04:10:13ID:ZhuFa4Bc#define A(a, x) a=a+1 x a=2 x a=a+3 x
A(a, ;) で展開すればおk
0921名前は開発中のものです。
2010/09/22(水) 04:10:41ID:h9k+fC0i演算子ごとに向きも優先順位も決まってるなら
読む順序も向きも演算子ごとに遵守してれば
前からも後ろからも関係ないんじゃないの
0922名前は開発中のものです。
2010/09/22(水) 04:16:30ID:KlyUHZKS↑
つまりこの場合は、
1.← {a=a+1;a=2;a=a+3;}←最後の}から前に向かって読んで
2.→ {a=a+1;a=2;a=a+3;}←の中身(1発目)右向きに読んでから
3.← a=a+1; ←ここで左向きに読む
4.→ {a=a+1;a=2;a=a+3;}←の中身(2発目)右向きに読んでから
5.← a=2; ←ここで左向きに読む
6.→ {a=a+1;a=2;a=a+3;}←の中身(3発目)右向きに読んでから
7.← a=a+3; ←ここで左向きに読む
の順序か。
矢印は考える向きです。
ああ、ややこしいw
0923名前は開発中のものです。
2010/09/22(水) 04:20:13ID:MuuXCIIp0924名前は開発中のものです。
2010/09/22(水) 04:21:37ID:ZhuFa4Bcしかも自説についてなんの根拠にもなってない (後ろから前でもなんとか読める、と
言ってるだけで、後ろからじゃないと読めないことの根拠になってない)
なんという徒労ww
0925名前は開発中のものです。
2010/09/22(水) 04:21:49ID:MuuXCIIp0926名前は開発中のものです。
2010/09/22(水) 04:22:32ID:ZhuFa4Bc0927名前は開発中のものです。
2010/09/22(水) 04:22:48ID:KlyUHZKSややこしいから。
改行して人間に解りやすいコードにする。
#define A(a)
{
a=a+1;
a=2;
a=a+3;
}
コンパイルは機械だから、
人間理解向きにしなくてもいいけど。。。
0928名前は開発中のものです。
2010/09/22(水) 04:27:33ID:ZhuFa4Bc0929名前は開発中のものです。
2010/09/22(水) 04:31:00ID:MuuXCIIp/\
a +
/\
a 1
>>927
根本的に間違ってる
頭から「読みながら」「優先順位に沿って」上の構文木をコンパイラが生成する
基本的に最適化の処理のために、読むのと処理するのは分けられている
ってことをみんなが言ってるのに解らないんだろーなーwww
0930名前は開発中のものです。
2010/09/22(水) 04:32:39ID:MuuXCIIp0931名前は開発中のものです。
2010/09/22(水) 04:36:38ID:ZhuFa4Bc#include <stdio.h>
#define A 10 + 1
int main()
{
printf("%d\n", A);
printf("%d\n", A + 1);
printf("%d\n", A * 10);
return 0;
}
このプログラムで
・どんな結果が出るか予想してみる
・実行して結果を見る
・なぜそういう結果になったか説明を考える
これも宿題ね
0932名前は開発中のものです。
2010/09/22(水) 04:46:23ID:N6b8LlOZここが便利だぞ☆
http://codepad.org/
恥かく前に試せよ?
0933名前は開発中のものです。
2010/09/22(水) 04:53:50ID:KlyUHZKS#define A(a) {a=a+1;a=2;a=a+3;}
1.}を最初に読む
2.{を探しにいく
3.{ }の中に入ったら右向きに読む
4.;を探しに行く
5.;を見つけたら、元の左向きに戻る
6.終わったら{ }内のルールに戻って右向きになり次の;を探す
7.;を見つけたら、またそこから左向きに戻る
8.{ }内は全部読むので、最後のは別に;はいらない(入れてもいい)
0934名前は開発中のものです。
2010/09/22(水) 04:57:18ID:N6b8LlOZC言語のプリプロセッサとかコンパイラでそういう順序で処理をしてるってのは
どこから知識を得たの?
0935名前は開発中のものです。
2010/09/22(水) 05:01:15ID:KlyUHZKS#define A 10 + 1
int main()
{
printf("%d\n", A);
printf("%d\n", A + 1);
printf("%d\n", A * 10);
return 0;
}
1.>を読む
2.<を探しに行く
3.中に入ったら最後に行く
4.hを読む
5..を読む(ここでhファイルであることを理解)
6.oを読む
7.iを読む
8.dを読む
9.tを読む
10.sを読む(ここでファイル名「stdio」が判明
0936名前は開発中のものです。
2010/09/22(水) 05:08:22ID:KlyUHZKS↑
これも後ろから読んで理解。
int main()
{
printf("%d\n", A);
printf("%d\n", A + 1);
printf("%d\n", A * 10);
return 0;
}
↑
これは
int main(){printf("%d\n", A);printf("%d\n", A + 1);printf("%d\n", A * 10);return 0;}
↑
こんな風に一行にして読む。
1.}を最初に読む
2.{を探しに行く
3.{ }の中に入ると右向きになり、最初の;を探す
4.;を見つけたらそこから左向きに読む
5.全部読んだら右向きに戻り、次の;を探す
6.それを繰り返して、printfは終了
7.リターンの0を読む
8.n r u t e r の順に逆に読んで、returnであることを理解
9.終了
0937名前は開発中のものです。
2010/09/22(水) 05:11:46ID:MuuXCIIp0938名前は開発中のものです。
2010/09/22(水) 05:18:19ID:KlyUHZKSコードの中身の意味は、
#define A 10 + 1
↑
ここで、Aは「10+1」になる。
printf("%d\n", A);
printf("%d\n", A + 1);
printf("%d\n", A * 10);
↑
よってここは、
1.printf("%d\n", 10+1);
2.printf("%d\n", 10+1+ 1);
3.printf("%d\n", 10+1 * 10);
↑
こんな風になる。
公式サイトで散々解説していた内容。
1.は、11が表示
2.は、12が表示
3.は、+よりも*が先に計算され、10+10になり、20になる。
宿題にもなりません。
全部、公式サイトで解説している内容。
0939名前は開発中のものです。
2010/09/22(水) 05:29:57ID:ZhuFa4Bc0940名前は開発中のものです。
2010/09/22(水) 05:37:43ID:ZhuFa4Bc>
> ↑
> こんな風に一行にして読む。
なんで?
> 1.}を最初に読む
(略)
> 9.終了
なんでそんなややこしいことするの? 普通に前から読んだらいいじゃん。
「前から読んだらどこで終わるかわからない」
って説明は「;」を区切りだと認めた時点で崩れてるよね。
何度も言うけど、キミの説明は、
「こうやって後ろから読むんだ」
と言ってるだけで、l「後ろから読む必要がある」ことの説明には全くなってないんだよね。
それに言ってることがコロコロ変わってるよね。
最初は
「ファイルは最初の行から一行ずつ読んで、各行それぞれは右から左に読む」
って言ってなかった? なんで複数行をまとめて後ろから読む事になっちゃったの?
0941名前は開発中のものです。
2010/09/22(水) 05:41:29ID:ZhuFa4Bc#define BEGIN {
#define END ;}
はどう読まれるの? {から} の中身を一行にして
#define BEGIN {#define END ;}
にして後ろから読むのかい?
0942名前は開発中のものです。
2010/09/22(水) 05:48:01ID:KlyUHZKS「プログラム」の「アクセサリ」の中にあります。
昔は、この黒い画面が当たり前だったのですが、
そこに
C:\Users\owner>
↑
こんな風に表示されているはずです。
一番右側が現在地点で、
一番左側がゴール地点、つまりそれより先はない地点です。
そこで「dir」を入力して、enterキーを叩いてください。
なんか出てきます。
それもそういう構造になっています。
なので、コンピュータは右から左に向かって考えています。
0943名前は開発中のものです。
2010/09/22(水) 05:48:55ID:h9k+fC0idefineで確保されたAのメモリの中身はどうなってんの?
0944名前は開発中のものです。
2010/09/22(水) 05:55:50ID:MuuXCIIp文字を入力したら左から右に画面に表示されるよね?
右から左に向かって考えるなら、なぜ右から左に入力しないの?
0945名前は開発中のものです。
2010/09/22(水) 05:58:45ID:5x8WBkL6このスレでcmd知らない人は稀だと思うんだけど
もしかして、初心者がそのトンでも理論を理解出来なくて
自分に質問しているとか思ってるの?
ありえん(笑)
0946名前は開発中のものです。
2010/09/22(水) 06:30:37ID:ZhuFa4Bc> 一番左側がゴール地点、つまりそれより先はない地点です。
はぁ? 馬鹿だろお前?
単に木構造の「根」を先に表示する形式になってるだけ。ドメイン名とかは逆に
「枝」→「根」の順になってる。
で、例えば c:\User\owner ってパス名を示されても、いきなりそのディレクトリの情報が
ディスクのどこにあるのかはわからない。
・まずc:のルートディレクトリを読んで、その中の User を見つける
・見つけた User の情報から User のディレクトリがディスクのどこにあるのかがわかる
・User ディレクトリを読んで、owner を見つける
・…
という順番でc:\User\ownerにたどり着くんだよ。だから話は全く逆
コマンドプロンプトを開いたときに特定のディレクトリに既に移ってるのは、既にそこに
移動した状態でプロンプトが開くようになってるから。
> なので、コンピュータは右から左に向かって考えています。
パス名については「根」→「枝」の順になってるってだけで、それが右→左の順ってこと
にはならないし、ましてそれが「コンピューター全般」の話になんかならん。
デタラメにもほどがある
0947名前は開発中のものです。
2010/09/22(水) 06:50:11ID:VAUtS0z/数学における等号とは意味が違うけども、単にこの使い方は算数ではしないだけなんだけど…
y=x^2+2x+1; って書いたら
・Cでは変数yに式x^2+2x+1が代入される
・数学ではyとxの関係が定義される
じゃない。この数学的使い方だけを抜き出したのがCにおける代入演算子なんだよ。
数学では"="が代入と等号の両方の機能を持っていると考えれば、x=x+1という書き方を
Cでしてもいい理由が分かるかな。
http://ja.wikipedia.org/wiki/%E8%87%AA%E5%B7%B1%E6%84%9B%E6%80%A7%E4%BA%BA%E6%A0%BC%E9%9A%9C%E5%AE%B3
0948名前は開発中のものです。
2010/09/22(水) 07:22:39ID:uXUhUOYT>>936
とか素直に前から読むのの二倍走査してるし
流石に無理があるって気づかないのかねぇ
0949名前は開発中のものです。
2010/09/22(水) 07:33:44ID:VAUtS0z/事実はどうあれ自分が正しいんだろう
0950名前は開発中のものです。
2010/09/22(水) 07:37:04ID:uXUhUOYTコンパイラならプログラムする上で全く関係無いし
(例え後ろから前に読む変態的なコンパイラがあったとしても、ソースと出力は変わらない)
人が読むならどう考えても前から読む方が楽だし
実行ファイルになった上でCPUが、なら
そんな事最適化やら何やらされまくってソースの書き順なんて意味をなさないし
言語仕様として処理が後ろから前に「進む」のは
>>936で無理して前から実行される様にしてるから分かってると思うが、間違ってる。
0951名前は開発中のものです。
2010/09/22(水) 07:48:49ID:ij0YiTqO参加出来なくて残念
0952名前は開発中のものです。
2010/09/22(水) 08:28:20ID:ZhuFa4Bc0953名前は開発中のものです。
2010/09/22(水) 08:30:39ID:VAUtS0z/だいたい「ミス」で通してる
0954名前は開発中のものです。
2010/09/22(水) 09:02:54ID:cPiQEDdY0955名前は開発中のものです。
2010/09/22(水) 09:10:56ID:uXUhUOYT>>1の場合はミスじゃなくて理解の間違い
0956名前は開発中のものです。
2010/09/22(水) 10:11:39ID:ECFrVm3B貴方のサイトでC言語のプリプロセッサの解説をして頂け
ないでしょうか? ぜひお願いいたします。
C言語を学ぶうえで、プリプロセッサの理解は避けて通れ
ません。ぜひ、バKazuki様の分かり易い解説をお願いいた
します。
0957名前は開発中のものです。
2010/09/22(水) 10:12:50ID:ng3sPQSM解説の間違いを全部説明しようとすると何スレいるのやらw
0958名前は開発中のものです。
2010/09/22(水) 10:23:35ID:VAUtS0z/○ 主が間違いを犯すことを理解させようとすると何スレいるのやらw
0959名前は開発中のものです。
2010/09/22(水) 10:42:29ID:go2dVt0W根本的な所から理解できてないし
理解しようとしないんだもん。
むしろ自分で奇天烈理論展開して正当化しちゃうとか笑うしかないw
0960名前は開発中のものです。
2010/09/22(水) 11:28:25ID:VAUtS0z/0961名前は開発中のものです。
2010/09/22(水) 13:18:18ID:2NPM2emeやっぱり「 理 論 」演算子って書いてるじゃないか
0962名前は開発中のものです。
2010/09/22(水) 13:49:46ID:VAUtS0z/理論はtheory
論理はlogic
気づいても現実との不整合があったときは自己が優先
0963名前は開発中のものです。
2010/09/22(水) 15:37:28ID:KlyUHZKSいや。だから、
一番右が現在で
一番左が過去です。
現在から過去に向かって読むとき、
右から左に向かって読む。
なので、一番左が0地点である。
C:\Users\owner>
int a = 0;
C言語の文法も一番右が現在で、
一番左が過去。
現在から過去に向かって読むので、
右から左・・後ろから前になる。
コンパイラがコードを読むは、
時が動いています。
解りやすくジョジョで例えると、
コードを書く時点では、DIOが時を止めている。
そして、読む時点になると、「そして、時が動き出す・・」ってなって、
現在をスタート地点、過去をゴール地点に定めて、
そこに向かって読むから、右から左になる。
0964名前は開発中のものです。
2010/09/22(水) 15:40:40ID:ECFrVm3Bゲームの完成が楽しみです。
0965名前は開発中のものです。
2010/09/22(水) 15:43:21ID:kfs4f4gpc=1+2*3;
0966名前は開発中のものです。
2010/09/22(水) 15:43:38ID:KlyUHZKSC:\Users\owner>■
■は↑の場所から、←左にむかって読む。
なので、行の0列目が、ゴール地点。
なのでどこが文章の終わりなのかが、
コンピュータは理解できる。
int a = 0;■
↑
これもカーソルはあの場所から、←左に向かってよむ。
0967名前は開発中のものです。
2010/09/22(水) 15:47:06ID:MuuXCIIp>>966
素朴な質問だけど、初心者のためを思って独自に工夫して説明してるの?
それとも、コンピュータ内部でそういう動きをしているから、その説明をしてるの?
どっち?
0968名前は開発中のものです。
2010/09/22(水) 15:47:30ID:ij0YiTqO面白いギャグですね。今度友達に使ってみます。
0969名前は開発中のものです。
2010/09/22(水) 15:50:43ID:KlyUHZKS1.;
2.3
3.*
4.2
5.+
6.1
7.=
8.c
↑
こんな感じに後ろから読んで
一覧にする。
この中で一番優先順位の引くのはどれ?
とコンピュータが考えた時、=が一番低いと判断し、
7.の=と8.のcを後回しに考えるように判断。
行の最後まで読んだら、
次に今度は逆に読む。
1.c
2.=
3.1
4.+
5.2
6.*
7.3
8.;
0970名前は開発中のものです。
2010/09/22(水) 15:52:08ID:ij0YiTqOもういいよ、見てて悲しいから…
誰にだって誤解はあるんだから、もう諦めてよ。
0971名前は開発中のものです。
2010/09/22(水) 15:52:51ID:BJ6LqzHuC言語の勉強し直そうよ。
ネット上でも一から説明してあるところ結構あるよ。
ttp://qurl.com/4jrvj
0972名前は開発中のものです。
2010/09/22(水) 15:55:27ID:KlyUHZKS2.=
3.1
4.+
5.2
6.*
7.3
8.;
後ろから前に読んで
=が理解できたら、
今度は、前から後ろに向かって読み。
今度は優先順位の一番高いのはどれ?と
コンピュータは考える。
*が一位
+が二位
なので、6.を先に計算してから、
4.を計算する。
各演算子には、「左の値を右の値に」という意味があるので
2×3をやってから、1+6をやる。
レス数が950を超えています。1000を超えると書き込みができなくなります。