Решение на Четвърта задача от Александър Тахчиев
Към профила на Александър Тахчиев
Резултати
- 3 точки от тестове
- 1 отнета точка
- 2 точки общо
- 4 успешни тест(а)
- 4 неуспешни тест(а)
Код
Лог от изпълнението
....FFFF Failures: 1) Asm.asm implements CMP Failure/Error: je 5 NoMethodError: undefined method `execute_instruction' for #<Evaluator:0xb98f8f40> # /tmp/d20140115-8451-52v7pg/solution.rb:118:in `block (2 levels) in <class:Evaluator>' # /tmp/d20140115-8451-52v7pg/spec.rb:38:in `block (3 levels) in <top (required)>' # /tmp/d20140115-8451-52v7pg/solution.rb:3:in `instance_eval' # /tmp/d20140115-8451-52v7pg/solution.rb:3:in `asm' # /tmp/d20140115-8451-52v7pg/spec.rb:34:in `block (2 levels) in <top (required)>' # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>' # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>' 2) Asm.asm implements JMP Failure/Error: jmp l1 NameError: undefined local variable or method `l1' for #<Evaluator:0xb98f71b8> # /tmp/d20140115-8451-52v7pg/spec.rb:70:in `block (3 levels) in <top (required)>' # /tmp/d20140115-8451-52v7pg/solution.rb:3:in `instance_eval' # /tmp/d20140115-8451-52v7pg/solution.rb:3:in `asm' # /tmp/d20140115-8451-52v7pg/spec.rb:68:in `block (2 levels) in <top (required)>' # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>' # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>' 3) Asm.asm implements LABEL Failure/Error: je l1 NameError: undefined local variable or method `l1' for #<Evaluator:0xb98f4850> # /tmp/d20140115-8451-52v7pg/spec.rb:81:in `block (3 levels) in <top (required)>' # /tmp/d20140115-8451-52v7pg/solution.rb:3:in `instance_eval' # /tmp/d20140115-8451-52v7pg/solution.rb:3:in `asm' # /tmp/d20140115-8451-52v7pg/spec.rb:78:in `block (2 levels) in <top (required)>' # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>' # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>' 4) Asm.asm can be used to find GCD of two numbers Failure/Error: label cycle NameError: undefined local variable or method `cycle' for #<Evaluator:0xb98f2f28> # /tmp/d20140115-8451-52v7pg/spec.rb:92:in `block (3 levels) in <top (required)>' # /tmp/d20140115-8451-52v7pg/solution.rb:3:in `instance_eval' # /tmp/d20140115-8451-52v7pg/solution.rb:3:in `asm' # /tmp/d20140115-8451-52v7pg/spec.rb:89:in `block (2 levels) in <top (required)>' # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>' # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>' Finished in 0.00738 seconds 8 examples, 4 failures Failed examples: rspec /tmp/d20140115-8451-52v7pg/spec.rb:33 # Asm.asm implements CMP rspec /tmp/d20140115-8451-52v7pg/spec.rb:67 # Asm.asm implements JMP rspec /tmp/d20140115-8451-52v7pg/spec.rb:77 # Asm.asm implements LABEL rspec /tmp/d20140115-8451-52v7pg/spec.rb:88 # Asm.asm can be used to find GCD of two numbers
История (3 версии и 1 коментар)
Александър обнови решението на 15.01.2014 17:26 (преди почти 11 години)
Александър обнови решението на 15.01.2014 17:28 (преди почти 11 години)
Ползваш клас-променливи, което е лоша идея. Казвали сме го много пъти на лекции, включително и на последната сбирка.
Освен това, имаш проблеми с прилагането на конвенцията – слагаш интервали където не трябва, а където трябва – пропускаш. Имаш странно идентиране на места (например метода jmp
), излишни скоби (пак там), празни else
клаузи (ред 15), доста повторения и проблеми с дизайна.
Не трябва да има интервал преди скобата тук: execute_instruction (where)
. Оставял си го неконсистентно, само при някои дефиниции на методи.
Щеше да е по-удачно да ползваш символи за имената на регистрите.
Нарушенията ще ти струват наказателни точки.
Виж решенията на колегите, както и нашето (качено е в GitHub), за идеи как може да стане по-добре.