1. Какова структура оператора цикла с параметром?
2. Каков алгоритм выполнения цикла с параметром?
3. Какого типа должны быть параметр цикла, его начальное и конечное значения в цикле с параметром в языке Pascal?
4. Могут ли параметр цикла, его начальное и конечное значения в цикле с параметром в языке Pascal быть разных типов? Обоснуйте ответ.
5. Может ли один цикл быть вложен внутрь другого? Если да, то какова глубина этой вложенности?
6. Сколько раз исполнится тело цикла во фрагменте программы?
For i := 1 to -1 Do k:=k*i;
7. Сколько раз исполнится тело цикла во фрагменте программы?
For i := -1 to 1 Do k:=k*i;
8. Сколько раз исполнится тело цикла во фрагменте программы?
For i := 1 downto -1 Do k:=k*i;
1 команда - ошибок нет
2. - в операторе присваивания (:=) слева от знака присваивания может быть только переменная, а здесь записано выражение a+b
3. - Так как слева от := может быть только переменная, то здесь тоже ошибка. Имена переменных не могут начинаться с цифры (6а - ошибка)
4. Здесь тоже ошибка, так как слева от := записан вызов функции (sqr(c))
5. a=8 - это не команда, а сравнение значений a и 8. Присваивание в паскале записывается :=
6. Здесь, видимо, используется математическая запись 2y (что неверно) вместо 2*y
function Fib(n:integer):longint;
begin
if n<3 then Fib:=1 else Fib:=Fib(n-2)+Fib(n-1)
end;
var
a,b,f,mn:longint;
i:integer;
begin
Write('Введите а и b: '); Read(a,b);
if a<b then mn:=a else mn:=b;
i:=1;
repeat
f:=fib(i); Inc(i);
until f>=mn;
if f=mn then begin
if a=mn then mn:=b else mn:=a;
if fib(i)=mn then Writeln('Соседние числа Фибоначчи')
else Writeln('Меньшее - число Фибоначчи, большее - не его сосед')
end
else Writeln('Меньшее - не число Фибоначчи, работа закончена')
end.
Тестовые решения:
Введите а и b: 610 987
Соседние числа Фибоначчи
Введите а и b: 500 250
Меньшее - не число Фибоначчи, работа закончена
Введите а и b: 610 830
Меньшее - число Фибоначчи, большее - не его сосед