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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.04.2011, 10:59
Aleksey1924 Aleksey1924 вне форума
Прохожий
 
Регистрация: 25.04.2011
Сообщения: 2
Репутация: 10
По умолчанию Нужно вывести максимальное и минимальное значение из матрицы

Здравствуйте господа!

Подскажите пожалуйста, а то я застрял на этапе одном.
Описываю подробно.
1) Я создал небольшую форму на которой расположены 3 кнопки и текстовое поле.
Последняя кнопка (button3 ) выводит рандомные значения в матрице.

Нужно теперь чтобы после формирования матрицы, выводилось из нее максимальное число и минимальное. Т.е. нужен краткий алгоритм сравнения. (а вот как его написать я не знаю, т.к. с делфи незнаком)
Проще говоря:
1) Если число максимальное (самое большое) в массиве - то выводим на экран
2) Если число минимальное (самое маленькое) в массиве - то выводим на экран.

Собственно теперь сам код программы:

Код:
unit Project9;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    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;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.Add('Студент');
memo1.Lines.Add('Информатика');

end;

procedure TForm1.Button2Click(Sender: TObject);
var i:integer; s:string;
begin

s:=''; //устанавливаем строку пустой

{формируем строку накапливая в ней  цифры и пробелы между ними}
for i:=1 to 5 do s:=s+'  '+IntToStr(i);

Memo1.Lines.Add(s); // выводим строку в Memo1 
end;



procedure TForm1.Button3Click(Sender: Tobject);
var 
I, j:word;//Определяем переменные целого типа индексирующие строку и столбец
massiv:array[1..3,1..4] of word; {Определяем двумерный массив(матрицу) целых чисел }
s:string; //Определяем строку для  заполнения её цифрами и последующего вывода

begin
Memo1.Clear;//Очищаем Memo1
randomize;// Инициализируем генератор случайных чисел
for i:=1 to 3 do //Делаем двойной цикл чтобы заполнить массив massiv[I,j]
for j:=1 to 4 do 
massiv[I,j]:=random(101);// случайными числами от 0 до 100 функцией random


for i:=1 to 3 do  begin // Цикл по строкам с индексом i
s:=''; // очищаем переменную s содержащую строку
for j:=1 to 4 do // Цикл по столбцам с индексом j
s:=s+'  '+IntToStr(massiv[I,j]);//Формируем строку s из столбцов j
Memo1.Lines.Add(s);//Выводим строку в Memo1
end;
end;

end.
Фото программы

Помогите пожалуйста написать такой алгоритм, очень нужно.

Последний раз редактировалось Admin, 25.04.2011 в 13:04.
Ответить с цитированием
  #2  
Старый 25.04.2011, 12:28
Janom Janom вне форума
Начинающий
 
Регистрация: 04.02.2011
Адрес: Москва
Сообщения: 148
Версия Delphi: 7
Репутация: 133
По умолчанию

Код:
procedure TForm1.Button3Click(Sender: TObject);
var
 I, j:word;//Определяем переменные целого типа индексирующие строку и столбец
 massiv:array[1..3,1..4] of word; {Определяем двумерный массив(матрицу) целых чисел }
 s:string; //Определяем строку для заполнения её цифрами и последующего вывода
 MaxCh,MinCh:integer;
 begin
 Memo1.Clear;//Очищаем Memo1
 MaxCh:=Low(MaxCh);
 MinCh:=High(MinCh);
 randomize;// Инициализируем генератор случайных чисел
 for i:=1 to 3 do //Делаем двойной цикл чтобы заполнить массив massiv[I,j]
  for j:=1 to 4 do
    begin
      massiv[I,j]:=random(101);// случайными числами от 0 до 100 функцией random
      if massiv[i,j]>MaxCh then MaxCh:=massiv[i,j];
      if massiv[i,j]<MinCh then MinCh:=massiv[i,j];
    end;
 for i:=1 to 3 do begin // Цикл по строкам с индексом i
 s:=''; // очищаем переменную s содержащую строку
 for j:=1 to 4 do // Цикл по столбцам с индексом j
 s:=s+' '+IntToStr(massiv[I,j]);//Формируем строку s из столбцов j
 Memo1.Lines.Add(s);//Выводим строку в Memo1
 end;
 Memo1.Lines.Add('Максимальное='+IntToStr(MaxCh));
 Memo1.Lines.Add('Минимальное='+IntToStr(MinCh));
end;
Ответить с цитированием
  #3  
Старый 25.04.2011, 13:16
Aleksey1924 Aleksey1924 вне форума
Прохожий
 
Регистрация: 25.04.2011
Сообщения: 2
Репутация: 10
По умолчанию

Janom спасибо большое! задание идеально получилось то что надо! И главное все понятно, спасибо за такой понятный код.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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