Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
4 / 3 / 2
Регистрация: 02.04.2018
Сообщений: 131
1

Некорректная работа

16.02.2020, 14:43. Просмотров 922. Ответов 8
Метки нет (Все метки)

Delphi
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
Type
  TArray = array [1..20, 1..20] of integer;
 
function MultiplicationMatrix(Matrix1k, Matrix2k: TArray): TArray;
Var
  i, j, index: integer;
begin
  for i := 1 to StrToInt(HeightOfMatrix1) do
    for j := 1 to StrToInt(WidthOfMatrix1) do
    begin
      Result[i, j] := 0;
      for index := 1 to StrToInt(HeightOfMatrix1) do
        Result[i, j] := Result[i, j] + Matrix1k[i, index] * Matrix2k[index, j];
    end;
end;
 
 
procedure TForm1.Button5Click(Sender: TObject);
Var
  i, j: integer;
begin
  Matrix3 := MultiplicationMatrix(Matrix1, Matrix2);
  for i := 1 to StrToInt(HeightOfMatrix1) do
    for j := 1 to StrToInt(WidthOfMatrix2) do
      Memo1.lines[0] := Memo1.lines[0] + IntToStr(Matrix3[i, j]);
end;
Не то выводит в Memo1: другие числа.
Первая и 2 матрицы корректны
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2020, 14:43
Ответы с готовыми решениями:

Некорректная работа кода
Помогите пожалуйста, при ведении массива, программа должна их сортировать методом обмена( метод...

Некорректная работа таймера
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Некорректная работа делфи?
Прикреплю исходный код: unit Unit1; interface uses Windows, Messages, SysUtils, Variants,...

Некорректная работа метода Sleep
В коде программы использую метод Sleep. После компиляции все работает нормально, но пока запущена...

8
Продавец времени
3586 / 2001 / 456
Регистрация: 12.03.2015
Сообщений: 10,025
16.02.2020, 15:10 2
Цитата Сообщение от FunnyK Посмотреть сообщение
Не то выводит в Memo1
А чо ты хотел от этой конструкции?
Delphi
1
Memo1.lines[0] := Memo1.lines[0] + IntToStr(Matrix3[i, j]);
В мемо образуется строка навроде 234234547678789800567687845653 456457658768
0
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 2
16.02.2020, 15:18 3
Verevkin, матрица 2:3 и матрица 3:4 заполнена единицами memo должно быть равно 33333333 , но равно последовал гости как у вас
0
4 / 3 / 2
Регистрация: 02.04.2018
Сообщений: 131
16.02.2020, 15:22  [ТС] 4
Phomk12, именно
0
Продавец времени
3586 / 2001 / 456
Регистрация: 12.03.2015
Сообщений: 10,025
16.02.2020, 15:22 5
FunnyK, юзай дебаггер
Кликните здесь для просмотра всего текста


0
4 / 3 / 2
Регистрация: 02.04.2018
Сообщений: 131
16.02.2020, 15:24  [ТС] 6
Verevkin, как в формах-то его юзать? Переменные в watches не отображаются. Типо процес не запущен
0
Модератор
60153 / 45303 / 31264
Регистрация: 18.05.2008
Сообщений: 108,816
16.02.2020, 15:29 7
Лучший ответ Сообщение было отмечено FunnyK как решение

Решение

У меня так и выводит. Вод код в Паскале(лень Делфи запускать).
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
34
35
const n=2;
      l=3;
      m=4;
var a,b,c:array[1..m,1..m] of byte;
    i,j,k:byte;
begin
for i:=1 to n do
 begin
  for j:=1 to l do
   begin
    a[i,j]:=1;
    write(a[i,j]:2);
   end;
  writeln
 end;
writeln;
for i:=1 to l  do
 begin
  for j:=1 to m do
   begin
    b[i,j]:=1;
    write(b[i,j]:2);
   end;
  writeln
 end;
writeln;
for i:=1 to n do //по количеству строк 1 матрицы
for j:=1 to m do  //по количеству столбцов 2 матрицы
 begin
  c[i,j]:=0;
  for k:=1 to l do//по количеству столбцов 1 матрицы = количеству строк 2 матрицы
  c[i,j]:=c[i,j]+a[i,k]*b[k,j];
  write(c[i,j]:2);
 end;
end.
1
Миниатюры
Некорректная работа  
4 / 3 / 2
Регистрация: 02.04.2018
Сообщений: 131
16.02.2020, 16:02  [ТС] 8
Puporev,
Delphi
1
2
3
4
5
6
for i:=1 to n do //по количеству строк 1 матрицы
for j:=1 to m do  //по количеству столбцов 2 матрицы
 begin
  c[i,j]:=0;
  for k:=1 to l do//по количеству столбцов 1 матрицы = количеству строк 2 матрицы
  c[i,j]:=c[i,j]+a[i,k]*b[k,j];
Спасибо
0
Продавец времени
3586 / 2001 / 456
Регистрация: 12.03.2015
Сообщений: 10,025
17.02.2020, 08:39 9
Цитата Сообщение от FunnyK Посмотреть сообщение
как в формах-то его юзать? Переменные в watches не отображаются. Типо процес не запущен
Точку останова ставишь, где надо, и вперёд. Например, вот (см. с 10:40):
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2020, 08:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Некорректная работа bat файла
Доброго времени суток! Подскажите, пожалуйста, программа работает через ini, так же при работе...

Калькулятор. Некорректная работа. Где ошибка?
К примеру 1+1 считает правильно, а 1+1+1 - не правильно. unit Unit2; interface uses ...

Некорректная работа графика при больших значениях
Собственно программа для построения графика функции (y=(x+a)^3 * (b-a)^(1/3)) и нахождения корней....

Некорректная работа программы по очень простенькой задаче
Здравствуйте, помогите пожалуйста новичку в Delphi с задачей.:scratch: Введите три числа. Если они...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.