Автоматизированная система обработки структур данных

2





Федеральное агентство по образованию

Государственное образовательное учреждение

Высшего профессионального образования

Тульский государственный университет

КАФЕДРА 

АВТОМАТИЗИРОВАННЫХ 

ИНФОРМАЦИОННЫХ И УПРАВЛЯЮЩИХ СИСТЕМ











ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе

на тему

"Автоматизированная система обработки структур данных"







Студент гр. 

______________

______________

______________



(индекс группы) 

(подпись и дата) 

(инициалы и

фамилия) 



Руководитель

______________

______________

______________



(должность и

ученая степень) 

(подпись и дата) 

(инициалы и

фамилия) 





ТУЛА 200…


Содержание



	Введение	3

	1. Техническое задание	4

	1.1 Назначение разработки	4

	1.2 Требование к программе	5

	1.3 Стадии и этапы разработки	6

	2. Описание программы	7

	2.1 Функциональное назначение	7

	2.2 Описание логической структуры	7

	2.3 Входные и выходные данные	10

	3. Инструкция по эксплуатации программы	12

	3.1 Назначение программы	12

	3.2 Выполнение программы	13

	3.3 Описание контрольного примера	14

	Заключение	18

	Библиографический список	19

	Приложения	20


Введение



Задача разработки программного обеспечения систем различного назначения является основополагающей задачей программирования. Курсовая работа предполагает выполнение всех основных стадий и этапов разработки программ и программной документации в соответствии с существующими государственными и отраслевыми стандартами. 

Основная цель работы заключается в закреплении навыков самостоятельного использования теоретического материала и практического опыта для решения задач проектирования и разработки ПО систем различного назначения. 

В данной работе рассмотрены и реализованы четыре задачи, объединенные в единую систему. Три задачи содержат обработку массивов данных, а четвертая предполагает работу с файлами и использование записей. 

В качестве инструментального средства был выбран язык структурного программирования Паскаль, который является достаточно простым и удобным, а также популярным средством разработки такого вида программного обеспечения. 

В курсовой работе приведены тексты программного кода с подробным описанием, а также технология работы созданных программных средств с выводом результатов. 


1. Техническое задание



1.1 Назначение разработки



Необходимо решить четыре задачи: 

Дана действительная матрица размера mxn, причем 1≤m≤20; 1≤n≤40. Определить числа b1,…, bm, равные соответственно наименьшим значениям элементов строк. 

Назовем допустимым преобразованием матрицы перестановку двух строк или двух столбцов. Дана действительная квадратная матрица порядка n. С помощью допустимых преобразований добиться того, чтобы один из элементов матрицы, обладающий наибольшим по модулю значением, располагался в левом верхнем углу матрицы. 

В массиве X(m,n) каждый элемент (кроме граничных) заменить суммой непосредственно примыкающих к нему элементов по вертикали, горизонтали и диагоналям. 

Ввести и сохранить в файле данные следующей структуры: № квитанции, наименование товара, дата поступления товара, срок, на который сдан товар, стоимость товара. Организовать просмотр исходных данных и вывести список товаров, отсортированный по дате поступления (по возрастанию, метод пузырька) с указанием № квитанции, наименования товара и даты поступления. Ввод и вывод данных организовать в виде таблиц. Отладку программы производить на примере файла, состоящего не менее чем из 15 записей. 

На втором этапе необходимо объединить эти задачи в единый программный комплекс, ориентированный на обработку оперативных и внешних структур данных. 

Программный комплекс должен иметь модульную структуру, т.е. каждая подзадача должна быть реализована независимо от других и использовать стандартные программные модули языка программирования Паскаль.



1.2 Требование к программе



Основные функции, которые должно выполнять данное программное средство: 

Удобный запуск из единой программной среды

Ввод и обработка двумерных массивов данных: поиск наименьших и наибольших значений матрицы, перестановка строк и столбцов матрицы, вычисление суммы элементов, примыкающих к текущему. 

Ввод и сохранение данных в файле. 

Сортировка данных различного типа. 

Входными данными программного комплекса являются матрицы размера mxn и nxn, файл с данными различных типов. 

Выходные данные – матрицы размера m, nxn, nxm, файл с данными различных типов. 

Для разработки программного комплекса был выбран язык Паскаль и среда разработки Турбо Паскаль. 

Паскаль - это один из наиболее распространённых языков программирования 80-90х годов, поддерживающий самые современные методологии проектирования программ (нисходящее, модульное проектирование, структурное программирование), имеет свою достаточно богатую историю развития. 

