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

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

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

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

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

unit Unit1;

interface

uses

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

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

Series;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Label1: TLabel;

Edit1: TEdit;

StringGrid1: TStringGrid;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Edit2: TEdit;

Label5: TLabel;

Edit3: TEdit;

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,1..30] of real;

var

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

N  : integer;  // Количество строк массива

M  : integer;  // Количество столбцов массива

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

procedure TForm1.FormCreate(Sender: TObject);

var i, j : integer;

begin

for i:=1 to 8 do

for j:=1 to 8 do

begin

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

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

end;

end;

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

procedure TForm1.Button4Click(Sender: TObject);

begin

Close

end;

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

procedure TForm1.Button3Click(Sender: TObject);

begin

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

'группы Т-11 Юркова Н.А.','О программе')

end;

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

procedure TForm1.Button1Click(Sender: TObject);

var i,j : integer;

summa : real;

begin

try

for i:=1 to N do

for j:=1 to M do

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

except

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

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

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

end;

summa:=0;

i:=2;

while i<=N do

begin

j:=2;

while j<=M do

begin

if A[i,j]<0 then

summa:=summa+sqr(A[i,j]);

j:=j+2;

end;

i:=i+2;

end;

Edit3.Text:=FloatToStr(summa);

end;

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

procedure TForm1.Button2Click(Sender: TObject);

begin

n:=StrToInt(Edit1.Text);

StringGrid1.RowCount:=n+1;

m:=StrToInt(Edit2.Text);

StringGrid1.ColCount:=m+1;

end;

end.

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

2.10. Простейшие приемы работы с квадратными           матрицами

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

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

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