• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Delphi Массивы

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

QPW

Задана вещественная матрица размерности 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.
 
H

hosm

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

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; не используется

Спасибо за помощь)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!