Begin
write('Введите целое число n (n > 1): ');
var n := ReadInteger;
var a := 1;
var b := 1;
write(1, ' ', 1, ' ');
for var i := 3 to n do
begin
var c := a + b;
write(c, ' ');
a := b;
b := c;
end;
end.
Данное выражение можно упростить:
(3n+√6n)/√3n = 3n / √3n + √6n / √3n = √3n * √3n / √3n + √(6n / 3n) = √3n + √2
Код PascalABC:
Const
Sqrt2 = Sqrt(2);
Function C(n:integer):real;
Begin
result:=Sqrt(3*n)+Sqrt2;
End;
Function Sum(n:integer):real;
Begin
result:=0;
For n:= 1 to n do
result:=result+C(n);
End;
Var
n:integer;
Begin
Write('n = ');ReadLn(n);
WriteLn('x = ',Sum(n))
End.
Пример работы программы:
n = 3
x = 11.4241812374713
Примечание:
Чтобы программа работала на Turbo и Free Pascal, нужно заменить result, на имя функции, в которой он используется.
{PascalABC}
Program Alexs5655;
var
x1,x2,x,sum: real;
i,n:integer;
begin
var s:='**** -=Alphaeus=- ****'; var k:=0;
for k:=1 to 22 do begin write(s[k]); sleep(47) end;
writeln; write('Введите N = '); readln(n);
x1:=2; x2:=1; sum:=x1+x2; i:=3;
case n of
1: sum:=x1;
2: sum:=x1+x2;
else
while i<=n do
begin
x:=0.8*x2+0.15*x1;
sum:=sum+x;
x1:=x2; x2:=x;
inc(i);
end;
end;
{Вывод}
writeln('Сумма последовательности равна ',sum);
end.
(В блок-схеме, видимо, ошибка: при N=1 сумма должна вычисляться по формуле S:=x1, а не S:=x2)
Таблица - в прилагаемом файле.
В отличие от кода Морзе, код Бодо двоичный: в нем каждый символ кодируется 5 битами. Это позволяет четко разделять знаки. Код Морзе по сути троичный (точка - тире - пауза) и плохо подходит для переключающих схем, имеющих два устойчивых состояния.