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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2009, 00:43   #11
pupik100
Пользователь
 
Регистрация: 19.10.2009
Сообщений: 19
По умолчанию

Код:
program ex;
var
N,M,i,j,k:integer;
A:array[1..100, 1..100] of integer;
B:array[1..100] of integer;
begin
write('N=',N);
readln(N);
write('M=',N);
readln(M);
write('A[',i,','j']=');
readln(A[i,j]);
write('B[',k,']=');
end;

найти главную и побочную диагональ можно с помощью оператора условия i=j если да то записывается в новый массив... дальше хз..

Код:
program ex;
var
N,M,ol1,ol2,z,Q,a,i,j,k:integer;
A:array[1..100, 1..100] of integer;
B:array[1..100] of integer;
begin
write('N=',N);
readln(N);
write('M=',M);
readln(M);
write('A[',i,','j']=');
readln(A[i,j]);
write('B[',k,']=');
end;
k:=1;
z:=1;
if i=j then
begin
L[z]:=A[i,j];
z:=z+1;
end;
if i=j then
begin
L[z]:=A[i,j];
z:=z+1;
end;
i:=1 to N do
j:=N to 1 do
if i+j=N+1 then
begin
Q[k]:=A[i,j];
k:=k+1;
end;
ol1:=o
a:=1 to N do
z:=1 to N do
if B[a]=L[z] then
ol1:=ol1+1
else
begin
a:=N;
z:=N;
end;
ol2:=0
a:=1 to N do
k:=1 to N do
if B[a]=Q[k] then
ol2:=ol2+1
else
begin
a:=N;
k:=N;
end;
if ol1 or ol2=N then
write ('совпадает или что там')
else
write (' ничё не совпадает идите в зад');
end.

мда.. голова болит уже миллиард ошибок.. даж индексы попутал

Последний раз редактировалось Stilet; 26.10.2009 в 10:11.
pupik100 вне форума Ответить с цитированием
Старый 25.10.2009, 16:49   #12
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
мда.. голова болит уже миллиард ошибок.. даж индексы попутал!!!
берем исходный одномерный массив загоняем во множество a
создаем массив из элементов главной диагонали загоняем во множество b
находим множество c= пересечение этих 2 множеств
идем по исходному массиву если элемент во множестве то оставляем нет удаляем к
если в исходном массиве осталось хоть одно число пересечение есть если не осталось значит нет!!!
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 25.10.2009, 17:22   #13
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,581
По умолчанию

Цитата:
Сообщение от pupik100
найти пересечение матрицы и массива, пересечения могу быть только диагональными...
Честно сказать, я не совсем понимаю это условие. Если часть элементов массива совпадает с частью элементов диагоналей матрицы - это будет считаться пересечением или нужно полное совпадение всех элементов?
Хорошо бы увидеть пару примеров входных данных и ответов на задачу.
Arigato вне форума Ответить с цитированием
Старый 25.10.2009, 17:48   #14
pupik100
Пользователь
 
Регистрация: 19.10.2009
Сообщений: 19
По умолчанию

>Если часть элементов массива совпадает с частью элементов диагоналей матрицы - это будет считаться пересечением
вот это
pupik100 вне форума Ответить с цитированием
Старый 25.10.2009, 18:21   #15
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,581
По умолчанию

Пересечений может быть несколько, например, 2 символ совпали и еще 4 совпали. Что именно выводить?
Arigato вне форума Ответить с цитированием
Старый 25.10.2009, 18:35   #16
pupik100
Пользователь
 
Регистрация: 19.10.2009
Сообщений: 19
По умолчанию

если хотя одна одинаковая цифра в массиве и диагонали это и есть пересечение
вот так)
pupik100 вне форума Ответить с цитированием
Старый 25.10.2009, 18:41   #17
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,581
По умолчанию

Тогда ищем совпадение хотя бы 1 элемента:
Код:
Цикл по И от 1 до Н делать
  Цикл по Ж от 1 до Н делать
  начало
    Если А[И][И] = М[Ж] то // есть пересечение!!!
    Если А[И][Н-И+1] = М[Ж] то // есть пересечение!!!
  конец;
Arigato вне форума Ответить с цитированием
Старый 25.10.2009, 18:42   #18
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
k:=0;
for j:=1 to n do
begin 
for i:=1 to n do
if a[j]=m[i,i] then
begin
k:=k+1; 
writeln(a[j]);
end;
if k=0 then writeln ('netu');
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 25.10.2009, 23:59   #19
pupik100
Пользователь
 
Регистрация: 19.10.2009
Сообщений: 19
По умолчанию

Код:
program ex;
var
A:array[1..100, 1..100] of integer;
B:array[1..100] of integer;
i,j,N:integer;
begin
write('N=');readln(N);
for i:=1 to N do
for j:=1 to N do
begin
write('A[',i,j,']=');
readln(A[i,j]);
end;
for j:=1 to N do
begin
write('B[',j,']=');readln(B[j]);
end;
for i:=1 to N do
for j:=1 to N do
begin
if A[i,i]=B[j] then
writeln('есть пересечение c главной диагональю');
if A[i,N-i+1]=B[j] then
writeln('есть пересечение с побочной диагональю')
end;
end.

огромное спасибо вам всем за помощь в решении этой дурацкой задачи
pupik100 вне форума Ответить с цитированием
Старый 26.10.2009, 16:11   #20
pupik100
Пользователь
 
Регистрация: 19.10.2009
Сообщений: 19
По умолчанию

Решение задачи с использованием процедур

Код:
program ex;
type matrix=array[1..100, 1..100] of integer;
       mass=array[1..100] of integer;
var
A:matrix; B:mass;
i,j,N:integer;
procedure vvod(var A:matrix; var B:mass; var N:integer);
begin
write('N=');readln(N);
for i:=1 to N do
for j:=1 to N do
begin
write('A[',i,j,']=');
readln(A[i,j]);
end;
for j:=1 to N do
begin
write('B[',j,']=');readln(B[j]);
end;
end;
procedure nahozdenie(var A:matrix; var B:mass; var N:integer);
var
i,j:integer;
begin
for j:=1 to N do
begin
if A[i,i]=B[j] then
writeln('есть пересечение c главной диагональю');
if A[i,N-i+1]=B[j] then
writeln('есть пересечение с побочной диагональю')
end;
end;
begin
vvod(A,B,N);
nahozdenie(A,B,N);
end.
pupik100 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по одномерным массивам(паскаль) pupik100 Помощь студентам 2 23.10.2009 16:32
PascalABC прошу помощи по двумерным массивам aunt Sveta Помощь студентам 7 24.06.2009 10:04
Программа по двумерным массивам! Elmander Помощь студентам 9 22.06.2007 14:32