Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
mafus
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 4
#1

Найти матрицу B = Am, где, m - целое число больше единицы

15.04.2013, 18:47. Просмотров 404. Ответов 4
Метки нет (Все метки)

Задание 1.9.
а) Найти матрицу B = Am, где, m - целое число больше единицы;
б) умножить элементы k-ой строки матрицы В на заданное число;
в) вычислить сумму отрицательных элементов полученной матрицы, расположенных под ее главной диагональю в столбцах с четными номерами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 18:47
Ответы с готовыми решениями:

Дана квадратная матрица А порядка n Найти матрицу B=A^m, где m целое число
Напишите, пожалуйста программу и алгоритмизацию Дана квадратная матрица А...

Требуется вывести квадратную матрицу, где первый квадрат-единицы, квадрат внутри него-нули, потом снова единицы и т.д.
Требуется вывести квадратную матрицу, где первый квадрат-единицы, квадрат...

Дано целое число N (> 1). Найти наибольшее целое число K, при котором выполняется неравенство 3K < N.
Дано целое число N (&gt; 1). Найти наибольшее целое число K, при котором...

Дано целое число N>0. Найти наименьшее целое положительное число К, квадрат которого превосходит N:K*K>N
дано целое число N&gt;0. Найти наименьшее целое положительное число К, квадрат...

Дано целое число a>9. Больше ли цифра десятков цифры единиц?
помогите с задачей,пожалуйста, Дано целое число a&gt;9. Больше ли цифра десятков...

4
skoopy
0 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 2
22.05.2013, 01:00 #2
Доброй ночи,
интересует аналогичное задание, но B=A^m
и было бы совсем замечательно, если каждый пункт был в отдельной подпрограмме.
0
Puporev
Модератор
54370 / 41958 / 28981
Регистрация: 18.05.2008
Сообщений: 98,831
22.05.2013, 08:11 #3
Процедуры: найдите степени квадратной матриц
Составить подпрограмму вычисления К степени квадратной матрицы
1
skoopy
0 / 0 / 0
Регистрация: 18.05.2013
Сообщений: 2
28.05.2013, 14:09 #4
Спасибо, за предыдущуюу подсказку,но вот , в процессе написания возникла необходимость консультации.
Интересует вопрос, почему процедура работает только один раз, то есть возводит только в квадрат и затем не выходит на цикл?
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
uses crt;
const nmax=10;
type matr=array[1..nmax,1..nmax] of real;
procedure MxM(a1,a2:matr;n:byte;var a3:matr);
var k,j,i:byte;
begin
for k:=1 to n do
for j:=1 to n do
 begin
  a3[k,j]:=0;
  for i:=1 to n do
  a3[k,j]:=a3[k,j]+a1[k,i]*a2[i,j];
 
 end;
end;
 
var e,n,i,j,q,m,l,x,k : integer;
sum:real;
A,B,C:matr;
begin clrscr;
      writeln ('vvedite poradok matricy ГЂ (ne bolee 10!)');
      readln (n);
        if (n>10) or (n<=0) then
              begin
                repeat
                writeln('vvedite poradok matricy ГЂ (ne bolee 10!)');
                readln (n);
                until (n>0) and (n<11);
              end;
 
                  for i:=1 to n do
                   for j:=1 to n do
                    begin
                    write('A[',i,',',j,']=');
                    readln (A[i,j]);
                    end;
            writeln ('vasha ishodnaaya matrica A:');
                 for i:=1 to n do
                      begin
                         for j:=1 to n do
                             write (A[i,j]:8:2);
                             writeln;
                      end;
                      write('vvedite stepen m   = ');
                      readln (m) ;
                      q:=1;
 
                      c:=A;
                          repeat
                         MxM(c,a,n,b);
                            c:=b;
                          q:=q+1;
                             until q<=m;
 
                         writeln ('vasha poluchennaya matrica B:');
                 for i:=1 to n do
                      begin
                         for j:=1 to n do
                             write (C[i,j]:8:2);
                             writeln;
                         end;
                         
                        write('vvedite nomer k stroki (ne bolshe ',n,'!) = ');
                        readln (l) ;
                           if (l>n) or (l<=0) then
                             begin
                              repeat
                              writeln('vvedite nomer k stroki (ne bolshe ',n,'!!!) = ');
                              readln (l);
                              until (l<=n) and (l>0) ;
                             end;
              write('vvedite chislo = ');
              readln(x);
                for i:=1 to n do
                 c[i,j]:=a[l,i]*x;
                   for i:=1 to n do
                     a[l,i]:=c[i,j];
              writeln ('poluchennaya matrica B:');
                     for i:=1 to n do
                             begin
                                  for j:=1 to n do
                                     write (c[i,j]:8:2);
                                     writeln;
                             end;
                     sum:=0;
                         for i:=1 to n do
                          for j:=1 to n do
                             begin
                               if (i>j) and (c[i,j]<0) and (j mod 2=0) then
                                  sum:=sum+c[i,j];
                             end;
              writeln ('summa otricatelnyh pod glavnoy diagonalyu B = ',sum);
                writeln ('dlya vihoda nazhmite  enter.');
                 readln;
                         
                    end.
0
Puporev
Модератор
54370 / 41958 / 28981
Регистрация: 18.05.2008
Сообщений: 98,831
28.05.2013, 14:30 #5
Во первых было написано
Цитата Сообщение от skoopy Посмотреть сообщение
и было бы совсем замечательно, если каждый пункт был в отдельной подпрограмме.
Например по первой ссылке подпрограмма умножения матриц в цикле внутри самой программы возводит матрицу в заданную степень.
Можно и переделать подпрограмму чтобы сразу возводила в степень, это уж как захочешь, для этого цикл из основной программы убрать в подпрограмму.

Добавлено через 7 минут
Как-то так
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure step_matr(a1:matr;n:byte;var a3:matr);
var k,j,i:byte;
    a2:mtr;
begin
a2:=a1;
for i:=1 to n-1 do
 begin
  for k:=1 to m do
  for j:=1 to m do
   begin
    a3[k,j]:=0;
    for i:=1 to m do
    a3[k,j]:=a3[k,j]+a1[k,i]*a2[i,j];
   end;
  str(i+1,s);
  Vyvod(a3,'ГЊГ*òðèöГ* A^'+s+':');
  a2:=a3;
 end;
end;
0
28.05.2013, 14:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2013, 14:30

Напечатать ту матрицу, где больше нулевых строк
Даны три целые матрицы размером 9х4. Напечатать ту из них, где больше нулевых...

Дан вещественный вектор X (x1, x2, …, xN), где N – целое положительное число
Дан вещественный вектор X (x1, x2, …, xN), где N – целое положительное число....

Дано трехзначное целое число А. Получить из него двузначное целое число путем отбрасывания первой цифры
Дано трехзначное целое число А. Получить из него двузначное целое число путем...


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

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

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