Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






С ИСПОЛЬЗОВАНИЕМ ПОДПРОГРАММ И МОДУЛЕЙ

О Т Ч Е Т

ПО ЛАБОРАТОРНЫМ РАБОТАМ

 

по курсу:

Quot;КОНСТРУИРОВАНИЕ ПРОГРАММ И

ЯЗЫКИ ПРОГРАММИРОВАНИЯ"

 

Выполнили: Студенты: Мазаник А. А. Шитов С. А. Гр. 107226, бригада №6  
Проверил, профессор: Гурский Н. Н.

 

 

Минск - 2007


Лабораторная работа №7

ПРОГРАММИРОВАНИЕ

С ИСПОЛЬЗОВАНИЕМ ПОДПРОГРАММ И МОДУЛЕЙ

 

Цель лабораторной работы: изучить возможности DELPHI для написания подпрограмм и создания модулей. Составить и отладить программу, использующую внешний модуль Unit с подпрограммой.

Задание: Предусмотрите возможность выбора функции, для которой будет рассчитываться таблица. Функции поместите в отдельный модуль. Вызывать выбранную функцию должна процедура, использующая в качестве входного параметра имя соответствующей функции.

 

0.1

 

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

 

Текст модуля:

unit Matfu;

 

interface

function sx(x:extended):extended;

function yx(x:extended):extended;

 

implementation

function factorial(n:integer):integer;

begin

if n=0 then factorial:=1

else factorial:=n*factorial(n-1);

end;

 

function sx;

var

s:extended;

i:integer;

begin

s:=x;

for i:=1 to 8 do

begin

s := s + exp((2*i+1)*ln(x)) / factorial(2*i+1);

end;

result := s;

end;

 

function yx;

begin

Result := (exp(x)-exp(-x))/2;

end;

end.

 

Текст вызывающей программы:

unit Unit1;

 

interface

 

uses

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

Dialogs, StdCtrls, Matfu, ExtCtrls;

 

type

TForm1 = class(TForm)

EditXn: TEdit;

EditXk: TEdit;

Memo1: TMemo;

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Label4: TLabel;

RadioGroup1: TRadioGroup;

EditH: TEdit;

Label3: TLabel;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

type

func = function(x:extended) : extended;

 

var

Form1: TForm1;

 

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

EditXn.Text := '0,1';

EditXk.Text := '3';

EditH.Text := ' ';

RadioGroup1.ItemIndex := 0;

Memo1.Clear;

Button1Click(Sender);

end;

 

procedure Tab1(f: func; xn, xk, h: extended);



var

x, y : extended;

begin

Form1.Memo1.Lines.Add(' ÐÅÇÓËÜÒÀÒÛ:');

Form1.Memo1.Lines.Add('');

 

x := xn;

 

Repeat

y := f(x);

 

Form1.Memo1.Lines.Add(' x=' + FloatToStrF(x,fffixed, 8,2)+

' y=' + FloatToStrF(y,fffixed, 8,2));

x := x + h;

Until (x > xk);

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

xn, xk, h : extended;

begin

xn := StrToFloat(EditXn.Text);

xk := StrToFloat(EditXk.Text);

h:= (xk - xn) / 10;

EditH.Text := FloatToStr(h);

Memo1.Clear();

 

case RadioGroup1.ItemIndex of

0: Tab1(sx,xn,xk,h);

1: Tab1(yx,xn,xk,h);

end;

end;

end.

 

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

 

 

Выводы: изучили возможности DELPHI для написания подпрограмм и создания модулей. Составили и отладили программу, использующую внешний модуль Unit с подпрограммой.

 

<== предыдущая лекция | следующая лекция ==>
ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ЗАПИСЕЙ И ФАЙЛОВ | ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ СРЕДСТВ

mylektsii.ru - Мои Лекции - 2015-2018 год. (0.013 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал