|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.11.2009, 20:54 | #1 |
Пользователь
Регистрация: 20.10.2009
Сообщений: 29
|
линейные массивы
даны значения двух целочисленных массивов X и Y размером n. Рассмотривая массивы ка конечные множества целых чисел ,построить массив z размером не более 2n ,где z=x дельта y (то есть зет равен симметрической разности x и y ( (A дельта B)=(А U B)\(A пересечение B))
|
17.11.2009, 20:59 | #2 |
Пользователь
Регистрация: 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 а потом разность обьединения и пересечения (обьединение уже найдено надо тока пересечение и их разность |
17.11.2009, 21:15 | #3 |
Пользователь
Регистрация: 20.10.2009
Сообщений: 29
|
(((((((((((((((((((((((((((((((( помогите пожалуйста
|
21.11.2009, 22:26 | #4 |
Новичок
Джуниор
Регистрация: 21.11.2009
Сообщений: 4
|
извените, а как оформлять описаловку к открытым массивам в дельфи?
My metallic heart
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача на линейные списки | 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 |