Delphi Массивы

  • Автор темы QPW
  • Дата начала
Q

QPW

Гость
#1
Задана вещественная матрица размерности nхm. Написать программу нахождения суммы элементов строки матрицы, в которой расположен элемент с наименьшим значением. Предполагается, что этот элемент единственный. Элементы матрицы и числа и вводятся с клавиатуры. Для вывода результата использовать компонент Edit.


unit Unit22222222;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;

type
mas=array[1..10,1..10] of real;
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
N,M: integer;
A:mas;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
N:=StrToInt(Edit1.Text);
M:=StrToInt(Edit2.Text);
StringGrid1.ColCount:=N+1;
StringGrid1.RowCount:=M+1;

StringGrid1.Cells[0,0]:='Массив W:';

for i:=1 to M do begin
StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);
end;
for i:=1 to N do begin
StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var n:Integer; mn:Double; mi,i,j,r:Integer; t:array [1..100,1..100] of extended;
begin

mn:=T[1,1];
mi:=0;

for i:=0 to N do
for j:=0 to n do
if mn>=T[i,j] then
begin
mi:=i;
mn:=T[i,j];
end;
mn:=0;


for j:=0 to N do
mn:=mn+T[mi, j];
Edit3.Text:=FloatToStrF(mn,fffixed,7,5);
end;
end.
 

hosm

* so what *
18.05.2009
2 442
9
#2
1)не вижу заполнения массива T - он должен был считаться с грида и элементы преобразоваться в числовой вещественный тип.
2)Delphi нечувствителен к регистру символов (ну, был, по крайней мере), поэтому локальная var n:Integer (равное 0) перекроет глобальную N, в которой хранится одна из размерностей массива t. Зачем вообще тут локальная переменная?
3) а М куда делось? for i:=0 to N do
for j:=0 to n do
4) тип массива T и тип элемента массива nm не совпадает (extended и double)
5) A:mas; не используется
 
Q

QPW

Гость
#3
1)не вижу заполнения массива T - он должен был считаться с грида и элементы преобразоваться в числовой вещественный тип.
2)Delphi нечувствителен к регистру символов (ну, был, по крайней мере), поэтому локальная var n:Integer (равное 0) перекроет глобальную N, в которой хранится одна из размерностей массива t. Зачем вообще тут локальная переменная?
3) а М куда делось? for i:=0 to N do
for j:=0 to n do
4) тип массива T и тип элемента массива nm не совпадает (extended и double)
5) A:mas; не используется
Спасибо за помощь)