Практическая работа в среде Lazarus Простые вычисления

Автор публикации:

Дата публикации:

Краткое описание: Практическая работа в среде Lazarus "Простые вычисления". В работе рассматриваются две задачи: 1. Вычисление длины отрезка АВ. 2.Получение трехзначного числа и вывод его цифр.В помощь учителю приводится программный код.Работа составлена на основе учебника: К. Ю. Полякова, Е. А. Ер...


Практическая работа «Простые вычисления»

Задание 1. Ввести с клавиатуры координаты двух точек (A и B) на плоскости (вещественные числа). Вычислить длину отрезка AB. Пример:

Введите координаты точки A:

5.5 3.5

Введите координаты точки B:

1.5 2

Длина отрезка AB = 4.272


Общий вид проекта

[pic]


















Примечание

    1. Необходимо преобразовать строковый тип (те, данные которые вводим в поля edit) в действительное число.

    2. При выводе данных в поле edit необходимо выполнить обратное преобразование действительного числа в строковый тип.

    3. Количество знаков после запятой можно изменять, используя следующую запись: FormatFloat('0.0',x);где х – вычисляемая величина

    4. Прописать событие для кнопки Очистить (при нажатии на кнопку Очистить поля edit очищаются от данных и можно произвести расчет повторно). Очистить – Clear (очищаем поля edit!!!).

    5. При закрытии формы должно выходить сообщение: Вы собираетесь закрыть программу! Присутствуют кнопки: Yes, NO,Cancel.

[pic]





Контрольные вопросы

        1. Какие объекты используются в проекте?

        2. Преобразование строкового типа в число и обратное преобразование.

        3. Каким образом изменить количество знаков после запятой (запишите строку из программы)

        4. Как прописать событие для кнопки Очистить?

        5. Какой тип переменных используется в программе? Почему?



Задание 2. Получить случайное трехзначное число и вывести через запятую его отдельные цифры. Пример:

Получено число 872.

Его цифры 8, 7, 2.

Общий вид проекта [pic]












План работы над проектом:


  1. Создать новый проект и сохранить его в отдельной папке.

  2. Разместить на форме необходимые компоненты.

  3. Прописать код для события (кнопка Расчет):

    1. вызов датчика случайных чисел random(x)

    2. например, random(900) генерирует случайное число от 0 до 899. Если прибавить к нему 100, то получится диапазон от 100 до 999 включительно, т. е. данный интервал будет охватывать все трехзначные числа.

    3. Необходимо преобразовать действительное число (трехзначное случайное число) в строковый тип.

    4. Получить цифры числа:

      • Чтобы извлечь из числа цифру сотен надо его разделить нацело на 100.

      • Для получения цифры десятка можно сначала разделить нацело на 10, а затем найти остаток от деления на 10.

      • Единицы извлекаются путем нахождения остатка от деления числа на 10.

    5. При выводе данных (цифр числа) в поля edit необходимо выполнить преобразование действительного числа в строковый тип.

  4. На форме присутствует кнопка Закрыть - объект BitBtn1(вкладка Additional). Данный объект (кнопку) можно запрограммировать на выход из программы, используя свойство Kind.


Контрольные вопросы

  1. Какие объекты используются в проекте?

  2. В проекте используется целый (integer) тип переменных. Почему нельзя использовать вещественный (real) тип?

  3. Почему необходимо преобразовать действительное число (трехзначное случайное число) в строковый тип? И при выводе данных (цифр числа) в поля edit также необходимо выполнить преобразование действительного числа в строковый тип?

  4. В чем отличие объекта BitBtn от объекта Button?

  5. Сравните решение задач в программной среде ПаскальАВС с решением задач в программной среде Lazarus. Сделайте вывод: в какой среде удобнее, нагляднее, легче… работать над созданием программы.


Источники: Информатика. Углубленный уровень: учебник для 10 (11)11 класса: в 2 ч./К. Ю. Поляков, Е. А. Еремин. – М. БИНОМ. Лаборатория знаний, 2013.

[link] Программный код задачи № 1.

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm1 }

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Label1: TLabel;

Label2: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

Form1: TForm1;

x1,x2,y1,y2, ab: real;

implementation


{$R *.lfm}


{ TForm1 }


procedure TForm1.Button1Click(Sender: TObject);

begin

x1:= StrToFloat(Edit1.text);

x2:= StrToFloat(Edit2.text);

y1:= StrToFloat(Edit3.text);

y2:=StrToFloat(Edit4.text);

ab:=( sqrt((sqr(x1-x2)) + (sqr(y1-y2))));

edit5.caption := FloatToStrF(ab,ffFixed,4,3);

end;


procedure TForm1.Button2Click(Sender: TObject);

begin

edit1.Clear;

edit2.Clear;

edit3.Clear;

edit4.Clear;

edit5.Clear;

end;

end.

Программный код задачи № 2.

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,

Buttons;

type

{ TForm1 }

TForm1 = class(TForm)

BitBtn1: TBitBtn;

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Label1: TLabel;

Label2: TLabel;


procedure Button1Click(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;


var

Form1: TForm1;

a: integer;

b,c,d:integer;

implementation


{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);

begin

a:=random(900)+100;

edit1.caption:= IntToStr(a);

b:=a div 100;

c:=(a div 10)mod 10;

d:= a mod 10;

edit2.caption:=IntToStr (d);

edit3.caption:=IntToStr (c);

edit4.caption:=IntToStr (b);


end;

end.