0 / 0 / 0
Регистрация: 17.04.2015
Сообщений: 22
1

Программа вычисления произведения матриц

18.04.2015, 15:10. Показов 1385. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему моя программа всегда вычисляет нулевую матрицу? Я как то не так применяю такую штуку, как procedure, или что? И можно ли вместо procedure использовать function, и если да, то как? Заранее благодарю.

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
program proizvedmatrix;
 const n=2;
type tA= Array[1..n,1..n] of Integer;
procedure vvodta(m:ta);
  var i,j :integer;
begin
    for i:=1 to n do
    for j:=1 to n do   begin
      write('M[',i,',',j,']=');
      readln(m[i,j]);
     end;
 
 end;
 
var a, b, c: ta; i,j,k: integer;
    begin
    vvodta(a);  vvodta(b);
    c[i,j]:=0;
    for i:=1 to n do
    for j:=1 to n do
 
    for k:=1 to n do begin
      c[i,j]:=c[i,j]+a[i,k]*b[k,j];
      end;
    for i:= 1 to n do
 begin
 for j:=1 to n do
 write(c[i,j],' ');
 writeln;
 end;
 
    readln;
    end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2015, 15:10
Ответы с готовыми решениями:

универсальная программа произведения двух матриц
Всем привет! Помогите нам, пожалуйста!!! Нужна универсальная программа произведения двух матриц!!!

программа вычисления произведения
Всем привет!Нужна помощь в составлении программ: 1)программы вычисления произведения ...

программа для вычисления произведения P=3*(-4)*5*(-6)*... для n множителей.
Написать Паскаль-программу для вычисления произведения P=3*(-4)*5*(-6)*... для n множителей.

Из минимальных и максимальных и произведения сформировать массивы и найти максимальное и минимальное матриц
Сформировать 2 матрицы. Из минимальных и максимальных и произведения сформировать массивы. И найти...

3
Эксперт Pascal/Delphi
6807 / 4565 / 4818
Регистрация: 05.06.2014
Сообщений: 22,438
18.04.2015, 15:45 2
Лучший ответ Сообщение было отмечено gamejad как решение

Решение

Pascal
1
procedure vvodta(var m:ta);
Добавлено через 3 минуты
Цитата Сообщение от gamejad Посмотреть сообщение
И можно ли вместо procedure использовать function, и если да, то как?
Pascal
1
2
3
4
5
6
7
8
9
10
function vvodta(var m:ta):boolean;
  var i,j :integer;
begin
    for i:=1 to n do
    for j:=1 to n do   begin
      write('M[',i,',',j,']=');
      readln(m[i,j]);
     end;
 
 end;
1
CAPITAL OF ROCK!
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
18.04.2015, 16:27 3
если ваш компилятор поддерживает возврат функцией своих структур данных, то можно такой ещё вариант. некошерно, правда...

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
function vvodta(const c: Char): tA;
var
    i,j: Integer;
    Result: tA; //если будет ругаться на повторное объявление переменной - удалить эту строку
begin
    for i := 1 to n do
        for j := 1 to n do
        begin
            Write(c, '[', i, ',', j, ']=');
            ReadLn(Result[i, j]);
        end;
    vvodta := Result;
end;
и вызов
Pascal
1
a := vvodta('a');
0
0 / 0 / 0
Регистрация: 17.04.2015
Сообщений: 22
20.04.2015, 22:43  [ТС] 4
Благодарю. Действительно, всё заработало.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2015, 22:43
Помогаю со студенческими работами здесь

Составить программу вычисления произведения
Составить программу вычисления произведения: p=\frac{1}{2}\cdot \frac{3}{4}\cdot...

Составить программу вычисления произведения
Составить программу вычисления произведения: p=\frac{1}{2}*\frac{3}{4}*\frac{5}{6}...... c...

Составить программу вычисления произведения логарифмов
Составить программу вычисления произведения логарифмов натуральных чисел от 2 до 18.

Напишите пожайлуста программу вычисления произведения
Напишите пожайлуста программу вычисления произведения: 2 * 4 * 6 * ... * (2n)


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru