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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.09.2012, 12:06   #1
alexandrovna
Новичок
Джуниор
 
Регистрация: 16.09.2012
Сообщений: 7
По умолчанию не могу решать

Тема: Динамические структуры данных. Линейные списки.
Дан список А, состоящий из записей: первое поле – вещественное число, второе – адрес следующего элемента. Составить программу, которая удаляет из списка все отрицательные элементы.
alexandrovna вне форума
Старый 16.09.2012, 12:17   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
uses crt;
type
Link = ^Number;
Number = record
 ID: integer;
 Cislo : real;
 NextRec: Link;
end;
var i, c, j,k,l: integer;
    a: real;
    Last, First, Curr, spisok, tmp ,buf: Link;
 
procedure Add(var spis1:Link ;znach1: real);
var
  tmp:Link;
begin
  if spis1=nil then {Проверяем не пуст ли список, если пуст, то }
  begin
    GetMem(spis1,sizeof(number));  {создаём его первый элемент}
    tmp:=spis1;
  end
  else {в случае если список не пуст}
  begin
    tmp:=spis1;
    while tmp^.nextrec<>nil do
      tmp:=tmp^.nextrec; {ставим tmp на последний элемент списка}
    GetMem(tmp^.nextrec,sizeof(number)); {создаём следующий элемент}
    tmp:=tmp^.nextrec;   {переносим tmp на новый элемент}
  end;
  tmp^.nextrec:=nil; {зануляем указатель}
  tmp^.cislo:=znach1; {заносим значение}
end;
 
procedure ShowList(first: link);
begin
 Writeln('Список элементов:');
 if first=nil then writeln('В списке нет отрицательных элементов')
 else
  begin
   while first<>nil do
    begin
     writeln(first^.cislo);
     first:=first^.nextrec;
    end;
 end;
end;
 
Procedure Del(var first:link; y:real);
 Var z,x,dx:link;
 Begin
 z:=first;
  While z<>Nil do
   if z^.cislo<y then
    if z=first then
     begin
      x:=first;
      first:=first^.nextrec;
      Dispose(x);
      z:=first
     end
    else
     begin
      x:=z;
      z:=z^.nextrec;
      dx^.nextrec:=z;
      Dispose(x);
     end
      else
       begin
        dx:=z;
        z:=z^.nextrec
       end;
 End;
 
begin
 Writeln('Укажите длину списка: ');
 Readln(c);
 first:=nil;
 Writeln('Введите элементы:');
 for i:= 1 to c do
  begin
   read(a);
   add(first,a);
  end;
 j:=0;
 Del (first, j);
 ShowList(first);
 readln;
end.
Ну почему не поискать?
Poma][a вне форума
Старый 16.09.2012, 12:35   #3
alexandrovna
Новичок
Джуниор
 
Регистрация: 16.09.2012
Сообщений: 7
По умолчанию

чего она такая длинная?
alexandrovna вне форума
Старый 16.09.2012, 12:51   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от alexandrovna Посмотреть сообщение
чего она такая длинная?
Да уж. Ни спасибо, ни пожалуйста.
Вам предоставили практически готовую программу.
Осталось разобраться и чуток изменить ее.
Да и небольшая она совсем (конечно по сравнению с "Hello, world!" просто огромна ).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не МОГУ РЕШАТЬ alexandrovna Паскаль, Turbo Pascal, PascalABC.NET 1 16.09.2012 11:45
Не могу разобраться как это решать??? Altez Помощь студентам 4 03.06.2011 22:05
как решать данные задания? немного понять не могу) Малика Паскаль, Turbo Pascal, PascalABC.NET 0 09.05.2011 17:13
не могу понять как решать задачу в delphi :( Юра Кадников Помощь студентам 1 05.01.2011 21:34
не могу понять как решать задачи по паскалю! aiktz Помощь студентам 10 11.03.2009 16:43