
- •Программирование на языке lazarus
- •Варианты заданий
- •Порядок выполнения работы
- •1. Сохранение проекта.
- •2. Изменение заголовка Формы.
- •3. Размещение компонентов на Форме.
- •4. Написание процедуры обработки события создания Формы (FormCreate).
- •5. Написание процедуры обработки события нажатия кнопки Button1 (Button1Click).
- •6. Текст модуля zadanie1.
- •Interface
- •Implementation
- •Initialization
- •Порядок выполнения работы
- •1. Пояснения к вычислению суммы членов ряда
- •2. Размещение компонентов на Форме.
- •3. Текст модуля zadanie2.
- •Interface
- •Implementation
- •Initialization
- •Порядок выполнения работы
- •1. Размещение компонентов на Форме.
- •2. Создание процедур обработки событий.
- •3. Текст модуля unstr.
- •Interface
- •Implementation
- •Initialization
- •Программирование на языке lazarus
4. Написание процедуры обработки события создания Формы (FormCreate).
Если программист желает, чтобы при появлении панели интерфейса на экране в соответствующих полях находились начальные значения данных, он должен учесть, что при запуске приложения возникает событие - создание Формы (OnCreate). Создайте процедуру обработки этого события, которая занесет начальные значения переменных x, y в поля Edit1, Edit2 соответственно, а в поле Memo1 поместит строку Контрольная работа – Разветвляющийся алгоритм. Для этого дважды щелкните мышью на любом свободном месте Формы. На экране появится текст модуля zadanie1, в котором Lazarus автоматически создает заготовку процедуры-обработчика события создания Формы: Procedure TForm1.FormCreate (Sender:TObject). Между операторами begin и end этой процедуры вставьте операторы, которые выполняют необходимые действия (см. текст модуля zadanie1).
5. Написание процедуры обработки события нажатия кнопки Button1 (Button1Click).
Дважды щелкните мышью на созданной кнопке, после чего курсор установится в тексте процедуры-обработчика события нажатия кнопки Button1: Procedure TForm1.Button1Click(Sender:TObject). Наберите операторы этой процедуры, используя текст модуля zadanie1.
Данные, с которыми работают компоненты Edit и Memo, имеют тип String. Поэтому в процедуре TForm1.Button1Click при присваивании содержимого полей Edit1, Edit2 переменным X,Y c помощью функции StrToFloat осуществляется преобразование данных типа String в вещественные значения с плавающей точкой типа Extended. Если необходимо работать с данными целого типа, то используется функция StrToInt.
При выводе данных в Memo1 используется метод Add свойства Lines, причем для преобразования данных из вещественного значения в строковое и управления формой представления выводимого результата используется функция FloatToStrF (приложение 2).
6. Текст модуля zadanie1.
Unit zadanie1;
{$mode objfpc}{$H+}
Interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, Buttons;
type
{ TForm1 }
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label4: TLabel;
Memo1: TMemo;
Button1: TButton;
RadioGroup1: TRadioGroup;
CheckBox1: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation
{ TForm1 }
// Процедура обработки события создания Формы
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='0.5'; // начальное значение X
Edit2.Text:='1.8'; // начальное значение Y
Memo1.Clear; // очистка Memo1
// Вывод строки в Memo1
Memo1.Lines.Add(‘Контрольная работа - Разветвляющийся алгоритм’);
end;
// Процедура обработки события нажатия кнопки Button1
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z,fx : extended; // объявление локальных переменных
begin
x:=StrToFloat(Edit1.Text); // X присваивается содержимое Edit1
y:=StrToFloat(Edit2.Text); // Y присваивается содержимое Edit2
// Выбор функции, соответствующей нажатой кнопке
case RadioGroup1.ItemIndex of
0: fx:=sin(x);
1: fx:=cos(x);
end;
// Вычисление выражения:
if x<y then z:=fx
else z:=y;
// Проверка состояния кнопки CheckBox1
// Контрольный вывод X, Y в Memo1
if CheckBox1.Checked then
Memo1.Lines.Add('X = '+Edit1.Text+' Y = '+Edit2.Text);
// Вывод результата в Memo1:
Memo1.Lines.Add(' Z = '+FloatToStrF(z,ffFixed,8,3));
end;