Помощь - Поиск - Пользователи - Календарь
Полная версия: Списки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
thebutcher
Предполагается, что уже построен и задан указателем P связанный односторонний список, элементами которого являются символы.
А). Подсчитать число элементов списка.
Б). Проверить упорядочен ли список по возрастанию

Program ex;
Type tnode=^node;
         Node=record
         El:char;
          Next: tnode;
End;
Var f,n:integer;
p,cur,d:tnode;
t:next;
begin
assign(t,’f.txt’);
reset(t);
new(p);
p:=nil;
cur:=p;
whle not(eof(t)) do
begin
read(cur^.el);
new(d);
d:=nil;
cur^.next:=d;
cur:=cur^.next;
end;
close(t);
n:=0;
f:=1;
cur:=p;
while cur<>nil do
begin
n:=n+1;
if ord(cur^.el)>ord(cur^.next^.el) then
f:=0;
cur:=cur^.next;
end;
writeln(‘число элементов в списки’,n);
if f=1 then
writeln(‘список упорядочен’)
else
writeln(‘список не упорядочен’);
end.



Я не могу понять почему программа не работает, подскажите пожалуйста.

Про теги не забывай...
volvo
Для начала - программа у тебя не должна даже компилироваться, о работе ее вообще речь не идет: сначала поменяй все апострофы на те, которые положено ставить при определении строк, а не "косые". Потом поправь цикл: whle еще не ввели в Паскале, пока есть только while. Ну, и переменная T должна быть файловой, а не непонятно каким next-ом...

Ну, а потом уже будешь исправлять логику работы программы. На данный момент она тоже неправильная:
p:=nil;
cur:=p;
whle not(eof(t)) do
begin
read(cur^.el); { <--- }

здесь единственное, чего ты добилась - это разыменования NIL, а это ошибка... И так далее...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.