Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 06.03.2011
Сообщений: 11
1

Списки (как дописать процедурку?)

06.03.2011, 10:07. Показов 377. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем здравствуйте! Не могу в программе дописать процедурку которая

удаляет из списка L первый отрицательный элемент, если такой есть.

Вот что у меня получилось:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
program Lab2;
Type E=integer;
     U=^Zveno;
     Zveno= record inf:E;
                   Pred:U;
                   Next:U
            end;
 
 Procedure V_Nachalo(Var First:U; X:E);
           Var VSP:U;
           begin
             New(VSp);
             Vsp^.inf:=X;
             if First=nil then begin
                               Vsp^.next:=Vsp;
                               Vsp^.pred:=Vsp;
                               First:=Vsp;
                               end
                          else begin
                               Vsp^.Pred:=First^.Pred;
                               Vsp^.Next:=First;
                               First^.pred^.next:=Vsp;
                               First^.pred:=Vsp;
                               First:=Vsp;
                               end;
           end;
 
 Procedure V_Spisok(Var Pr:U; X:E);
           Var VSP:U;
           begin
             New(VSp);
             Vsp^.inf:=X;
             Vsp^.pred:=Pr;
             Vsp^.Next:=Pr^.next;
             Pr^.next^.pred:=Vsp;
             Pr^.Next:=VSp;
           end;
Procedure Iz_Spiska(Var Pr:U; Var X:E);
           Var VSP:U;
           begin
           X:=Pr^.inf;
             if Pr^.pred=Pr then begin
                                 dispose(Pr);
                                 Pr:=nil;
                                 end
                            else begin
                                 Vsp:=Pr;
                                 Pr:=Pr^.next;
                                 Pr^.pred:=Vsp^.Pred;
                                 Pr^.pred^.next:=Pr;
                                 Dispose(Vsp);
                                 end;
           end;
 
 Procedure Print(First:U; n:integer);
           Var Vsp:U; i:integer;
           begin
           Vsp:=First;
           for i:=1 to n do
               begin
               Write(Vsp^.inf:5);
               Vsp:=Vsp^.next;
               end;
           end;
 
 Procedure Form (Var First:U; n:integer);
           Var Vsp:U; X:E; i:integer;
           begin
             First:=Nil;
             x:=random(5)-2;
             V_Nachalo(First,x);
             Vsp:=First;
             for i:=2 to n do
               begin
               x:=random(5)-2;
               V_Spisok(Vsp,x);
               Vsp:=Vsp^.next;
               end;
           end;
 
 function Pust(First:U):boolean;
          begin
          Pust:=(First=nil);
          end;
 
 procedure Ochistka(Var First:U);
           Var Vsp:E;
           begin
           while not (Pust(First)) do
               Iz_Spiska(First,Vsp);
           end;
 
         
 procedure Del(L:U; n:integer);
          Var Vsp:U; i,k:integer;
          begin
          Vsp:=L;
          k:=0;
          for i:=1 to n do
            begin
            if (VSP^.next^.inf<0) then VSP^.next^.inf:=Pred;
            Pr:=Pr^.next;
            Pr^.pred:=Vsp^.Pred;
            Pr^.pred^.next:=Pr;
            Vsp:=Vsp^.next;
            Dispose(VSP);
            end;
          Sosedi:=k;
          end;
 
Var L,Vsp:U; n,k:integer;
begin
 
Write('Vvedite kol-vo elementov v spiske L: ');
Readln(n); Writeln;
if (n<=0) then Writeln('Nepravilnoe chislo. Programma okonchena.')
      else
      begin
      Randomize;
      Form(L,n);
      Writeln('Spisok:');
      Print(L,n); Writeln;
      k:=Sosedi(L,n);
      Writeln('Chislo sosedei ',k:3);
      readln;
      end;
{ochistka(L);}
Readln;
end.
Где procedure Del это и есть требуемая процедура
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2011, 10:07
Ответы с готовыми решениями:

Процедурку надо..
Логическая функция возвращает True, если ее аргумент – простое число. помогите решить задачку...

подскажите как составить процедурку
Помогите составить процедурку для вычисления значения двух функций где a=0.1 b=0.3 x...

Как вызвать процедурку кнопки формы из модуля
Всем привет. Есть процедура, которая определяет обработку клика баттона риббона Sub...

Помогите, пож., правильно составить процедурку
Здравствуйте! Помогите, пож., правильно составить процедурку. У меня есть таблица, в...

0
06.03.2011, 10:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2011, 10:07
Помогаю со студенческими работами здесь

Как преобразовать вложенные списки из строки в обычные списки?
Доброе утро, форумчане. Подскажите пожалуйста, мне нужно написать скрипт, который разбирает...

Списки, как склеить списки между собой?
Ребят, привет всем, есть код, в классе которого описаны несколько методов: добавление элемента в...

Списки, списки, списки. не все так просто
Написать функцию, которая принимает 2 списка, содержащие одинаковое число строк, затем изменяет...

Как дописать и как переписать файл данными из RichTextBox
Всем доброго времени суток! Есть ричтекстбокс и мне надо дописать в файл данные из его, а иногда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru