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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2009, 20:54   #1
@lenk@
Пользователь
 
Регистрация: 20.10.2009
Сообщений: 29
По умолчанию линейные массивы

даны значения двух целочисленных массивов X и Y размером n. Рассмотривая массивы ка конечные множества целых чисел ,построить массив z размером не более 2n ,где z=x дельта y (то есть зет равен симметрической разности x и y ( (A дельта B)=(А U B)\(A пересечение B))
@lenk@ вне форума Ответить с цитированием
Старый 17.11.2009, 20:59   #2
@lenk@
Пользователь
 
Регистрация: 20.10.2009
Сообщений: 29
По умолчанию

const
q=100;
type
VECTOR=array[1..q] of integer;
var
X,Y,Z: VECTOR;
n: word;
i,m,k,s:integer;
begin
{vvod razmera ishodnyh massivov}
repeat
writeln('vvedite N: ramer massivov X i Y');
readln(N);
until (1<=N) and (N<=q);
{ massiv X}
writeln('vvedite massiv X');
for i:=1 to n do
readln(X[i]);
{massiv Y}
writeln('vvedite massiv Y');
for i:=1 to n do
readln(Y[i]);
writeln;
writeln; {pomeshaem znacheniya massivov X i Y v Z,proveriaya na odinakovye znaceniya}
s:=0;
m:=1;
k:=0;
while m<=n do {znacheniya massiva X pomeshayutsa v massiv Z}
begin
k:=k+1;
i:=0;
repeat
i:=i+1;
until (i>=k) or (z[i]=X[m]);
if z[i]=X[m] then
begin
k:=k-1;
end
else
begin
z[k]:=X[m]; {perenos ocherednogo elementa massiva X v Z}
s:=s+1;
end;
m:=m+1;
end;
m:=1;
while m<=n do {znacheniya massiva Y pomeshayutsa v massiv Z}
begin
k:=k+1;
i:=0;
repeat
i:=i+1;
until (i>=k) or (z[i]=Y[m]);
if z[i]=Y[m] then
begin
k:=k-1;
end
else
begin
z[k]:=Y[m]; {perenos ocherednogo elementa massiva X v Z}
s:=s+1;
end;
m:=m+1;
end;

for i:=1 to (s) do
write(Z[i]:6); {vyvod znacheniy na ekran}
writeln;
readln;
end.


вот на обьединение двух массивов написал, но не знаю как написать на пересечение вот что то попытался но что то не то:
const
q=100;
type
vector= array[1..q] of integer;
var
X,Y,Z: VECTOR;
n: word;
i,m,k:integer;
s:boolean;
begin
repeat
writeln('vvedite N: razmer massivov X i Y');
readln(N);
until (1<=N) and (N<=q);
{ massiv X}
writeln('vvedite massiv X');
for i:=1 to n do

readln(X[i]);
{massiv Y}
writeln('vvedite massiv Y');
for i:=1 to n do
readln(Y[i]);
writeln;
writeln; {pomeshaem znacheniya massivov X i Y v Z,proveriaya na odinakovye znaceniya}
m:=1;
k:=0;
{poisk prostym pereborom}

s:=false;
i:=1;
k:=0;
repeat
if y[i] = x[i]
then s:=true
else i:=i+1;
until (s) or (i>q);

if s
then
z[k]:=x[m];
writeln(z[k]);
readln;
end.
помогите доделать программку нужно найти пересечение массивов x и y а потом разность обьединения и пересечения
(обьединение уже найдено надо тока пересечение и их разность
@lenk@ вне форума Ответить с цитированием
Старый 17.11.2009, 21:15   #3
@lenk@
Пользователь
 
Регистрация: 20.10.2009
Сообщений: 29
По умолчанию

(((((((((((((((((((((((((((((((( помогите пожалуйста
@lenk@ вне форума Ответить с цитированием
Старый 21.11.2009, 22:26   #4
vice_versa
Новичок
Джуниор
 
Аватар для vice_versa
 
Регистрация: 21.11.2009
Сообщений: 4
По умолчанию

извените, а как оформлять описаловку к открытым массивам в дельфи?
My metallic heart
vice_versa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на линейные списки Ser Паскаль, Turbo Pascal, PascalABC.NET 8 06.05.2011 20:22
Линейные и Двумерные массивы в C++ Zid@ne Помощь студентам 3 17.05.2009 19:30
Delphi 7. Линейные алгоритмы. Юрий2009 Помощь студентам 1 01.05.2009 11:23
Линейные и разв. алгоритмы на С++ Wia Помощь студентам 1 28.01.2009 20:34
Линейные списки ManU Помощь студентам 1 03.11.2008 21:20