IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Элементы квадратных матриц
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  1  +


Здравствуйте! Помогите, пожалуйста, с задачей: "Даны 2 квадратные матрицы порядка n. Получить новую матрицу прибавлением к элементам каждого столбца первой матрицы произведения элементов соответствующих строк второй матрицы". Процедуры на ввод и вывод матриц я уже написал, а вот сам алгоритм подсчета значений элементов новой матрицы не могу.
Заранее большое спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Если я правильно понял задание - то так
for i:=1 to n do
begin
s:=1;
for j:=1 to n do
s:=s*b[i,j]);
for j:=1 to n do
inc(a[i,j],s);
end;


Пожалуйста, выкладывай все, что написал, т.к. во первых - это значит, что ты хоть что-то делал, а во вторых, нам не надо заново это писать. (именно поэтому я не проверял работоспособность).

Добавлено через 2 мин.
я понял, что соответствующий рядок - это тот рядок, в котором находится элемент.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  1  +


Спасибо огромное!
Вот, что у меня получилось smile.gif
Uses CRT;

Const
VG = 10;
NG = 0;

Type
Matrix = array [1..VG, 1..VG] of real;

Procedure ReadElem (var Elem: real);
var ElemS: string;
ElemC: integer;
begin
Repeat
readln (ElemS);
val (ElemS, Elem, ElemC);
if ElemC <> 0 then
writeln ('Error');
Until ElemC = 0;
end;

Procedure ReadOrder (Prompt: string;
var Order: byte);
var s: string;
c: integer;
OK: boolean;
begin
Repeat
write (Prompt);
readln (S);
val (S, Order, C);
if C <> 0 then
writeln ('Error')
else
begin
OK := (Order >= NG) and (Order <= VG);
if not OK then
writeln ('Order isn''t in a range');
end;
Until (C = 0) and OK;
end;

Procedure ReadMatrix (Order: byte;
var A: Matrix;
var B: Matrix);
var i, j: byte;
begin
writeln ('Enter elements of matrix A: ');
for i := 1 to Order do
for j := 1 to Order do
begin
write ('A[', i, j, ']: ');
ReadElem (A[i, j]);
end;
writeln ('Enter elements of matrix B: ');
for i := 1 to Order do
for j := 1 to Order do
begin
write ('B[', i, j, ']: ');
ReadElem (B[i, j]);
end;
end;

Procedure PrintMatrix (Order: byte; C: Matrix);
var i, j: byte;
begin
for i := 1 to Order do
begin
for j := 1 to Order do
write (C[i, j]: 4: 2, ' ');
writeln;
end;
end;

var Order, i, j: byte;
A, B, C: Matrix;
product: real;

begin
Repeat
TextBackground (0);
ClrScr;
ReadOrder ('Enter Order of Matrixs: ', Order);
ReadMatrix (Order, A, B);
for i := 1 to Order do
begin
product := 1;
for j := 1 to Order do
product := product * b[i, j];
for j := 1 to Order do
c[i, j] := (product + a[i, j]);
end;
PrintMatrix (Order, C);
Writeln ('Continue? (y, Y)');
Until not (Readkey in ['y', 'Y']);
end.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 5:02
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name