46673 (607908), страница 2

Файл №607908 46673 (Автоматизированная система обработки структур данных) 2 страница46673 (607908) страница 22016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Программный комплекс "Автоматизированная система обработки структур данных" предназначен для работы в операционных системах семейства 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.

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


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

  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]

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.

Характеристики

Тип файла
Документ
Размер
4,8 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6529
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее