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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2009, 21:15   #1
TOSAgrk
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 13
По умолчанию Pascal. Сортировка. Пересечение масивов.

Законченное множественное число целых чисел можно изобразить массивом, значения элементов которого не повторяются. Написать функцию для двух законченных множеств целых чисел которая находит их пересечение. (Использовать сортировки вставками и шелла).


мой труд:
1. Сортировка вставками.
Код:
uses crt;
const n=3; m=5;
var A:array[1..n] of integer;
    B:array[1..m] of integer;
    Anw:array[1..n] of integer;
    Bnw:array[1..m] of integer;
    Prtun:array[1..n] of integer;
    i,j,C,D,E,F:integer;
    g:byte;


begin
clrscr;
g:=0;
writeln('Vvedit'' elementu perwoi mnogunu ciluh 4usel.');
for i:=1 to n do read(A[i]);
writeln('Vvedit'' elementu drygoi mnogunu ciluh 4usel.');
for j:=1 to m do read(B[j]);

{Sortyvannja perwogo masuvy}
begin
for i:=1 to n do
begin
C:=i;
while (C>1) and (Anw[C-1]>A[i]) do
begin
Anw[C]:=Anw[C-1];
C:=C-1;
end;
Anw[C]:=A[i];
end;
writeln('Vidsortovana perwa mnoguna.');
for C:=1 to n do Write (Anw[C]:8);
writeln;
readln;
end;

{Sortyvannja drygogo masuvy}
begin
for j:=1 to m do
begin
D:=j;
while (D>1) and (Bnw[D-1]>B[j]) do
begin
Bnw[D]:=Bnw[D-1];
D:=D-1;
end;
Bnw[D]:=B[j];
end;
writeln('Vidsortovana dryga mnoguna.');
for D:=1 to m do Write (Bnw[D]:8);
writeln;
readln;
end;



{poshyk peretuny}
begin
for D:=1 to n do
for F:=1 to n do
writeln('peretun');
if Anw[C]=Bnw[D] then
Prtun[F]:=Anw[C]
else
writeln('zbigiv ne znajdeno');
writeln(Prtun[F]);
readln;
end;

readln;
end.

2. Сортировка Шелла:


Код:
uses crt,math;

const

      n=3; m=5;
      t=5;

var

      A:array[1..n] of integer;
      B:array[1..m] of integer;
      i,j: integer;

procedure Shell( var item: DataArray; count:integer);
var
       i,j,f,s,g,k :integer;
       A:array[1..n] of integer;
       B:array[1..m] of integer;
       x: DataItem;

begin

clrscr;

writeln('Vvedit'' elementu perwoi mnogunu ciluh 4usel.');
for i:=1 to n do read(A[i]);
writeln('Vvedit'' elementu drygoi mnogunu ciluh 4usel.');
for j:=1 to m do read(B[j]);



begin


k:=A[i];
s:=-k;
for i:= k+1 to count do
begin
x:= item[i];
f:= i-k;
if s=0 then
begin
s:= -k;
s:= s+1;
item[s] :=x;
end;
while (x<item[f]) and (f<count) do
begin
     item[f+k]:= item[f];
     f:=f-k;
     end;
     item[f+k]:= x;
     end;
     end;
     end;

     writeln ('X   ', x);
     writeln;


writeln ('1-a mnoguna: ');
for i:=1 to n do write (A[i]:9);
writeln;

writeln ('2-a mnoguna: ');
for j:=1 to m do write (B[j]:9);
writeln;

readln;
readln;
end.
TOSAgrk вне форума Ответить с цитированием
Старый 06.02.2009, 10:17   #2
densan
Пользователь
 
Регистрация: 25.08.2008
Сообщений: 19
По умолчанию

Как я понимаю. Пересечение это логическое умножение, т.е. нужно найти одинаковые элементы из двух массивов. Поставить условие если элемент 1 массива=элементу 2 массива то их выписать в 3 массив который и будет пересечением.
densan вне форума Ответить с цитированием
Старый 06.02.2009, 22:07   #3
TOSAgrk
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 13
По умолчанию

всё правильно!!! помощь есть ??!
TOSAgrk вне форума Ответить с цитированием
Старый 07.02.2009, 19:39   #4
TOSAgrk
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 13
По умолчанию

пож! помогите.... (на правах UPa)
TOSAgrk вне форума Ответить с цитированием
Старый 08.02.2009, 02:18   #5
TOSAgrk
Пользователь
 
Регистрация: 01.02.2009
Сообщений: 13
По умолчанию

UP


plz help
TOSAgrk вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка матрицы по спирали {pascal} Влдислаав3911 Помощь студентам 3 10.04.2012 22:05
Сравнение 2 масивов excel Slavik Помощь студентам 17 07.02.2009 23:18
Создание МасивоВ Slavik Microsoft Office Excel 6 21.01.2009 01:26
Pascal - сортировка массива(файла?) kossner Помощь студентам 14 05.12.2008 14:57