IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Добавление в начало динамической цепочки работает неправильно.Нужен совет., Некорректно работает процесс добавления в начало цепочки.Помогите сове
UrfinJus4
сообщение 2.07.2013 23:30
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской
Реальное имя: Андрей

Репутация: -  0  +


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

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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
AruNimotsi
сообщение 25.07.2013 9:20
Сообщение #2


мозгоклюй
***

Группа: Пользователи
Сообщений: 205
Пол: Мужской
Реальное имя: Юра

Репутация: -  5  +


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


--------------------
Иногда ответ ближе чем то место где мы его ищем..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 17.11.2024 5:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"