Новую жизнь языку дала фирма Борланд, разработавшая на его базе семейство Паскаль – систем, называемых Турбо Паскалем. Интегрированная среда, обеспечивающая многооконную разработку программной системы, обширный набор встроенных в неё средств компиляции и отладки, доступный для работы через легко осваиваемое меню, - всё это обеспечивает высокую производительность труда программиста, недостижимую при работе со старыми средами. 

Язык Турбо Паскаль хорошо подходит для обучения программированию. 



1.3 Стадии и этапы разработки



Техническое задание. (1-2 недели) 

На стадии технического задания производится постановка задачи, определяются общие требования к программе, выполняется технико-экономическое обоснование разработки программы, определяются входные и выходные данные, выбирается язык программирования, определяются требования к техническим средствам. 

Эскизный проект. (1 неделя) 

На стадии эскизного проекта уточняются методы решения задачи, определяется структура входных и выходных данных, разрабатывается общее описание алгоритма решения задачи. 

Технический проект. (1-2 недели) 

В рамках технического проекта производится детальная разработка алгоритма решения задачи, определяются формы представления входных и выходных данных, разрабатывается структура программы, окончательно определяется конфигурация технических средств. 

Рабочий проект. (6-7 недель) 

На стадии рабочего проектирования производится программирование задачи, отладка программы, составление тестов для испытания программы, разрабатывается документация в соответствии с ЕСПД. Заключительным этапом рабочего проектирования является проведения испытания программы на контрольном примере, осуществление корректировки программы по результатам испытаний. 

– Внедрение. (2-3 недели). На стадии внедрения осуществляется передача программы и программной документации в эксплуатацию, оформление акта о внедрении программы. 


2. Описание программы



2.1 Функциональное назначение



Наименование программы: Автоматизированная система обработки структур данных. 

Назначение программы: Обработка табличных данных, работа с файлами, обработка данных различных типов. 

Язык программирования: Язык структурного программирования Паскаль. 

Специальное программное обеспечение: Среда программирования Турбо Паскаль фирмы Borland. 

Функциональные ограничения на использование программы: Нет. Работает на всех типах персональных компьютеров. 



2.2 Описание логической структуры



Программный комплекс запускается с помощью файла menu. exe. При запуске мы видим главное меню программы, состоящее из пяти пунктов: Задача1, Задача2, Задача3, Задача4, Выход. 

Блок-схема алгоритма программы с учетом текста программы на языке Паскаль в Приложении выглядит следующим образом: 







Опишем подпрограммы, которые представлены в блок-схеме алгоритма: 

vvod(A_, m_, n_) – ввод матрицы размера m на n и вывод её на экран; 

obrab(A_, m_, n_, b_) – поиск наименьших значений строк матрицы; 

vyvod(A_,b_, m_,n_) – вывод массива наименьших значений строк матрицы; 

vvod1(A1,n_) - – ввод матрицы размера m на m и вывод её на экран; 

poiskmax(A1,n_,g_,l_) – поиск максимального по модулю значения массива; 

perestanovka(A1,n_,g_,l_) – перестановка строк и столбцов матрицы, содержащих максимальный элемент; 

vyvod1(A1,n_) – вывод матрицы m на n с наибольшим значением в левом верхнем углу; 

obrab1(A_,C_,m_,n_) – замена элементов матрицы суммой соседних элементов; 

vyvod2(C_,m_,n_) – вывод преобразованной матрицы на экран; 

vvod2(d_) – чтение из файла данных; 

sort(d_) – сортировка данных файла по дате; 

vyvod3(d_) – запись отсортированных данных в файл; 

Эти функции и процедуры, используемые при выборе числовых значений от 1 до 5 описаны в модулях zad1, zad2, zad3, zad4. 



2.3 Входные и выходные данные



В начале работы с программным комплексом необходимо осуществить выбор необходимого режима работы с помощью числовой переменной, а затем ввести данные в зависимости от выбранной задачи. 

Опишем входные данные подробнее: 

Переменная k целого типа отвечает за выбор пункта главного меню программного комплекса. 

При выборе первого пункта меню необходимо ввести следующую информацию: 

Матрицу m на n, элементы которой являются действительными числами

Размерности матрицы определены как константы: m=20, n=40

При выборе второго пункта меню необходимо ввести следующую информацию: 

