на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Автоматизированная система обработки структур данных
так, выбираем пункт два в главном меню программы и нажимаем 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.

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

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

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

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.

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.