В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
116541
116541
01.03.2022 14:18 •  Информатика

Создайте класс Cafe c 3 полями - наименование кафе, наименования блюд(строковый массив), цены(целочисленный массив). Значения двух массивов соответствуют друг другу на i позиции. a. Создайте конструктор с 3 параметрами для этих полей.
b. Напишите метод, который выводит общую информацию об объекте данного класса.
c. Напишите рекурсивный метод, который возвращает общую стоимость всех блюд.
d. Напишите метод, который выводит наименование самого дорогого блюда.
e. Напишите метод, у которого есть параметр - наименования блюд, которые хочет заказать гость(строковый список). Проверьте наличие блюд и, если данные блюда есть в меню, выведите общую стоимость заказа, прибавив 10% за обслуживание.
f. Создайте объект данного класса и примените вышеуказанные методы.

Показать ответ
Ответ:
Forsenboy
Forsenboy
24.07.2020 09:18
Program Stipendiya;
type
Student = record
Ocenka: array [1..5] of Byte;
end;
var
i, j: Byte;
Summa: Integer;
Troechik: Boolean;
Studenti: array [1..25] of Student;
begin
for i:=1 to 25 do
begin
// Zapolnyaem ocenki studentov:
WriteLn('Vvedite ocenki '+IntToStr(i)+' studenta: ');
for j:=1 to 5 do
begin
Write('Ocenka za '+IntToStr(i)+' ekzamen: ');
ReadLn(Studenti[i].Ocenka[j]);
end;
end;

// Chitaem summu

S:=0;

WriteLn('');

for i:=1 to 25 do
begin
//
Troechik:=False;
//
for j:=1 to 5 do
if Studenti[i].Ocenka[j] < 4 then Troechik:=True;
//
if not Troechik then
begin
WriteLn('Vidat stipendiu '+IntToStr(i)+' studentu');
Summa:=Summa + 900;
end;
end;

// Vivod summi vsex stipendii
WriteLn('Summa vsex stipendii = '+IntToStr(Summa));
end.
0,0(0 оценок)
Ответ:
karina211206
karina211206
24.07.2020 09:18
Program Olympic;

const
  nMax = 50; { максимум 50 команд }
  cGold = 7;
  cSilver = 6;
  cBronze = 5;

type
  cName = string[20];
  RC = record
    position: byte;
    name: cName;
    nGold: byte;
    nSilver: byte;
    nBronze: byte;
    cTotal: byte
  end;
  tM = array[1..nMax, 1..2] of byte;

procedure Shell(var a: tM; n: integer);
{ Сортировка методом Шелла массива a[1..n, 1..2]
  по убыванию значений элементов второго столбца. }
var
  i, j, step, t1, t2: integer;

begin
  step := n div 2;
  while step > 0 do
  begin
    for j := n - step downto 1 do
    begin
      i := j;
      while i <= n - step do
      begin
        if a[i, 2] < a[i + step, 2] then
        begin
          t1 := a[i, 1]; t2 := a[i, 2];
          a[i, 1] := a[i + 1, 1]; a[i, 2] := a[i + 1, 2];
          a[i + 1, 1] := t1; a[i + 1, 2] := t2
        end;
        i := i + step
      end
    end;
    step := step div 2
  end
end;

{ Основная программа }
var
  f: file of RC;
  a: tM;
  i, n: byte;
  s: cName;
  t: RC;

begin
  { Организуем ввод данных }
  Assign(f, 'Olympic.in');
  Rewrite(f);
  n := 0;
  repeat
    Writeln('Введите наименование команды или * для окончания ввода');
    Readln(s);
    if s[1] <> '*' then
    begin
      n := n + 1;
      Write('Количество медалей: золото, серебро, бронза: ');
      Readln(t.nGold, t.nSilver, t.nBronze);
      t.position := n;
      t.name := s;
      t.cTotal := t.nGold * cGold + t.nSilver * cSilver + t.nBronze * cBronze;
      Write(f, t);
      a[n, 1] := t.position; a[n, 2] := t.cTotal
    end
  until s[1] = '*';
  Reset(f);
  { Выполняем сортировку заполненного массива a,
    определяя положение записей в файле }
  Shell(a, n);
  { Выводим результаты, используя прямой доступ к файлу }
  Writeln('Результаты олимпиады');
  for i := 1 to n do
  begin
    seek(f, a[i, 1] - 1);
    Read(f, t);
    Writeln(i, ': ', t.name, '(', t.nGold, ' зол, ', t.nSilver, ' сер, ',
      t.nBronze, ' бронз), очков- ', t.cTotal)
  end;
  Close(f);
end.

Тестовое решение:
Введите наименование команды или * для окончания ввода
Веселые медузы
Количество медалей: золото, серебро, бронза: 4 6 10
Введите наименование команды или * для окончания ввода
Юные сурки
Количество медалей: золото, серебро, бронза: 2 0 5
Введите наименование команды или * для окончания ввода
Черепашки-ниндзя
Количество медалей: золото, серебро, бронза: 3 7 11
Введите наименование команды или * для окончания ввода
*
Результаты олимпиады
1: Черепашки-ниндзя(3 зол, 7 сер, 11 бронз), очков- 118
2: Веселые медузы(4 зол, 6 сер, 10 бронз), очков- 114
3: Юные сурки(2 зол, 0 сер, 5 бронз), очков- 39
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота