Поиск
Версия для слабовидящих
Календарь
Ноябрь 2024
Пн Вт Ср Чт Пт Сб Вс
 123
45678910
11121314151617
18192021222324
252627282930  
Полезные ссылки

komobr

 

iuu2

 


Архив рубрики «Lazarus»

Проект “Квадратное уравнение”.

Проект  «Решение квадратного уравнения»

В этом задании вы создадите программу, в которой будет решаться квадратное уравнение стандартного вида ax2+bx+c=0. Форма проекта должна иметь следующий вид:

  1. В заголовке Формы запишите: «Решение квадратного уравнения».
  2. Разместите на Форме необходимые объекты (Panel(3 объекта), Edit(6), Label(8), Button(2)).
  3. Сохраните Проект.
  4. В разделе описания переменных varнадо перечислить все переменные, которые будут использоваться в программе, и указать тип.

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

2.1 2.2

  1. Теперь надо записать процедуру вычисления дискриминанта для кнопки «Вычислить»:

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);

  1. Подсказка для  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:

1.1

Выбор объектов на панели стандартная

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. В результате наша форма вместе с другими объектами на ней принимает следующий вид:

1.2

 

 

 

 

 

 

 

 

 

 

 

Измененная форма

5. Напишем процедуру-обработчик нажатия по кнопке сложения (Button1). Для этого в окне инспектора объектов выбираем закладку События и находим событие OnClick (это и есть нажатие по кнопке).

1.3

 

 

 

 

 

 

 

 

 

Выбор события

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 или меню Запуск→Запуск)

1.4

 

 

 

 

 

 

 

 

 

 

 

 

Скачать проект “Простейший калькулятор” (в формате  docx)

Скачать файлы проекта (RAR).