2.В программе используется одномерный целочисленный массив A с индексами от 0 до 10.
Значения элементов равны 0, 7, 1, 3, 2, 14, 5, 9, 11, 0, 7, т.е. A[0]=0, A[1]=7 и т.д. Определите
значение переменной s после выполнения следующего фрагмента программы:
n := 10;
s := 0;
for i:=2 to n do
if A[i-1] < A[i] then begin
t := A[i-1];
A[i-1] := A[i];
A[i] := t + 1;
s := s + 1
end;
6*s*s*s*s*s > 800*s*s*s
s*s*s*s*s =
s*s*s =
Заменим s на x;
Цикл прервется когда выполнится условие 6*s*s*s*s*s < 800*s*s*s
x∈(-∞, 20/√3) ∪ (0, 20/√3)
Нас интересуют только отрицательные значения т.к. переменная s =-1 и в цикле она уменьшается.
Граничное значение ≈- 11,54
Посмотрим на переменную s:
1-я итерация цикла s=-1
2-я итерация цикла s=-3
3-я итерация цикла s=-5
4-я итерация цикла s=-7
5-я итерация цикла s=-9
6-я итерация цикла s=-11
Цикл продолжится т.к. граничное значение -11,54 > 11.
7-я итерация цикла s=-13. цикл завершается.
Всего 6 итераций.
посмотрим на n:
n=3 и каждую итерацию
увеличивается на 2 => нужно вычислить 7-й член геометрической прогрессии(7 т.к. цикл выполнился 6 раз + n = 3 - 1-й член прогрессии):
xₙ = x₁ * qⁿ ⁻ ¹; q = 2(каждую итерацию увеличение на 2)
x₆ = 3 * 2⁷ ⁻ ¹ = 3 * 2⁶ = 3 * 64 = 192.
n - s = 192 - (-13) = 192 + 13 = 205.
const
ch_1: array[1..19] of string = ('один', 'два', 'три', 'четыре', 'пять', 'шесть','семь', 'восемь', 'девять', 'десять', 'одиннадцать', 'двенадцать', 'тринадцать','четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');
ch_2: array [2..9] of string = ('двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто');
ch_3: array [1..9] of string = ('сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот');
var
n : 0..1000;
begin
repeat
write ('Введите натуральное число, меньшее 1000: ');
readln (n);
until n in [1..999];
if n in [100..999] then write (ch_3[n div 100], ' ');
if (n mod 100) in [20..99] then
begin
write (ch_2[(n mod 100)div 10], ' ');
if (n mod 10) <> 0 then write (ch_1[n mod 10]);
end
else
if (n mod 100) <>0 then write (ch_1[n mod 100]);
end.