Лучшие помощники
- Megamozg 2200 б
- Matalya1 1800 б
- DevAdmin 1705 б
- arkasha_bortnikov 890 б
- Dwayne_Johnson 860 б
3 апреля 2023 03:11
508
Напишите программу, которая получает с клавиатуры возрасты трёх человек (Антона, Бориса и Виктора) и определяет, кто из них старше. Пример: Возраст Антона: 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
Остались вопросы?
Еще вопросы по категории Информатика
1. Программы, которые управляют оперативной памятью, процессором, внешними устройствами и которые обеспечивают возможность работы других программ, наз...
2. В некотором каталоге хранился файл Солнце.png. В этом каталоге создали подкаталог Пейзаж и файл Солнце.png переместили в созданный подкаталог. Полн...
Двухканальная (стерео) аудиозапись длительностью 2 минуты занимает в памяти 48 Мбайт, сжатие не производится. Сколько Мбайт памяти будет занимать ауди...
Объем свободной памяти на диске 450мб,разрядность звуковой платы 16 какова длительность звучания стереоаудио файла,записанного с частотой дискретизаци...
Команды России, Канады, Чехии и Финляндии участвовали в чемпионате мира по хоккею. Перед началом турнира эксперты высказали следующие предположения: 1...
Все предметы