Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Диапазон




End.

Begin

Var

Type

Var

End.

Begin

Begin

Repeat

Begin

Var

Var

End.

Begin

...

Begin

Var

Var

x, y, Eps: Double;

function BesselI0(x, Eps: Double): Double;

S, A, B, R: Double;

BesselI0:= S;

end;

 

writeln(‘x=? ’); readln(x);

writeln(‘Eps=? ’); readln(Eps);

y:= BesselI0(x, Eps); writeln(‘y=’, y);

,

Условия прекращения цикла суммирования: и

 

S 0 = 0 A 0 = 1  
S 1 = S 0 + A 1 A 1 = A 0* B 1 B 1 = (x /2)2/12
S 2 = S 1 + A 2 A 2 = A 1* B 2 B 2 = (x /2)2/22
... ... ...
Si = Si -1 + Ai Ai = Ai -1* Bi Bi = (x /2)2/ i 2

 


Текст программы на языке Free Pascal, TP7:

 

program BesselI0; // Необязательная строка

x,y: Double;

 

function BesselI0(x, Eps: Double): Double;

I, N: integer;

S, A, B, R, x2: Double;

S:= 0;

x2:= sqr(x/2);

A:= x2;

N:= 0;

B:= x2 / (N + 2) / (N + 2);

 

 

inc(N);

A:= A * B;

B:= x2 / (N + 2) / (N + 2);

R:= A / (1 - B);

until (B < 1) and (R < Eps);

 

S:= 1;

A:= 1;

 


 

S 0 = 0 A 0 = 1  
S 1 = S 0 + A 1 A 1 = A 0* B 1 B 1 = (x /2)2/12
S 2 = S 1 + A 2 A 2 = A 1* B 2 B 2 = (x /2)2/22
... ... ...
Si = Si -1 + Ai Ai = Ai -1* Bi Bi = (x /2)2/ i 2

 

for I:= 1 to N do

B:= x2 / I / I;

A:= A * B;

S:= S + A;

end;

 

BesselI0:= S;

end;

 


writeln(‘Введите x’); readln(x);

writeln(‘Введите Eps’); readln(Eps);

if (Eps <= 0) or (Eps >= 1) then exit;

 

writeln(‘f=’, BesselI(x, Eps));

readln;

 


Тип «Перечисляемый»

 

<Перечисляемый тип> :: =

(<Список имён значений>)

Первому из элементов <Списка имён значений> придаётся внутренний (недоступный пользователю) номер 0, второму – номер 1, и т.д.


Переменные типа «Перечисляемый»

 

Примеры

v1: (LeftDyrecton, RightDyrecton, BackDyrecton);

MyType2=(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

MyType4=(MyTrue, MyFalse);

MyVar2: MyType2;

MyVar3: boolean;

MyVar4: MyType4;

for MyVar2:=Monday to Friday do writeln(MyVar2); // Ошибка

for MyVar4:=MyFalse to MyTrue do writeln(MyVar4); // Ошибка

for MyVar3:= False to True do writeln(MyVar3); // Выход: True False

Замечание. boolean ≠ (False, True). Вообще говоря.

Замечание. Тип «Перечисляемый – порядковый тип.


<Диапазон> :: =

<Целое число 1> .. <Целое число 2>

 

Естественное требование:

<Целое число 1> не более, чем <Целое число 2>

 

Примеры.

1 .. 5

First .. Third

// Если выше по тексту было что-то наподобие:

// const First = 0; Third = 2;

Тип «Диапазон»

type <Имя типа> = <Диапазон>;

 

Пример.

type MyType01 = –3 .. 72;

 


Переменные типа «Диапазон»

 

Примеры:




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


Дата добавления: 2014-01-06; Просмотров: 271; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.