Професионална програма
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