Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Добавление в начало динамической цепочки работает неправильно.Нужен совет.

Автор: UrfinJus4 3.07.2013 3:30

Програмка введённый текст представляет в виде однонаправленнойдинамической цепочки. Некорректно работает процесс добавления в начало цепочки. Процедура добавляет один символ в начало списка. Результат выглядит так:

0
text

а должно:

0text

Вроде всё верно сделал. Что только не пробовал. При работе не с текстом, а с целыми числами всё работает правильно. После вставки в начало всё выводится в одной строке. А с текстом - беда. Посоветуйте-что делать.
Может кто с такой проблемой всречался.
Текст программы ниже:

Program Text_  
Uses Crt;
Type
Ted=^Simv;
Simv=Record
Letter:Char;
Adrnext:Ted;
End;
Var
Text1,Textcur:Ted;
cA,cB:Char;
iB:Integer;

Procedure Input_NEText(var T_1,T_cur:Ted);
Begin
ClrScr;
New(T_1);
T_cur:=T_1;
T_cur^.Adrnext:=Nil;
Read(cA);
While cA<>'.' Do
Begin
New(T_cur^.Adrnext);
T_cur:=T_cur^.Adrnext;
T_cur^.Letter:=cA;
T_cur^.Adrnext:=Nil;
Read(cA)
End;
End;

Procedure Output_NEText(T_1:Ted);
var T_cur:Ted;
Begin
ClrScr;
T_cur:=T_1;
While T_cur^.Adrnext<>Nil Do
Begin
T_cur:=T_cur^.Adrnext;
Write(T_cur^.Letter);
End;
ReadKey;
End;

Procedure Insert_Begin(T_1:Ted;cC:Char);
var T:Ted;
Begin
New(T);
T^.Adrnext:=T_1^.Adrnext;
T^.Letter:=cC;
T_1^.Adrnext:=T;
End;

BEGIN
cB:='0';
Repeat
ClrScr;
Writeln('1-ввод текста 2-вывод текста 3-вставка в начало 4-выход');
Read(iB);
If iB=1 Then
Begin
Input_NEText(Text1,Textcur);
End;
If iB=2 Then
Begin
Output_NEText(Text1);
ReadKey;
End;
If iB=3 Then
Begin
Insert_Begin(Text1,cB);
End;
If iB=4 Then Continue;
Until(iB=4);
END.

Автор: AruNimotsi 25.07.2013 13:20

попробовать записывать пе перед, а вместо.. а строчку формировать в уме..