Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите! (задача с матрицей)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Zolushka
!help.gif Помогите !mol1.gifкто-нибудь решить задачку по программированию!!!! !fie.gif
Даны квадратная матрица А порядка m, натуральное число n, действительные числа pn, pn-1,..., p0. Получить матрицу pnAn + pn-1An-1 + ... + p1A + p0E, где E – единичная матрица порядка m. (n это индексы у р, а у А это степень, просто не знаю как тут это написать)
Если я не принесу сделанную эту задачку мне можно вешаться, сделайте плииииииииииииз!!!

ЗЫ Мне там нужно чтоб использовались процедуры и функции. (Но вообще то решите хоть как-то!!!!!)
volvo
Zolushka, ты относишься к исключениям из правил?
Цитата(Правила Раздела)
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!


Тебе что, ссылку привести на задачу из FAQ? Сам не в состоянии нажать кнопку "Поиск"?


Вот решенная задача:
Как вычислить заданный многочлен от матрицы A
Zolushka
Большое спасибо! blink.gif Только не можешь хоть не много объяснить, что там нужно сделать, как для тупых.
Честно признаюсь не искала в поиске, потому что, что искать не понимаю! Задача какая-то тупая. Или я... wacko.gif
Объясни пожалуста, что обозначают индексы и степень? Пожалуйста!!! !mol1.gif !mol1.gif !mol1.gif
мисс_граффити
Цитата(volvo @ 31.03.2006 23:26) *

Сам не в состоянии нажать кнопку "Поиск"?

СамА, судя по нику.

Zolushka
Индексы... ну смотри: у тебя много чисел p. ты их нумеруешь: р первое, р второе, р третье.... вот 1,2,3 и есть индексы.
Обычно это делается так: массив называют р, а индексы - номера элементов.

Степени проходят в пятом классе... 2*2=2^2, 2*2*2=2^3, 2*2*2*2=2^4 и так далее (^ обозначает степень).
то же самое и с матрицами. сколько раз их перемножить - такая степень и получится.
Zolushka
Цитата
Индексы... ну смотри: у тебя много чисел p. ты их нумеруешь: р первое, р второе, р третье.... вот 1,2,3 и есть индексы.

а в чем зависемость р первого от второго, третьегои тд? то есть если у меня например р1=3, то р2 - ?
volvo
Да нет тут никакой зависимости... Если тебе надо найти многочлен от переменной, то ты просто задаешь НУЖНЫЕ тебе коэффициенты при каждой степени, и вычисляешь, так? То же самое и здесь - ТЫ задаешь те коэффициенты, которые тебе нужны, и программа их вычисляет.

У тебя же в задании явно сказано:
Цитата
Даны квадратная матрица А порядка m, натуральное число n, действительные числа pn, pn-1,..., p0.
Zolushka
Ух, круто, я почти поняла. Спасибо всем!!! give_rose.gif
Zolushka
Ааааааааааа, совсем запуталась. Написала какой-то бред. norespect.gif Помогите мне исправить пожалуйста!!!

Код
Program L1;
const
   N = 5;
   M = 4;
Type
   TMatrix= array [1..M, 1..M] of real;

Procedure MatrixPower(var h:TMatrix; a:TMatrix);
Var
   i,j,k:integer;
Begin
   for i:=1 to m do
    for j:=1 to m do begin
      a[i,j]:=0;
      h[i,j]:=a[i,j]+ a[i,k]*a[k,j];
    end;
end;

Procedure MatrixScale(var h:TMatrix; a:TMatrix; p:real);
var
   i,j,k:integer;
Begin
   For k:=1 to n do begin
    writeln ('Введите действительное число р,k);
    read (p);
   end;
   for i:=1 to m do
    for j:=1 to m do
     h[i,j]:=p* a[i,j];
end;

Procedure MatrixAdd (Var h:TMatrix; a,b:TMatrix);
var
   i,j:integer;
Begin
   for i:=1 to m do
    for j:=1 to m do
    h[i,j]:=a[i,j]+b[i,j];
end;

Procedure MatrixPrint(a:TMatrix);
var
   i,j:integer;
Begin
   for i:=1 to m do Begin
    for j:=1 to m do
      write(a[i,j]:9:2);
    writeln;
   end;
end;


var
   a: TMatrix;
   T,Res: TMatrix;
   i, j: Integer;
BEGIN
   for i:=1 to m do
     for j:=1 to m do
       a[i,j]:=random(20);
   MatrixPrint(a);

   For i:=1 to n do begin
     MatrixPower(T, a);
     MatrixScale(T, T,n);
     MatrixAdd(Res, Res, T);
   end;
   MatrixPrint(Res);
End.
мисс_граффити
Procedure MatrixPower(var h:TMatrix; a:TMatrix); 
Var
i,j,k:integer;
Begin
for i:=1 to m do
for j:=1 to m do begin
a[i,j]:=0;
h[i,j]:=a[i,j]+ a[i,k]*a[k,j];
end;
end;

вот это что должно делать?...
volvo
Zolushka, я дал тебе ссылку НА РЕШЕННУЮ и отлаженную задачу. ЗАЧЕМ тебе понадобилось лезть внутрь процедур и что-то там исправлять??? Недостаточно было просто ввести данные?

А уж коли полезла - извини, но ошибки ищи сама!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.