Таблица 12. Данные к заданию 31 варианта
№ вар. | Задание | Остановить обработку при… | Тип обрабат. данных |
Нахождение номера последнего числа, превышающего значение 10.5 в последовательности вводимых произвольных чисел. | …вводе заказанного количества чисел | Вещественые |
Решение задачи следует начинать с разбора задания и выделения объектов, упоминающихся или подразумевающихся в задании. Для каждого найденного объекта определяется его тип и придумывается имя (идентификатор) для последующего программирования. Имена, типы и назначения сводятся в таблицу идентификаторов.
Для данной задачи можно выделить: номер последнего числа, превышающего значение 10.5; количество чисел (N); вводимое число. Для запоминания искомого номера нужно знать порядковый номер вводимого числа. В задании оговорено, что вводимые числа – произвольные, т.е. могут быть как целыми, так и дробными, для их хранения в ЭВМ нужно иметь переменную (ячейку) вещественного типа. Текущий номер и искомый номер – величины целые и, вообще говоря, положительные. Для них можно завести или целые или беззнаковые переменные. Общее количество чисел также должно быть целым и больше нуля, иначе задача не имеет смысла. Таким образом, имеем таблицу:
|
|
Таблица 13. Идентификаторы программы 31-го варианта
Имя | Тип | Размер, байт | Назначение | |||
N | Целый | Количество чисел | ||||
I | Целый | Текущий номер | ||||
Num | Целый | Номер последнего числа, которое > 10.5 | ||||
A | Вещественый | Текущее число | ||||
Исходными данными в задаче являются, во-первых, количество чисел, а во-вторых, сами числа, последовательно вводимые в переменную A. Результатом будет порядковый номер последнего из чисел, которое превышает 10.5. Возможно, что среди вводимых чисел не найдется ни одного такого числа. В этом случае в конце необходимо выдать об этом сообщение, а не номер числа.
Контроль допустимости вводимых данных необходим только для количества чисел: оно должно быть не меньше единицы.
Алгоритм задачи состоит из трех последовательных обобщенных шагов: ввода данных, определения искомого номера и вывода результата.
В части ввода данных программа должна получить от пользователя значение количества чисел (N). Так как ввод данных выполняет человек с помощью клавиатуры, программа должна сообщить, что от него требуется.
Всякому вводимому с клавиатуры числу должен предшествовать запрос на дисплее: что вводить и в какой форме. Как и любое значение, вводимое пользователем с клавиатуры, количество чисел (N) должно контролироваться на допустимость введенной величины.
|
|
Если введено недопустимое значение, требуется выполнить два действия: сообщить об этом и вернуться на запрос нового значения N. Возврат назад возможен двумя способами: командой перехода на метку, поставленную перед оператором запроса или оператором итеративного цикла, причем цикла с "постусловием", так как один раз цикл должен выполниться обязательно.
В данном случае используем первый способ, и потому в программе появляется еще один объект – метка. Дадим ей имя vvod.
Кроме того, дадим имя нашей программе, например laborator_N_3. В результате в таблице имен добавится две строки:
Таблица 14. Окончание таблицы идентификаторов
Имя | Тип | Р-р, байт | Назначение |
laborator_N_3 | Имя программы | - | Поиск номера определенного числа |
vvod | Метка | - | Возврат по ошибке ввода |