Софтуерно Инженерство
Loading...
+ Нов въпрос
saivanov avatar saivanov 5 Точки

[Technical Issue] Judge / JavaBasic - Debugging Lab / 02.Instruction Set

Колеги, моля помагайте...колкото и да променям кода, все ми дава една и съща грешка "Test #1 (Incorrect answer)"...

Последно кода го оставих, както следва: ЛИНК

ModEdit: Моля, прочетете правилата на форума, преди да пускате нова тема.

Тагове:
2
Java Advanced 26/01/2015 11:33:58
antata_iv avatar antata_iv 27 Точки

Здравей,

така като гледам, най-накрая като изпечаташ резултата, печаташ и един празен ред, който е излишен:

System.out.println(result);
System.out.println("");   - това е излишно
opCode = input.nextLine();

и според мен оттам ти идва проблема. Пробвай да го махнеш да видим какво ще стане. :)

Също така не е нужно в края на всеки case в switch-a, opCode да го правиш да е END. Ти така или иначе му казваш по-надолу какъв ще е, след печатането на резултата с opCode = input.nextLine(); Трябва да го променяш само на този ред, защото до колкото разбрах идеята тук е в края на всяко изпълнение на while-а да му подадеш какво да прави след това - дали да прекрати и да не се изпълни втори път (END) или да се изпълни още веднъж със съответните параметри (например INC нещо си) и т.н. докато не решиш да му подадеш END, за да спре.

1
knoteva avatar knoteva 52 Точки

Здравейте. И на мен ми дава "Test #1 (Incorrect answer)". Предполагам, че проблема трябва да е от: case "INC". Моля за помощ. Благодаря  предварително.

Линк към решението:

http://pastebin.com/u0RJ6yBL

 

0
Filkolev avatar Filkolev 4428 Точки

Имаш бъгове в три от операциите. Дебъгвай с граничните стойности на входните данни и би трябвало да успееш да ги хванеш.

1
knoteva avatar knoteva 52 Точки

В "case "INC"" промених: result = (long)operandOne + 1. В "case "ADD"" промених: result = (long)operandOne + (long)operandTwo. Пробвах с  граничните стойности на входните данни и смята правилно.

0
25/01/2015 12:35:04
Filkolev avatar Filkolev 4428 Точки

Още един бъг остава в такъв случай :)

1
viktoria.lizama avatar viktoria.lizama 6 Точки

Здравейте!

Аз тествах със дадените примери в задачата, както и с други примери и програмата ми работи, както трябва (или поне според мен :) ), но явно нещо не е както трябва, защото в Judge ми дава 0 точки и грешката "Test #1 (Incorrect answer)". Времето и паметта са в рамките на посочените.

Тук ми е кода, ако някой има идея какъв е проблема, ще съм благодарна на помощта ви :)

0
Bi0GaMe avatar Bi0GaMe Trainer 389 Точки

Здравей, 

Като насоки мога да ти подскажа няколко теста, които сама да пробваш:

1. Да се опиташ да декрементираш минималната стойност на int-a (-2147483648).

2. Да инкрементираш максималната стойност на int-a (2147483647).

3. Да събереш две числа с максимални стойности (2147483647 + 2147483647)

Поглеждайки резултата би трябвало да се досетиш какво трябва да промениш ;)

1
Kamigawa avatar Kamigawa 750 Точки

Пробвай ръчно да вкараш данните, не с copy-paste и да дадеш повече от 1 команда - ще откриеш грешката си веднага.

1
25/01/2015 20:54:38
viktoria.lizama avatar viktoria.lizama 6 Точки

Много ви благодаря за бързите отговори! Помогнахте ми да си намеря грешките, повечето ги оправих почти веднага, а останалите след много чудене и мъки :D Благодаря за насоките, много бяха полезни!

0