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

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

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

 
 Ответить  Открыть новую тему 
> Добавление в начало динамической цепочки работает неправильно.Нужен совет., Некорректно работает процесс добавления в начало цепочки.Помогите сове
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


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

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

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


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


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

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

 



- Текстовая версия 13.01.2025 13:06
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name