Loading...
YFarazova avatar YFarazova 2 Точки

05. Best Player//Programming Basics Online Exam - 18 and 19 July 2020

 

Изпит по "Основи на програмирането"

Задача 5. Най-добър играч

Пепи иска да напишете програма, чрез която да разбере кой е най-добрият играч от световното първенство. Информацията, която получавате ще бъде играч и колко гола е отбелязал. От вас се иска да отпечатате кой е играчът с най-много голове и дали е направил хет-трик. Хет-трик е, когато футболистът е вкарал 3 или повече гола. Ако футболистът е вкарал 10 или повече гола, програмата трябва да спре.

Вход:

От конзолата се четат по два реда до въвеждане на команда "END":

  • Име на играч – текст
  • Брой вкарани голове  – цяло положително число в интервала [1 … 10000]

Изход:

На конзолата да се отпечатат 2 реда :

  • На първия ред:

            "{име на играч} is the best player!"

  • На втория ред :
    •  Ако най-добрият футболист е направил хеттрик:

                   "He has scored {брой голове} goals and made a hat-trick !!!"

  • Ако най-добрият футболист не е направил хеттрик:

                   "He has scored {брой голове} goals."

Примерен вход и изход:

Вход

Изход

Обяснения

Neymar

2

Ronaldo

1

Messi

3

END

Messi is the best player!

He has scored 3 goals and made a hat-trick !!!

Първо се въвежда Neymar с 2 гола като за момента той има най-много голове, след това Ronaldo с 1 гол като той има по-малко голове от Neymar, който е с 2, след това Messi, който има 3 гола. Головете на Messi са повече от тези на Neymar и вече Messi има най-много голове. След като головете са му 3, той е направил и хет-трик.

Вход

Изход

Вход

Изход

Silva

5

Harry Kane

10

Harry Kane is the best player!

He has scored 10 goals and made a hat-trick !!!

Rooney

1

Junior

2

Paolinio

2

END

Junior is the best player!

He has scored 2 goals.

Вход

Изход

Вход

Изход

Petrov

2

Drogba

11

Drogba is the best player!

He has scored 11 goals and made a hat-trick !!!

Zidane

1

Felipe

2

Johnson

4

END

Johnson is the best player!

He has scored 4 goals and made a hat-trick !!!

 

 

JavaScript - Примерен вход и изход:

Вход

Изход

Обяснения

(["Neymar", "2",

"Ronaldo",

"1",

"Messi",

"3",

"END"])

Messi is the best player!

He has scored 3 goals and made a hat-trick !!!

Първо се въвежда Neymar с 2 гола като за момента той има най-много голове, след това Ronaldo с 1 гол като той има по-малко голове от Neymar, който е с 2, след това Messi, който има 3 гола. Головете на Messi са повече от тези на Neymar и вече Messi има най-много голове. След като головете са му 3, той е направил и хет-трик.

Вход

Изход

Вход

Изход

(["Silva",

"5",

"Harry Kane",

"10"])

Harry Kane is the best player!

He has scored 10 goals and made a hat-trick !!!

(["Rooney",

"1",

"Junior",

"2",

"Paolinio",

"2",

"END"])

Junior is the best player!

He has scored 2 goals.

Вход

Изход

Вход

Изход

(["Petrov",

"2",

"Drogba",

"11"])

Drogba is the best player!

He has scored 11 goals and made a hat-trick !!!

(["Zidane",

"1",

"Felipe",

"2",

"Johnson",

"4",

"END"])

Johnson is the best player!

He has scored 4 goals and made a hat-trick !!!

 

 

 

https://pastebin.com/nB7JwifA

 

Здравейте ако някой е решава лтази задача. Не ми излиза варианта с Руни в случай че имаме двама футболисти с еднакъв брой голове. На мен ми вади втория а джъдж очаква първия.

 

Тагове:
MartinBG avatar MartinBG 4803 Точки

Трябва да се пази най-добрия играч до момента и при обхождането на входните данни да се ъпдейтва, ако открием по-добър такъв.

Примерно решение:

function bestPlayer(input) {
  let i = 0;
  let command = input[i];
  i++;

  let bestPlayerName = '';
  let bestPlayerGoals = Number.MIN_SAFE_INTEGER;

  while (command !== 'END') {
    let currentPlayerName = command;
    let currentPlayerGoals = Number(input[i]);
    i++;

    if (currentPlayerGoals > bestPlayerGoals) {
      bestPlayerName = currentPlayerName;
      bestPlayerGoals = currentPlayerGoals;
    }

    if (currentPlayerGoals >= 10) {
      break;
    }

    command = input[i];
    i++;
  }

  console.log(`${bestPlayerName} is the best player!`);
  if (bestPlayerGoals >= 3) {
    console.log(`He has scored ${bestPlayerGoals} goals and made a hat-trick !!!`);
  } else {
    console.log(`He has scored ${bestPlayerGoals} goals.`);
  }
}

 

1
YFarazova avatar YFarazova 2 Точки

Да точно така. Малко по-късно през деня се сетих и си оправих грешката. Толкова деликатно съм я омазала. Благодаря за отговора.

2
Doitchin avatar Doitchin 2 Точки

A Judge kakvo kazva?

0
alsavov avatar alsavov 7 Точки

Макар и късно ето едно решение и от мен, което доста прилича на това на колегата, но все пак се различава.

function bestPlr(input) {
    let index = 0;

    let command = input[index];
    index++;

    let maxGoals = 0;
    let playerWinner = "";

    let isThereHatTrick = false;

    while (command !== "END") {
        
        let currentPlayer = command;

        let currentGoals = Number(input[index]);
        index++;

        if (currentGoals >= 10) {
            maxGoals = currentGoals;
            playerWinner = currentPlayer;
            break;
        };

        if (currentGoals > maxGoals) {
            maxGoals = currentGoals;
            playerWinner = currentPlayer;
        }

            if (maxGoals >= 3) {
            isThereHatTrick = true;
        }

        command = input[index];
        index++;
    }

    console.log(`${playerWinner} is the best player!`);

    if (isThereHatTrick) {
        console.log(`He has scored ${maxGoals} goals and made a hat-trick !!!`);
    } else {
        console.log(`He has scored ${maxGoals} goals.`)
    }
}

 

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