Разработать приложение, позволяющее подсчитать количество чисел, не принадлежащих промежутку (X,Y] и стоящих на четных местах в одномерном массиве вещественных чисел. В главной форме должны находиться таблица с одним столбцом или строкой, поле ввода размера массива, поля ввода величин X и Y, поля вывода результатов, кнопка «Решение», кнопка «О программе», кнопка «Выход».
Дополнительно введем кнопку «Установить размер массива», при нажатии на нее устанавливается новое значение свойства ColCount компонента StringGrid.
При нажатии кнопки «Решение» программа должна считать значения элементов массива, величин X и Y, вычислить значения результата и поместить их в поле вывода. Разработчик программы должен предусмотреть проверку значения аргумента на корректность ввода вещественного числа. При возникновении ошибки выполнения используем метод Application.MessageBox, а также конструкцию языка программирования try ... except.
Вставляем в пустую форму компонент Edit1 для ввода размера массива, компонент Edit2 для ввода значения X, компонент Edit3 для ввода значения Y, четыре кнопки Button1-Button4 для запуска соответствующих процедур, таблицу StringGrid1 для ввода одномерного массива, компонент Edit4 для вывода результата.
Форма приложения с исходными данными и результатами расчета показана на рис. 2.6.
Формируем процедуры обработки нажатия кнопок и компилируем программу. Текст модуля приводим ниже:
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;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
StringGrid1: TStringGrid;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit4: 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}
var
X, Y : real; // границы диапазона
A : array [1..30] of real; // одномерный массив
N : integer; // Размер массива
Kol : integer; // Результат
// процедура формирования заголовка таблицы
procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
begin
for i:=1 to 30 do
StringGrid1.Cells[i-1,0]:= IntToStr(i);
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 : integer;
begin
try
X:=StrToFloat(Edit2.Text);
Y:=StrToFloat(Edit3.Text);
for i:=1 to N do
A[i]:=StrToFloat(StringGrid1.Cells[i-1,1]);
except
Application.MessageBox('Ошибка в данных!',
'Критическая ошибка');
Exit; // выход из процедуры
end;
Kol:=0;
i:=2;
while i<=N do // цикл подсчета количества
begin
if (A[i]<=X)or(A[i]>Y) then
Kol:=Kol+1;
i:=i+2;
end;
Edit4.Text:=IntToStr(Kol);
end;
// процедура установки размера массива
procedure TForm1.Button2Click(Sender: TObject);
begin
n:=StrToInt(Edit1.Text);
StringGrid1.ColCount:=n;
end;
end.
Рис. 2.6. Программа обработки одномерного массива
2.8. Выделение минимального и максимального элементов массива
Разработать приложение, позволяющее поменять местами максимальный и минимальный элементы одномерного массива. В главной форме должны находиться две таблицы с одним столбцом или строкой, поле ввода размера массива, кнопка «Установить размер массива», кнопка «Решение», кнопка «О программе», кнопка «Выход».
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.