М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
cazydays
cazydays
02.04.2023 01:46 •  Информатика

УМОЛЯЮ На вход программы подаются сведения о результатах соревнований по школьному многоборью. Многоборье состоит из соревнований по четырем видам спорта, участие в каждом из которых оценивается от 0 до 10 ( получает ученик, не принимавший участия в соревнованиях по данному виду спорта). Победители определяются по наибольшей сумме набранных . Известно, что общее количество участников соревнований не превосходит 100.

В первой строке вводится количество учеников, принимавших участие в соревнованиях, N. Далее следуют N строк, имеющих следующий формат:

Здесь – строка, состоящая не более чем из 20 символов; – строка, состоящая не более чем из 15 символов; - строка, содержащая четыре целых числа, разделенных пробелом, соответствующих , полученным на соревнованиях по каждому из четырех видов спорта. При этом и , и разделены одним пробелом. Примеры входных строк:

Иванова Мария 5 8 6 3

Петров Сергей 9 9 5 7

Напишите программу, которая будет выводить на экран фамилии и имена трех лучших участников многоборья. Если среди остальных участников есть ученики, набравшие то же количество , что и один из трех лучших, то их фамилии и имена также следует вывести. При этом имена и фамилии можно выводить в произвольном порядке.

👇
Открыть все ответы
Ответ:
Умник333331
Умник333331
02.04.2023

#include <iostream>

#include <iomanip>

class Point {

protected:

double* arr; //массив с координатами по осям

size_t size; //размерность пространства

public:

   Point(size_t s) : size(s) {

       arr = new double[s];

   }

   ~Point() {  

       delete[] arr;  

   }

virtual void print() = 0; //вывод координат

};

class Point2D : public Point {

public:

   Point2D(double x,double y) : Point(2) {

       arr[0] = x; arr[1] = y;

   }

   void print() override {

       std::cout << "x = " << std::fixed << std::setprecision(1) << arr[0] << " y = " << arr[1] << std::endl;

   }

};

class Point3D : public Point {

public:

   Point3D(double x, double y, double z) : Point(3) {

       arr[0] = x; arr[1] = y; arr[2] = z;

   }

   void print() override {

       std::cout << "x = " << std::fixed << std::setprecision(1) << arr[0] << " y = " << arr[1]

           << " z = " << arr[2] << std::endl;

   }

};

int main(int argc, char* argv[]) {

Point* p1 = new Point2D(1.5, 4.8);

Point* p2 = new Point3D(1.0, 10.2, 3.3);

p1->print();

p2->print();

delete p1;

delete p2;

return 0;

}

4,4(43 оценок)
Ответ:

Фрагмент программы будет выполнятся вечно, значение переменной c получить нельзя.

Объяснение:

Присваиваем переменной a число 100:

a:=100;

Присваиваем переменной b число 20:

b:=20;

Далее идёт цикл с постусловием, выполняем тело, пока b не станет больше или равна 100:

repeat

i:= a div b;

c:=i + 5;

b:= a div b;

until b>=100;

Смотрим:

i  =  a div b  =   100 div 20  =  5c =  i + 5  =  5 + 5  =  10 b =  a div b   =   100 div 20  =  5

b>=100 ? нет  =>  ещё раз:

i  =  a div b  =   100 div 5  =  20c =  i + 5  =  20 + 5  =  25b =  a div b   =   100 div 5  =  20

Переменная b изначально была равна 20, а через 2 прохода цикла, она также стала 20. Делаем вывод: это замкнутый цикл, выполнятся он будет вечно, так как переменная b никогда не будет >=100.

4,7(31 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