Помогите пожалуйста найти ошибку

 
0
 
Delphi, Kylix and Pascal
ava
Loginanton | 26.12.2008, 19:27
Программа такая: мы вводим несколько строк (я сделал 10) чеголибо (к примеру просто циферки). Дальше программа должна блок строк перенести после какой то определённой строки, всё задаётся с клавиатуры. Компилятор никаких ошибок не видит, но программа работает неправильно. Вот пример как должна работать:
вводим:
1
2
3
4
5
6
7
8
9
10

1

2

3
результат:
3
1
2
4
5
6
7
8
9
10
Вот мой код:

program test;
type
aaa = ^bbb;
bbb = record
st : string;
lnk : aaa;
end;
var
a , tmp : aaa;
i : byte;
start , finish, place : byte;
first , two , three , four , five , six : aaa;

{создание списка}
procedure create_list;
begin
new(a);
tmp := a;
for i := 1 to 10 do begin
readln(a^.st);
new(a^.lnk);
a := a^.lnk;
end;
a := nil;
a := tmp;
end;
{с клавиатуры откуда докуда и куда}
procedure keyboard;
begin
writeln('Напишите номер строки с которой начнётся блок который будем перемещать');
readln(start);
writeln('Напишите номер строки которой оканчивается блок');
readln(finish);
writeln('Ну и натыкайте номер строки после которой будет помещён блок');
readln(place);
end;
{сохраняем нужные связи}
procedure save_link;
begin
for i := 1 to start - 1 do
a := a^.lnk;
first := a;
for i := start - 1 to start do
a := a^.lnk;
two := a;
for i := start to finish - 1 do
a := a^.lnk;
three := a;
for i := finish - 1 to finish do
a := a^.lnk;
four := a;
for i := finish to place - 1 do
a := a^.lnk;
five := a;
for i := place - 1 to place do
a := a^.lnk;
six := a;
a := tmp;
end;
{переставляем связи как надо}
procedure link_link;
begin
first^.lnk := four;
three^.lnk := six;
five^.lnk := two;

end;
{применяем изменения}
procedure link_ok;
begin
for i := 1 to start - 1 do
a := a^.lnk;
a := first;
for i := start to finish - 1 do
a := a^.lnk;
a := three;
for i := finish to place - 1 do
a := a^.lnk;
a := five;
a := tmp;
end;
{выводим результаты на экран}
procedure result_print;
begin
while a^.lnk <> nil do begin
writeln(a^.st);
a := a^.lnk;
end;
a := tmp;
readln;
end;
begin
create_list;
keyboard;
save_link;
link_link;
link_ok;
result_print;
end.

Помогите пожалуйста!
Ответы (1)
ava
Dobermann | 27.12.2008, 17:44 #
Цитата (Loginanton @ 26.12.2008, 19:27 findReferencedText)
Дальше программа должна блок строк перенести после какой то определённой строки, всё задаётся с клавиатуры. Компилятор никаких ошибок не видит, но программа работает неправильно.

По-русски напиши, что надо от программы...
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить