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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2009, 16:32   #1
Dog
Пользователь
 
Регистрация: 19.05.2008
Сообщений: 48
Восклицание матрицы

Код:
const n=6;m=6;y=6;z=6;
var
a:array[1..n,1..m] of integer;
b:array[1..y,1..z] of integer;
i,j,k,l:integer;c,c2,c3,c4,c5,c6:integer;
begin

 randomize;
 for I := 1 to n do begin
for j := 1 to m do begin
a[i,j]:=100-random(500);
  write(a[i,j]:4,'   ');
 end;
 writeln;
 end;
writeln('----------------------------------------');
  randomize;
 for k := 1 to n do begin
for l := 1 to m do begin
b[k,l]:=100-random(500);
  write(b[k,l]:4,'   ');
 end;
 writeln;
 end;
 writeln('----------------------------------------');
 if a[1,1]and a[1,2]and a[1,3]and a[1,4]and a[1,5]and a[1,6]and
 b[1,1]and b[1,2]and b[1,3]and b[1,4]and b[1,5]and b[1,6]<0  then
 c:=1;
 if a[2,1]and a[2,2]and a[2,3]and a[2,4]and a[2,5]and a[2,6]and
 b[2,1]and b[2,2]and b[2,3]and b[2,4]and b[2,5]and b[2,6]<0  then
 c2:=1;
  if a[3,1]and a[3,2]and a[3,3]and a[3,4]and a[3,5]and a[3,6]and
 b[3,1]and b[3,2]and b[3,3]and b[3,4]and b[3,5]and b[3,6]<0  then
 c3:=1;
  if a[4,1]and a[4,2]and a[4,3]and a[4,4]and a[4,5]and a[4,6]and
 b[4,1]and b[4,2]and b[4,3]and b[4,4]and b[4,5]and b[4,6]<0  then
 c4:=1;
  if a[5,1]and a[5,2]and a[5,3]and a[5,4]and a[5,5]and a[5,6]and
 b[5,1]and b[5,2]and b[5,3]and b[5,4]and b[5,5]and b[5,6]<0  then
 c5:=1;
  if a[6,1]and a[6,2]and a[6,3]and a[6,4]and a[6,5]and a[6,6]and
 b[6,1]and b[6,2]and b[6,3]and b[6,4]and b[6,5]and b[6,6]<0  then
 c6:=1;

 writeln('            ',c,'  ',c2,'  ',c3,'  ',c4,'  ',c5,'  ',c6);
 readln;
end.
Это можно как нибудь упростить?
Код:
if a[1,1]and a[1,2]and a[1,3]and a[1,4]and a[1,5]and a[1,6]and
 b[1,1]and b[1,2]and b[1,3]and b[1,4]and b[1,5]and b[1,6]<0  then
 c:=1;
 if a[2,1]and a[2,2]and a[2,3]and a[2,4]and a[2,5]and a[2,6]and
 b[2,1]and b[2,2]and b[2,3]and b[2,4]and b[2,5]and b[2,6]<0  then
 c2:=1;
  if a[3,1]and a[3,2]and a[3,3]and a[3,4]and a[3,5]and a[3,6]and
 b[3,1]and b[3,2]and b[3,3]and b[3,4]and b[3,5]and b[3,6]<0  then
 c3:=1;
  if a[4,1]and a[4,2]and a[4,3]and a[4,4]and a[4,5]and a[4,6]and
 b[4,1]and b[4,2]and b[4,3]and b[4,4]and b[4,5]and b[4,6]<0  then
 c4:=1;
  if a[5,1]and a[5,2]and a[5,3]and a[5,4]and a[5,5]and a[5,6]and
 b[5,1]and b[5,2]and b[5,3]and b[5,4]and b[5,5]and b[5,6]<0  then
 c5:=1;
  if a[6,1]and a[6,2]and a[6,3]and a[6,4]and a[6,5]and a[6,6]and
 b[6,1]and b[6,2]and b[6,3]and b[6,4]and b[6,5]and b[6,6]<0  then
 c6:=1;
Замечание модератора: Используйте тег [CODE]

Последний раз редактировалось Rembo; 19.10.2009 в 22:21.
Dog вне форума Ответить с цитированием
Старый 19.10.2009, 17:08   #2
del3p
Новичок
Джуниор
 
Аватар для del3p
 
Регистрация: 29.04.2009
Сообщений: 1
По умолчанию

используй циклы для перебора масива)))))
del3p вне форума Ответить с цитированием
Старый 19.10.2009, 17:11   #3
Dog
Пользователь
 
Регистрация: 19.05.2008
Сообщений: 48
Стрелка

Цитата:
Сообщение от del3p Посмотреть сообщение
используй циклы для перебора масива)))))
легко сказать)))), сделать труднее
Dog вне форума Ответить с цитированием
Старый 19.10.2009, 17:21   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

задаем цикл, с перебором i от 1 до 6, а в нем цикл от 1 до 6 и анализируйте значение a[i,j], если меньше 0 ,то +1 к Сч и для b[i,j) тоже, потом Сч на равенство 12, но не знаю будет ли это проще, т.к. необходимо анализировать значение i. Если в Паскале есть оператор переключения, то можно для анализа i, использовать этот оператор.
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 19.10.2009 в 17:35.
Sweta вне форума Ответить с цитированием
Старый 19.10.2009, 22:19   #5
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

По идеи тебе надо сделать так:
Код:
var c:array[1..n] of integer;
...
...
...
  for i := 1 to n do begin
    c[i] := 1;
    temp := a[i,1] and b[i,1];
    for j := 1 to m do Begin
      if ((c[i]<>0) and (a[i,j]<0)) then c[i] := 0;
      if ((c[i]<>0) and (b[i,j]<0)) then c[i] := 0;
    end;
  end;

  for j := 1 to m do
    write(c[j]:4,' ');

  writeln;
но как я понимаю ты проверяеш отрицательность всех чисел в строках обоих матриц. Я бы сделал сдедующим образом. (немного отредактировал твой код чтобы он был немного более понятен и логичен, здесь я ещё предположил что у тебя размеры обоих матриц равны)

Код:
const n=6;m=6;
var
a:array[1..n,1..m] of integer;
b:array[1..n,1..m] of integer;
i,j:integer;
c:array[1..n] of integer;
temp:boolean;
begin
  randomize;
  for i := 1 to n do begin
    for j := 1 to m do begin
      a[i,j]:=100-random(500);
      write(a[i,j]:4,' ');
    end;
    writeln;
  end;
  writeln('----------------------------------------');

  for i := 1 to n do begin
    for j := 1 to m do begin
      b[i,j]:=100-random(500);
      write(b[i,j]:4,' ');
    end;
    writeln;
  end;
  writeln('----------------------------------------');

  for i := 1 to n do begin
    temp := true;
    for j := 1 to m do Begin
      temp := temp and (a[i,j]<0);
      temp := temp and (b[i,j]<0);
    end;
    if (temp) then c[i] := 1 else c[i] := 0;
  end;

  for j := 1 to m do
    write(c[j]:4,' ');
  writeln;

  readln;
end.
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."
val_nnm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение матрицы методом союзной матрицы dofmat Помощь студентам 6 03.10.2011 15:01
Сумма четных элементов матрицы. Произведение элементов 3-го столбца. Минимальный элемент матрицы. renovare Помощь студентам 2 03.07.2009 21:13
матрицы Ленка Паскаль, Turbo Pascal, PascalABC.NET 0 28.05.2009 11:05
Матрицы FatalX Помощь студентам 21 17.04.2009 22:50