Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2011, 23:12   #1
Heles
Пользователь
 
Регистрация: 17.09.2011
Сообщений: 21
По умолчанию Массив в Delphi. Решение задачи.

Задача:
В матрице n-го порядка найти максимальный среди элементов, лежащих
ниже побочной диагонали, и минимальный среди элементов, лежащих выше
главной диагонали.
Проблема:
Нужно составить формулу нахождения максимального и минимального числа. С математикой и воображением всегда проблемы были. Я пытался сделать, но максимальное число у меня пишет - 0.
Код программы:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    StringGrid2: TStringGrid;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  const
Nmax=10;
        type
mas1=array[1..Nmax,1..Nmax] of integer;
mas2=array[1..2] of integer;
var
  Form1: TForm1;
  A:mas1;
  B:mas2;
  N,j,i:integer;


implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
N:=3;
Edit1.text := IntToStr(N);
StringGrid1.Cells[0,0]:='Ìàññèâ A:';
for i:=1 to N do begin
StringGrid1.Cells[0,i]:='i='+IntToStr(i);
StringGrid1.Cells[i,0]:='j='+IntToStr(i);
StringGrid2.Cells[0,0]:='Max';
StringGrid2.Cells[1,0]:='Min';
end;
end;
procedure TForm1.Button1Click(Sender: TObject);  //Здесь изменение массива.
begin
{$C+}
try
N:=StrToInt(edit1.text);
StringGrid1.RowCount:=N+1;
StringGrid1.ColCount:=N+1;
for i:=1 to N do
        StringGrid1.Cells[0,i]:='i='+IntToStr(i);
for i:=1 to N do
        StringGrid1.Cells[i,0]:='j='+IntToStr(i);
 if N>Nmax then Abort;
 if N<=0 then
        case MessageDlg('Число строк и столбцов меньше либо равно 0',mtError,[mbok,mbcancel],0) of
        mrok: StringGrid1.RowCount:=Nmax+1; // тут интересует как сделать, чтобы еще и ColCount одновременно менял значение с RowCount?
         end;
for i:=1 to N do
for j:=1 to N do
StringGrid1.cells[i,j]:='';
except
on EAbort do
        case MessageDlg('Выход за предел массива. Предел равен 10',mtError,[mbok],0) of
        mrOK : StringGrid1.RowCount:=NMax+1; end;
on EConvertError do
case MessageDlg('Введите целое число',mtError,[mbok],0) of
        mrok: exit; end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);  // здесь поиск максимального значения и вписывание элементов в таблицу.
var ma,mi,r:integer;
begin
for i:=1 to N do
for j:=1 to N  do
StringGrid1.Cells[i,j]:=IntToStr(random(50));
ma:=A[1,2];
R:=N-1;
for i:=2 to R do
for j:=3 to N do
if a[i,j]>Ma then
           Ma:=a[i,j]
           else Ma:=A[1,2];
StringGrid2.Cells[0,1]:=IntTOStr(ma);

end;

end.
Изображения
Тип файла: jpg Безымянный.jpg (62.0 Кб, 128 просмотров)
Heles вне форума Ответить с цитированием
Старый 11.10.2011, 01:37   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
if a[i,j]>Ma then
           Ma:=a[i,j]
           else Ma:=A[1,2]; // эта строка лишняя
StringGrid2.Cells[0,1]:=IntTOStr(ma);
да и с циклом нужно подумать...
Код:
for i:=1 to N-1 do //- столбец
for j:=1 to N-i  do //- строка
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
РЕШЕНИЕ ЗАДАЧИ В DELPHI mastervos Помощь студентам 0 04.12.2010 23:43
Delphi Решение задачи ДваДваВо7 Помощь студентам 0 18.10.2010 19:13
Delphi Решение задачи ДваДваВо7 Помощь студентам 2 15.10.2010 19:40
Решение задачи в Delphi Alex Disturbed Помощь студентам 4 04.10.2010 14:08
Решение задачи на Delphi 7 Allah2009 Помощь студентам 3 02.05.2009 10:43