IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Динамические списки, Сравнение элементов списка 1 и 2 и запись в 3
сообщение
Сообщение #1


Гость






я создал туже тему в разделе delphi blink.gif но решил что это задание под консоль delphi можно написать и в этом разделе(т к сдесь больше народу). Здесь я более обширно опишу свою задачу:

Даны два списка L1 и L2 вещественных чисел. Написать подпрограммы,
возвращающие новый список L, включающий по
одному разу числа
, которые:
а) входят одновременно в оба списка;
б) входят хотя бы в один из списков;
в) входят в один из списков L1 и L2, но в то же время не входят
в другой из них;
г) входят в список L1 но не входят в список L2.
Но главное что я хочу понять это как сравнивать элементы в каждом из списков друг с другом и чтобы этот принцип можно было применить в моей задаче? и вопрос 2: что в моей задаче означает выделенная синим цветом строка?

program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

type
pe=^spisok;
spisok=record
t:real;
p:pe;
end;
var
elem, beg,elem2,beg2,elem3,beg3:pe;
ch:char; n, a,b:integer;
begin
//------------заполняем первый список--------
new(elem); beg:=elem;
elem^.p:=elem;
while true do
begin
Write('Vvedite_choslo.: ');
Readln(Elem^.t);
write('Povtorit_vvod y/n');
readln(ch);
if (ch='n') then begin
elem^.p:=nil;
break;
end else
begin
new(elem^.p);
elem:=elem^.p;
end;
end;
//------------заполняем второй список--------
new(elem2); beg2:=elem2;
elem2^.p:=elem2;
while true do
begin
Write('Vvedite_choslo_vo_vtoroi.: ');
Readln(Elem2^.t);
write('Povtorit_vvod y/n');
readln(ch);
if (ch='n') then begin
elem2^.p:=nil;
break;
end else
begin
new(elem2^.p);
elem2:=elem2^.p;
end;

//вот сдесь должно быть сравнение списков и занесение их в третий???

end;
Writeln('-------------------------');
writeln('Vivod_1-go');
elem:=beg;
n:=0;
repeat
inc(n);
writeln(N,':',elem^.t:3:2);
elem:=elem^.p;
until elem=nil;
Writeln('--------------------------');
writeln('Vivod_2-go');
elem2:=beg2;
n:=0;
repeat
inc(n);
writeln(N,':',elem2^.t:3:2);
elem2:=elem2^.p;
until elem2=nil;
readln;
end.

 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Юля, синим - это здесь:
Цитата(feiqin @ 28.05.2007 16:52)
Написать подпрограммы,
возвращающие новый список L, включающий по
одному разу числа
, которые:

smile.gif

feiqin, это значит, что если число уже было включено в список-результат однажды, то второе его включение производить не надо...

Цитата
как сравнивать элементы в каждом из списков друг с другом и чтобы этот принцип можно было применить в моей задаче?
2 вложенных цикла... В первом пробегаешь по всему списку L1, и для каждого его элемента запускаешь внутренний цикл - по всем элементам списка L2... Так ты сможешь сравнить "каждый с каждым"...

Поиск, кстати, может тебе в этом помочь - подобная задача уже выкладывалась...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.05.2024 13:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name