Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2011, 16:35   #1
Neprosto
Новичок
Джуниор
 
Регистрация: 16.12.2011
Сообщений: 2
По умолчанию Ругается на процедуру.

В общем задание такое: Написать программу, содержащую процедуру, которая удаляет из списка L первый отрицательный элемент, если такой есть. Элементы вводятся с клавиатуры.

Вот код:
Код:
program Lab_10;


type
ptrZap = ^Zap;
zap = record
info:integer;
next:ptrzap;
end;

Procedure spisok(var curr:ptrzap);
var
first,buff:ptrzap;
Begin
curr:=first;
if curr^.info<0 then
first:=curr^.next
else
begin
while curr <> nil do
if curr^.info >= 0 then
curr:=curr^.next
else
begin
buff:=curr^.next;
curr^.next:=buff^.next;
break;
end;
end;
End;



var
first,buff,curr:ptrzap;
kol,i:byte;

begin

read(kol);  //читает кол-во эл-тов

if buff=nil
then
   begin
   new(buff);
   
   read(buff^.info);
   buff^.next:=nil;
   first:=buff;
   curr:=buff;
   end  ;
  { else
    begin
    new(buff);
    read(buff^.info);
    buff^.next:=nil;
    first:=buff;
    curr^.next:=buff;
    end;}


for i:=1 to kol-1 do
         begin
         new(buff);
         
         read(buff^.info);
         buff^.next:=nil;
         curr^.next:=buff;
         curr:=buff;
        end;





curr:=first;
 for i:=0 to (kol-1) do
Begin
  Write(curr^.info, ' ');
  curr := curr^.Next;
End ;
curr:=first;
buff:=first;
spisok(curr);
writeln('');

 for i:=0 to (kol-2) do
Begin
  Write(curr^.info, ' ');
  curr := curr^.Next;
End ;
end.
на 16 строке выдает ошибку:Непредвиденное исключение EAccessViolation. Access violation at address 0074CA25 in module 'PascalABC.exe'. Read of address EDE5E4E5. Программа завершена (Laba#10.pas, строка 16)

как исправить?

P.S. язык - Pascal
Neprosto вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать процедуру, заменяющую стандартную процедуру Insert Andi5 Паскаль, Turbo Pascal, PascalABC.NET 2 24.11.2011 17:57
компилятор ругается novak3 Общие вопросы C/C++ 4 21.05.2011 01:58
Ругается компилятор.. CormiX Помощь студентам 0 14.05.2011 16:13
Ругается касперский Nexus2116 Общие вопросы Delphi 6 10.11.2010 06:49
Ругается компилятор JSM Общие вопросы Delphi 2 17.06.2007 23:04