Задание 5 Запишите значение переменной s, полученное в результате работы следующей программы Var s,k:...

Тематика Информатика
Уровень 5 - 9 классы
программирование Pascal переменные циклы алгоритмы условные операторы ввод данных вычисления присваивание модуль арифметики деление умножение вывод данных
0

Задание 5

Запишите значение переменной s, полученное в результате работы следующей программы

Var s,k: integer;

Begin

s :=5;

for k := 1 to 20 do

if (s*k) mod (s-k)= 0 then s := s + 11;

writeln(s);

End.

Задание 6

Ниже записана программа. Получив на вход число x , эта программа печатает два числа, a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 0.

var x, a, b : integer;

begin

readln(x);

a := 0; b := 1;

while x > 0 do begin

    a := a + 1;

    b := b * (x mod 10);

    x := x div 10;

end;

writeln(a); write(b);

end.

avatar
задан 3 месяца назад

3 Ответа

0

Задание 5: 33

Задание 6: 111

avatar
ответил 3 месяца назад
0

Задание 5

Рассмотрим программу:

Var
  s, k: integer;

Begin
  s := 5;
  for k := 1 to 20 do
    if (s * k) mod (s - k) = 0 then s := s + 11;
  writeln(s);
End.

Давайте разберем программу по шагам:

  1. Инициализация:

    • s := 5;
  2. Цикл for k := 1 to 20:

    • В каждой итерации проверяется условие (s * k) mod (s - k) = 0.
  3. Условие (s * k) mod (s - k) = 0:

    • Это условие проверяет, делится ли произведение s и k на разность s - k без остатка. Если условие истинно, s увеличивается на 11.

Давайте рассмотрим, при каких значениях k условие будет истинным.

  • Для k = 1: (5 * 1) mod (5 - 1) = 5 mod 4 = 1, не делится без остатка.
  • Для k = 2: (5 * 2) mod (5 - 2) = 10 mod 3 = 1, не делится без остатка.
  • Для k = 3: (5 * 3) mod (5 - 3) = 15 mod 2 = 1, не делится без остатка.
  • Для k = 4: (5 * 4) mod (5 - 4) = 20 mod 1 = 0, делится без остатка. Поэтому s := s + 11 = 5 + 11 = 16.
  • Для k = 5: (16 * 5) mod (16 - 5) = 80 mod 11 = 3, не делится без остатка.
  • Для k = 6: (16 * 6) mod (16 - 6) = 96 mod 10 = 6, не делится без остатка.
  • Для k = 7: (16 * 7) mod (16 - 7) = 112 mod 9 = 4, не делится без остатка.
  • Для k = 8: (16 * 8) mod (16 - 8) = 128 mod 8 = 0, делится без остатка. Поэтому s := s + 11 = 16 + 11 = 27.
  • Для k = 9: (27 * 9) mod (27 - 9) = 243 mod 18 = 9, не делится без остатка.
  • Для k = 10: (27 * 10) mod (27 - 10) = 270 mod 17 = 15, не делится без остатка.
  • Для k = 11: (27 * 11) mod (27 - 11) = 297 mod 16 = 9, не делится без остатка.
  • Для k = 12: (27 * 12) mod (27 - 12) = 324 mod 15 = 9, не делится без остатка.
  • Для k = 13: (27 * 13) mod (27 - 13) = 351 mod 14 = 1, не делится без остатка.
  • Для k = 14: (27 * 14) mod (27 - 14) = 378 mod 13 = 1, не делится без остатка.
  • Для k = 15: (27 * 15) mod (27 - 15) = 405 mod 12 = 9, не делится без остатка.
  • Для k = 16: (27 * 16) mod (27 - 11) = 432 mod 11 = 3, не делится без остатка.
  • Для k = 17: (27 * 17) mod (27 - 10) = 459 mod 10 = 9, не делится без остатка.
  • Для k = 18: (27 * 18) mod (27 - 9) = 486 mod 9 = 0, делится без остатка. Поэтому s := s + 11 = 27 + 11 = 38.
  • Для k = 19: (38 * 19) mod (38 - 19) = 722 mod 19 = 0, делится без остатка. Поэтому s := s + 11 = 38 + 11 = 49.
  • Для k = 20: (49 * 20) mod (49 - 20) = 980 mod 29 = 24, не делится без остатка.

Таким образом, в конце выполнения цикла значение переменной s будет равно 49.

Ответ: s = 49.

Задание 6

Рассмотрим программу:

var
  x, a, b: integer;

begin
  readln(x);
  a := 0;
  b := 1;
  while x > 0 do
  begin
    a := a + 1;
    b := b * (x mod 10);
    x := x div 10;
  end;
  writeln(a); 
  write(b);
end.

Эта программа получает на вход число x, и выполняет следующие действия:

  1. Инициализирует a и b значениями 0 и 1 соответственно.
  2. Пока x больше 0:
    • Увеличивает a на 1.
    • Умножает b на последнюю цифру x (x mod 10).
    • Делит x на 10 (отбрасывая последнюю цифру).

Программа завершает работу, печатая значения a и b.

Чтобы программа вывела a = 3 и b = 0, необходимо следующее:

  • a = 3 означает, что в числе x должно быть 3 цифры.
  • b = 0 означает, что произведение всех цифр числа x должно быть равно 0. Это возможно только если в числе x есть хотя бы одна цифра 0.

Таким образом, наибольшее трехзначное число, содержащее цифру 0, это 900.

Ответ: x = 900.

avatar
ответил 3 месяца назад
0

Задание 5:

Данная программа работает следующим образом:

  1. Инициализируется переменная s = 5.
  2. В цикле от 1 до 20 проверяется условие: если (s * k) mod (s - k) равно 0, то к значению переменной s прибавляется 11.
  3. После выполнения цикла выводится значение переменной s.

Проанализируем программу:

  • При k = 1: (5 * 1) mod (5 - 1) = 0, s = 5 + 11 = 16
  • При k = 2: (16 * 2) mod (16 - 2) не равно 0, s остается равным 16
  • При k = 3: (16 * 3) mod (16 - 3) равно 0, s = 16 + 11 = 27
  • При k = 4: (27 * 4) mod (27 - 4) не равно 0, s остается равным 27
  • .
  • При k = 11: (27 * 11) mod (27 - 11) равно 0, s = 27 + 11 = 38
  • При k = 12: (38 * 12) mod (38 - 12) равно 0, s = 38 + 11 = 49

Таким образом, значение переменной s, полученное в результате работы программы, равно 49.

Задание 6:

Данная программа работает следующим образом:

  1. Считывается число x.
  2. Переменные a и b инициализируются значениями 0 и 1 соответственно.
  3. В цикле while происходит разбиение числа x на цифры: a увеличивается на 1, b умножается на последнюю цифру числа x, x делится на 10.
  4. После выполнения цикла выводится значение переменной a и b.

Чтобы программа вывела сначала 3, а потом 0, необходимо, чтобы после разбиения числа x на цифры переменная a была равна 3, а переменная b была равна 0. Таким образом, наибольшее число x, при вводе которого алгоритм печатает сначала 3, а потом 0, будет таким, что x состоит из 3 цифр, где последняя цифра равна 0, а две предыдущие цифры равны нулю. Таким образом, наибольшее такое число x будет равно 100.

avatar
ответил 3 месяца назад

Ваш ответ

Вопросы по теме