1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Босова (Сам и контр)
Вариант 1 Самостоятельная работа 24 из старого издания 2018 года ГДЗ Самостоятельные и контрольные работы Босова 8 класс (Информатика)
Босова, Босова, Бондарева
8 класс
Автор
Босова, Босова, Бондарева

Вариант 1 Самостоятельная работа 24 из старого издания 2018 года ГДЗ Самостоятельные и контрольные работы Босова 8 класс (Информатика)

Задача

СОСТАВНОЙ ОПЕРАТОР. МНОГООБРАЗИЕ СПОСОБОВ ЗАПИСИ ВЕТВЛЕНИЯ
ВАРИАНТ 1
Создайте программу, которая по введённому k — количеству грибов выводит фразу «Мы нашли в лесу k грибов», причём согласовывает окончание слова «гриб» с числом k. Например, при k = 11 должно быть выведено «Мы нашли в лесу 11 грибов», а при k = 22 — «Мы нашли в лесу 22 гриба». (Количество грибов может быть любым целым числом: 1, 3, 34, 127 и т. п. Окончание фразы определяется значением последней цифры.)
При окончании:
1 – гриб, от 2 до 4 – гриба, от 5 до 9 грибов.
Но, если грибов от 11 до 14 надо писать «грибов», а не «гриб» или «гриба». Отдельно этот случай. Для остальных вариантов удобно воспользоваться множественным выбором.
var
n, k: integer;
s, s1: string;
begin
write(‘Количество грибов = ‘);
readln(k);
n := k mod 100;
s := ‘Мы нашли в лесу ‘;
if (n > = 11) and (n < = 14) then s1 := ' грибов' else case k mod 10 of 1: s1 := ' гриб'; 2..4: s1 := ' гриба'; 0, 5..9: s1 := ' грибов'; end; write(s, k, s1) end. Окно вывода: Количество грибов = 99 Мы нашли в лесу 99 грибов Количество грибов = 11 Мы нашли в лесу 11 грибов Количество грибов = 24 Мы нашли в лесу 24 гриба Количество грибов = 51 Мы нашли в лесу 51 гриб

Подробный ответ

Нужно вывести фразу с числом грибов и правильно подобрать окончание слова «гриб».

Сначала проверим особый случай: если последние две цифры числа лежат в диапазоне $$11 \dots 14$$, то всегда пишем «грибов».

Иначе смотрим на последнюю цифру числа:

  • $$1$$ — гриб;
  • $$2, 3, 4$$ — гриба;
  • $$0, 5, 6, 7, 8, 9$$ — грибов.

Для этого удобно использовать оператор if и case.

var
  n, k: integer;
  s, s1: string;
begin
  write(‘Количество грибов = ‘);
  readln(k);
  n := k mod 100;
  s := ‘Мы нашли в лесу ‘;
  if (n >= 11) and (n <= 14) then
    s1 := ‘ грибов’
  else
    case k mod 10 of
      1: s1 := ‘ гриб’;
      2..4: s1 := ‘ гриба’;
      0, 5..9: s1 := ‘ грибов’;
    end;
  write(s, k, s1)
end.

При вводе $$99$$ получится: Мы нашли в лесу 99 грибов, при вводе $$11$$ — Мы нашли в лесу 11 грибов, при вводе $$24$$ — Мы нашли в лесу 24 гриба, при вводе $$51$$ — Мы нашли в лесу 51 гриб.

Ответ: программа на Pascal, приведённая выше.



Общая оценка
4.2 / 5
Другие учебники
Другие предметы