Диапазон
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) ;
,
Условия прекращения цикла суммирования:
и
S0 = 0 | A0 = 1 | |
S1 = S0 + A1 | A1 = A0*B1 | B1 = (x/2)2/12 |
S2 = S1 + A2 | A2 = A1*B2 | B2 = (x/2)2/22 |
. . . | . . . | . . . |
Si = Si-1 + Ai | Ai = Ai-1* Bi | Bi = (x/2)2/i2 |
Текст программы на языке 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;
S0 = 0 | A0 = 1 | |
S1 = S0 + A1 | A1 = A0*B1 | B1 = (x/2)2/12 |
S2 = S1 + A2 | A2 = A1*B2 | B2 = (x/2)2/22 |
. . . | . . . | . . . |
Si = Si-1 + Ai | Ai = Ai-1* Bi | Bi = (x/2)2/i2 |
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;
forMyVar2 :=Monday toFriday dowriteln(MyVar2); // Ошибка
forMyVar4 :=MyFalse toMyTrue dowriteln(MyVar4); // Ошибка
forMyVar3 := False toTrue dowriteln(MyVar3); // Выход: True False
Замечание. boolean ≠ (False, True). Вообще говоря.
Замечание. Тип «Перечисляемый – порядковый тип.
<Диапазон> : : =
<Целое число 1> . . <Целое число 2>
Естественное требование:
<Целое число 1> не более, чем <Целое число 2>
Примеры.
1 . . 5
First . . Third
//Если выше по тексту было что-то наподобие:
// constFirst = 0; Third = 2;
Тип «Диапазон»
type<Имя типа> = <Диапазон> ;
Пример.
typeMyType01 = –3 . . 72 ;
Переменные типа «Диапазон»
Примеры: