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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2014, 15:54   #1
now2
Форумчанин
 
Регистрация: 12.03.2014
Сообщений: 217
По умолчанию исключение из списка элементов с отрицательными значениями

как сделать???????????????????????????? ???????списки вообще не учили в паскаль
задание: исключение из списка элементов с отрицательными значениями.
выручайте плиз((((((((((((((((((((((
now2 вне форума Ответить с цитированием
Старый 03.09.2014, 16:10   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Смотря как реализован список.
Общая схема такова - проходите циклом по списку, ищите отрицательные элементы. Находите, удаляете. Ключевой момент удаление элемента из списка. Реализация удаления зависит от того каким образом у Вас сделан список. Ну и списки разные бывают...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 03.09.2014, 17:27   #3
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Код:
program c; uses crt;
type list=object public data:integer; next:^list; constructor unit; constructor init(a:integer); procedure print(); procedure add(a:integer); end;
constructor list.init; begin data:=0;next:=nil;end;
constructor list.init(a:integer);begin data:=a;next:=nil;end;
procedure list.print; var iterator:^list; begin writeln(data); iterator:=next; while(iterator<>nil) do begin writeln(iterator^.data); iterator:= iterator^.next;end; end;
procedure list.add(a:integer); var iterator:^list; begin if (next=nil) then begin new(next); next^.init(a); end else begin iterator:=next; while(iterator^.next <>nil) do begin iterator:=iterator^.next; end; new(iterator^.next); iterator^.next^.init(a); end;
var a1:list;
begin a1.data:=5; a1.add(6); end;
Сделал так, но выдает ошибку, что не может произвести операцию and

Код:
type plist=^list;
function del(b1:plist):plist;
var i,j:plist;
begin
if (b1=nil) then begin del:=b1;end; i:=b1;
while(i^.data<0 and i^.next <>nil) do begin i:=i^.next; end;
if (i^.data<0) then begin del:=nil; end
else begin
if (i^.next=nil)then begin del:=i; end
else begin j:=i; while(j^.next<>nil and j^.next^.data <0) do begin j:=j^.next; end; i^.next := j^.next; i^.next:=del(i^.next); del:=i; end;
end;
end;
Полная реализация списка есть в теме http://www.programmersforum.ru/showthread.php?t=87357
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"

Последний раз редактировалось challengerr; 03.09.2014 в 22:33.
challengerr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
1)В массиве У(N) определить количество элементов, являющихся кратными 7 и отрицательными. Герман Греф Помощь студентам 15 18.12.2012 22:06
Исключение элементов из списка LISP veter48 Помощь студентам 0 02.10.2012 19:36
исключение элементов из списка sahsa-m37 Помощь студентам 1 25.05.2011 23:03
Массивы,сума элементов между двумя отрицательными Jincer Общие вопросы C/C++ 0 24.10.2010 22:22