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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2008, 13:46   #1
LyaLyaLya
Пользователь
 
Аватар для LyaLyaLya
 
Регистрация: 02.12.2008
Сообщений: 27
Вопрос помогите разобраться с матрицами

Люди умные, помогите, плиз. Я с этой задачей уже долгова-то мучаюсь.

Задана последовательность А1, А2, ... , А20 и В1, В2, … В10. Получить последовательности, включающие :
1) Элементы А и В, которые равны;
2) Элементы А и В, которые не равны

С первой частью я справилась, но вот со второй не получается. Необходимо использовать флаг в решении задания.

Код HTML:
PROGRAM pr1;
uses crt;
const   n = 20;
           m = 10;
var
            a : array [1..n] of real;
            c  ,b: array [1..m] of real;
t, l, j, i ,k, pr : integer;

BEGIN
clrscr; randomize;


for i:=1 to n do
begin
a[i]:=random(50);
write (a[i]:5:0);
end;
writeln; writeln;

for j:=1 to m do
begin
b[j]:=random(20);
write (b[j]:5:0);
end;

readln; writeln;

  k:=0;
  for i:=1 to n do
    for j:=1 to m do begin
      if a[i]=b[j] then begin
      pr:=0;
for l:=1 to k do
if a[i]=c[l] then pr:=1;
if pr=0 then begin
k:=k+1;
c[l]:=a[i];
  end; end; end;  writeln;

  for l:=1 to k do write(c[l]:5:0); readln;
end.

Последний раз редактировалось LyaLyaLya; 03.12.2008 в 14:19.
LyaLyaLya вне форума Ответить с цитированием
Старый 03.12.2008, 13:54   #2
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Если Вы справились с первой частью, то в чем проблема со второй: знак '=' на '<>' поменять сложно?
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 03.12.2008, 14:22   #3
LyaLyaLya
Пользователь
 
Аватар для LyaLyaLya
 
Регистрация: 02.12.2008
Сообщений: 27
По умолчанию

Хм, если бы все было так просто. Когда меняется "=" на "<>", то в третьем масиве С получаются все элементы двух матриц А и В.
LyaLyaLya вне форума Ответить с цитированием
Старый 03.12.2008, 14:56   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Так вам нада переписать элементы из A и В которых нет не в том не в другом?
A={1,2,3,4,5}
B={1,2,3,6}

C={4,5,6} так что ли?
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 03.12.2008, 15:10   #5
LyaLyaLya
Пользователь
 
Аватар для LyaLyaLya
 
Регистрация: 02.12.2008
Сообщений: 27
По умолчанию

Да, именно так. И желательно выполнить те два условия в одной программе, это возможно?
LyaLyaLya вне форума Ответить с цитированием
Старый 03.12.2008, 15:24   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
const m=20;
      n=10;
var i,j,temp,l:integer;
    a,c:array[1..m] of integer;
    b:array[1..n] of integer;
    flag:boolean;

function Include(x:integer):boolean;
var i:integer;

begin
Include:=true;
 for i:=1 to l do
  if c[i]=x then Include:=false;
end;


begin
clrscr;
for i:=1 to m do
  begin
   a[i]:=random(100) ;
   write(a[i]:3);
  end;
writeln;
for i:=1 to n do
  begin
   b[i]:=random(100) ;
   write(b[i]:3);
  end;

l:=0;
 for i:=1 to m do
 begin
   flag:=true;
   for j:=1 to n do
     if a[i]=b[j] then flag:=false;
     if flag and Include(a[i]) then begin
                      inc(l);
                      c[l]:=a[i];
                    end;
 end;


 for i:=1 to n do
 begin
   flag:=true;
   for j:=1 to m do
     if b[i]=a[j] then flag:=false;
     if flag and Include(b[i]) then begin
                      inc(l);
                      c[l]:=b[i];
                    end;
 end;
writeln;
for i:=1 to l do
 write(c[i]:3);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 03.12.2008 в 15:49.
alex_fcsm вне форума Ответить с цитированием
Старый 03.12.2008, 15:29   #7
LyaLyaLya
Пользователь
 
Аватар для LyaLyaLya
 
Регистрация: 02.12.2008
Сообщений: 27
По умолчанию

если не использовать флаг:
Код:
 for i:=1 to n do begin k:=0;
    for j:=1 to m do
      if a[i]<>b[j] then k:=k+1;
    if k>0 then begin t:=0;  t:=t+1; c[t]:=a[i]; end;
  end;
то действиетльно получаются не равный элементы в масииве С, но необходимо, чтобы среди не равных не было одинаковых

например:
A={1,2,3,6,7,7,7}
B={1,2,4,4,5,6,6,7}

C={3,4,5}
LyaLyaLya вне форума Ответить с цитированием
Старый 03.12.2008, 15:37   #8
LyaLyaLya
Пользователь
 
Аватар для LyaLyaLya
 
Регистрация: 02.12.2008
Сообщений: 27
По умолчанию

alex_fcsm, объясните пожалуйста, что означает "ABC:set of char", почему в "m:=[]" скобки пустые и что необходимо вставить вместо "...."??
LyaLyaLya вне форума Ответить с цитированием
Старый 03.12.2008, 15:49   #9
LyaLyaLya
Пользователь
 
Аватар для LyaLyaLya
 
Регистрация: 02.12.2008
Сообщений: 27
По умолчанию

зачем вы это сделали?!!
LyaLyaLya вне форума Ответить с цитированием
Старый 03.12.2008, 15:49   #10
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Я исправил там была ошибка
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите пожалуйста с решением задач с матрицами очень прошу Денисько54 Помощь студентам 18 04.03.2009 11:35
помогите с матрицами плиз Darkstar Помощь студентам 2 16.11.2008 16:13
Помогите с матрицами Сапфира Помощь студентам 2 14.10.2008 11:03
Помогите разобраться! Holodok Помощь студентам 12 02.05.2008 18:13