Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 900 б
- Dwayne_Johnson 870 б
3 апреля 2023 03:11
639
Напишите программу, которая получает с клавиатуры возрасты трёх человек (Антона, Бориса и Виктора) и определяет, кто из них старше. Пример: Возраст Антона: 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
·
Хороший ответ
5 апреля 2023 03:11
Остались вопросы?
Еще вопросы по категории Информатика
Строка описывающая свойства элемента таблиц базы данных, называется А) полем В) бланком С) записью D) связью Е) ключом...
Как называется основной элемент электронной таблицы MS Excel?...
1. Текстовый редактор - программа, предназначенная для 1.создания, редактирования и форматирования текстовой информации; 2.работы с изображениями в...
For i in range (14,11,1): print (i) найдите пж...
Основой метода структурного программирования являются использованиеконцепции двух базовых элементов – ветвления и циклической структур использование к...