1) 5
2) 0
3) 1
Объяснение:
Цикл for ... downto ... do выполняется если начальное значение переменной счётчика больше или равно конечному значению переменной счётчика
Цикл for ... to ... do выполняется если начальное значение переменной счётчика меньше или равно конечному значению переменной счётчика
1)
s = 0
для i от 10 до 6 выполнить s = s + 1
начальное значение (10) переменной счётчика (i) больше или равно конечному значению (6) переменной счётчика (i)
10 >= 6 (да - цикл выполняется)
количество повторений цикла равно начальное значение (10) переменной счётчика (i) минус конечному значению (6) переменной счётчика (i) плюс единица
количество повторений цикла = 10 - 6 + 1 = 4 + 1 = 5
Т.к. переменная s каждое повторение цикла увеличивается на одно и тоже число (1), то за весь цикл переменная s изменится на 1 * 5
Т.к. в начале s = 0, то
s = 0 + 1 * 5 = 5
2)
s = 0
для i от 8 до 3 выполнить s = s + 1
начальное значение (8) переменной счётчика (i) меньше или равно конечному значению (3) переменной счётчика (i)
8 <= 3 (нет - цикл не выполняется)
Т.к. цикл не выполняется, то переменная s остаётся равна тому, чему была равна в начале s = 0
3)
s = 1
для i от 2 до 10 выполнить s = s + 1
начальное значение (2) переменной счётчика (i) больше или равно конечному значению (10) переменной счётчика (i)
2 >= 10 (нет - цикл не выполняется)
Т.к. цикл не выполняется, то переменная s остаётся равна тому, чему была равна в начале s = 1
1) 5
2) 0
3) 1
Объяснение:1) s:=0; for i:=10 downto 6 do s:=s+1;Переменная s изначально равна 0. Потом идёт цикл от 10 вниз до 6, который каждый раз будет прибавлять к s единицу (s[новая] = s[старая] + 1). Цикл от 10 до 6 включительно, то есть он буде выполнятся 10-6+1=5 раз (+1 т.к. включительно). Получается мы 5 раз прибавляем к нулю 1. ответ: 0 + 1*5 = 5.
2)s:=0; for i:=8 to 3 do s:=s+1;Переменная s изначально равна 0. Потом идёт цикл от 8 до 6, который выполнятся не будет, так как 8>6, и увеличиваясь на 1 каждый раз, он никогда не дойдет до 6. Для работы необходимо писать downto вместо to, то есть вниз до. Однако такового тут нет, поэтому цикл не выполняется и переменная s остаётся 0. ответ: 0.
3)s:=1; for i:=2 downto 10 dо s:=s+1;Переменная s изначально равна 1. Потом идёт цикл от 2 вниз до 10, который выполнятся не будет, так как 2<10, и уменьшаясь на 1 каждый раз, он никогда не дойдет до 10. Для работы необходимо писать to вместо downto, то есть до, а не вниз до. Однако такового тут нет, поэтому цикл не выполняется и переменная s остаётся 1. ответ: 1.
Поделитесь своими знаниями, ответьте на вопрос:
Напишите программу, которая вводит натуральное число и находит все числа на отрезке [0, n], сумма цифр которых не меняется при умножении числа на 2, 3, 4, 5, 6, 7, 8 и 9 (например, число 9 используйте функцию для вычисления суммы цифр числа. паскаль
n, i, aon_i, k: integer;
f: boolean;
function AmountOfNumbers(n: integer): integer;
var
s: integer;
begin
s := 0;
while n > 0 do
begin
s := s + n mod 10;
n := n div 10;
end;
AmountOfNumbers := s;
end;
begin
readln(n);
for i := 0 to n do
begin
f := true;
aon_i := AmountOfNumbers(i);
for k := 2 to 9 do
f := f and (aon_i = AmountOfNumbers(k * i));
if f then writeln(i);
end;
end.