Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


While<условие>do begin




<операторы>

end;

организует повторение операторов, помещенных между begin и end, до тех пор, пока не выполнится <условие>=false. Заметим, что если <условие>=false при первом входе, то <операторы> не выполнятся ни разу, в отличие от repeat, в котором хотя бы один раз они выполнятся.

Оператор

for i:=i1 to i2 do begin

<операторы>

end;

организует повторение операторов при нарастающем изменении переменной цикла i от начального значения i1 до конечного i2 с шагом “единица”. Заметим, что если i2>i1, то <операторы> не выполнятся ни разу. Модификация оператора for i:=i2 downto i1 do begin <операторы> end организует повторения при убывающем изменении i на единицу.

Для прекращения выполнение цикла используется процедура Break, которая прерывает выполнение тела любого цикла и передает управление следующему за циклом оператору. Для прерывания текущей итерации цикла и передачи управления следующей, используется процедура Continue.

3.3. Пример написания программы

Задание: написать и отладить программу, которая выводит таблицу значений функции и ее разложения в ряд для х изменяющихся в интервале от xN до xK c шагом h. Функцию s(x) вычислять с точностью до 0,001. Вывести число итераций, необходимое для достижения заданной точности.

При составлении алгоритма вычисления удобно использовать рекуррентную последовательность (такую последовательность, каждое новое слагаемое которой зависит от одного или нескольких предыдущих). Для получения расчетной формулы рассмотрим значение слагаемого при различных значениях k:при при при при и т.д. Видно, что на каждом шаге слагаемое дополнительно умножается на . Исходя их этого, формула рекуррентной последовательности будет иметь вид: . Полученная формула позволяет избавиться от многократного вычисления факториала и возведения в степень. Если в выражении имеется нерекуррентая часть, то ее следует рассчитывать отдельно.

Панель диалога представлена на рис. 3.1.

Рис. 3.1.

Текст программы приведен на Листинге 3.1.

Листинг 3.1.

 

unit Unit3;

Interface

Uses

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

Dialogs, StdCtrls, ExtCtrls;

 

Type

TForm1 = class (TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit;

Label4: TLabel;

Memo1: TMemo;

Button1: TButton;

Label5: TLabel;

Edit4: TEdit;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

Private

{ Private declarations }

Public

{ Public declarations }

end;

Var

Form1: TForm1;

Implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

Begin

Edit1.text:='0';

Edit2.text:='2';

Edit3.text:='0,25';

Edit4.text:='0,001';

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var xn,xk,x,h,e,a,s,y:extended;

n,k:integer;

Begin

Memo1.Clear;

Memo1.Lines.Add('Результаты ст. гр. 552002 Петрова И.В.');

xn:=StrToFloat(Edit1.Text);

Memo1.Lines.Add(' xn='+FloatToStrF(xn,ffFixed,6,2));

xk:=StrToFloat(Edit2.Text);

Memo1.Lines.Add(' xk='+FloatToStrF(xk,ffFixed,6,2));

h:=StrToFloat(Edit3.Text);

Memo1.Lines.Add(' h='+FloatToStrF(h,ffFixed,8,3));

e:=StrToFloat(Edit4.Text);

Memo1.Lines.Add(' e='+FloatToStrF(e,ffFixed,8,5));

x:=xn;

Repeat

a:=1; S:=1; n:=0;





Поделиться с друзьями:


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 399 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Не будет большим злом, если студент впадет в заблуждение; если же ошибаются великие умы, мир дорого оплачивает их ошибки. © Никола Тесла
==> читать все изречения...

2541 - | 2236 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.