Архив рубрики «Lazarus»
Проект “Квадратное уравнение”.
Проект «Решение квадратного уравнения»
В этом задании вы создадите программу, в которой будет решаться квадратное уравнение стандартного вида ax2+bx+c=0. Форма проекта должна иметь следующий вид:
- В заголовке Формы запишите: «Решение квадратного уравнения».
- Разместите на Форме необходимые объекты (Panel(3 объекта), Edit(6), Label(8), Button(2)).
- Сохраните Проект.
- В разделе описания переменных varнадо перечислить все переменные, которые будут использоваться в программе, и указать тип.
В нашем случае все переменные одного типа – вещественные числа. Теперь эти переменные будут «видны» всей программе. Описание переменных можно производить и в каждой процедуре, где они используются.
- Теперь надо записать процедуру вычисления дискриминанта для кнопки «Вычислить»:
a:=StrToFloat (Edit1.Text);
b:= StrToFloat (Edit2.Text);
c:=StrToFloat (Edit3.Text);
D:=b*b-4*a*c;
При решении необходимо использовать ветвление: если d>0, то выводится сообщение ‘Квадратное уравнение не имеет корней’ (использовать MessageDlg), а в Edit выводится значение дискриминанта.
Если d>0 ‘Квадратное уравнение имеет два корня’.
Вычисляются корни по формулам:
x1:= (-b + Sqrt(d))/(2*a);
x2:= (-b – Sqrt(d))/(2*a);
В Edit выводится дискриминант и значения корней.
Если d=0, ‘Квадратное уравнение имеет один корень’, в Edit дискриминант и значение по формуле:
x1:= (-b)/(2*a);
- Подсказка для d<0:
if d<0 then begin
MessageDlg(‘Квадратное уравнение не имеет корней‘,mtWarning, [mbOk, mbCancel],0);
Edit4.Text:=FloatToStr(D);
end;
Программный код.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button3: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label1: TLabel;
Label10: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
a, b, c, D, X1, X2:Real;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
a:=StrToFloat (Edit1.Text);
b:= StrToFloat (Edit2.Text);
c:=StrToFloat (Edit3.Text);
D:=b*b-4*a*c;
ifd<0 thenbegin
//если d<0 выводится сообщение, а иначе вычисляются корни
MessageDlg(‘Квадратное уравнение не имеет корней’,mtWarning, [mbOk, mbCancel],0);
Edit4.Text:=FloatToStr(D);
end;
if d>0 then begin MessageDlg(‘Квадратноеуравнениеимеетдвакорня‘,mtWarning, [mbOk, mbCancel],0);
X1:= (-b + Sqrt(d))/(2*a);
x2:= (-b – Sqrt(d))/(2*a);
Edit5.Text:=FloatToStr(x1);
Edit6.Text:=FloatToStr(x2);
Edit4.Text:=FloatToStr(D);
end;
if d=0 then begin
MessageDlg(‘Квадратноеуравнениеимеетодинкорень‘,mtWarning, [mbOk, mbCancel],0);
X1:= (-b)/(2*a); Edit5.Text:=FloatToStr(x1); Edit4.Text:=FloatToStr(D);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
end;
end.
Lazarus. Первый проект
Проект “Простейший калькулятор”.
Создадим приложение «Калькулятор», которое может складывать, вычитать, умножать и делить два числа. В этой работе мы познакомимся с тем, как выбирать компоненты (объекты) с панели инструментов, а также научимся преобразовывать типы данных.
Порядок действий:
1. Запустим среду Lazarus и сохраним файлы нашего проекта в отдельной папке. Сам проект можно сохранить под именем ‘calc’.
2. Разместим на форме три метки класса TLabel, три текстовых поля класса TEdit и четыре кнопки класса TButton. Все эти объекты можно брать с закладки Standart:
Выбор объектов на панели стандартная
3. С помощью окна Инспектор объектов выделяем объекты и меняем их свойства согласно нижеприведенной таблице:
Объект | Свойство | Значение свойства |
форма Form1 | Надпись caption | Калькулятор |
метка Label1 | Надпись caption | A |
метка Label2 | Надпись caption | B |
метка Label3 | Надпись caption | Результат |
Кнопка Button1 | Надпись caption | + |
Кнопка Button2 | Надпись caption | – |
Кнопка Button3 | Надпись caption | * |
Кнопка Button4 | Надпись caption | / |
Текстовое поле Edit1 | text | 0 |
Текстовое поле Edit2 | text | 1 |
Текстовое поле Edit3 | text | Пустая строка |
4. В результате наша форма вместе с другими объектами на ней принимает следующий вид:
Измененная форма
5. Напишем процедуру-обработчик нажатия по кнопке сложения (Button1). Для этого в окне инспектора объектов выбираем закладку События и находим событие OnClick (это и есть нажатие по кнопке).
Выбор события
6. Наберем следующий текст внутри процедуры-обработчика:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,result:real; // Объявление локальных переменных вещественного типа
begin
a:=StrToFloat(edit1.Text);{Переводим текст, находящийся в поле ввода edit1 в вещественное число. Если необходимо работать с целыми числами, то используется функция StrToInt}
b:=StrToFloat(edit2.Text);
result:=a+b;
edit3.Text:=FloatToStr(result); {В текстовое поде ввода edit3 выводим полученную сумму, не забыв при этом сделать обратное преобразование вещественного числа result в строку. Если необходимо работать с целыми числами, то используется функция IntToStr}
end;
7. Аналогично напишем процедуры-обработчики нажатий по кнопкам вычитания, умножения и деления, не забыв при этом изменить знак операции на соответствующий. Например, для деления процедура выглядит так:
procedure TForm1.Button4Click(Sender: TObject);
var a,b,result:real;
begin
a:=StrToFloat(edit1.Text);
b:=StrToFloat(edit2.Text);
result:=a/b;
edit3.Text:=FloatToStr(result);
end;
8. Сохраним все файлы проекта (Файл→Сохранить всё)
9. Выполним программу (F9 или меню Запуск→Запуск)
Скачать проект “Простейший калькулятор” (в формате docx)