トップページgamedev
1001コメント348KB

Kazukiの同人3DRPG制作【第二話】

■ このスレッドは過去ログ倉庫に格納されています
0001Kazuki2010/09/19(日) 04:46:22ID:6P+qj1XK
Kazukiの同人3DRPG制作 公式サイト
ttp://www.kazuki-sendo.com/game/


発展途上中の素人Kazukiを中心として
DirectX9による3DRPG制作に挑戦します。


開発言語は、C++です。
長く苦しい戦いになると思われますが、
同人ゲーム制作の限界への挑戦が、当企画のテーマでもあります。
0763名前は開発中のものです。2010/09/21(火) 23:54:40ID:aqn5gOVm
式と値のどちらでもいい。ってことをちゃんと説明するべきだろ。
それが初心者向けの親切だとおもうぜ。

自分の間違いにそれっぽい言い訳を付けて誤魔化すのも大変だろ。
素直に受け入れようぜ。
0764名前は開発中のものです。2010/09/21(火) 23:56:58ID:nG5eaoRn
>>762
前から後ろに考えてもbに2が代入されるから
>>743
見ても分からないのか??
0765名前は開発中のものです。2010/09/21(火) 23:57:31ID:f2Sfy3iW
> 俺は、スイッチには「式を入れることが出来る」ということを
> 一番、言いたかったのです。

それなら switch(A + b) で十分だろ。代入の必要はないのだから。

「初心者に親切に」なら

 (1) switch(b) で、b の値によって処理が変わることを示す
 (2) switch(A + b) の例を示して、switch() には式を書く事も出来ることを示す
 (3) (あくまでもおまけとして) 「C言語では代入も式だから(値を持つから)」 代入式を書くことも出来ることを示す
   その際には、
      これはあくまでも説明のための例で、意味のない代入はすべきでないこと
   も説明すべきだな
0766名前は開発中のものです。2010/09/21(火) 23:58:00ID:K3ExNE1u
答えが1になったからaが表示されました。

答えが2になったのでbが表示されました。

と言った方が解りやすいよ。
0767名前は開発中のものです。2010/09/21(火) 23:58:56ID:aqn5gOVm
>>762
>前から後ろに向かって考えれば、
>先頭のbに1が入ってしまいます。

何言ってるんだよw
=と==の区別ついてねぇだろこいつ。
代入演算子をちゃんと理解しろよ。
0768名前は開発中のものです。2010/09/22(水) 00:00:44ID:f2Sfy3iW
> 前から後ろに向かって考えれば、
> 先頭のbに1が入ってしまいます。

それは単に代入の意味がわかってないからで、「前から後ろに考えるから」ではない。
0769名前は開発中のものです。2010/09/22(水) 00:01:35ID:K3ExNE1u
>>767
==は、比較演算子
=は、代入演算子

ってハッキリ言ってるでしょ?

そんな人に向かって、
区別ついてないとか、よく言えたね?

まあ、いいや。


今日はいい仕事したよ。

いつも解説をアップした後は、
スッキリした気分になる。(^^

ちょっと、スナックでも行ってくるか(^^

今でもやってるかな?
0770名前は開発中のものです。2010/09/22(水) 00:03:27ID:fNppjQx5
ID変らないうちに。

>>619
自分と付き合って運用屋さんはインフラの手配からして、イレギュラーなトラフィック上昇以外では
ダウンタイムを保証したサービスを提供しているようなところ(その代わり大規模なところはサポートしてないけど)なので、
多くを求めすぎているのかも。
大規模サービスを提供しているDCのオペレータはそんなもんなのかもね?

>>622 K3ExNE1u
それに比べて何お前?
>社外秘情報だろ・・それ・・。
>そんな細かいことを書いちゃいけない。
とか。

俺は開発屋だが、どう考えてもちょっと考えたら出てくる抽象的な内容だろ?

正直開発屋から見た運用屋っていうのは、システムの安定運用のために、
本番環境については些細なバージョンアップも躊躇うような人種だぞ?
自分で挙げた例で言えば、データ取得の自動化も手で打ってるのをスクリプトにしただけでも
問題ないか開発に確認してくるような奴らだ。

彼らのノウハウは、より具体的で長期運用している現場じゃないと
知ることができないようなイレギュラーな現象への経験や生の統計データにある。
それを一般的に表現しただけで社外秘とか舐めてるとしか思えない。

IDを追いかける限り、まるで自演してるようにしか見えないのだが、大丈夫?
07717702010/09/22(水) 00:04:27ID:fNppjQx5
間に合わなかったorz
0772名前は開発中のものです。2010/09/22(水) 00:04:30ID:go2dVt0W
>>769
名前だけ知ってたって意味ないよ。
どういう役割なのか理解してないようにしかみえないからな。
0773名前は開発中のものです。2010/09/22(水) 00:04:38ID:uXUhUOYT
演算子の優先順位や結合規則書いてるのに後ろから前って言い続けるってことは
優先順位、結合規則理解できてないんだろうな
0774名前は開発中のものです。2010/09/22(水) 00:06:06ID:ZhuFa4Bc
>>766
ならなおさら意味不明な代入なんてすべきじゃないな

A が 0 の場合
  A+b の値が 1 なので "a" が表示されました

A が 1 の場合
  A+b の値が 2 なので "b" が表示されました

でいいじゃないか。
0775名前は開発中のものです。2010/09/22(水) 00:08:09ID:go2dVt0W
やっぱり代入しないと数値は使えないって信じ込んでるっぽいよ。
0776名前は開発中のものです。2010/09/22(水) 00:10:21ID:ZhuFa4Bc
>>769
代入演算子の働きが

  「左側の式が示す場所 (左辺値)」に右側の式の値 (右辺値) を格納すること
  (かつ、演算の結果の値は右辺値になる)

だと知ってれば「前から後ろ」だろうが「後ろから前」だろうが結果は同じだろ。だから
代入演算子を理解してないと言われる。
0777名前は開発中のものです。2010/09/22(水) 00:11:53ID:KlyUHZKS
>>770
IDなんて気にすんな。おぼっちゃまw


俺は社会の仕組みをだな、解りやすく伝えて、
それ以上、行くととんでもない情報を公開してそうになったので、
流れを変えるために、

「それ以上言うな」的なことを言って、
彼に「目を覚まして!ここは掲示板だぞ!ネットだぞ!」ということを気づかせるために
ああいうことを言ったの。

多分、彼もそれに気づいたはずだと思う。


業務の内容とかを喫茶店で話すことも実はダメです。

なんて言ったかな・・・。

そういう決まりになってるのよ。

この業界の人は、特にそういうことには気をつける必要がある。

うっかり発言は、とんでもない問題に発展する。
0778名前は開発中のものです。2010/09/22(水) 00:11:54ID:uXUhUOYT
前の
a=bをa=a+b
ってしてることといい
今回のswitch文で無駄な代入してることといい
代入辺りで致命的な勘違いをしてる気がする
0779名前は開発中のものです。2010/09/22(水) 00:12:16ID:go2dVt0W
算数の=に引っ張られてるんだよな。
0780名前は開発中のものです。2010/09/22(水) 00:14:18ID:uXUhUOYT
絶対的に>>1より>>617の方が社会経験もネットリテラシーもあるだろ
0781名前は開発中のものです。2010/09/22(水) 00:14:19ID:KlyUHZKS
思い出した。

「情報漏えい」だw


では、ちょっと出掛けてくる。
0782名前は開発中のものです。2010/09/22(水) 00:14:52ID:WX+EEY4l
本日のkazukiID ID:KlyUHZKS
0783名前は開発中のものです。2010/09/22(水) 00:14:56ID:a9eeuuzq
>>743に答えてくれないのか
まぁ>>762の答えから想像すると
A=2,b=1で(b=A+b)は(1=2+1)っていう評価になるんだろうな
という言うことで、Kazukiくんの「後ろから前」っていう解釈がわかった気がするぜ

たぶん式の評価のときに変数も一緒に置き換えてるんだろうな、
・前から
b=A+b -> 1=A+b ->=は優先順位が低いので飛ばす-> 1=2+b ->
-> +評価 -> 1= (2+1) -> 1 = 3 -> =評価 →
-> リテラルなので代入されない -> 結果1
・後ろから
b=A+b -> b=A+1 -> +評価 -> b=(2+1) -> b = 3 -> =評価 -> bに3が代入される

たぶんこんな理解してんじゃね?
0784名前は開発中のものです。2010/09/22(水) 00:16:47ID:go2dVt0W
>>778
というより最初にメモリ云々の解説してる感じからして
「メモリに格納」は「=を使う」
「メモリに格納されていないとプログラム上で利用できない」
って解釈で無理矢理代入してるんだと俺は思ってるんだがw
0785名前は開発中のものです。2010/09/22(水) 00:16:52ID:ZhuFa4Bc
ttp://www.kazuki-sendo.com/game/wp-content/uploads/10-6.jpg

この図見てなんで「後ろから前」に拘るのかなんとなくわかったわ


 A が 1 で b も 1 のとき

 b = A+b

の中の b, A, b を頭から b→1 A→1 b→1 と置き換えてくと

 1=A+b
 1=1+b
 1=1+1

になっちゃって等号が成り立たない。後ろからなら

 b=A+1
 b=1+1

でこの段階でまだ左辺の b は確定しない(?)から b→1 とするのは止めて等号が成り立つように
bに2を入れてやれば

 2=1+1

と等号が成り立って、かつ b に 2 が入る

そんなことなんだろうな…
0786名前は開発中のものです。2010/09/22(水) 00:20:05ID:ZhuFa4Bc
「守秘義務」だろうに…

やっぱり中学生にしか見えない
0787名前は開発中のものです。2010/09/22(水) 00:20:34ID:KlyUHZKS
>>785
ありがとう!!(涙

やっと、俺の言ってること解ってくれる人がいた!!

ヒデキ感激・・じゃなくてw
Kazuki感激!!


うえwwうえwwwww

でも、俺が言いたかったのは、
そういうことっす(^^

皆さんも、そんなに難しく考えないでください。
0788名前は開発中のものです。2010/09/22(水) 00:22:16ID:uXUhUOYT
もしかして:
switch文の説明みると評価式と書いてあるぞ
式なんだー
式といえば(数学を思い出して)1+1=2の形だな
でも"a+b=b"これじゃプログラムでは上手くいかない><
お、逆にすれば上手く動くぞ!
そうかプログラムでは後ろから前に計算するんだ!


がんばって思考を考えてみた
0789名前は開発中のものです。2010/09/22(水) 00:30:22ID:KlyUHZKS
>>788
なにそれww
0790名前は開発中のものです。2010/09/22(水) 00:30:46ID:ZhuFa4Bc
>>787
礼を言われる筋合いはない。お前がどう考えてるかわかったというだけで、
それを肯定する気は微塵もないのだから。
0791名前は開発中のものです。2010/09/22(水) 00:30:54ID:rOzISJN3
>>787
完全に頭悪いな
0792名前は開発中のものです。2010/09/22(水) 00:31:21ID:uXUhUOYT
>>789
お前の解説はこうでもしないと理解出来ないんだわ
0793名前は開発中のものです。2010/09/22(水) 00:31:44ID:ULlTcfuE
やっぱり、=を代入じゃなくて、
等号記号だとみてんじゃねーかw
0794名前は開発中のものです。2010/09/22(水) 00:32:47ID:ZhuFa4Bc
>>789
お前に笑う資格はない。>>788はもちろんおかしい(*1)
だがお前の考えも同程度におかしい

(*1) もちろん>>788はわざとおかしいことを書いているのだろうけど
0795名前は開発中のものです。2010/09/22(水) 00:37:10ID:9m8CqZha
式とか、答え、とか書いているから、
C言語の構文が算数の式と結びついて
離れないみたいだな。
0796名前は開発中のものです。2010/09/22(水) 00:37:32ID:a9eeuuzq
>>785
が正解か
じゃー
a=1,b=2,c=3で
a= (b= a+c) + a + (c=a+b)
はどうなるんだろうな

「後ろから」だと8になって、
「前から」だと10になるぜ
そして実際計算させると10だぜ
この問題をどう解釈する?
0797名前は開発中のものです。2010/09/22(水) 00:37:46ID:ZhuFa4Bc
ああ、そういえば「A が 1 に置き換わる」点だけは正しいな。
もっとも、>>785 の説明(が本当にkazukiの考えと同じだとして)だと置き換えは実行時だからやっぱり正しくはないか
0798名前は開発中のものです。2010/09/22(水) 00:38:19ID:uXUhUOYT
>>794
>>1の考えを想像してみたんよ
0799名前は開発中のものです。2010/09/22(水) 00:44:17ID:KlyUHZKS
>>794
おかしかったら笑ってもいいんだよ?(^^

うはははは!www

こんな俺みたいに。


てか、笑え。
お前、笑え。
0800名前は開発中のものです。2010/09/22(水) 00:44:53ID:rOzISJN3
>>799
嘲笑ならみんなしてるよ
0801名前は開発中のものです。2010/09/22(水) 00:47:23ID:ZhuFa4Bc
1+1=2 みたいな等式(もしくは不等式) の形の式しか知らなくて、1+1だけでも式なん
だってことを知らずにきたのかな。よくわからんけど

>>799
だいぶ笑わせてもらったけど、ここまで来るとむしろ笑えない
0802名前は開発中のものです。2010/09/22(水) 01:02:48ID:MuuXCIIp
俺釣りに違いないと今まで思ってたが、真性なんだ・・・
0803名前は開発中のものです。2010/09/22(水) 01:04:30ID:16KXMzSp
逆に釣りに見えてきた
0804名前は開発中のものです。2010/09/22(水) 01:13:07ID:uXUhUOYT
後釣り宣言とかしてる辺り真性だと思う
てか、釣りで何ヶ月(最初は動画上げてるだけだったから3ヶ月ぐらいか?)もバカ演じれないよ普通の人なら
0805名前は開発中のものです。2010/09/22(水) 01:24:25ID:0duhZDGS
Kazukiを分析すると、

精神病かもしれない
そうでなければ、

「ボケ老人」だろう、どこの家庭にも居る。
戦後の混乱期に小中学校であまり学んでない。
老人特有の頑固さで協調性が無い、
年長になると見栄張りで、頭を下げて青年達に聞くことが出来ない。
この年代は生き抜くための根性だけはある。
独学で学んで、実験だけで答えを導き出す、かなり時間を使ってるはず。
このような老人は敬遠されて、いっしょに遊んでくれる友が居ない。
だから、若い人と会話できる事が楽しくてしょうがない。

だから、君達が遊んであげるととても喜ばれる。
0806名前は開発中のものです。2010/09/22(水) 01:38:38ID:N6b8LlOZ
このスレ見てると
普段自分が使わないような文法が見られて面白いなぁ
0807名前は開発中のものです。2010/09/22(水) 01:49:08ID:K8CkPXm6
int a = 2;
a += 3;

とか

struct Foo {};
Foo* foo = new Foo;

はどう理解しているのか気になる。
0808名前は開発中のものです。2010/09/22(水) 01:51:00ID:KlyUHZKS
今、帰ってきた。

んじゃ解ったよ。

「右から左=後ろから前」の超解説を今からやります。

文章書くからちょっと待っててね。

多分、超上級者向けだと思う。
0809名前は開発中のものです。2010/09/22(水) 01:53:46ID:uXUhUOYT
そりゃ間違ってんだから誰にも理解出来ないわな
超上級者でもむりだわ
0810名前は開発中のものです。2010/09/22(水) 01:56:38ID:ZhuFa4Bc
間違った考えをいくら頑張って説明しても無駄だっての
そんな無駄な努力止めて、まずは今の解説ページを全削除するべき。
0811名前は開発中のものです。2010/09/22(水) 01:59:38ID:KlyUHZKS
そもそもC言語は何なのかと言うと、
人間が読んで理解できる文法です。

つまり、コンパイラが読める文法のことです。

C言語のコードをそのままコンピュータに渡して、
「これ読んで!」って言っても、
コンピュータは読めません。

CPU「ゴメンなさい・・。泣いてもいいですか?」

となるww


そして、このコンパイラはソースを読むとき、
全ての文字を一文字単位で考えた時、
文章の最後から前に向かって読むのだ。


10進数の7を、2進数にすると「0111」になる。

そして、2進数の最小単位がビットです。

コンピュータは、ビットという小さな器の集合体です。

[ ]←これをビットとする。

10進数の7を二進数にすると[0][1][1][1]←こんな感じに、
各ビットの器に放り込みます。
正確には各器の電圧を変化させています。

つづく
0812名前は開発中のものです。2010/09/22(水) 02:01:16ID:ZhuFa4Bc
たしかに超説明だわ

せめて日本語で書け
0813名前は開発中のものです。2010/09/22(水) 02:04:13ID:KlyUHZKS
10進数の7を2進数に変換した時。

1.[0][1][1][1]

こんな風に一発で変換するのは無理。
なぜなら、コンピュータは一つずつ順番に動いているから。

正しくは、

1.[*][*][*][1]
2.[*][*][1][1]
3.[*][1][1][1]
4.[0][0][0][1]


こんな風に後ろから前に向かって
各ビットの器の電圧を変化させて、
10進数を2進数に変換する。


このように考えた時、
コンピュータは「後ろから前に向かって読んでいる」で考えれば、
すべてのツジツマが合う。

つづく
0814名前は開発中のものです。2010/09/22(水) 02:06:06ID:a9eeuuzq
OKわかった
論理回路勉強して来い
0815名前は開発中のものです。2010/09/22(水) 02:08:42ID:KlyUHZKS
int a = 0;


これをコンパイラが読むときは、

1.;
2.0
3.=
4.a
5.t
6.n
7.i


こんな感じに文章の後ろから読んでいる。

どうして、後ろから読むのかと言うと、
前から読むと文章の最後がどこなのか解らないから。

エクセルのセルを思い浮かべてほしい。。

0 1 2 3 4






こうだよね?
座標、0、0が終了地点です。

このように考えれば、解るよね?
0816名前は開発中のものです。2010/09/22(水) 02:10:08ID:KlyUHZKS
上級者向け超解説終わり。
0817名前は開発中のものです。2010/09/22(水) 02:13:17ID:16KXMzSp
なるほど、kazukiコンパイラではそうなってるんですか
0818名前は開発中のものです。2010/09/22(水) 02:14:39ID:KlyUHZKS
>>813の訂正

1.[*][*][*][1]
2.[*][*][1][1]
3.[*][1][1][1]
4.[0][1][1][1]

以上!
0819名前は開発中のものです。2010/09/22(水) 02:15:35ID:a9eeuuzq
これはコンパイラの話ですか?
CPUの話ですか?
0820名前は開発中のものです。2010/09/22(水) 02:15:50ID:9XaaDgHA
ワロタw

>どうして、後ろから読むのかと言うと、
>前から読むと文章の最後がどこなのか解らないから。

ここがダウト
なんのために 「;」を付けると思ってるんだよw
0821名前は開発中のものです。2010/09/22(水) 02:21:32ID:roNSNMqe
ここまで無知を晒して何が楽しいんだろう
0822名前は開発中のものです。2010/09/22(水) 02:21:56ID:KlyUHZKS
>>820
;は正確には、EOP?だったかな?

ちょっと忘れた。

とにかく、何かの意味なんだよ。


でも、
#define a 0

こんな風に最後に;を入れない場合もある。

;が文章の終了という意味なら、
これを証明することが出来なくなる。

なので、文章の先頭がゴール地点で
座標0に来ると次の行を読むと考えればいい。


なので、後ろから前に向かって読むのだろう。

0823名前は開発中のものです。2010/09/22(水) 02:27:54ID:ZhuFa4Bc
後ろから読むコンパイラww

ビットレベルで下位から計算される(そういう場合も当然ある)ことと、ソースを読む方向が
なんで同レベルで語れるんだ。

つか、プリプロセスの話とコンパイル時の話と実行時の話が一緒くただよな
0824名前は開発中のものです。2010/09/22(水) 02:27:56ID:uXUhUOYT
GCCのソース読んできたら良いと思うよ。
いや、俺も読んだ事無いけど普通にソースの先頭から読み込んでるだろうし
インタプリタじゃ無いんだから読み込み順に処理するわけでも無いし

てかファイルの終端が分からなかったら終端から読むなんで事出来ないっていう
0825名前は開発中のものです。2010/09/22(水) 02:28:54ID:KlyUHZKS
#define A 1
int b = 1;

b=A+b;


この式だけを後ろから分解


1.;
2.b ←ここには1が入る
3.+
4.A
5.=
6.b ←ここには2が入る


各演算子は、それぞれの向きで考える。


+は、左から右
=は、右から左

これで俺が言いたいこと解った?
0826名前は開発中のものです。2010/09/22(水) 02:30:43ID:ZhuFa4Bc
> #define a 0
> ↑
> こんな風に最後に;を入れない場合もある。

そりゃ、それを処理するのはプリプロセッサでコンパイラじゃないからなww

それに、前から読んだとき終わりがわからないなら、後ろから読んだって初めが分からなくなるだけだしwww
0827名前は開発中のものです。2010/09/22(水) 02:31:35ID:uXUhUOYT
てか、コンパイラの動作なんて言語仕様と全く関係無いんだけどな。
コンパイラは最終的に仕様にそった実行ファイルを吐けば中でどううごくかなんて言語側で制限しないから。

0828名前は開発中のものです。2010/09/22(水) 02:32:46ID:a9eeuuzq
どうやって行と行を見分けるん?
見分けられたとして、行の終端から調べるためには終端がどこにあるかわからないと出来なくね?
0829名前は開発中のものです。2010/09/22(水) 02:35:49ID:uXUhUOYT
もしかしてこいつの頭の中ではコンパイラはアセンブラ程度の物なのかもしれない
0830名前は開発中のものです。2010/09/22(水) 02:38:38ID:KlyUHZKS
b=b+(A+b);

これを後ろから読んで分解

1.;
2.) ←関数呼び出しを意味する
3.b
4.+
5.A
6.( ←関数終了を意味する
7.+
8.b
9.=
10.b

このように考えれば、
各演算子の優先順位もキレイに説明出来る。
0831名前は開発中のものです。2010/09/22(水) 02:39:39ID:h9k+fC0i
int main()
{

struct test sttest;

sttest.n = 10;
printf("%d\n", sttest.n);

return 0;
}


struct test{
int n;
};

これが動かないのは何で?
0832名前は開発中のものです。2010/09/22(水) 02:40:24ID:ZhuFa4Bc
関数呼び出し…

( ゚д゚) ・・・
 
(つд⊂)ゴシゴシ
 
(;゚д゚) ・・・
 
(つд⊂)ゴシゴシゴシ
  _, ._
(;゚ Д゚) …!?
0833名前は開発中のものです。2010/09/22(水) 02:41:26ID:uXUhUOYT
まさかの関数登場
0834名前は開発中のものです。2010/09/22(水) 02:41:30ID:jq8AzszG
「この式だけを後ろから分解」ってのが都合が良すぎない?

終端が分からないっていうなら一番最初はソースコードの最後にならないとおかしくね?
行単位でっていうなら

#define A 1 int b=1; b=A+b;

って書かれたら

1.;
2.b ←はい、値が分かりません
0835名前は開発中のものです。2010/09/22(水) 02:41:48ID:a9eeuuzq
もう一回>>280読んでこようか
あとb= (a+b)+b;はどう処理するん?
0836名前は開発中のものです。2010/09/22(水) 02:42:19ID:KlyUHZKS
配列変数を指定するとき、

int a[2]

↑こう書くよね?

これを後ろから分解

1.]
2.2
3.[
4.a
5.t
6.n
7.i

なので、[ ]←これは順位が1位なのだよ
0837名前は開発中のものです。2010/09/22(水) 02:42:52ID:ZhuFa4Bc
#include <stdio.h>

int main()
{
int a, b;

a = 1;
b = 2;

// 「前から読んだら文がどこで終わるかわからない」としたら、「後ろから読んだとき」
printf(
"%d\n",
b
+ a++
); // ここで終わる文がどこから始まるのか、コンパイラはどう判断するの?
return 0;
}
0838名前は開発中のものです。2010/09/22(水) 02:44:18ID:ZhuFa4Bc
>>836
「なので」の前と痕が全くつながってない
0839名前は開発中のものです。2010/09/22(水) 02:45:02ID:KlyUHZKS
ちなみに=代入演算子は優先順位が低いから、
最初の方に書く必要がある。

a = a +1


=は2列目に書いている
優先順位が低いから
0840名前は開発中のものです。2010/09/22(水) 02:45:54ID:KlyUHZKS
どのプログラムもそうなってるよ。
0841名前は開発中のものです。2010/09/22(水) 02:47:41ID:ZhuFa4Bc
> ちなみに=代入演算子は優先順位が低いから、
> 最初の方に書く必要がある。

その理屈だと、優先順位の低い = 演算子は必ず 優先順位の高い [] より前に書かなきゃいけないってことでいいんだよね!
0842名前は開発中のものです。2010/09/22(水) 02:48:47ID:uXUhUOYT
配列要素に代入出来ないのか
キツイな
0843名前は開発中のものです。2010/09/22(水) 02:48:48ID:h9k+fC0i

a[1] = b[2];
0844名前は開発中のものです。2010/09/22(水) 02:51:27ID:KlyUHZKS
>>835
b= (a+b)+b;

これは、こんな感じに後ろから前に分解して読む

1.;
2.b
3.+ ←コレが3位
4.) ←コレが1位
5.b
6.+ ←コレが2位
7.a
8.( ←1位ここまで
9.= ← コレが4位
10.b ← コレが5位
0845名前は開発中のものです。2010/09/22(水) 02:51:40ID:ZhuFa4Bc
そうか…

今まで

 x * y + 2

とか書いてたけど、これからは優先順位の低い + を前にして

 2 + x * y

って書かなきゃいけないな
0846名前は開発中のものです。2010/09/22(水) 02:52:22ID:uXUhUOYT
優先順位と書く位置は全く関係無い
というか、順序を制限しないための優先順位なんだけど
例えば算数で
1+2×3と
2×3+1が同じになるのは優先順位のおかげ
0847名前は開発中のものです。2010/09/22(水) 02:54:00ID:KlyUHZKS
だ か ら 後ろから読むの(^^
0848名前は開発中のものです。2010/09/22(水) 02:56:27ID:uXUhUOYT
想像以上にバカだった
0849名前は開発中のものです。2010/09/22(水) 02:57:18ID:a9eeuuzq
>>844
もっと詳しく説明よろ
0850名前は開発中のものです。2010/09/22(水) 02:59:01ID:uXUhUOYT
取り合えず>>743がわかりやすいから何度も読め
それでも後ろから読む必要があると思うならもう知らん
0851名前は開発中のものです。2010/09/22(水) 02:59:11ID:jq8AzszG
int a = 1 ;
if ( (a=a+3)>2 || (a=a-5)>0 ){}

この条件文は通る?
この条件文を抜けたあとのaは?
後ろから読んで説明してみて
0852名前は開発中のものです。2010/09/22(水) 03:00:17ID:h9k+fC0i
文ごとに後ろから読むの?
ソース全部後ろから読むの?
0853名前は開発中のものです。2010/09/22(水) 03:01:06ID:UQTbKj7R
>>852
そこは答えたく無いらしいよ?w
0854名前は開発中のものです。2010/09/22(水) 03:01:30ID:KlyUHZKS
>>851
めんどくさいからもう分解しないけど。

if ( (a=a+3)>2 || (a=a-5)>0 ){}

これを脳内で後ろから前に読んでください。

それを俺が書いた順位表で考えて
その順番に計算してください。

この場合、||←(理論演算子)が最後から二番目の順位です。
0855名前は開発中のものです。2010/09/22(水) 03:02:04ID:uXUhUOYT
どっかに演算順序を超わかりやすく書いてくれたレスがあったはず
0856名前は開発中のものです。2010/09/22(水) 03:02:19ID:ZhuFa4Bc
>>847

なにが「だ か ら」なのか全く不明
改めて確認するが、

 ・優先順位の高い [] 演算子は低い = の前に書いてはいけない
 ・どのプログラムもそう ([] が = より前に書かれてるようなプログラムはない)

でいいんだよな?
0857名前は開発中のものです。2010/09/22(水) 03:03:28ID:KlyUHZKS
ソースは1行目から下に向かって読む。
列は、後ろから文章の先頭(座標0)に向かって読む

だが、実行する場合は、
mainから実行
0858名前は開発中のものです。2010/09/22(水) 03:04:48ID:UQTbKj7R
>>857
じゃあ、>>834に答えて
0859名前は開発中のものです。2010/09/22(水) 03:05:45ID:KlyUHZKS
あ。実行する前にグローバル変数とかインクルード読んでるけどね。

それを飛ばしての話です。
0860名前は開発中のものです。2010/09/22(水) 03:06:12ID:h9k+fC0i
=を関数で考えると
int equal(int &a,int b);
見たいになるから左辺の正体は値じゃなくて参照って考えるといいんじゃね?
0861名前は開発中のものです。2010/09/22(水) 03:07:36ID:uXUhUOYT
あった>>476
この説明見た上で後ろから読む必要を説明してくれ
0862名前は開発中のものです。2010/09/22(水) 03:10:03ID:KlyUHZKS
>>845
いや、違う。。

x * y + 2

でもいい。

後ろから分解

1.2
2.+
3.y
4.*
5.x

こう考えて、+と*の順位はどっちが上ですか?

俺のサイトの表を見てください。

*は3位で+は4位です。

なので、その順番で計算する。
■ このスレッドは過去ログ倉庫に格納されています