Матрицу m на m, элементы которой являются действительными числами

При выборе третьего пункта меню необходимо ввести следующую информацию: 

Матрицу m на n, элементы которой являются действительными числами

Перед выбором четвертого пункта меню необходимо подготовить файл tab. pas с табличной информацией: номер квитанции, наименование товара, дата поступления товара, срок, на который сдан товар, стоимость товара и расположить его в каталоге с программой. 

Вывод результатов работы осуществляется после решения каждой из четырех задач: 

При решении первой задачи осуществляется вывод одномерного массива действительных чисел размерностью m, наименьших в каждой строке матрицы m на n. 

При решении второй задачи осуществляется вывод преобразованного массива действительных чисел m на m, где в верхнем левом углу находится наибольший элемент введенного массива. 

При решении третьей задачи осуществляется вывод преобразованного массива действительных чисел m на n, где элементы входного массива заменены суммой соседних (кроме граничных). При решении четвертой задачи осуществляется вывод отсортированной по дате таблицы с данными различного типа в файл sort_tab. pas. 

3. Инструкция по эксплуатации программы



3.1 Назначение программы



Программный комплекс "Автоматизированная система обработки структур данных" предназначен для управления выполнением четырех задач, которые осуществляют обработку массивов данных, а также обработку файлов с данными разного типа. 

Кратко опишем основные функции, которые выполняет данное программное средство: 

Простой и удобный запуск каждой задачи из единой программной оболочки. 

Ввод и обработка двумерных массивов данных: поиск наименьших и наибольших значений матрицы, перестановка строк и столбцов матрицы, вычисление суммы элементов, соседних с текущим. 

Считывание, обработка и сохранение данных в файле. 

Сортировка данных различного типа. 

Удобная система завершения работы после выполнения каждой задачи и функция выхода из программного комплекса

Программный комплекс "Автоматизированная система обработки структур данных" предназначен для работы в операционных системах семейства Windows, состоит из файла progr. exe, никаких дополнительных программных компонентов для работы не требуется. В каталоге с программой также должен располагаться файл tab. pas для решения четвертой задачи. 




3.2 Выполнение программы



Запуск программного комплекса осуществляется с помощью файла progr. exe. После этого мы попадаем в главное меню программы (рис.1): 





Рис.1. Главное меню программного комплекса. 



После выбора соответствующего номера мы попадаем в режим ввода данных той или иной задачи (рис.2): 





Рис.2. Режим ввода данных для первой задачи. 



Если мы ввели данные не верно, то программа попросит повторить ввод (рис.3): 




Рис.3. Действия программы при неверном вводе данных. 



Выдача результатов осуществляется после выполнения необходимых условий ввода данных (рис.4): 





Рис.4. Выдача результатов работы первой задачи. 



После нажатия на клавишу Enter мы попадаем в главное меню программы, где можем продолжить работу или выйти из программы, введя цифру 5. 



3.3 Описание контрольного примера



