Професионална програма
Loading...
+ Нов въпрос
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

Задача - [Ladybugs] - Programming Fundamentals Exam - 23 October 2016

https://judge.softuni.bg/Contests/Practice/Index/333#1  - Линк към задачата

 

http://pastebin.com/7bUmJU6L - това е кода

Днес започнах да пререшавам задачите от позледния изпит. На тази стигам само до 30/100.

Не знам защо не се получава! Може ли някой да каже какво не му е наред на кода?

Примерните тестова се получават, но останалите са "Грешка по време на изпълнение"

Благодаря

Тагове:
0
Fundamentals Module 08/11/2016 14:59:39
Pilgrimage avatar Pilgrimage 515 Точки

Ключово за тази задача е МНОГО внимателното четене на условието.
Поне 17 пъти за да се хванат всички "уловки". :-) :-) :-) 
Едното са критериите за валидност на командата.
Другото е, че [left -3] си е всъщност [right 3].
И третото (което аз на изпита попуснах)се крие тук: "If the ladybug lands on a fellow ladybug, it continues to fly in the same direction by the same fly length"
Третото условие издънва последните два теста.

Успех! :-)

П.П.

Грешка по време на изпълнение по всяка вероятност означава, че не контролираш достатъчно добре индексите на масивите и някой ти излиза извън обхват.

0
08/11/2016 15:23:46
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

Left -3, че е равно на right 3 Мисля, че съм го направил като хората. 

if (command[1] == "right")

else if (moving > 0)
                    {
                        MoveRight(field, index, moving);

                    }
                    else
                    {
                        MoveLeft(field, index, Math.Abs(moving));

                    }

Нали така е правилно?

Иначе останалото, да. Човек като не му се получава задачата е по-добре вместо да гледа "умно" в кода, да прочете още няколко пъти условието :D

Благодаря!

0
08/11/2016 15:40:12
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

http://pastebin.com/7DDWuk5Q 

-уж проверявам за критериите за валидност на командата  -  if (moving > 0 && field[index] == 1 && index < field.Length && index >= 0)

-В предният коментар Ви показах как съм направил, ако е Left - 3, да изпълнява right 3

- a за третото промених циклите :  for (int i = index - moving; i > -1; i -= moving)

и пак стигнах само до 50/100

:(

 

0
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

http://pastebin.com/fT4gjd9Y - Успях

Не си бях разделил проверките като хората.

Явно съвета "да си разделяме една задача на по-малки проблеми" е много важен

2
WifiAvivi avatar WifiAvivi 151 Точки

Доста коварна изпитна задача. Не е трудна, но изисква много концентрация и съобразителност.

Решение: http://pastebin.com/7Lpw09uU

0
slpwlkr avatar slpwlkr 0 Точки

Съгласен, определено е пипкава. 
Едно доста по-простичко, но работещо решение и от мен: https://pastebin.com/w4QnheBP 

0
12/10/2018 13:43:39
Lubomirrrr avatar Lubomirrrr 32 Точки

Тази задача разбирам как мога да я реша,но последния пример така и не успявам да го разбера

 

5

3

3 left 2

1 left -2

end

output - 0 0 0 1 0

 

По първия input се разбира,че ще лети нялаво - от 3-индекс отива на 1-ви( 3 - 2 ) и се получава 0 1 0 0 0

Втората команда 1 left -2 нея разбирам - как 1 минус -2 прави като резултат 3 - та да се получи този output - 0 0 0 1 0

Прегледах този код - http://pastebin.com/YUc4J3kv,дeбъгвах го и не мога да разбера как на 65-ти ред - indexBugs  -=  flightBugs; -> IndexBugs е 1 а flightBugs e -2   -> и се получава 1 -= -2 -резултат 3 :D

Какво става :D


 

 

 

0
26/02/2017 22:39:41
Milovanov avatar Milovanov 0 Точки

И аз не разбрах, къде в условието на задачата се подсказва, че ако индекса е негативен се чете, като +.?

0