При выборе третьего пункта меню необходимо ввести следующую информацию:
Матрицу m на n, элементы которой являются действительными числами
Перед выбором четвертого пункта меню необходимо подготовить файл tab. pas с табличной информацией: номер квитанции, наименование товара, дата поступления товара, срок, на который сдан товар, стоимость товара и расположить его в каталоге с программой.
Вывод результатов работы осуществляется после решения каждой из четырех задач:
При решении первой задачи осуществляется вывод одномерного массива действительных чисел размерностью m, наименьших в каждой строке матрицы m на n.
При решении второй задачи осуществляется вывод преобразованного массива действительных чисел m на m, где в верхнем левом углу находится наибольший элемент введенного массива.
При решении третьей задачи осуществляется вывод преобразованного массива действительных чисел m на n, где элементы входного массива заменены суммой соседних (кроме граничных). При решении четвертой задачи осуществляется вывод отсортированной по дате таблицы с данными различного типа в файл sort_tab. pas.
Программный комплекс "Автоматизированная система обработки структур данных" предназначен для управления выполнением четырех задач, которые осуществляют обработку массивов данных, а также обработку файлов с данными разного типа.
Кратко опишем основные функции, которые выполняет данное программное средство:
Простой и удобный запуск каждой задачи из единой программной оболочки.
Ввод и обработка двумерных массивов данных: поиск наименьших и наибольших значений матрицы, перестановка строк и столбцов матрицы, вычисление суммы элементов, соседних с текущим.
Считывание, обработка и сохранение данных в файле.
Сортировка данных различного типа.
Удобная система завершения работы после выполнения каждой задачи и функция выхода из программного комплекса
Программный комплекс "Автоматизированная система обработки структур данных" предназначен для работы в операционных системах семейства Windows, состоит из файла progr. exe, никаких дополнительных программных компонентов для работы не требуется. В каталоге с программой также должен располагаться файл tab. pas для решения четвертой задачи.
Запуск программного комплекса осуществляется с помощью файла progr. exe. После этого мы попадаем в главное меню программы (рис.1):
Рис.1. Главное меню программного комплекса.
После выбора соответствующего номера мы попадаем в режим ввода данных той или иной задачи (рис.2):
Рис.2. Режим ввода данных для первой задачи.
Если мы ввели данные не верно, то программа попросит повторить ввод (рис.3):
Рис.3. Действия программы при неверном вводе данных.
Выдача результатов осуществляется после выполнения необходимых условий ввода данных (рис.4):
Рис.4. Выдача результатов работы первой задачи.
После нажатия на клавишу Enter мы попадаем в главное меню программы, где можем продолжить работу или выйти из программы, введя цифру 5.
Рассмотрим пример нахождения наибольшего по модулю элемента матрицы и перемещения его в левый верхний угол матрицы с помощью перестановки двух строк или двух столбцов (Задача 2).
Итак, выбираем пункт два в главном меню программы и нажимаем Enter (рис.5):
Рис.5. Выбор режима работы программы
Далее необходимо ввести размер действительной квадратной матрицы и ее элементы (Рис.6):
Рис.6. Ввод действительной квадратной матрицы
После этого получаем следующие результаты (рис.7):
Рис.7. Вывод результатов работы задачи 2.
Число 7 – наибольшее значение матрицы стоит в левом верхнем углу преобразованной матрицы. Нажимаем Enter и возвращаемся в главное меню программного комплекса.
Рассмотрим пример работы третьей задачи.
Ввод данных осуществляется аналогичным для первой задачи образом (рис. 8)
Рис.8. Ввод данных для задачи 3
После этого получаем следующие результаты (рис.9):
Рис.9. Вывод результатов работы задачи 3
Получаем сумму соседних элементов массива, записанных вместо значений 4.0000 и 3.0000.
Рассмотрим пример работы с файлами. В главном меню выбираем пункт номер 4. Если файл tab. pas с нужными данными существует, то выдается следующее сообщение (рис.10):
Рис.10. Вывод результатов работы задачи 4.
Результаты работы программы (отсортированный по дате набор данных) необходимо посмотреть в файле sort_tab. pas.
Если исходного файла не существует, то выдается ошибка (рис.11):
Рис.11. Отсутствие файла с данными
В данной курсовой работе решены задачи обработки массивов данных и файлов данных различного типа.
В процессе создания курсовой работы разработан алгоритм решения четырех поставленных подзадач. Они были объединены в единый программный комплекс, реализованный на языке Pascal в среде программирования TurboPascal.
В ходе тестирования были получены верные результаты работы алгоритмов нахождения максимальных и минимальных значений матрицы, перестановки строк и столбцов местами, нахождения суммы элементов матрицы, а также сортировки структур данных различного типа, что говорит о достижении целей курсовой работы.
1. ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.
2. ГОСТ 19.102-77. ЕСПД. Стадии разработки.
3. ГОСТ 34.602-89. ЕСПД. Информационная технология. Техническое задание на создание автоматизированных систем.
4. ГОСТ 19.402-78. ЕСПД. Описание программы.
5. ГОСТ 19.509-79. ЕСПД. Руководство программиста.
6. ГОСТ 19.505-79. ЕСПД. Руководство оператора.
7. Кнут Д. Искусство программирования для ЭВМ. Т.1. Основные алгоритмы, Т.2. Получисленные алгоритмы, Т.3. Сортировка и поиск / Пер. с. англ. – М.: Мир, 1976-1977.
8. Бутомо И.Д., Самочадин А.В., Усанова Д.В. Программирование на алгоритмическом языке Паскаль для микроЭВМ: Учебное пособие. - Л.: ЛГУ, 1985. - 216 с.
9. Форсайт Р. Паскаль для всех. - М.: Машиностроение, 1986. - 286 с.
10. Электронные вычислительные машины: В 8 кн.: Учебное пособие для вузов /под ред.А.Я. Савельева. Кн.5. Языки программирования (Паскаль, ПЛ/М) - М.: Высш. школа, 1987. - 143 с.
11. Уилсон И.Р., Эддиман А.М. Практическое введение в Паскаль. - М.: Радио и связь, 1983. - 144 с.
12. Керниган Б., Плоджер Ф. Инструментальные средства программирования на языке Паскаль. - М.: Радио и связь, 1985. -312с.
13. Белецкий Я. Турбо Паскаль с графикой для персональных компьютеров перевод с польского Д.И. Юренкова. - М.: Машиностроение, 1991. - 320 с.
14. Сергиевский М.В., Шалашов А.В. Турбо Паскаль 7.0; язык, среда программирования. - М: Машиностроение. -1994,-254 с. ил.
15. Справочник по процедурам и функциям Borland Pascal 7.0. - Киев: Диалектика, 1993. - 272 с.
Модуль zad1
unitzad1;
interface
usescrt;
Const {определение констант размерности массива}
max_m = 20;
max_n = 40;
Type{определение типов двумерного и одномерного массива}
Matrix = array [1. . max_m,
1. . max_n] Of Real;
Massiv = array [1. . max_m] Of Real;
{Определение используемых процедур}
Procedure vvod (Var A: Matrix; Var m, n: Integer);
Procedure obrab (A: Matrix; m, n: Integer; Var b: Massiv);
Procedure vyvod (A: Matrix; b: Massiv; m,n: Integer);
implementation
{Процедура ввода элементов двумерного массива и вывода его на экран}
Procedure vvod (Var A: Matrix; Var m, n: Integer);
Var
i, j: Byte;
Begin
Repeat
WriteLn('Введите размеры матрицы не более ',max_m,' ',max_n);
ReadLn(m);
ReadLn(n);
Until (m>1) AND (n>1) AND (m<=20) AND (n<=40);
For i: =1 To m Do
For j: =1 To n Do Begin
WriteLn('Введите элементы матрицы A [', i,',',j,'] ');
ReadLn(A [i,j]);
End;
clrscr;
WriteLn('Исходная матрица');
For i: =1 To m Do Begin
For j: =1 To n Do Begin
write(A [i,j]: 5: 4,' ');
end;
writeln;
end;
End;
{Процедура нахождения наименьших значений строк матрицы}
Procedure obrab (A: Matrix; m, n: Integer; Var b: Massiv);
Var
i, j: Byte;
Begin
For i: =1 To m Do Begin
b [i]: =A [i,1] ;
For j: =2 To n Do
If A [i,j] <b [i] Then b [i]: = A [i,j]
End;
End;
{Процедура вывода массива наименьших значений строк на экран}
Procedure vyvod (A: Matrix; b: Massiv; m,n: Integer);
Var
i,j: Byte;
Begin
WriteLn('Наименьшие значения элементов строк матрицы A: ');
For i: =1 To m Do Begin
WriteLn(b [i]: 5: 4);
End;
End;
end.
Модуль zad2
Unit zad2;
Interface
Usescrt;
Type{определение типа двумерного массива}
Matr = array [1. .50,
1. .50] OfReal;
{Определение используемых процедур}
procedure vvod1(var A1: Matr; var n1: integer);
procedure poiskmax(A1: Matr; n1: integer; var k1,l1: byte);
procedure perestanovka(var A1: Matr; n1,k1,l1: integer);
procedure vyvod1 (A1: Matr; n1: integer);
implementation
{Процедура ввода размеров и элементов матрицы, а также вывод её на экран}
procedure vvod1(var A1: Matr; var n1: integer);
var i,j: byte;
begin
repeat
writeln('Введите размер матрицы');
readln(n1);
until (n1>1);
for i: =1 to n1 do
for j: =1 to n1 do begin
writeln('Введите элементы матрицы A [', i,',',j,'] ');
readln(A1 [i,j])
end;
WriteLn('Исходная матрица');
For i: =1 To n1 Do Begin
For j: =1 To n1 Do Begin
write(A1 [i,j]: 5: 4,' ');
end;