Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.11.2008, 22:33
pav pav вне форума
Прохожий
 
Регистрация: 25.11.2008
Сообщения: 3
Репутация: 10
По умолчанию Проверти пожалуйста код

Здравствуйте ! Помогите пожалуйста с задачей:
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу:
а) умножением элементов каждой строки 1-й матрицы на наибольшее из значений элементов соответствующей строки второй матрицы;
б) прибавлением к элементам каждого столбца 1-й матрицы произведения элементов соответствующих строк второй матрицы

Вот примерно что я сделал: создаю две таблицы StringGrid1 и StringGrid2 которые заполняются с помощью генератора случ. чисел.
Теперь моя главная проблема чтобы при нажатие Button 2 или Button 3 выполнялось условие (а),
а результат выводился в третию таблицу StringGrid3, и так же для условия (б),результат выводтится но не тот.
Вот примерный код:
Код:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid3: TStringGrid;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
const
n=3;
var
  Form1: TForm1;
 a,b: array[0..n,0..n] of integer;
i,j:integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 for j:=0 to n do
begin
for i:=0 to n do
begin
a[i,j]:=random(15);
stringgrid1.Cells[i,j]:=inttostr(a[i,j]);
 b[i,j]:=random(15);
stringgrid2.Cells[i,j]:=inttostr(b[i,j]);
 
end;
 end;
 end;
  
procedure TForm1.Button2Click(Sender: TObject); {выполняю условие а}
var i,j,k,max:integer;
 begin
begin
for i:=0 to n do
   begin
     max:=b[i,1];
     for j:=0 to n do
     if b[i,j]> max then max:=b[i,j]; {ищем максимальное в строке второй матрицы}
     for k:=1 to n do
     a[i,k]:=a[i,k]*max;  {умножаем элементы строки первой матрицы}
 
       for i:=0 to n do
     for j:=0 to n do
    StringGrid3.Cells[i,j]:=IntToStr(b[i,j]);
 
 
end;
end;
end;
 
procedure TForm1.Button3Click(Sender: TObject); {Выполняю условие б}
var i,j,k,p:integer;
begin
 
begin
for i:=0 to n do
   begin
     p:=1;
     for j:=1 to n do
     p:=p*b[i,j];  {считаем призведение в строке второй матрицы}
     for k:=1 to n do
     a[i,k]:=a[i,k]+p; {прибавляем к элементам строки первой матрицы}
 
       for i:=0 to n do
      for j:=0 to n do
       StringGrid3.Cells[i,j]:=IntToStr(a[i,j]);
 
 
end;
 end;
 end;
end.
Admin: Пользуемся тегами, иначе последуют санкции!

Последний раз редактировалось Admin, 26.11.2008 в 10:23.
Ответить с цитированием
  #2  
Старый 25.11.2008, 23:51
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

В основном у тебя все верно, просто с коэффициентами i и j напутался. Вот это вроде рабочий вариант

Код:
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
<b>procedure</b> TForm1.Button2Click(Sender: TObject);
<b>var</b>
 Max, i, j: integer;
<b>begin</b>
 
 <b>for</b> i := 0 <b>to</b> n <b>do</b>
 <b>begin</b>
  Max := B[0, i];
 
   <b>for</b> j := 1 <b>to</b> n <b>do</b>
    <b>if</b> B[j, i] > Max <b>then</b> Max := B[j, i]; // максимальное значение
 
   <b>for</b> j := 0 <b>to</b> n <b>do</b>
    StringGrid3.Cells[j, i] := IntToStr(A[j, i]*Max); // перемножаем соотв. коэффициенты
 <b>end</b>;
<b>end</b>;
 
 
<b>procedure</b> TForm1.Button3Click(Sender: TObject);
<b>var</b>
 Mul, i, j: integer;
<b>begin</b>
 <b>for</b> i := 0 <b>to</b> n <b>do</b>
 <b>begin</b>
  Mul := 1;
 
   <b>for</b> j := 0 <b>to</b> n <b>do</b>
    Mul := Mul*B[j, i]; // находим произведение элементов строки
 
   <b>for</b> j := 0 <b>to</b> n <b>do</b>
    StringGrid3.Cells[i, j] := IntToStr(A[i, j] + Mul);
 <b>end</b>;
<b>end</b>;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025