
- •Федеральное агентство по образованию
- •Задания обычной сложности
- •Варианты усложнённых заданий
- •Варианты упрощённых заданий
- •Оглавление
- •Условие задачи
- •Способ решения
- •Принцип реализации. Описание констант, переменных, типов.
- •Общая структура программы.
- •Используемые процедуры и функции.
- •Модуль View
- •Головная программа
- •Текст программы {Далее приводится текст программы с комментариями.} Прогон программы
- •Технология программирования
- •394000, Воронеж, пр. Революции, 19
Модуль View
Модуль содержит процедуры View и Zap_1.
Zap_1 - процедура, которая помечает единицами все элементы матрицы M, попадающие внутрь прямоугольника с координатами x1,y1,x2,y2. View – процедура, считывающая координаты прямоугольников из текстового файла в стек и производящая подсчёт количества (n) таких прямоугольников. В функции запрашивается имя файла с исходными данными и производится его открытие для чтения процедурой Reset(f), если открыть его не удалось, то запрос повторяется. В том случае, когда файл опять не удалось открыть, производится останов программы. Блок схема этой функции приведена на рис.8.
Головная программа
Блок-схема головной программы представлена на рис. 2. Она содержит вызов процедур модулей Graphic, Stack и View (см. рис.7), а также и вызов глобальных процедур Poisk и Rec:
Poisk
– функция поиска «1» в матрице. Если 1 в
матрице есть, то она принимает значение
«true»
в противном случае – «false».
Схема алгоритма функции приведена на
рис. 6..
Центральное
место в программе занимает рекурсивная
процедурa
Rec
(см. рис.8)
Она в качестве формальных параметров
получает индексы элемента матрицы M,
уже заменённого на «2». В процедуре
просматриваются соседние с данным
элементы. А именно, элементы “над”,
“под”, справа и слева от него. Если
какой-то из них равен 1, то:
он заменяется на «2»;
осуществляется рекурсивный вызов процедуры Rec уже с его индексами.
Блок схема процедуры Rec приведена на рис.8. Вызов этой процедуры производится из головной программы. Сначала головная программа обращается к процедурам считывания координат прямоугольника из файла и прорисовки их в графическом режиме и при этом в матрице М помечаются единицами все элементы, попадающие внутрь прямоугольников. Затем в матрице М ищутся индексы любой 1, и производится обращение к процедуре Rec, причём найденные индексы передаются в качестве формальных параметров.
Процедура Rec заменяет в матрице все единицы, образующие единую фигуру с той, индексы которой переданы в процедуру, на 2. Таким образом, если в матрице М останутся ещё «1» после отработки процедуры Rec, то это означает, что исходные прямоугольники не образовывали единой фигуры. И в этом случае на экран выводится 0. В противном случае выводится площадь фигуры, равная количеству двоек, умноженному на 10.
Текст программы {Далее приводится текст программы с комментариями.} Прогон программы
Перед прогоном надо создать исходный файл. Например, такой:
Файл PR.TXT
2 7 5 10
3 1 7 8
4 8 10 14
Результат прогона:
Введите имя файла pr.txt
Учебное издание
Технология программирования
Методические указания и варианты заданий
по выполнению курсовой работы
Для студентов специальности 230201 -
"Информационные системы и технологии",
дневной формы обучения
Составители : МЕДВЕДКОВА Ирина Евгеньевна,
КУЛАКОВА Светлана Владимировна,
ЧИКУНОВ Сергей Владимирович
Подписано в печать . . 2007 .
Формат 6084 1/16.
Усл. печ.л. 1,4. Тираж 100 экз. Заказ С -
ГОУВПО “Воронежская государственная технологическая академия”
(ГОУВПО “ВГТА”)
Отдел полиграфии ГОУВПО “ВГТА”
Адрес академии и отдела полиграфии :