Контрольная работа: Язык программирования Turbo Pascal
Входная информация представляет собой матрицу произвольного размера, состоящую из целых чисел.
Для матрицы создан тип matr = array [1..n,1..n] of integer,
Где n – максимально допустимое количество строк и столбцов.
Во входном файле может содержаться матрица любой размерности, не превосходящей n. Элементы в файле должны быть разделены символом «Пробел», и разбиты на строки. При отсутствии необходимых элементов, программы заполнит недостающие элементы нулями.
Если в исходных данных содержится ошибка, программа сообщит, и предоставит возможность снова ввести данные.
3 Описание технологии и алгоритмов решения задачи и их машинная реализация.
3.1 Описание технологии ввода входной информации
При формировании матрицы датчиком случайных чисел необходимо только задать размер матрицы (количество строк и столбцов)
При вводе матрицы с клавиатуры будет предложено ввести размер матрицы и по очереди все ее элементы. Если элемент будет набран неверно, программа выдаст предупредительное сообщение.
3.2 Обобщенный алгоритм решения задачи и его декомпиляция на модули
Данный проект содержит модуль и вызывающую программу.
Задача модуля заключается в следующем:
- Заполнить исходную матрицу А;
- Обработать матрицу А и сформировать матрицу С, путем вычеркивания строки и столбца матрицы А, на пересечении которых находится минимальный элемент матрицы А;
- Определить количество нулей в матрице С;
- Вывести результат.
Задача вызывающей программы заключается в следующем:
- Создание интерфейса пользователя - меню;
- Использование средств программного модуля.
Схема алгоритма:
3.3 Алгоритмы реализации отдельных модулей задачи
Модуль Modul1 содержит следующие процедуры и функции:
· procedure create (var b:matr;t:integer); - процедура создания матрицы, t – способ создания;
· procedure vivod (b:matr;t:integer;x:integer); - процедура вывода результата, t – способ вывода, x – тип матрицы(исходная, результирующая);
· function nomi(x:char;b:matr):integer; - функция нахождения строки или столбца минимального элемента матрицы;
· function null(c:matr):integer; - функция определяет количество нулей в матрице;
· procedure obrab (b:matr;var c:matr); - процедура создание минора С из матрицы А;
· function FileExists(FileName: String): Boolean; - функция определяет создан ли запрошенный на чтение файл.
Вызывающая программа содержит:
· procedure menu; - процедура, создающая программный интерфейс типа меню.