Форум программистов, компьютерный форум, киберфорум
Наши страницы
Free Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Никита777
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 14
1

В зависимости от знака операции (+ или -) выполнить действия над двумя матрицами

28.06.2013, 15:25. Просмотров 503. Ответов 6
Метки нет (Все метки)

13.В зависимости от знака операции (+ или -) выполнить действия над двумя матрицами.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2013, 15:25
Ответы с готовыми решениями:

Выполнить действия над матрицами
Вычислить C=(A-B)*2A+2B, где: A= 5 -1 3 0 2 -1 ...

Выполнить действия над матрицами
Выполнить действия над матрицами:

Действия над матрицами
Найти сумму произведений не нулевых цифр элементов каждого столбца!

действия над матрицами
найти обратную матрицу n-ого порядка

Арифметические операции над матрицами
Выполнив действия над матрицами A(n,n) и B(n,n) вычислить матрицу C(n,n) по...

6
1640max
2 / 2 / 2
Регистрация: 17.03.2013
Сообщений: 17
28.06.2013, 22:19 2
Имеется в виду сложение/вычитание соответствующих элементов двумерного массива действительных чисел?

Добавлено через 28 минут
Верно?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
uses crt;
type mas=array[1..20,1..20,1..3] of integer;
var i,j,k,x,y:integer;
    a:mas;
    c:char;
begin
randomize;
repeat
clrscr;
write('Введите размеры массивов: ');
readln(x,y);
for k:=1 to 2 do
begin
for i:=1 to y do
  begin
   for j:=1 to x do
     begin
     a[j,i,k]:=random(100);
     write(a[j,i,k]:4);
     end; //j
   writeln;
   end; //i
writeln;
end; //k
repeat
write('Введите знак операции: ');
readln(c);
until (c='+') or (c='-');
for i:=1 to y do
begin
   for j:=1 to x do
    begin
      case c of
      '+': a[j,i,3]:=a[j,i,1]+a[j,i,2];
      '-':  a[j,i,3]:=a[j,i,1]-a[j,i,2];
      end; //case
     write(a[j,i,3]:4);
    end; //j
writeln;
end; //i
write('Ещё? ');
readln(i);
until i=0
end.
0
Puporev
Модератор
56086 / 42961 / 29717
Регистрация: 18.05.2008
Сообщений: 101,944
29.06.2013, 15:17 3
Цитата Сообщение от 1640max Посмотреть сообщение
двумерного массива действительных чисел
А с чего он стал трехмерным?
Pascal
1
type mas=array[1..20,1..20,1..3] of integer;
0
1640max
2 / 2 / 2
Регистрация: 17.03.2013
Сообщений: 17
30.06.2013, 00:18 4
Цитата Сообщение от Puporev Посмотреть сообщение
А с чего он стал трехмерным?
Pascal
1
type mas=array[1..20,1..20,1..3] of integer;
Первый и второй - данные массивы, третий - получившийся. Можно было сделать и два двумерных, но так ведь чуть проще.
0
Puporev
Модератор
56086 / 42961 / 29717
Регистрация: 18.05.2008
Сообщений: 101,944
30.06.2013, 06:35 5
Понял, просто непривычно.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26842 / 17986 / 7109
Регистрация: 22.10.2011
Сообщений: 31,667
Записей в блоге: 6
30.06.2013, 10:39 6
Цитата Сообщение от 1640max Посмотреть сообщение
Первый и второй - данные массивы, третий - получившийся
Чтобы это был массив из трех квадратных матриц, надо описывать чуть по-другому:

Pascal
1
type mas=array[1..3,1..20,1..20] of integer;
, что эквивалентно
Pascal
1
type mas=array[1..3] of array[1..20,1..20] of integer;
Вот так будет ближе к истине, именно массив из трех матриц 20*20. В твоем же случае, 1640max, формально имеем массив из 20 матриц размером 20 строк на 3 столбца... Понятно, что манипулируя индексами можно добиться чего угодно, но... Нелогично отказываться от преимуществ, которые дает тебе правильное описание. В частности, если описывать моим способом, то поменять местами первую и вторую матрицы (используя третью как буфер) - дело 3-х строк:
Pascal
1
2
3
arr[3] := arr[2];
arr[2] := arr[1];
arr[1] := arr[3];
, попробуй сделать то же самое в твоей программе, без двух лишних вложенных циклов. Или попробуй вынести печать матрицы в отдельную процедуру, и напечатать каждую матрицу, используя эту процедуру.
1
1640max
2 / 2 / 2
Регистрация: 17.03.2013
Сообщений: 17
30.06.2013, 12:29 7
, попробуй сделать то же самое в твоей программе, без двух лишних вложенных циклов. Или попробуй вынести печать матрицы в отдельную процедуру, и напечатать каждую матрицу, используя эту процедуру.
Хорошо, спасибо за объяснение. Сейчас переделаю...

Добавлено через 36 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
uses crt;
type mas=array[1..3] of array[1..20,1..20] of integer;
var i,j,x,y:integer;
    a:mas;
    c:char;
    
procedure ran(k:integer);
begin
for i:=1 to y do
  begin
   for j:=1 to x do
     begin
     a[k,j,i]:=random(100);
     write(a[k,j,i]:4);
     end; //j
   writeln;
   end; //i
writeln;
end;
 
begin
randomize;
repeat
clrscr;
write('Введите размеры массивов: ');
readln(x,y);
ran(1);
ran(2);
repeat
write('Введите знак операции: ');
readln(c);
until (c='+') or (c='-');
for i:=1 to y do
begin
   for j:=1 to x do
    begin
      case c of
      '+': a[3,j,i]:=a[1,j,i]+a[2,j,i];
      '-':  a[3,j,i]:=a[1,j,i]-a[2,j,i];
      end; //case
     write(a[3,j,i]:4);
    end; //j
writeln;
end; //i
write('Ещё? ');
readln(i);
until i=0
end.
0
30.06.2013, 12:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2013, 12:29

Выполнить операции с квадратными матрицами
2. Выполнить операции (здесь A, B, C, D — квадратные матрицы порядка n)...

Ввести два числа и выполнить над ними 4 действия
Пользователь вводит два числа a, b, потом выбирает действие: 1.Среднее...

Выполнить заданные операции над матрицей
Дана матрица С(5х5) положительных и отрицательных элементов 1) Ввести элементы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru