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

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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.