Консультация № 173972
04.11.2009, 21:06
0.00 руб.
0 2 1
Добрый вечер многоуважаемые эксперты!
прошу у вас прмрщи в решении одной задачки по Паскалю!
Правая треугольная матрица А порядка n задана в виду последовательности (n+1)n/2 чисел : сначала идет n элементов первой строки, затем n-1 элемент второй строки, начиная со второго элемента и т.д. ( из последней, n-ой строки берется только n-й элемент). Кроме этой последовательности дан вектор b c n элементами. Найти вектор Ab.

Заранее огромное спасибо вам!!!

Обсуждение

Неизвестный
05.11.2009, 04:22
общий
ну по моему без разницы что вводить первым!
а по условию впроде как матрицы вводится певая, а потом вектр!
давно
Профессор
401888
1232
05.11.2009, 06:37
общий
это ответ
Здравствуйте, Андреев Дмитрий Фёдорович!
Решение в приложении.

Приложение:
uses crt;
const n=6;{размер матрицы и вектора}
var a:array[1..n,1..n] of integer;{матрица}
b,c:array[1..n] of integer;{векторы заданный и результат}
i,j,k:byte;
begin
clrscr;
randomize;
writeln('Матрица А:');
for i:=1 to n do
begin
for j:=1 to n do
begin
if j>=i then a[i,j]:=random(9)+1{верхний ("правый") треугольник матрицы}
else a[i,j]:=0;
write(a[i,j]:3);
end;
writeln;
end;
writeln;
writeln('Вектор b:');
for i:=1 to n do
begin
b[i]:=random(9)+1;
write(b[i],' ');
end;
writeln;
writeln;
for k:=1 to n do{по строкам все}
for j:=i to n do{по столбцам только не ноли}
begin
c[k]:=0;
for i:=1 to n do
c[k]:=c[k]+a[k,i]*b[i];{перемножаем элементы строки матрицы
на соответствующие элементы вектора и суммируем}
end;
writeln('Вектор А*b');
for i:=1 to n do
write(c[i],' ');
readln
end.
Форма ответа