08/06/18 21:33:36
>>382
有限長の文字列を総当りで生成して、それをコンパイルしていくプログラムを作れば
そのうち自分が作りたかったプログラムが自動生成されるんじゃね?
402:デフォルトの名無しさん
08/06/18 21:35:19
>>401
すっげぇ頭いいなおまえw
403:デフォルトの名無しさん
08/06/18 21:36:59
そして自分が作りたかったプログラムかどうかを
判定するプログラムが要るという話になるんですね分かります
404:デフォルトの名無しさん
08/06/18 21:44:13
故意はかんべん
405:デフォルトの名無しさん
08/06/18 21:44:54
なんだこのviper的なノリはwww
406:デフォルトの名無しさん
08/06/18 22:28:54
>>389
どうしても分からないなら資格取れるわけないじゃん
なんかおかしくね?
407:デフォルトの名無しさん
08/06/18 22:30:56
またこの流れかよw
>>60へどうぞww
408:デフォルトの名無しさん
08/06/18 22:31:54
恋はかんべん
409:デフォルトの名無しさん
08/06/18 23:28:46
関数を呼び出す時って他の文字に置き換えてから使えたほうがいいんですか?
例えばadd関数を呼び出してif文に入れるときの場合
x=add(n);
if(x==1)
みたいな感じか
if(add(n)==1)
どちらがいいんでしょうか?
下のほうでやっていたら友達にそのやり方は見にくくてありえないしプロがそんなことやったら確実に怒られるといわれたんですがどうなんでしょうか?
410:デフォルトの名無しさん
08/06/18 23:31:17
場面にもよるが、ステップによるデバッグがしづらいかもしれない。>後者
411:デフォルトの名無しさん
08/06/18 23:31:44
いや好きにすればいいと思うよ
ただ、関数の結果を他にも使う予定があるなら上の方が良いんじゃない?
412:デフォルトの名無しさん
08/06/18 23:36:20
できる限り前者でやったほうがいいんですか?
習ってる途中で後者の方がわかりやすいと思ったのですがプログラムできる友達に言われたので…
413:デフォルトの名無しさん
08/06/18 23:39:07
>>409
その関数が非常に高コストで、その判定部がループの中にあるなら
よくないなあとは思うけど、そうでないなら別に気にしない。
その友達がプロで怒られた経験があるのであれば、もう少し細かい
理由を教えてもらえばいいんでない?
414:デフォルトの名無しさん
08/06/18 23:40:21
ほかにも使うというのは
x=add(n);
if(x==1)
if(x==2)
みたいな感じですか?
あとプログラマーみたいな人たちの間ではどちらが主流なんでしょうか?
415:デフォルトの名無しさん
08/06/18 23:40:54
ちなみに、プロになれば周りのコードにあわせるということのほうが大事。
優劣をつけられない記法の差において、俺はこうすべき!って一人で
走ってるなら怒る。
416:デフォルトの名無しさん
08/06/18 23:40:58
>>409
その友達がどの程度のプロなのかはこの際置いておくとして、どちらがいいとか悪いとか言うことはない。
明確なことは、前者は変数を一つ使用し、後者は使用しないということである。
add() の返す値をただ一回しか評価しないのなら、後者のように書いて何の問題もない。
値を何度も評価するのなら、前者のように一時変数に格納する必要があるか、なくても効率がいいかもしれない。
後は単なる好みの問題である。
417:デフォルトの名無しさん
08/06/18 23:41:32
文脈によるがこの場合はどちらでもいい。
ところでこのお題はホントはこうじゃなかった?
x = add(n) ; if (x == 1)
と
if ((x = add(n)) == 1)
の比較。
418:デフォルトの名無しさん
08/06/18 23:42:40
>>413
友達はプロではありません
普通に大学生なので…
多分趣味でやってる程度だと思います。
どこで習ったかはわかりませんが
419:デフォルトの名無しさん
08/06/18 23:43:35
値を使い回したい場合に変数に入れるのは当然として、
そうでない場合はメリットとデメリットがあるので好きにすればいいと思うよ。
○ メリット
・ 関数呼び出しが長い場合、読みやすくなる
・ デバッグ時に戻り値が何だったか分かりやすい
○ デメリット
・ その場でしか使わないような無駄な変数が広いスコープ上に現れてしまう場合もある
420:デフォルトの名無しさん
08/06/18 23:44:20
慣用句的なもの
if ((fp = fopen(~)) == NULL)
Is系のメソッドに代表される真偽返却メソッド
if (isalnum(~))
これ以外は大抵分けて書くようにしてるね。
多少冗長に思えても、他の人が読みやすいか、また、
誤解を与えにくい書き方になっているか、それを重視してる。
421:デフォルトの名無しさん
08/06/18 23:55:16
誤解を与えにくいように、というのはあまりメジャーではない二項演算子を
使う時などに、冗長ではあるが、括弧をつけて明示するようなことね。
ちゃんと知ってればその括弧が無くても正しく動作する事は理解できるが、
うろ覚えの人でも勘違いを起こさない。
もしかしたら研修明けの新人がメンテするかもしれないし。