На этой странице мы решаем задачи For31 - For35 из задачника Абрамяна, в которых рассматривается вычисление членов последовательностей действительного и целого типов, используя начальные данные.
For31. Дано целое число N (> 0). Последовательность вещественных чисел AK определяется следующим образом:
A0 = 2, AK = 2 + 1/AK−1, K = 1, 2, … .
Вывести элементы A1, A2, …, AN.
var
k, N: integer;
A: real;
begin
write('N = ');
readln(N);
writeln;
writeln('Первые ', N, ' элементов последовательности:');
writeln;
A := 2; { <== Начальное значение последовательности }
for k := 1 to N do
begin
A := 2 + 1 / A; { <== k-е значение последовательности }
{ Выводим A[k], выделяя 5 знаков после запятой: }
writeln(' A[', k, '] = ', A)
end;
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308 For32. Дано целое число N (> 0). Последовательность вещественных чисел AK определяется следующим образом:
A0 = 1, AK = (AK−1 + 1)/K, K = 1, 2, … .
Вывести элементы A1, A2, …, AN.
var
k, N: integer;
A: real;
begin
write('N = ');
readln(N);
A := 1; { <== начальное значение }
writeln;
writeln('Выводим элементы A[1], ..., A[', N,
'] последовательности:');
writeln;
for k := 1 to N do
begin
A := (A + 1) / K; { <== k-е значение последовательности }
{ Выводим A[k], выделяя 5 знаков после запятой: }
writeln(' A[', K, '] = ', A:0:5)
end;
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308 For33. Дано целое число N (> 1). Последовательность чисел Фибоначчи FK (целого типа) определяется следующим образом:
F1 = 1, F2 = 1, FK = FK−2 + FK−1, K = 3, 4, … .
Вывести элементы F1, F2, …, FN.
var
k, N, F1, F2, Fk: integer;
begin
write('N = ');
readln(N);
{ 1-е и 2-е значения последовательности Фибоначчи: }
F1 := 1; F2 := 1;
writeln;
writeln('Выводим элементы F[1], ..., F[', N,
'] последовательности Фибоначчи:');
writeln;
{ Выводим 1-е и 2-е значения: }
writeln(' F[1] = ', F1);
writeln(' F[2] = ', F2);
{ Вычисляем и выводим все остальные значения: }
for k := 3 to N do
begin
{ k-е значение последовательности Фибоначчи: }
Fk := F1 + F2;
{ Выводим A[k], выделяя 5 знаков после запятой: }
writeln(' F[', K, '] = ', Fk);
F1 := F2; { <== F1 заменяем на F2 }
F2 := Fk { <== F2 заменяем на Fk }
end;
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 For34. Дано целое число N (> 1). Последовательность вещественных чисел AK определяется следующим образом:
A1 = 1, A2 = 2, AK = (AK−2 + 2·AK−1)/3, K = 3, 4, … .
Вывести элементы A1, A2, …, AN.
var
k, N: word;
A1, A2, Ak: real;
begin
write('N = ');
readln(N);
A1 := 1; { <== 1-й элемент последовательности }
A2 := 2; { <== 2-й элемент последовательности }
writeln;
writeln('Выводим последовательность ', N,
' вещественных чисел:');
writeln;
write(' ', A1:0:5, ' ', A2:0:5); { <-- Выводим A1 и A2 }
for k := 3 to N do
begin
{ Находим k-й элемент и выводим его: }
Ak := (A1 + 2 * A2) / 3;
write(' ', Ak:0:5);
A1 := A2; { <== A1 меняем на A2 }
A2 := Ak { <== A2 меняем на Ak }
end;
readln
end.
**type** word;
: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308 For35. Дано целое число N (> 2). Последовательность целых чисел AK определяется следующим образом:
A1 = 1, A2 = 2, A3 = 3, AK = AK−1 + AK−2 − 2·AK−3, K = 4, 5, … .
Вывести элементы A1, A2, …, AN.
var
k, N: word;
A1, A2, A3, Ak: Integer;
begin
writeln('Введите целое число N (> 2):');
write(' N = ');
readln(N);
A1 := 1; { <== 1-й элемент последовательности }
A2 := 2; { <== 2-й элемент }
A3 := 3; { <== 3-й элемент }
writeln;
writeln('Выводим последовательность ', N, ' целых чисел:');
writeln;
write(' ', A1, ' ', A2, ' ', A3); { <== Выводим A1, A2, A3 }
{ Для всех остальных элементов имеем: }
for k := 4 to N do
begin
{ Находим и выводим k-й элемент: }
Ak := A3 + A2 - 2 * A1;
write(' ', Ak);
A1 := A2; { <== A1 меняем на A2 }
A2 := A3; { <== A2 меняем на A3 }
A3 := Ak { <== A3 меняем на Ak }
end;
readln
end.
**type** word;
: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647