Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вопрос по Record в Pascal'е / 7 сообщений из 7, страница 1 из 1
06.01.2004, 10:48
    #32369145
VMik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Record в Pascal'е
День добрый... С наступающим Праздником.

Паскаль, конечно, это не совсем дельфи, но...
Возник вопрос: есть два списочка (10 и 100 записей в каждом)...
Необходимо создать третий, в который бы вошли все уникальные элементы из двух имеющихся...
Пример (данные сейчас вношу от балды....)
Код: plaintext
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.
uses
  SysUtils;
type tspis1=^spis1;
  spis1=record
  val1:string;
  r:tspis1;
  end;
 spis2 = record
 val2: string;
 end;
 spis3=record
 val3: string;
 end;

 var i:integer;
 mass1: array of spis1;
 mass2: array[ 1 .. 100 ] of spis2;
 mass3: array[ 1 .. 10 ] of spis3;
 P0: tspis1 = nil;
 PNew, POld: tspis1;
begin
for i:= 1  to  100 
do begin
mass2[i].val2:=('Value ' + IntToStr(i));
writeln(mass2[i].val2);
end;
for i:= 1  to  10 
do begin
mass3[i].val3:=('Value   ' + IntToStr(i));
writeln(mass3[i].val3);
end;
 
end
.

Как добавить данные в запись - это не есть проблема -

Код: plaintext
1.
2.
3.
4.
with PNew^ do begin
val1:=!!!..........!!!
r:=nil;
.........
 end;


Вот как мне выбрать эти уникальные - не знаю.... Подскажите, кто знает.....
---
С наилучшими,
Dr. l'Ego aka VMik
...
Рейтинг: 0 / 0
06.01.2004, 10:50
    #32369149
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Record в Pascal'е
а что за уникальные такие записи ???
____
...
Рейтинг: 0 / 0
06.01.2004, 10:57
    #32369163
VMik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Record в Pascal'е
Уникальные = не повторяющиеся....
В примере кода повторы есть - первые 10 записей (с пробелами там не все четко, но это не есть принципиально)....
---
С наилучшими,
Dr. l'Ego aka VMik
...
Рейтинг: 0 / 0
06.01.2004, 11:06
    #32369184
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Record в Pascal'е
проще все это отсортировать и идти с этим далше ,
а дальще прощщее ...
____
...
Рейтинг: 0 / 0
06.01.2004, 11:27
    #32369225
VMik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Record в Pascal'е
Нда...
Сын директора банка лишит меня все-таки премии...
Но зато сессию без бабулек не сдаст!!!!!!
---
С наилучшими,
Dr. l'Ego aka VMik
...
Рейтинг: 0 / 0
06.01.2004, 12:27
    #32369299
Denis Uskov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Record в Pascal'е
Вопрос. Как организовывать результирующий список? Стек, очередь?
Для стека:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
var p : tspisl
     First : tspisl;
добавление к стеку
new(p);
p^.r:=First;
p^.vall:=...;
First:=p;
удаление из стека
p:=First;
First:=p^.r;
dispose(p)
проверка на сущ-ние
function CheckIn(Value:...):boolean;
begin
  CheckIn:=False;
  p:=First;
  while (p <> nill) and (p^.vall <> Value) do p:=p^.r;
  CheckIn:=(p <> nill) and (p^.vall = Value);
end;
и затем в программе
for i:= 1  to  100  do if not CheckIn(mass2[i].val2) then AddInSpisok;

Для очереди почти то же, но добавлять нужно в хвост, а вот с двунаправленным списком ...
С уважением, Denis Uskov
...
Рейтинг: 0 / 0
06.01.2004, 13:33
    #32369408
VMik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Record в Pascal'е
To Denis Uskov

Спасибо огромное!!! Очень помог(ли)...
Я, в принципе, дошел до подобного решения, однако оно не настолько.... ээээ.... стройное. В два раза больше кода....

Спасибо!!!
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вопрос по Record в Pascal'е / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]