Программирование в среде Delphi. Практикум к лабораторным работам по курсу «Информатика», страница 5

При нажатии кнопки «Решение» программа должна считать значения элементов массива из одной таблицы, найти минимальное и максимальное число, произвести обмен над элементами и поместить результирующий массив в другую таблицу. Разработчик программы должен предусмотреть проверку значения аргумента на корректность ввода исходных данных. При возникновении ошибки выполнения использовать функцию метод Application.MessageBox, а также конструкцию языка программирования try ... except. Поиск минимального или максимального элемента оформить в виде подпрограммы.

Вставляем в пустую форму компонент Edit1 для ввода размера массива, четыре кнопки Button1-Button4 для запуска соответствующих процедур, таблицу StringGrid1 для ввода одномерного массива, таблицу StringGrid2 для вывода результирующего массива.

Форма приложения с исходными данными и результатами расчета показана на рис. 2.7.

Формируем процедуры обработки нажатия кнопок и компилируем программу. Текст модуля приводим ниже:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,

Forms,  Dialogs, Grids, StdCtrls, ExtCtrls, TeeProcs, TeEngine;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Label1: TLabel;

Edit1: TEdit;

StringGrid1: TStringGrid;

Label2: TLabel;

StringGrid2: TStringGrid;

Label3: TLabel;

procedure FormCreate(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

Type

massiv = array [1..30] of real;

var

A : massiv;   // одномерный массив

N  : integer;  // Размер массива

// функция поиска номера максимального числа в массиве

Function NomerMax(B : massiv; M : integer): integer;

var i : integer; Max : real;

begin

Max:=B[1];

for i:=2 to M do

if Max<B[i] then

begin

Max:=B[i];

NomerMax:=i;

end;

end;

// функция поиска номера минимального числа в массиве

Function NomerMin(B : massiv; M : integer): integer;

var i : integer; Min : real;

begin

Min:=B[1];

for i:=2 to M do

if Min>B[i] then

begin

Min:=B[i];

NomerMin:=i;

end;

end;

// процедура формирования заголовков таблиц

procedure TForm1.FormCreate(Sender: TObject);

var i : integer;

begin

for i:=1 to 30 do

begin

StringGrid1.Cells[i-1,0]:= IntToStr(i);

StringGrid2.Cells[i-1,0]:= IntToStr(i);

end;

end;

// процедура закрытие приложения

procedure TForm1.Button4Click(Sender: TObject);

begin

Close

end;

// процедура обработки кнопки "О программе"

procedure TForm1.Button3Click(Sender: TObject);

begin

Application.MessageBox('Программу выполнила студентка'+

'группы  Д-12 Соколова Ю.А.','О программе')

end;

// процедура обработки кнопки "Решение"

procedure TForm1.Button1Click(Sender: TObject);

var i : integer;

temp: real; // временная переменная

begin

try

for i:=1 to N do

A[i]:=StrToFloat(StringGrid1.Cells[i-1,1]);

except

Application.MessageBox('Ошибка в данных!',

'Критическая ошибка');

Exit;  // выход из процедуры

end;

// обмен чисел

temp:=A[NomerMax(A,N)];

A[NomerMax(A,N)]:=A[NomerMin(A,N)];

A[NomerMin(A,N)]:=temp;

// вывод результирующего массива

for i:=1 to N do

StringGrid2.Cells[i-1,1]:=FloatToStr(A[i]);

end;

// процедура установки размера массива

procedure TForm1.Button2Click(Sender: TObject);

begin

n:=StrToInt(Edit1.Text);

StringGrid1.ColCount:=n;

StringGrid2.ColCount:=n;

end;

end.

 

Рис. 2.7. Поиск минимального или максимального           числа в массиве

2.9. Простейшие приемы работы с двумерными массивами

Разработать приложение, позволяющее вычислить сумму квадратов отрицательных элементов, стоящих в столбцах и строках с четными номерами. В главной форме должны находиться таблица размером N´M, поля ввода размера массива, поле вывода результата, кнопка «Установить размер массива», кнопка «Решение», кнопка «О программе», кнопка «Выход».