Тема: Массивы
Показать сообщение отдельно
  #16  
Старый 28.11.2012, 19:12
Аватар для MarlboroRed
MarlboroRed MarlboroRed вне форума
Прохожий
 
Регистрация: 24.11.2012
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Guneska
Так как Вы предлаете не получается, видимо я полная идиотка, но разбираться с этим приходится, и я вышла до дакого кода, но почему выводятся только нули и только по нажатию Enter?
program Project2;

Код:
{$APPTYPE CONSOLE}

uses
  SysUtils;
const
n=2;
m=2;
p=2;
var
//Matrica А(n,m)
//Matrica B(m,p)
//Matrica C(n,p)
A : array [1..n, 1..m] of Integer;
B : array [1..m, 1..p] of Integer;
C : array [1..n, 1..p] of Integer;
k,j,v : Integer;
begin
  for k := 1 to n do
begin
  for j := 1 to m do
begin
  for v := 1 to p do
begin
  C[k,j] := A[k,v]*B[v,j];
  write (C[k,j]);
end;
writeln;
readln;
end;
end;
end.

Нули получаются потому, что матрицы А и В пустые. Их нужно заполнить исходными данными. В этом коде вы просто объявили матрицы А и Б и попытались получить матрицу С, которая является их произведением. Соответственно 0*0=0.

Еще хочу Вам подсказать, что в цикле "for to do" блок "begin end" используется только в случае, если в цикле выполняется 2 и более операций. Новый цикл - это одна операция.

пример:

Код:
for i:=1 to 2 do
  for j:=1 to 2 do
    begin
       writeln(i);
       writeln(j);
    end;

У Вас есть все возможности найти всю информацию в интернете.
Циклы: for, while, repeat
Двумерные массивы
Умножение матриц
Ответить с цитированием