Форма приложения с исходными данными и результатами расчета показана на рис. 2.9.
Рис. 2.9. Простейшие приемы работы с двумерными массивами
Формируем процедуры обработки нажатия кнопок и компилируем программу. Текст модуля приводим ниже:
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; // Размер массива
D : real; // Число D
// процедура формирования заголовков таблиц
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;
Kol : integer; // количество
begin
try
D:=StrToFloat(Edit2.Text);
for i:=1 to N do
for j:=1 to N do
A[i,j]:=StrToFloat(StringGrid1.Cells[j,i]);
except
Application.MessageBox('Ошибка в данных!',
'Критическая ошибка');
Exit; // выход из процедуры
end;
Kol:=0;
for i:=1 to N do
for j:=1 to N do
if (A[i,j]<=D)and(i<j)then
Kol:=Kol+1;
Edit3.Text:=IntToStr(Kol);
end;
// процедура установки размера массива
procedure TForm1.Button2Click(Sender: TObject);
begin
n:=StrToInt(Edit1.Text);
StringGrid1.RowCount:=n+1;
StringGrid1.ColCount:=n+1;
end;
end.
2.11. Простейшие приемы работы со строками
Разработать приложение, позволяющее подсчитывать количество пар символов «!?» и удалять из массива строк все символы «/». В главной форме должны находиться исходная таблица строк, таблица измененных строк, кнопка «Установить размер массива», кнопка «Решение», кнопка «О программе», кнопка «Выход».
При нажатии кнопки «Решение» программа должна считать значения одномерного массива строк, выполнить некоторые действия над массивом строк, поместить результирующий массив в таблицу-результат. Действия над строкой оформить в виде функции или процедуры.
Вставляем в пустую форму компонент Edit1 для ввода размера массива строк, четыре кнопки Button1-Button4 для запуска соответствующих процедур, таблицу StringGrid1 для ввода массива строк, таблицу StringGrid2 для вывода результирующей таблицы, компонент Edit2 для вывода количества пар символов.
Форма приложения с исходными данными и результатами расчета показана на рис. 2.10.
Формируем процедуры обработки нажатия кнопок и компилируем программу. Текст модуля приводим ниже:
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;
Label3: TLabel;
StringGrid2: TStringGrid;
Label4: TLabel;
Label5: TLabel;
Edit2: 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
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.