Как правильно написать условие что бы исключить из списка студентов у которых больше одной двойки ?
Что-то такого типа:
var count_2: integer; ... s1:=poch; while s1<>nil do begin
count_2 := 1; for i:= 1 to 4 do if s1^.y.ocinky[i] = 2 then dec(count_2); if count_2 < 0 then { данные, на которые указывает s1, нужно удалять }
s1:=s1 ^.cc; end;
Автор: GoodWind 4.04.2006 14:42
Цитата
Посылочный тип даных
а разве такой существует ?
Автор: Desktop II 4.04.2006 14:51
...
Автор: Desktop II 4.04.2006 18:14
...
Автор: volvo 4.04.2006 18:20
Цитата(Desktop II @ 4.04.2006 14:14)
Сделал как ты сказал, после ввода даных паскаль намертво виснет...
Я не это совершенно имел в виду! Смотри, что у тебя происходит:
while s1<>nil do begin
count_2 := 1; for i:= 1 to 4 do if s1^.y.ocinky[i] = 2 then dec(count_2); if count_2 < 0 then s1:=s1 ^.cc; { Вот так расценивается твоя программа !!! } end;
Я же подразумевал, что ты ВМЕСТО комментариев вставишь код удаления элемента списка, на который указывает s1... Чувствуешь разницу?
Автор: Desktop II 4.04.2006 18:41
...
Автор: volvo 4.04.2006 18:45
Цитата
If <Что тут писать ?> then Delete(s1);
То же самое и писать!!!
If count_2 < 0 Then Delete(s1) else s1 := s1^.cc;
Только нужно еще реализовать процедуру Delete...
Автор: Desktop II 4.04.2006 18:59
...
Автор: volvo 4.04.2006 19:10
Поиском пользуйся. Да и FAQ мы не для красоты месяцами шлифуем... Чтобы ты пришел, и для тебя все заново решать...
Автор: Desktop II 4.04.2006 19:22
...
Автор: Desktop II 6.04.2006 0:54
...
Автор: volvo 6.04.2006 1:05
Цитата
Я как раз и тем и дургим пользуюсь.
Правда? Так что же ты разобраться не можешь, ПОЧЕМУ у тебя ошибка? А посмотреть на описание НАШЕГО типа Point тебе что, лень было? Или мы должны исключительно по твоему образу и подобию в FAQ-е использовать названия полей, не несущих НИКАКОЙ смысловой нагрузки?
Будь добр перечитать тему о списках еще раз.
И не надо делать "Up", иначе тема уйдет в Down раз и навсегда...