- •Содержание
- •Введение
- •1. Основные теоретические сведения
- •1.1.Формулировка задачи
- •1.2. Типы данных и структур, используемых в программе
- •1.3. Описание структурных элементов программы
- •2. Описание программного продукта
- •2.1.Словесный алгоритм
- •2.3. Тестирование программы
- •Заключение
- •Список литературы
- •Приложение
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.Б лок-схема:
assign(input,'1.txt')
reset(input)
assign(output,'2.txt')
read(r)
inc(n,ntbl[i])
ntbl[r+1]:=0
N:=0
v:=tbl[i,ntbl[i]]
dec(ntbl[i])
t:=v
v:=tbl[j,k]
tbl[j,k]:=t
c[j]:=k
order[nd+1]:=v
recurse(nd+1)
v:=tbl[j,c[j]]
t:=v
tbl[j,c[j]]:=t
inc(ntbl[i])
tbl[i,ntbl[i]]:=v