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
Ertomax avatar Ertomax 0 Точки

Поклон !

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.