q:=p;
New(p);
q^.next:=p;
end;
p^.next:=nil;
Writeln('Введите значение',i,' элемента');
readln(zna);
p^.zn:=zna;
end;
// функция определения конца списка
Function GoNext:boolean;
Begin
if p^.next <> nil then
Begin
p:=p^.next;
GoNext:=true;
End
else GoNext:=false
end;
//функция освобождения памяти и вывода элементов списка
Function DisposeAll:boolean;
var q:aa;
Begin
p:=s;
while p<>nil do
Begin
q:=p^.next;
write(p^.zn,' ');
Dispose(p);
p:=q;
end;
writeln;
writeln('Освобождение памяти...');
DisposeAll:=true;
end;
begin //операторы основной программы
s:=nil; // nil- признак конца списка
writeln('Введите количество элементов списка');
readln(kol);
for i:=1 to kol do //создание списка
Addsp;
p:=s; //установка р на начало списка
Repeat
if p^.zn>0 then
sum:=sum+p^.zn; //суммируем положительные элементы
until not gonext;
if sum=0 then writeln('в списке нет полож. элементов')
else writeln('sum=',sum);
DisposeAll;
End.
Результаты решения задачи:
Введите количество элементов списка
Введите значение1 элемента
Введите значение2 элемента
Введите значение3 элемента
Введите значение4 элемента
-56
sum=8
3 5 0 -56
Освобождение памяти...
|
|
Методические указания по методике отладки программ в интегрированной среде PascalABC