05. Parking Validation / Dictionaries and Lists - More Exercises
Здравейте,
Някой вижда ли грешката- дава 90/100
https://judge.softuni.bg/Contests/Compete/Index/582#4
https://pastebin.com/Xc6QxJ9m
Здравейте,
Някой вижда ли грешката- дава 90/100
https://judge.softuni.bg/Contests/Compete/Index/582#4
https://pastebin.com/Xc6QxJ9m
Когато регистрираш човек с license plate и той вече е регистриран с някакъв License plate ... Не трябва да принтираш подадения във входа на данни License Plate а този с който вече е регистриран конкретния човек (стария)...
Ако може едно рамо и тука... :) пак 90/100 и пак Test #2 (Incorrect answer)
https://pastebin.com/RfHYDr6Y
Да, ще трябва да си го извадиш от речника :)
От там е.
най - накрая един смислен отговор по троблема. Браво !!! Точно по тази причина тест 2 Гърми
по коя? кой е смисленият отговор?
Когато регистрираш човек с license plate и той вече е регистриран с някакъв License plate ... Не трябва да принтираш подадения във входа на данни License Plate а този с който вече е регистриран конкретния човек (стария)...
другият проблем може да е в реда на иф-проверките. изпълни ги в реда описан в условието на задачата и няма да имаш проблеми.
не е това единствената причина да гърми test 2, обаче.
аз затова питам за друга
едната е заради поредността на ифовете, втората е да печатиш лиценза на регистрираният вече номер, а не на този за който проверяваш. сигурно има и друго проблеми, аз за тези се сещам. ако ти трябва работещ код кажи.
а защо е важна поредността на ифовете?
защото условието е такова. Първо :
The system only supports one car per user at the moment, so if a user tries to register another license plate, using the same username, the system should print: “ERROR: already registered with plate number {licensePlateNumber}”
после:
If the license plate is invalid, the system should print:
“ERROR: invalid license plate {licensePlateNumber}“
после:
If the user tries to register someone else’s license plate, the system should print:
“ERROR: license plate {licensePlateNumber} is busy”
и накрая :
If the aforementioned checks pass successfully, the plate can be registered, so the system should print:
“{username} registered {licensePlateNumber} successfully”
Там е работата, че в условието няма 'първо', 'второ' и 'накрая'. Има изисквания... един юзър да може да регистрира една кола, колата да е с валиден номер, номера да не е вече регистриран.
Ако в решението първо проверяваме дали номерът е валиден, после - дали юзърът вече се е регистрирал, как такава поредност пропуска някой неотговарящ да се регистрира, а поредността "първо - юзър, после - номер" - не го пропуска и всичко е наред?
ima red i toi e redut v koito e napisano uslovieto na zada4ata. ako otkazva6 da prieme6 4e ima red, misli kak da prebori6 2riq test :)
Добре. Ще задам въпроса по друг начин. Заеби има ли ред на проверките или няма. Заеби тест 2. Кажи защо едната поредност би дала различен резултат от другата и в кой случай?
Възможно е 2 неща да са грешни при един вход на данни. Подредбата на проверките ти дефинира кое от 2-те грешни неща ще провериш първо и за кое от тях ще сигнализираш грешка. Ако не го направиш така както е описано като подредба в условието, е крайно възможно теста да очаква от теб да хванеш 1-вото грешно нещо, а ти да хващаш 2-рото.
Разбирам, че има тест, който при две грешни неща изисква да получи сигнал за едното, а аз сигнализирам за другото.
Но генерално това какво значение има за крайния резултат от опита за регистриране на кола? Защо тази поредност е важна и има тест, който следи за нея? Ако е заради условието, дайте да напишем условието, така че да е ясно, че поредността на проверките е важна и е част от решението на задачата, което Judge очаква. Ако пък се съгласяваме, че такава проверка за поредност е безмислeна, защото (bool a || bool b) е винаги равно на (bool b || bool a), дайте да коригираме въпросния тест 2.
Иначе да обясня каква е моята логика да проверявам първо за валидност на номера и след това регистриран ли е юзъра:
Ако аз бачкам на бариерата на паркинг, когато дойде нова кола, първо ще погледна дали не е с фалшив номер и след това ще отворя тефрера, за да видя дали шофьора вече не е паркирал кола. Ако първо търся шофьора в тефтера, видя, че не е паркирал кола до този момент, и после видя, че номера на колата е невалиден, излиза, че ровенето в тефтера е било излишна операция.
Дано да е ясно какво имам предвид. Мерси :)
ПС: И само, за да илюстрирам, че условията на задачите не са "абсолютно категорични":
Из условието на 10. Student Groups от същото упражнение:
"Your task is to create and print the study groups for each town as follows:
Тук, мисля, никой не следва (или поне не трябва да следва) поредността, описана в условието - 1. създаване и принтиране на групи за всеки град; 2. Сортиране на студентите по споменати критерии; 3. Принтиране на групите, сортирани по град.... и тн.
колега на всички ни е ясно. конкретно на мен логиката ми беше същата. И наистина, от гледна точка на това кое е смислено и кое не, задачата е леко неясна. Но за това, в условието е изписан реда на проверките. И аз съм съгласен. че можеше да има още един ред, в който да се споменава, че е задължително да се спазва този ред, но....
Значи се съгласяваш, че има проблем в условието. Щото предполагам после в 10та задача не се съобразяваш с условието и не принтираш групите по два пъти - преди и след сортирането, нали?!
Та не че не съм я зарязал отдавна тая задача, но идеята е да сигнализираме, за да я оправят и някой друг следващия курс да не си блъска главата за глупости.
Добре, че реших да гоогълна,преди да пиша във форума. Съгласен съм,че никъде не става ясно, поне за мен, че е задължителен реда на проверките,щото няма никва логика. Ма като гледам в майското издание на са го оправили...
Не съм казал, че това е конкретния случай в задачата. Просто дадох пример, че винаги трябва да се следи условието. :) Условието е пред вас и е дефинирано в определен ред на операциите. Ако вие сте решили да дефинирате решението си по начин, различен от този който условието описва, няма как да е сигурно, че ще изкарате пълен резултат.
Накратко, условията на задачите са абсолютно категорични! Ако желаете максимален резултат, буквално правите това което пише в условието, така както го пише в условието.
Ще разследваме все пак теста.