Loading...
StanevAnton avatar StanevAnton 0 Точки

#PB JavaScript 3.2 SC Exam Problems - 02. Pipes In Pool Грешка при Judge ?!

Здравейте, дали на някой друг също се случва или аз бъркам.

Прикачвам 2 решения на задачата и после ще задам някои въпроси.

Решение 1:

function swimmingPool([arg1,arg2,arg3,arg4]) {
    let v = parseInt(arg1);
    let p1 = parseInt(arg2);
    let p2 = parseInt(arg3);
    let h = parseFloat(arg4);

    let v1 = (p1 + p2) * h;
    if (v1 <= v) {
    var whole = 100 * (v1 / v);
    var allp1 = 100 * (p1 / v1) * h;
    var allp2 = 100 * (p2 / v1) * h;
    console.log(`The Pool is ${Math.trunc(whole)}% full.
        Pipe 1: ${Math.trunc(allp1)}%.
        Pipe 2: ${Math.trunc(allp2)}%`);
    } else {
        console.log(`For ${h} hours the pool overflows with ${v1 - v} liters.`);
    }

 

Решение 2:

function swimmingPool([volume,pipe1,pipe2,hours]) {
    let water = (pipe1 + pipe2) * hours;

    if (water <= volume) {
        console.log(`The pool is ${Math.trunc(100 * (water / volume))}% full.
        Pipe 1: ${Math.trunc(100 * (pipe1 / water * hours))}%.
        Pipe 2: ${Math.trunc(100 * (pipe2 / water * hours))}%`);
    } else {
        console.log(`For ${hours} hours the pool overflows with ${water - volume} liters.`);
    }
}   

И на двете решения ми дава 0/100 грешен отговор.

Като първото решение е импровизирано от мен, а второто е направено по учебника.

Въпроса ми е следния, защо в Visual Studio Code ми приема решенията, а в Judge ми ги отхвърля?

Каква е разликата. Освен това начина за писане на кода е от учебника на Soft Uni !?

Тагове:
0
Programming Basics
idrizovdjem avatar idrizovdjem 29 Точки

Здравей ! Ами не мисля, че проблема е в теб защото разгледах задачата и видях че начина по който ти подават аргументите на фунцията е грешен, защото подавата всички стойности на volume като string и другите са undefined. Предполагам, че това е грешка при джъдж. Поправих задача и след 100 опита пак не ми даде 100/100, един тест гърми и не знам защо, но на ниво което си ти в момента в  basic въобще няма откъде да знаеш как да се оправиш със задачата и предполагам, че начина по който съм променил задача ще ти е малко непознат. Все пак ще ти я дам, джъдж дава 90 и нещо и точки от 100. Надяавм се че ще ти помогне, поне да си завършиш домашното. 
 

function swimmingPool(volume) {
      let arr = volume[0].split('\n');
      let vol = parseInt(arr[0]);
      let pipe1 = parseInt(arr[1]);
      let pipe2 = parseInt(arr[2]);
      let hours = parseFloat(arr[3]);
    let water = (pipe1 + pipe2) * hours;

    if (water <= vol) {
        console.log(`The pool is ${Math.trunc(100 * (water / vol))}% full. Pipe 1: ${Math.trunc(100 * (pipe1 / water * hours))}%. Pipe 2: ${Math.trunc(100 * (pipe2 / water * hours))}%.`);
    } else {
console.log(`For ${hours} hours the pool overflows with ${water - vol} liters.`);
    }
}
 

Това е задачата. Рядко се получават грешки в джъдж. Може пък и ние да не разбираме, което е напълно възможно :D 
Ако не разбираш как работи кода, може да ми пишеш и да ти обясня накратко. Дано съм ти помогнал.

0
StanevAnton avatar StanevAnton 0 Точки

Здравей, благодаря ти много за отговора, дори не знаех че има такава възможност за разбиване на функцията на части.

До момента с уроците сме назад, аз си уча самостоятелно по учебника, записах JS от този месец, просто си бутам напред.

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

Разгледах кода, но фунцията незнам как да я въведа и да и задам параметри swimmingPool([100,100,100,2.5]).

Така не става, поне във Visual Studio Code. TypeError: volume[0].split is not a function

 

0
idrizovdjem avatar idrizovdjem 29 Точки

Здравей :). Ами проблема е, че ти подават параметрите като текст и самите стойности са разделени с \n. Функцията в джъдж се вика ето така :  swimmingPool(['1000\n100\n120\n3']). Виждаш, че това е един елемент от тип текст и между стойностите има \n, което е проблема. Намерих, че някой друг е питал въпрос за същата задача преди време и колегите му обясняват, същото нещо. Там се е изписало малко повече и ти препоръчвам да прочетеш за какво става въпрос, защото може задачата да е решена до 100 точки. Ето ти линк : https://softuni.bg/forum/21008/02-pipes-in-pool-javascript
Иначе е много готино, че сам си буташ напред. Продължавай. Поздрави :)

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