Использование простейших элементов Delphi для решения прикладных задач

Автор работы: Пользователь скрыл имя, 12 Января 2015 в 18:48, лабораторная работа

Описание работы

Цель работы:
Целью работы является освоение:
работы в среде визуального программирования Delphi;
программного решения трансцендентного уравнения численными методами;
разработки интерфейса приложения с использованием базовых компонентов библиотеки VCL.

Файлы: 1 файл

Лабораторная работа №1.doc

— 98.50 Кб (Скачать файл)

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(государственный технический университет)

филиал «Восход»

 

 

Кафедра Б 22- МиПОИС

 

 

«УТВЕРЖДАЮ»

Преподаватель Кулепетова Н.Н.

             «        »                2008г.

 

 

 

 

ОТЧЕТ

по лабораторной работе № 1

на тему: «Использование простейших элементов Delphi для решения прикладных задач»

по дисциплине: Архитектура ЭВМ. Системное программное обеспечение

 

 

 

Студентки гр. ДМ 3-31                        /Саниной Е.О./

«        »                         2008г.

 

 

 

 

 

Байконур 2008 г.

Цель работы:

Целью работы является освоение:

    1. работы в среде визуального программирования Delphi;
    2. программного решения трансцендентного уравнения численными методами;
    3. разработки интерфейса приложения с использованием базовых компонентов библиотеки VCL.

 

Постановка задачи:

Разработать приложение для решения трансцендентного уравнения следующими методами:

    • итераций;
    • Ньютона;
    • половинного деления.

Решение необходимо определить на заданном отрезке с точностью . В программе предусмотреть подсчет и вывод на печать числа итераций, за которое удается найти значения корней с заданной точностью.

 

Уравнение:

Отрезок, содержащий корень: [1; 2].

Приближенное значение корня: 1,1183.

 

 

Для решения поставленной задачи были использованы следующие элементы и их свойства.

Для задания имени окна следует в инспекторе объектов в свойстве Caption ввести желаемую строку.

Чтобы создать надпись, следует разместить на форме компонент Label и в инспекторе объектов в свойстве Caption ввести требуемый текст. Чтобы сделать надпись первоначально невидимой, достаточно изменить свойство Visible с задаваемого по умолчанию ‘True’ на ‘False’. Чтобы разрешить возможность размещения надписи на несколько строк, следует изменить свойство WordWrap на ‘True’. Чтобы придать надписи надлежащий формат, следует выбрать подходящий шрифт и размер в свойстве Font, цвет в свойстве Color.

Для текстового поля Edit использовались так же свойства Font, Visible. Однако, содержимое текстового поля отображается в свойcтве Text.

Для компонента Button (кнопки) использовалось так же свойство Caption, где задавалось имя кнопки.

Для создания элементов управления был использован компонент RadioButton. Надпись к этому элементу можно задать в свойстве Caption. По умолчанию флажок сброшен (в свойстве Checked  содержится значение False).

 

Листинг программы

 

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls;

 

type

  TForm1 = class(TForm)

    Label1: TLabel;

    RadioGroup1: TRadioGroup;

    RadioButton1: TRadioButton;

    RadioButton2: TRadioButton;

    RadioButton3: TRadioButton;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Edit5: TEdit;

    Edit6: TEdit;

    Button1: TButton;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

const

a=1; b=2; e=0.0001;

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

//нахождение функции в точке

function f (x:real):real;

begin

  f:=0.1*sqr(x)-x*ln(x);

end;

//нахождение первой производной

function f1 (x:real):real;

begin

f1:=0.2*x-ln(x)-1;

end;

//нахождение второй производной

function f2 (x:real):real;

begin

f2:=0.2-1/x;

end;

//нахождение fi

function fi (x:real):real;

begin

fi:=0.1*sqr(x)-x*ln(x)+x;

end;

 

//метод итераций

procedure iter (var x1:real; var n:integer);

var x2,x3,c:real;

begin

   x1:=a+0.5;

   x2:=a;

   c:=a;

   while abs(x1-c)>=e do

   begin

      x1:=c;

      x2:=fi(x1);

      c:=x2;

      inc(n);

   end;

   x1:=x2;

end;

//метод Ньютона

procedure Nuton (var x3:real; var n:integer);

var x1,x2,c:real;

begin

   x1:=a+0.2;

   x2:=a;

   c:=a;

   if F(x1)*f2(x1)>0 then

   begin

      while abs(x1-c)>=e do

      begin

         x1:=c;

         x2:=x1-f(x1)/f1(x1);

         c:=x2;

         inc(n);

      end;

      x3:=x2;

   end

   else

   x3:=888;

end;

//метод половинного деления

procedure delen (var x3:real; var n:integer);

var x1,x2,x4,y,z:real;

begin

   x1:=a;

  x2:=2;

   y:=f(x1);

   repeat

      x4:=(x1+x2)/2;

      z:=f(x4);

      if z=0 then x3:=x4 else

         if y*z<0 then x2:=x4

         else

         begin

            x1:=x4;

            y:=z;

         end;

      inc(n);

   until (x2-x1)<e;

   x3:=x4;

end;

procedure TForm1.Button1Click(Sender: TObject);

var x1,x2,x3:real;

    n1,n2,n3:integer;

begin

   x1:=0; x2:=0; x3:=0;

   n1:=0; n2:=0; n3:=0;

   nuton(x1,n1);

   iter(x2,n2);

   delen(x3,n3);

   if RadioButton1.Checked then

   begin

      Edit1.Visible:=true;

      Edit1.Text:=floattostr(x2);

      Edit2.Visible:=true;

      Edit2.Text:=floattostr(n2);

   end;

   if RadioButton2.Checked then

   begin

      Edit3.Visible:=true;

      Edit3.Text:=floattostr(x1);

      Edit4.Visible:=true;

      Edit4.Text:=floattostr(n1);

   end;

   if RadioButton3.Checked then

   begin

      Edit5.Visible:=true;

      Edit5.Text:=floattostr(x3);

      Edit6.Visible:=true;

      Edit6.Text:=floattostr(n3);

   end;

end;

 

 

procedure TForm1.Button2Click(Sender: TObject);

begin

close

end;

 

end.

 

Результаты выполнения программы

 

 

Анализ результатов:  с помощью вышеописанных методов корень трансцендентного уравнения был найден с точностью до e=0.0001. С помощью метода Ньютона корень был найден за наименьшее число итераций.

 

Вывод: в ходе выполнения лабораторной работы были получены навыки использования простейших компонентов среды разработки программ Delphi, таких как: Button, Edit, Label, RadioButton .


Информация о работе Использование простейших элементов Delphi для решения прикладных задач