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

> Прочтите прежде чем задавать вопрос!

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

 
 Ответить  Открыть новую тему 
> Ссылки, надо бы переделать малость прогу.. :(
сообщение
Сообщение #1


Гость






Надо прогу немного переделать, не пойму как сделать.. что-то с этим у меня проблема.. Короче, список оканчивается точкой, как бы сделать, что просто при Enter он делал завершение списка?

Код


uses crt;
type
 spisok = ^Elem;
 elem = record
          c:char;
          next:spisok
        end;
var
 str,ut,E:spisok;
 s:pointer;
 sm:char;
procedure input;
var sim:char;
begin
 Write('Введите вставляемый символ:');
 readln(sm);
 write('Введите строку:');
 ut:=str;
 while sim<>'.' do
   begin
     read(sim);
     if sim <> '.' then
       begin
         ut^.c:=sim;
         new(ut^.next);
         ut:=ut^.next;
       end
     else
       begin
         ut^.c:='.';
         ut^.next:=nil;
       end;
   end;
end;
procedure vstavka;
begin
 new(E);
 e^.c:=sm;
 E^.next:=nil;

 ut:=str;
 while ut^.next<>nil do
   begin
     ut:=ut^.next;
   end;
 ut^.next:=e;

end;

procedure output;
var
 sim:char;
begin
 write('Исходная:');
 ut:=str;

 while ut<>nil do
   begin
     write(ut^.c);
     ut:=ut^.next;
   end;

 Vstavka;
 writeln;
 write('Полученная:');
 ut:=str;
 while ut<>nil do
   begin
     write(ut^.c);
     ut:=ut^.next;
   end;
 writeln;
end;
begin
 new(str);
 mark(s);
 input;
 output;
 release(s);
 readkey
end.


 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






  while sim<>'.' do
begin
read(sim);
if sim <> '.' then
begin
ut^.c:=sim;
new(ut^.next);
ut:=ut^.next;
end
else
begin
ut^.c:='.';
ut^.next:=nil;
end;
end;

заменить на:
repeat
sim := readkey; write(sim);
if (sim <> #13) then begin
ut^.c:=sim;
new(ut^.next);
ut:=ut^.next;
end
else begin
ut^.c:='.'; { это тоже можно исправить... }
ut^.next:=nil;
end;
until sim = #13;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Да что-то подобное сделал.. теперь косяки при выводе данных.. как это исправить? почему они ругаются? вывод данных теперь вообще левый.. sad.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну тогда придется еще разбивать программу на функции... В отдельную функцию выделяй добавление элемента к списку. У тебя список не совсем правильно формируется... А вообще, очень похожая задачка была здесь: Списки
 К началу страницы 
+ Ответить 

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

 





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