1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Delphi Массивы

Тема в разделе "Вопросы новичков и не только", создана пользователем QPW, 15 апр 2012.

  1. QPW

    QPW Гость

    Репутация:
    0
    Задана вещественная матрица размерности 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.
     
  2. hosm

    hosm * so what *

    Репутация:
    0
    Регистрация:
    18 май 2009
    Сообщения:
    2.442
    Симпатии:
    9
    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; не используется
     
  3. QPW

    QPW Гость

    Репутация:
    0
    Спасибо за помощь)
     
Загрузка...

Поделиться этой страницей