Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая2003.doc
Скачиваний:
2
Добавлен:
16.09.2019
Размер:
526.85 Кб
Скачать

1.2. Типы данных и структур, используемых в программе

Имя переменной в программе

Физический смысл переменной

Назначение переменной в программе

Ограничения на значения

carr

Максимальное количество контейнеров, которое может быть на складе.

Считает количество контейнеров от 1 до 15.

натуральное

ntbl

Размещение контейнера на складе

Массив для хранения контейнеров на складе, результат

натуральное

order

Идентификатор контейнера

Матрица идентификатора контейнера

натуральное

nd

Номер контейнера на складе

Вспомогательная переменная

натуральное

n

Количество контейнеров

Вспомогательная переменная, исходное

натуральное

i

Счётчик

Вспомогательная

переменная

натуральное

j

Счётчик

Вспомогательная

переменная

натуральное

k

Текущий элемент

Вспомогательная

переменная

натуральное

c

Сохраняет предыдущее значение контейнера

Вспомогательная

переменная

натуральное

1.3. Описание структурных элементов программы

Данная программа состоит из следующих процедур:

Procedure recurse - производит расчет последовательности контейнеров.

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

Стандартные процедуры в паскале для работы с файлами:

Assign - назначает файловой переменной имя внешнего файла;

Reset (input) - открывает для чтения файл, с которым связана файловая переменная input. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента. Процедура завершается с сообщением об ошибке, если указанный файл не найден;

Rewrite - создает текстовый файл при его отсутствии, а также если файл с таким именем уже существует, то он удаляется и на его месте создается новый пустой файл;

Input - стандартный файл ввода;

Output - стандартный файл вывода;

2. Описание программного продукта

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

2.1.Словесный алгоритм

  • Считывается начальные значения из файла;

  • Создается рекурсивная процедура;

  • Формируется цикл работы с данными;

  • Запоминается текущий номер контейнера;

  • Сравнивается номера контейнеров;

  • Если предыдущий контейнер меньше следующего, то контейнер ставится в определенное место на складе;

  • Таким образом, проверяются все контейнеры, указанные в исходном файле;

  • Полученные данные записываются в файл.

2.2.БОвал 1 лок-схема:

Прямая со стрелкой 3

assign(input,'1.txt')

Прямая со стрелкой 5

reset(input)

Прямая со стрелкой 7

assign(output,'2.txt')

Прямая со стрелкой 18

Прямая со стрелкой 11 Прямая со стрелкой 13 Блок-схема: данные 2

read(r)

Группа 25 Блок-схема: данные 28

inc(n,ntbl[i])

Группа 35 Блок-схема: данные 42 Прямая соединительная линия 44 Прямая соединительная линия 47 Прямая со стрелкой 48 Прямая со стрелкой 51 Прямая соединительная линия 52 Прямая соединительная линия 53 Прямая соединительная линия 56 Прямая соединительная линия 57 Прямая со стрелкой 59

ntbl[r+1]:=0

Овал 64 Овал 16

N:=0

Прямая соединительная линия 26

Прямая со стрелкой 39

Прямая со стрелкой 40

Блок-схема: узел 31

Прямая со стрелкой 72

Блок-схема: решение 33

Прямая соединительная линия 65 Прямая соединительная линия 66 Прямая со стрелкой 67 Прямая соединительная линия 157

Группа 68

Прямая соединительная линия 81 Прямая соединительная линия 50 Прямая со стрелкой 55

Блок-схема: данные 73

Прямая соединительная линия 75

Прямая соединительная линия 76 Прямая соединительная линия 82 Прямая со стрелкой 10

Группа 83

Прямая соединительная линия 77 Прямая со стрелкой 78 Прямая со стрелкой 43 Прямая соединительная линия 54 Прямая соединительная линия 58 Прямая соединительная линия 87 Прямая со стрелкой 88

Блок-схема: решение 29

Прямая соединительная линия 45

Прямая со стрелкой 62

v:=tbl[i,ntbl[i]]

Прямая со стрелкой 90

dec(ntbl[i])

Прямая со стрелкой 92 Группа 93 Прямая со стрелкой 124 Прямая соединительная линия 160 Прямая со стрелкой 161

Группа 99 Прямая со стрелкой 103 Прямая соединительная линия 104 Прямая соединительная линия 122 Прямая соединительная линия 125 Прямая соединительная линия 149 Прямая со стрелкой 151

Блок-схема: решение 106

t:=v

v:=tbl[j,k]

tbl[j,k]:=t

c[j]:=k

Прямая соединительная линия 120 Прямая соединительная линия 121

order[nd+1]:=v

recurse(nd+1)

Группа 130

Прямая соединительная линия 97 Прямая со стрелкой 98 Прямая со стрелкой 105 Прямая соединительная линия 110 Прямая со стрелкой 140

v:=tbl[j,c[j]]

t:=v

tbl[j,c[j]]:=t

Прямая соединительная линия 141 Прямая соединительная линия 142

Прямая со стрелкой 143

inc(ntbl[i])

tbl[i,ntbl[i]]:=v

Прямая соединительная линия 150 Прямая соединительная линия 154 Прямая соединительная линия 158

Прямая соединительная линия 148

Прямая со стрелкой 152 Прямая соединительная линия 155 Прямая соединительная линия 159

Блок-схема: узел 153

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]