1.5. Функции в языках объективно-ориентированного и процедурного программирования
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 1 (часть 1)
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 1 (часть 2)
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 2 (часть 1)
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 2 (часть 2)
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 3 (часть 1)
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 3 (часть 2)
Шаг 2. Решаем задачи на Паскале
Задача 1. (Из материалов ЕГЭ, упрощенный вариант.) На вход программе подаются сведения о сдаче теста учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100. Каждая из следующих N строк имеет формат <Фамилия> <Имя> <Результат>, где <Фамилия> – строка, состоящая не более чем из 20 символов, <Имя> – строка, состоящая не более чем из 15 символов, <Результат> – число в пределах от 0 до 100 баллов. <Фамилия> и <Имя>, а также <Имя> и <Результат> разделены одним пробелом.
Пример входной строки:
Иванов Петр 75
Требуется написать программу, которая будет выводить на экран фамилию и имя лучшего ученика и его результат. Если максимальный результат набрали несколько человек, то вывести фамилию и имя первого в этом списке.
План решения задачи по блокам
Блок 1. Введите строку и разделите входную запись на две части: 1 – фамилия и имя, 2 – результат. Для этого найдите место второго (последнего) пробела и всё, что стоит после него, скопируйте в дополнительную строку, после чего переведите эту строку в число. Всё, что стоит до этого пробела, также занесите в дополнительную строку (можно в эту же дополнительную строку, так как предыдущий результат вы уже перевели в число).
Блок 2. Заведите две переменные: числовую – для максимального результата и строковую – для фамилии и имени лучшего ученика. Предварительно обнулите эти переменные. Введите количество учеников N. Организуйте цикл for для просмотра результатов всех учеников. В цикле получите данные об ученике и отделите результат от фамилии с именем (блок 1), далее сравните полученный результат с текущим максимальным. Если полученный результат лучше текущего максимума, то сделайте его текущим максимумом и замените значение строковой переменной.
Блок 3. По окончании цикла выведите максимальный результат, а также фамилию и имя лучшего ученика.
Решите задачу поэтапно, отвечая на вопросы и записывая основные блоки программы.
1. Сколько переменных строкового типа должно быть в вашей программе и каково назначение каждой из них?
Количество строковых переменных: _____________________
Обозначение и назначение каждой строковой переменной:
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
2. Какие основные числовые переменные понадобятся в вашей программе?
Обозначение и назначение числовых переменных:
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________