Loading...
DimiPetrov avatar DimiPetrov 4 Точки

Rectangle Area

Здравейте,

Реших успешно задачата за лице на правоъгълник от курса (Първи стъпки в програмирането). Аналогичната задача в книгата обаче Judge не я признава за вярна. На няколко пъти ми даде 0 точки, последният път - 20 от 100.

Ето 

function rectangleArea() {

    let a = 12;

    let b = 5;

 

    let area = a * b;

    console.log(area);

}

 

rectangleArea()

 

Конзолата  ми дава правилен отговор, но не излиза правилно в Judge - https://judge.softuni.bg/Contests/Submissions/View/15183071 

Откъде идва разликата?

P.S. Отделно, има известно разминаване между обясненията в упражнението на курса и в книгата, където се предлага функция solve. Опитах преди това и с тази функция, но не се получи.

 

 

mttnu avatar mttnu 82 Точки

Колега, настоящият курс и книгата не вървят по един и същ път. 
Като цяло имаш доста варианти за правилно(според условията на judge) решаване на задачата. Ето няколко:

Вариант 1:

function liceNaPravougulnik([a, b]) {
  let stranaA = Number(a);
  let stranaB = Number(b);
  let lice = stranaA * stranaB;
  console.log(lice);
}
liceNaPravougulnik([5, 8])

Вариант 2:

function liceNaPravougulnik(input) {
  stranaA = Number(input[0]);
  stranaB = Number(input[1]);
  let lice = stranaA * stranaB;
  console.log(lice);
}
liceNaPravougulnik([2, 5])

Вариант 3 (най-кратък, но и най-непрепоръчителен):

function liceNaPravougulnik([a, b]) {
  let lice = a * b;
  console.log(lice);
}
liceNaPravougulnik([2, 5])

// При проверка в Judge не трябва да се извиква функцията, тоест без последния ред.

Най-важното нещо, което трябва да съобразиш в тази задача, е че по условие judge ти пуска масив като аргумент/и на функцията, за това квадратните скоби при декларирането и извикването на функцията са много важни.
Вторият вариант е без квадратни скоби, защото използваме индекси, за да достъпим данните в масива и да ги присвоим към въпросните променливи (а и b). В този курс (PB Basic JS April 2020) до сега не е говорено за масиви и е нормално да не знаеш как, какво и защо точно се случва - за това и казах, че курсът и книгата не вървят по точно един път и със същото темпо.

Също така е редно да вметна, че за тази задача реално не е нужно да използваш Number() - това е начин за преобразуване на стринг в число - защото Judge ти подава число в този случай. В някои случаи обаче подава стринг и може да изпаднеш в голямо чудене защо не работят нещата. Да го наречем добра практика и tip за в бъдеще. 

// А колкото до въпросната функция "solve" - това е най-обикновенна функция с име solve (името може да бъде почти каквото си поискаш - както е в примерите отгоре) и два параметъра. Не е нещо мистично или нещо, което като го извикаш - магически ще реши задачата.

:) 

0
08/04/2020 21:11:42
DimiPetrov avatar DimiPetrov 4 Точки

Благодаря много, получи се.

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