Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 900 б
- Dwayne_Johnson 865 б
2 апреля 2023 03:14
907
Напишите программу, которая получает с клавиатуры возрасты трёх человек (Антона, Бориса и Виктора) и определяет, кто из них старше. Пример: Возраст Антона: 15 Возраст Бориса: 17 Возраст Виктора: 16 Ответ: Борис старше всех.
1
ответ
PascalABC.NET 3.7:
Объяснение:
С помощью ReadString реализуем вывод приглашения к вводу ("Введите имена:") и запрос на ввод строки. После чего, ToWords преобразует введённую строку в массив слов. Этот полученный массив (массив введённых через пробел имён) записывается в переменную names.
С помощью ReadArrInteger реализуем вывод приглашения к вводу ("Введите возраста:") и запрос на ввод массива чисел, длину которого (количество вводимых чисел) мы задали с помощью names.Len (длина массива names). Этот массив чисел записывается в переменную values. Числа можно вводить как через пробел, так и с новой строки.
С помощью метода расширения Max находим максимальный элемент массива values и записываем его в переменную m.
С помощью метода расширения Indices получаем последовательность индексов, удовлетворяющим условию x = m, где x — тот или иной элемент массива values. Затем, с помощью метода Sel проецируем каждый элемент полученной последовательности в новую форму: из i в names[i], то есть из каждого индекса, условно обозначенным как i, мы получаем имя, хранящееся в массиве names под индексом i. Далее метод ToA преобразует последовательность в массив, и этот массив записывается в переменную a.
И вот, мы уже имеем ответ: все нам нужные имена хранятся в массиве a. Идущие далее 3 строчки обеспечивают "красивый" вывод "на всевозможные случаи". Их можно заменить на a.Pr — все элементы массива a будут выведены через пробел. Но рассмотрим эти "3 строчки".
Если длина массива a равна длине массива values (то есть в массив a были отобраны все элементы массива values), то выводим сообщение "У всех одинаковый возраст.". Иначе, если длина массива a равна 1, то выводим этот единственный элемент массива a с сообщением "старше всех.". Если же не выполняется ни то, ни другое условие, то на экран через пробел будет выведено следующее:
Пример работы:
- ###
- var names := ReadString('Введите имена:').ToWords;
- var values := ReadArrInteger('Введите возраста:', names.Len);
- var m := values.Max;
- var a := values.Indices(x → x = m).Sel(i → names[i]).toA;
- if a.Len = values.Len then Pr('У всех одинаковый возраст.')
- else if a.Len = 1 then Pr(a[0], 'старше всех.')
- else Pr(a[:^1].JoinToString(', '), 'и', a[^1], 'старше всех.')
Объяснение:
С помощью ReadString реализуем вывод приглашения к вводу ("Введите имена:") и запрос на ввод строки. После чего, ToWords преобразует введённую строку в массив слов. Этот полученный массив (массив введённых через пробел имён) записывается в переменную names.
С помощью ReadArrInteger реализуем вывод приглашения к вводу ("Введите возраста:") и запрос на ввод массива чисел, длину которого (количество вводимых чисел) мы задали с помощью names.Len (длина массива names). Этот массив чисел записывается в переменную values. Числа можно вводить как через пробел, так и с новой строки.
С помощью метода расширения Max находим максимальный элемент массива values и записываем его в переменную m.
С помощью метода расширения Indices получаем последовательность индексов, удовлетворяющим условию x = m, где x — тот или иной элемент массива values. Затем, с помощью метода Sel проецируем каждый элемент полученной последовательности в новую форму: из i в names[i], то есть из каждого индекса, условно обозначенным как i, мы получаем имя, хранящееся в массиве names под индексом i. Далее метод ToA преобразует последовательность в массив, и этот массив записывается в переменную a.
И вот, мы уже имеем ответ: все нам нужные имена хранятся в массиве a. Идущие далее 3 строчки обеспечивают "красивый" вывод "на всевозможные случаи". Их можно заменить на a.Pr — все элементы массива a будут выведены через пробел. Но рассмотрим эти "3 строчки".
Если длина массива a равна длине массива values (то есть в массив a были отобраны все элементы массива values), то выводим сообщение "У всех одинаковый возраст.". Иначе, если длина массива a равна 1, то выводим этот единственный элемент массива a с сообщением "старше всех.". Если же не выполняется ни то, ни другое условие, то на экран через пробел будет выведено следующее:
- все элементы массива a, кроме последнего, которые с помощью JoinToString преобразовали в строку, используя ", " в качестве разделителя;
- "и";
- последний элемент массива a;
- "старше всех.".
Пример работы:

0
·
Хороший ответ
4 апреля 2023 03:14
Остались вопросы?
Еще вопросы по категории Информатика
Какая информация хранится в файлах растрового типа и в файлах векторного типа...
В Python срочно даю 25 баллов. 1. Определите округление до ближайшего наибольшего целого числа 85,5. 2. Определите округление до ближайшего наименьше...
грамотный музыкант способен услышанную музыку записать нотами Какое при образовании формы музыкального произведения он при этом производит Опишите сит...
1.В терминологии сетей ТСР/Р маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая - к...
Предположим, что мы нашли минимальный элемент списка(массива). Где он должен размещаться в отсортированном по возрастанию массиве?...