Рассмотрим пример нахождения наибольшего по модулю элемента матрицы и перемещения его в левый верхний угол матрицы с помощью перестановки двух строк или двух столбцов (Задача 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 в среде программирования Turbo Pascal. 

В ходе тестирования были получены верные результаты работы алгоритмов нахождения максимальных и минимальных значений матрицы, перестановки строк и столбцов местами, нахождения суммы элементов матрицы, а также сортировки структур данных различного типа, что говорит о достижении целей курсовой работы. 


Библиографический список



ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. 

ГОСТ 19.102-77. ЕСПД. Стадии разработки. 

ГОСТ 34.602-89. ЕСПД. Информационная технология. Техническое задание на создание автоматизированных систем. 

ГОСТ 19.402-78. ЕСПД. Описание программы. 

ГОСТ 19.509-79. ЕСПД. Руководство программиста. 

ГОСТ 19.505-79. ЕСПД. Руководство оператора. 

Кнут Д. Искусство программирования для ЭВМ. Т.1. Основные алгоритмы, Т.2. Получисленные алгоритмы, Т.3. Сортировка и поиск / Пер. с. англ. – М.: Мир, 1976-1977. 

Бутомо И.Д., Самочадин А.В., Усанова Д.В. Программирование на алгоритмическом языке Паскаль для микроЭВМ: Учебное пособие. - Л.: ЛГУ, 1985. - 216 с. 

Форсайт Р. Паскаль для всех. - М.: Машиностроение, 1986. - 286 с. 

Электронные вычислительные машины: В 8 кн.: Учебное пособие для вузов /под ред.А.Я. Савельева. Кн.5. Языки программирования (Паскаль, ПЛ/М) - М.: Высш. школа, 1987. - 143 с. 

Уилсон И.Р., Эддиман А.М. Практическое введение в Паскаль. - М.: Радио и связь, 1983. - 144 с. 

Керниган Б., Плоджер Ф. Инструментальные средства программирования на языке Паскаль. - М.: Радио и связь, 1985. -312с. 

Белецкий Я. Турбо Паскаль с графикой для персональных компьютеров перевод с польского Д.И. Юренкова. - М.: Машиностроение, 1991. - 320 с. 

Сергиевский М.В., Шалашов А.В. Турбо Паскаль 7.0; язык, среда программирования. - М: Машиностроение. -1994,-254 с. ил. 

Справочник по процедурам и функциям Borland Pascal 7.0. - Киев: Диалектика, 1993. - 272 с. 


Приложения



Модуль zad1

unit zad1; 

interface

uses crt; 

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

Uses crt; 

Type {определение типа двумерного массива}

Matr = array [1. .50,

1. .50] Of Real; 

{Определение используемых процедур}

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; 

writeln; 

end; 

end; 

{Процедура поиска максимального значения матрицы}

procedure poiskmax(A1: Matr; n1: integer; var k1,l1: byte); 

var i,j: byte; max: real; 

begin

max: =abs(A1 [i,1]); 

for i: =1 to n1 do begin

for j: =1 to n1 do

if abs(A1 [i,j]) >max then begin

k1: =i; 

l1: =j; 

max: =A1 [k1,l1] 

end

end

end; 

{Процедура перестановки соседних двух строк и соседних двух столбцов местами}

procedure perestanovka(var A1: Matr; n1,k1,l1: integer); 

var t: real; i,j: byte; 

begin

if (k1<>1) then

for j: =1 to n1 do begin

t: =A1 [1,j] ; 

A1 [1,j]: =A1 [k1,j] ; 

A1 [k1,j]: =t; 

end; 

if (l1<>1) then

for i: =1 to n1 do begin

t: =A1 [i,1] ; 

A1 [i,1]: =A1 [i,l1] ; 

A1 [i,l1]: =t

end

end; 

{Процедура вывода на экран преобразованной матрицы}

procedure vyvod1 (A1: Matr; n1: integer); 

var i,j: byte; 

begin

writeln('Преобразованная матрица'); 

for i: =1 to n1 do begin

for j: =1 to n1 do

write(A1 [i,j]: 5: 4,' '); 

writeln

end

end; 

end. 

Модуль zad3

unit zad3; 

interface

uses crt; 

Const {определение констант размерности массива}

m2 = 50; 

n2 = 50; 

Type {определение типа двумерного массива}

Mat = array [1. . m2,

1. . n2] Of Real; 

{Определение используемых процедур}

Procedure vvod3 (Var A: Mat; Var m, n: Integer); 

procedure obrab1(var A: Mat; var C: Mat; m,n: integer); 

procedure vyvod2 (C: Mat; m,n: integer); 

implementation

{Процедура ввода размерности и элементов матрицы, а также вывода её на экран}

Procedure vvod3 (Var A: Mat; Var m, n: Integer); 

Var

i, j: Byte; 

Begin

Repeat

WriteLn('Введите размеры матрицы'); 

ReadLn(m); 

ReadLn(n); 

Until (m>1) AND (n>1) AND (m<=100) AND (n<=100); 

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 obrab1(var A: Mat; var C: Mat; m,n: integer); 

var i,j: byte; 

begin

for i: =2 to m-1 do

for j: =2 to n-1 do

C [i,j]: =A [i-1,j-1] +A [i,j-1] +A [i+1,j-1] +A [i-1,j] +A [i+1,j] +A [i-1,j+1] +A [i,j+1] +A [i+1,j+1] ; 

for j: =1 to n do begin

C [1,j]: =A [1,j] ; 

C [m,j]: =A [m,j] 

end; 

for i: =2 to m-1 do begin

C [i,1]: =A [i,1] ; 

C [i,n]: =A [i,n] 

end; 

end; 

{Процедура вывода преобразованной матрицы}

procedure vyvod2 (C: Mat; m,n: integer); 

var i,j: byte; 

begin

writeln('Преобразованная матрица'); 

for i: =1 to m do begin

for j: =1 to n do

write(C [i,j]: 5: 4,' '); 

writeln

end

end; 

end. 

Модуль zad4

unit zad4; 

interface

uses crt; 

const {определение константы размерности массива}

n_max=15; 

type {Определение типа запись}

Tabliza=record

nomer,data: byte; 

tovar: string [20] ; 

srok: integer; 

stoim: real

end; 

spisok=array [1. . n_max] of Tabliza; 

{Определение используемых процедур}

procedure vvod2(var d: spisok); 

procedure sort(var d: spisok); 

procedure vyvod3(d: spisok); 

implementation

{Процедура считывания данных из файла}

procedure vvod2(var d: spisok); 

var 

i: byte; 

f: text; 

res: integer; 

fname: string [80] ; 

otv: char; 

begin

assign(f,'tab. pas'); 

fname: ='tab. pas'; 

{$I-}

reset(f); { открыть файл для чтения }

{$I+}

res: =IOResult; 

if res<>0 then 

begin

writeln('ОШИБКА: файл ',fname, ' не найден'); 

writeln('Для продолжения нажмите Enter'); 

readln; 

halt; 

end; 

readln(f); 

for i: =1 to 15 do begin

read(f,d [i]. nomer); 

read(f,d [i]. tovar); 

read(f,d [i]. data); 

read(f,d [i]. srok); 

read(f,d [i]. stoim); 

end; 

close(f); 

end; 

{Процедура сортировки данных по дате}

procedure sort(var d: spisok); 

var i,j: byte; t: tabliza; 

begin

t: =d [1] ; 

for i: =2 to 15 do

for j: =15 downto i do

if d [j-1]. data>d [j]. data then begin

t: =d [j-1] ; 

d [j-1]: =d [j] ; 

d [j]: =t

end

end; 

{Процедура записи отсортированных данных в файл}

procedure vyvod3(d: spisok); 

var

i: byte; 

f1: text; 

begin

assign(f1,'sort_tab. pas'); 

rewrite(f1); 

writeln(f1,'nomer tovar data srok stoimost'); 

for i: =1 to 15 do begin

write(f1,d [i]. nomer); 

write(f1,d [i]. tovar); 

write(f1,d [i]. data: 3); 

write(f1,d [i]. srok: 5); 

write(f1,d [i]. stoim: 8: 0); 

writeln(f1); 

end; 

close(f1); 

end; 

end. 

Основная программа

Program auto; 

{Подключение вышеописанных модулей}

Uses crt,zad1,zad2,zad3,zad4; 

var 

A_,C_: Matrix; 

A1_: Matr; 

A2_,C2_: Mat; 

b_: Massiv; 

k_,W,m_, n_: Integer; 

g_,l_: byte; 

d_: spisok; 

f_: text; 

BEGIN

clrscr; 

W: =1; 

While W<>6 do begin

{формирование пунктов меню программы}

gotoxy(5,3); write('Автоматизированная система обработки структур данных'); 

gotoxy(15,9); write('1. Задача 1'); 

gotoxy(15,11); write('2. Задача 2'); 

gotoxy(15,13); write('3. Задача 3'); 

gotoxy(15,15); write('4. Задача 4'); 

gotoxy(15,17); write('5. Выход'); 

gotoxy(1, 19); write('Выберите дальнейший режим работы: '); 

{Выбор нужного пункта программы}

readln(k_); 

case k_ of

1: begin

clrscr; 

vvod(A_, m_, n_); 

obrab(A_, m_, n_, b_); 

vyvod(A_,b_, m_,n_); 

writeln('Для продолжения нажмите Enter'); 

readln; 

end; 

2: begin

clrscr; 

vvod1(A1_,n_); 

poiskmax(A1_,n_,g_,l_); 

perestanovka(A1_,n_,g_,l_); 

vyvod1(A1_,n_); 

writeln('Для продолжения нажмите Enter'); 

readln; 

end; 

3: begin

clrscr; 

vvod3(A2_,m_,n_); 

obrab1(A2_,C2_,m_,n_); 

vyvod2(C2_,m_,n_); 

writeln('Для продолжения нажмите Enter'); 

readln; 

end; 

4: begin

clrscr; 

vvod2(d_); 

sort(d_); 

vyvod3(d_); 

writeln('Результат записан в файл sort_tab. pas. '); 

writeln('Для продолжения нажмите Enter'); 

readln; 

end; 

5: W: =6; 

end; 

clrscr; 

end; 

END.