СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ
Политехнический институт
Кафедра стандартизации, метрологии и управления
качеством
КУРСОВАЯ РАБОТА
по
дисциплине “ИНФОРМАТИКА ”
Вариант 23
Пояснительная записка
Руководитель работы
Коднянко В.А.
Разработал студент
гр. МТ 17-07 Б
Верминская Т. В.
Красноярск
2017 г.

СОДЕРЖАНИЕ
1. 2.
3.
4.
5.
6.
|
Задание Метод
решения
Алгоритмы и их описание
Программа, процедуры и их описание
Реализация программы на компьютере
Анализ результатов расчета
Список использованной литературы |

1. ЗАДАНИЕ
Задан
прямоугольный массив А размером NxM. Необходимо отсортировать его
строки в порядке неубывания, а также
сформировать одномерный массив из наибольших
элементов его строк.
2. МЕТОД
РЕШЕНИЯ
Решение поставленной задачи основано
на последовательном проходе по строкам массива
А, начиная с первой строки и заканчивая
последней. На каждом i–том шаге этого процесса
выполняются следующие действия:
- i-тая строка массива копируется
в рабочий одномерный массив Q,
- рабочий массив
Q сортируется
в порядке неубывания с помощью специальной
процедуры Sort сортировки
одномерного массива,
- сортированный массив
Q копируется
обратно в i-тую строку массива
А,
- последний элемент массива
Q,
который является наибольшим элементом этой
строки, копируется в i – тую
ячейку массива G наибольших
элементов строк массива А.

3. АЛГОРИТМЫ И ИХ ОПИСАНИЕ
Алгоритмическое
решение задачи представлено в виде головного
алгоритма и двух вспомогательных алгоритмов –
процедур.
Блок – схема головного
алгоритма показана на рис. 1. Она состоит из
девяти блоков. После блока 1, символизирующего
запуск алгоритма, в блоке 2 осуществляется ввод
исходного числового материала: N, M – размеров
массива А и самого массива А. Затем в блоках 3 – 7, которые образуют цикл со счетчиком i,
выполняется последовательный
проход по строкам массива А. При каждом значении i
внутри этого цикла выполняется
следующая работа:
- в блоке 4 выполняется обращение к процедуре
Pr,
которая копирует i – тую строку массива А в рабочий
одномерный массив Q (последний параметр
процедуры равен нулю),
- в блоке 5 массив Q сортруется с помощью процедуры
Sort,
- в блоке 6 отсортированный массив
Q с помощью той же процедуры Pr
копируется обратно в i – тую строку массива А
(последний параметр отличен от нуля),
- в блоке 7 в
i – тую ячейку
массива G заносится последний
(наибольший) элемент массива
Q, т.е. наибольший элемент i-той строки массива А.
По окончании работы цикла в блоке 8
отсортированный массив А и сформированный
массив G выводятся. В блоке 9 алгоритм заканчивает
работу.

Рис.1. Блок
– схема головного алгоритма
Блок – схема
процедуры Sort, предназначенная
для сортировки одномерного массива Z длины n, показана
на рис. 2.

Рис.2. Блок –
схема процедуры Sort
Она состоит из 6 блоков.
Формальными параметрами процедуры являются Z –
имя одномерного сортируемого массива и N – длина этого массива. Сортировка
основана на методе “пузырька”. Процедура
использует переменную L как
индикатор отсортированности массива. Сначала в
блоке 2 индикатор L получает
значение нуль. Затем в блоках 3 – 4, образующих
цикл, производится проход по парам соседних
элементов. В том случае, если какая – либо пара не
отсортирована, производится перестановка ее
элементов, а переменная L получает
значение 1, фиксируя таким способом факт
перестановки. В блоке 5 выясняется была ли при
проходе по массиву хотябы одна перестановка.
Если L=1, т.е. факт перестановок
был зафикстровани, управление передается к блоку
2 для нового прохода по массиву. В противном
случае массив считается отсортированным и в
блоке 6 процедура заканчивает работу.
На рис. 3. приведена блок – схема
процедуры Pr, которая
использовалась в головном алгоритме. Эта
процедура выполняет две функции :
- копирует
i – тую строку
массива А в одномерный массив V при k=0,
- и наоборот при
k=1копирует
отсортированный массив V в i
– тую строку массива А .

Рис.3. Блок –
схема процедуры Pr
Эта работа производится в
цикле, который образован блоками 2 – 5. При k=0 для каждого j из
диапазона [1, m] в блоке 4
копирование ведется из А в V. В противном случае в блоке 5,
наоборот, V копируется в А. По окончании
копирования в блоке 6 процедура заканчивает свою
работу.

4. ПРОГРАММА,
ПРОЦЕДУРЫ И ИХ ОПИСАНИЕ
На рис. 4 приведен текст процедур Pr, Sort и
головной программы.
C
C
С
|
1
2
3
2
3
1
1
3 |
*
*
*
|
***
Текст пpоцедуpы Sort ***
Subroutine Sort(Z,N)
Integer Z(N), R
L=0
Do 2 i = 1, N-1
If (Z(I).LE.Z(i+1)) Goto 2
R=Z(i)
Z(i)=Z(i+1)
Z(i+1)=R
L=1
Continue
If (L)1,3,1
Return
End
*** Текст пpоцедуpы Pr ***
Subroutine Pr(N,M,A,i,Q,k)
Integer Q(M), A(N,M)
Do 1 j = 1,M
If (k) 3,2,3
Q(j)=A(i,j)
Goto 1
A(i,j)=Q(j)
Continue
Return
End
*** Текст головной пpогpаммы ***
Integer A(3,5),G(3),Q(5)
N=3
M=5
Open (1, File='Var23.DAT')
Read (1,*)((A(i,j), j=1,M), i=1,N)
Close(1)
Open (2, File='Var23.RES')
Do 1 i=1,N
Call Pr(N,M,A,i,Q,0)
Call Sort(Q,M)
Call Pr(N,M,A,i,Q,1)
G(i)=Q(M)
CONTINUE
Write(2,3)(A(i,j), j=1,M), i=1,N),
(G(i), i=1,N)
Format(' ',28X,'Отсортированный массив А'/
3(16X,5i8/)/
' ',28X, ' ', ' Массив макс.элементов'/
20X,3i8)
Close(2)
End
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 |
Рис.4.
Текст процедур Sort, Pr и
головной программы
Текст процедуры Sort, которая выполняет
сортировку одномерного массива Z длины N,
расположен в строках 1 – 25. После комментария в
строке 2 находится оператор заголовка процедуры,
включающий имя и формальные параметры. Далее, в
строке 3 расположен оператор описания
целочисленного массива Z из N элементов и
переменной R, предназначенной для
вспомогательных операций сортировки. Процесс
сортировки реализуется операторами 4 - 12. Проход
по массиву производится в операторах цикла 5 – 11.
Перестановка элементов неотсортированной пары
выполняется операторами 7 – 9, а фиксация факта
перестановки - в операторе 10. Оператор 12 передает
управление к оператору с меткой 1 на новый проход
при L=1, иначе - на оператор 13 (Return) завершения
процедуры после сортировки массива.
Текст процедуры Pr расположен в строках
15 - 25. Заголовок процедуры, который расположен в
строке 26, содержит формальные параметры:
- N, M, A – исходного массива,
- имя массива
Q длины M, который играет роль посредника при
передаче данных в процессе сортировки массива А,
параметр k, который отвечает
за направление передачи данных.
Оператор 27 описывает эти массивы как
целочисленные. Передача данных осуществляется в
операторах цикла 18 – 23. Заголовок цикла 18 со
счетчиком j организует проход по элементам
строки массива А с номером i. При k=0 оператор 19
организует передачу управления к оператору 20,
который копирует данные из массива А в массив Q. В
противном случае управление передается к
оператору 22, с помощью которого данные, наоборот,
копируются из массива Q в i – тую строку массива А.
Головная программа расположена в
строках 26 – 47. Оператор 27 выделяет память под
основной массив А, будущий массив максимальных
элементов строк G и вспомогательный массив Q.
Далее следуют операторы 28 – 29 определения
размеров массива А. Оператор 30 окрывает
коммуникационный канал 1 и закрепляет его за
файлом Var23.DAT ( этот файл будет содержать исходный
числовой материал для массива А). Оператор 31
читает по этому каналу числа из файла в массив А,
после чего канал 1 закрывается оператором 32.
Оператор 33 открывает канал 2 и связывет его с
файлом Var23.RES. Этот файл предназначен для вывода в
него результатов расчета.
В блоках 34 – 39, образующих цикл,
производится последовательный проход по строкам
массива А. Оператор 35, содержащий обращение к
процедуре Pr, копирует i – тую строку массива А в
массив Q. Оператор 36 этот массив сортирует
посредством обращения к процедуре Sort. Оператор 37
возвращает отсортированный массив Q обратно в
массив А. Оператор 38 наполняет i - тую ячейку
массива G максимальным элементом только что
отсортированной строки. Операторы Write и Format,
расположенные в строках 40 – 45, выводят
отсортированный массив А и сформированный
массив максимальных элементов строк G по каналу 2
в файл Var23.RES. Оператор 46 этот канал закрывает и
оператором 47 программа заканчивает работу.

5. РЕАЛИЗАЦИЯ
ПРОГРАММЫ НА КОМПЬЮТЕРЕ
Представленная на рис. 4 программа была
реализована на IBM – компьютере с использованием
программной оболочки RM/FORTE.
Для этого с ее помощью был создан
проект Var23. Затем в проекте было организовано два
файла Var23.FOR и Var23.DAT. В первый из них с помощью
встроенного в оболочку текстового редактора
была занесена программа с процедурами (рис. 4). Во
второй – числовой массив, текст которого
представлен на рис 5.

Рис. 5. Текст файла исходных данных Var23.DAT
Далее программный файл был подвергнут
компиляции и линкованию. Приэтом был получен
загрузочный модуль VAR23.EXE. Этот файл был направлен
на выполнение командой Run Program. В результате
работы программы был получен файл результатов
Var23.RES
6. РЕЗУЛЬТАТЫ РАСЧЕТОВ И ИХ
АНАЛИЗ
Полученный файл результатов расчета был
добавлен в проект и затем распечатан командой Copy
Var23.RES PRN. Текст этого файла показан на рис. 6.

Рис. 6. Текст файла
результатов вычислений Var23.RES
Анализ данных рис. 5 и
рис. 6 показывает, что в результате вычислений
исходный массив содержит строки, которые
отсортированы по неубыванию, а массив G
действительно состоит из максимальных элементов
соответствующих строк массива А.

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА
- Информатика. Методические указания к
выполнению курсовой работы для студентов
направления “Технология, оборудование и
автоматизация машиностроительного
производства”/ Составитель В.А.Коднянко; КГТУ,
Красноярск, 1998. 24 с.
Информатика. Использование
программных продуктов RM/Forte и Lib для выполнения
программ на языке Fortran -77. Методические
указания для студентов направления
“Технология, оборудование и автоматизация
машиностроительного производства”/ Составитель
В.А.Коднянко; КГТУ, Красноярск, 1999. 19 с.
Информатика. Методические указания к
самостоятельной работе для студентов
направления “Технология, оборудование и
автоматизация машиностроительного
производства”/ Составитель В.А.Коднянко; КГТУ,
Красноярск, 1997. 35 с.
В.Е.Алексеев, А.С.Ваулин, Г.Б.Петрова.
Вычислительная техника в инженерных и
экономических расчетах. – М. Высш.шк. 1984. 136 с.
|