|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.06.2009, 12:48 | #1 |
Пользователь
Регистрация: 09.06.2009
Сообщений: 10
|
Динамические списки
Ребята, помогите пжлста! Мне нужно написать подпрограмму чтобы она умела проверять есть ли в списке хотя бы два одинаковых элемента..Я тут что-то выискала, соединила но как массив впихнуть не знаю((( еще процедуры вставки элемента в начало списка и удаления всех отрицательных элементов из списка!!! Заранее спасибо...
type link=^rec; rec=record inf:integer; next:link; end; var start,p,q:link; ch:char; procedure sozd; begin start:=nil; end; procedure dob; begin start:=nil; repeat new(p); write('vvedite zha4enie:'); readln(p^.inf); p^.next:=start; start:=p; writeln('else?'); readln(ch); until ch='n'; writeln ('spisok sozdan'); end; procedure prosmotr; begin p:=start; while p<>nil do begin write(p^.inf); p:=p^.next; end; writeln('spisok nape4atan'); end; procedure delete_otr(var t:link); var n:link; begin if t<>nil then begin p:=t; while p^.next<>nil do begin if p^.next^.inf<0 then begin n:=p^.next; p^.next:=p^.next^.next; dispose(n); end else p:=p^.next; end; end; end; procedure dva_odin; var k,i,j,n:integer; begin k:=0; for i:=1 to (n-1) do for j:=2 to n do begin if a[i]=a[j] then k:=k+1; if k=2 then begin write('da'); exit; end; end; if k<2 then write('Net'); readln; end; begin repeat writeln('1 - sozdat spisok'); writeln('2 - dobavit element v na4alo'); writeln('3 - prosmotr spiska'); writeln('4 - udalit otricat elementy'); writeln('5 - proverit na nali4ie odinak elementov'); write('vash vibor:'); readln(ch); case 'm' of '1': begin sozd; end; '2': begin dob; end; '3': begin prosmotr; end; '4': begin delete_otr; end; '5': begin dva_odin; end; end; until ch='n'; |
30.06.2009, 13:41 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Сделал бы функцию типа Код:
т.е. если функция вернет TRUE значит есть такой же элемент со значением в Value
I'm learning to live...
|
|
30.06.2009, 13:47 | #3 | |
Форумчанин
Регистрация: 07.04.2009
Сообщений: 245
|
Цитата:
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Последний раз редактировалось Anatole; 30.06.2009 в 14:12. |
|
30.06.2009, 13:55 | #4 |
Форумчанин
Регистрация: 07.04.2009
Сообщений: 245
|
здесь не совсем коррекктно было написано
Код:
Код:
Код:
Код:
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Последний раз редактировалось Anatole; 30.06.2009 в 14:41. |
30.06.2009, 14:36 | #5 |
Пользователь
Регистрация: 09.06.2009
Сообщений: 10
|
Anatole, спасибо за поправки.
Stilet! А можно поподробней в каком цикле вызвать функцию??? |
30.06.2009, 14:49 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
У тебя есть процедура dva_odin Вот я бы ее написал так, с учетом моей функции: Код:
I'm learning to live...
|
|
30.06.2009, 14:53 | #7 |
Пользователь
Регистрация: 09.06.2009
Сообщений: 10
|
Большое спасибо, Виталий! ))) Идея ясна, щас будем пробовать)))
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамические списки | Ольчик | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 15.01.2012 14:33 |
Динамические списки | MyQwErTy | Помощь студентам | 3 | 14.04.2009 20:08 |
Динамические данные. Списки. | pulsar | Помощь студентам | 6 | 23.02.2009 16:12 |
Динамические списки | lubafffka | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 17.12.2008 21:59 |