- •Содержание
- •Введение
- •1. Основные теоретические сведения
- •1.1.Формулировка задачи
- •1.2. Типы данных и структур, используемых в программе
- •1.3. Описание структурных элементов программы
- •2. Описание программного продукта
- •2.1.Словесный алгоритм
- •2.3. Тестирование программы
- •Заключение
- •Список литературы
- •Приложение
2.3. Тестирование программы
Заключение
Данная программа продемонстрировала хорошую работоспособность. Имеет интуитивно понятный интерфейс и не вызывает затруднений в работе пользователя. Для корректной работы программы файл 1.txt и 2.txt должен находиться в папке с программой.
Выполнение курсовой работы позволило существенно расширить знания по таким областям программирования, как:
работа с файлами;
разработка структур данных для адекватного представления информации;
процедурный и объективно-ориентированный подход к проектированию программ.
В результате выполнения работы был разработан программный продукт, который рассматривает разные варианты размещения контейнеров на складе. Для решения этой задачи была использована рекурсивная функция и стандартные процедуры в паскале для работы с файлами. В программе был использован алгоритм перебора с возвратом.
В перспективе данной разработку можно дополнить более широким спектром выполняемых функций. В дальнейшем программа может быть улучшена путем добавления к ней баз данных, для удобного сохранение результатов программы и их дальнейшего использования.
Список литературы
Е. А. Зуев. Программирование на языке Turbo Pascal 6.0, 7.0, М.:Веста,Радио и связь, 1993, — С.376
Кассера В. Ф. Turbo Pascal 7.0, Диасофт, 2003
Эллиот Б. Коффман. Turbo Pascal = Turbo Pascal Web Update. — М.: Вильямс, 2005
Моргун Александр Николаевич. Справочник по Turbo Pascal для студентов. — М.: Диалектика, 2006. — С. 608
Нэйл Рубенкинг. Turbo Pascal для Windows = Turbo Pascal for Windows. Techniques and Utilites. — М.: Мир, 1993. — С. 535.
Фаронов В. В. Turbo Pascal. Наиболее полное руководство. BHV-Санкт-Петербург, 2007
Приложение
const maxN=15;
type carr=array[1..maxN] of longint;
var i,j,k,r,n:longint;
tbl:array[1..maxN,1..maxN] of longint;
ntbl,order:carr;
procedure recurse(nd:longint);
var i,j,k,l,v,t:longint;
c:carr;
begin
if nd=n then
begin
for i:=n downto 1 do
write(order[i],' ');
writeln;
exit
end;
for i:=1 to r do
begin
if ntbl[i]=0 then break;
if ntbl[i]>ntbl[i+1] then
begin
v:=tbl[i,ntbl[i]];
dec(ntbl[i]);
for j:=i-1 downto 1 do
for k:=ntbl[j] downto 1 do
if v>tbl[j,k] then
begin
t:=v;
v:=tbl[j,k];
tbl[j,k]:=t;
c[j]:=k;
break
end;
order[nd+1]:=v;
recurse(nd+1);
for j:=1 to i-1 do
begin
t:=v;
v:=tbl[j,c[j]];
tbl[j,c[j]]:=t;
end;inc(ntbl[i]);
tbl[i,ntbl[i]]:=v;
end
end
end;
begin
assign(input,'1.txt');
reset(input);
assign(output,'2.txt');
rewrite(output);
read(r);
n:=0;
for i:=1 to r do
begin
read(ntbl[i]);
inc(n,ntbl[i]);
for j:=1 to ntbl[i] do
read(tbl[i,j]);
end;
ntbl[r+1]:=0;
recurse(0);
end.