21/06/17 19:46:46.81 mjY/8PfV.net
チートの程度にもよるけど、やねうらおの書籍「解析魔法少女 美咲ちゃん」は参考になったよ
993:デフォルトの名無しさん
21/06/17 20:28:00.57 IuszbmHt.net
その昔の素朴なCPUだと16進ダンプを直読みする強者が
994:デフォルトの名無しさん
21/06/18 11:44:25.11 DLEaHmmC.net
日本では、情報処理試験の仮想アセンブラ・CASL2 が基本。
世界では、LLVM のサイトで、仮想アセンブラを学ぶ
x86 なら、OllyDbg・やねうらお・うさぴょんが有名
995:デフォルトの名無しさん
21/06/18 12:03:44.02 7Huy+AZL.net
漏れもやねうらは好きな方だが
初心者ならやねうらより
ISBN 4839909865
996:デフォルトの名無しさん
21/06/18 12:32:20.21 194Cy0xO.net
CASLはどうみても68系ベースの簡略版で、68プログラマーでもあった俺はインストラクション眺めただけで楽勝だった
997:デフォルトの名無しさん
21/06/18 12:35:29.33 /PK0wqbC.net
gyazoとかいうゴミで画像貼んな
998:デフォルトの名無しさん
21/06/18 13:39:45.56 WThQkiL7.net
func(list):
_if list[0]=a:
__for i in list:
____conv_a(i)
____write(i)
_elif list[1]=b:
__for i in list:
____conv_b(i)
____write(i)
空撃ちしたときと本番で処理違うみたいなので
こう書きがちなんだけど、よくないなっていう自覚があります
配列→微妙に異なる処理→出力 のとき、どう書いたら上手いですか?
999:デフォルトの名無しさん
21/06/18 13:46:33.95 Jo75oGSb.net
>>988
仕様がクソならコードもクソにしかならん
そういう状況になるのはたいてい抽象化がヘタクソ
1000:デフォルトの名無しさん
21/06/18 14:15:44.89 ru+U9KL5.net
python で代入文は if の条件に描けないぞ
1001:デフォルトの名無しさん
21/06/18 14:18:50.64 H41XlXnl.net
>>988
Pythonぽいけどdefないし等号も違うから何の言語か分からなかった
Pythonみたいに関数を変数に入れられる言語なら最初に適用する関数を決めるとすっきりしそう
func(list):
# 適用する処理(conv)を設定
if list[0] == a:
conv = conv_a
elif list[1] == b:
conv = conv_b
# リストに処理を適用して出力
for i in list:
conv(i)
write(i)
aとbでlistのインデクスが違うのが気になったけど無視する
1002:デフォルトの名無しさん
21/06/18 14:22:04.15 EhVYURYt.net
変数名に list 使うな
func(l):
if l[0] != a && l[1] != b: return
f = (conv_a, conv_b)[l[0] != a]
for i in l:
f(i)
write(i)
1003:デフォルトの名無しさん
21/06/18 14:27:15.83 rMpkljNE.net
>>990
正確には
Pythonでは代入は文なので、条件式には入れられない。
Cなどでは代入が式なので条件式にも入れられる。
1004:デフォルトの名無しさん
21/06/18 14:40:28.04 dSkONN1n.net
>>988
>配列→微妙に異なる処理→出力 のとき、どう書いたら上手いですか?
高階関数を使う
1005:デフォルトの名無しさん
21/06/18 15:01:02.87 WThQkiL7.net
すいませんpythonスレじゃないので曖昧な書き方のがいいのかなと思って…
def func(l):
_if l[0][0] == 0:
__for i in l:
___write(conv_a(i))
_elif[0][0] == 1:
__for i in l:
___write(conv_b(i))
です.ほんとは各処理もうちょっと関数続くんですけど
いずれにせよ途中だけが微妙に違うほぼ同じ処理をきれいに書きたい
>>991
おー.見やすいです
1006:デフォルトの名無しさん
21/06/18 15:45:26.03 PuJK3NPt.net
>>991 は仕様(実装)にバグがある
1007:デフォルトの名無しさん
21/06/18 17:03:01.08 194Cy0xO.net
うん、>>992のようにチェック入れるべきだね
でもreturnより例外吐くべきでは?
1008:デフォルトの名無しさん
21/06/18 18:04:22.88 tKtuqq6N.net
責務の分離が上手くできてない関数の中身だけいじくり回してもキレイにはならないよ
呼び出し側やデータ構造なんかも含めて考え直さないと
1009:デフォルトの名無しさん
21/06/18 18:38:56.71 9pPslW7o.net
メインルーチンとサブルーチンを明確に意識して
メインルーチンは処理の流れがわかるように
サブルーチンはテストして結果が出ればよしと分ける
1010:デフォルトの名無しさん
21/06/18 21:22:28.52 FdpzvR5V.net
>>998
もっと具体的に言わないと役に立たないと思うが
1011:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 118日 4時間 4分 34秒
1012:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています