В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Rigina1984
Rigina1984
14.05.2020 16:26 •  Информатика

Определите, при каком наименьшем введённом значении переменной s программа выведет число 23. s = int(input()) n = 50
while s > 0:
s = s // 2
n = n - 3
print(n)
Ввожу вот этот код:
for s in range(1,1000):
n = 50
while s > 0:
s = s // 2
n = n - 3
if n == 23:
print(i)
break
но выдаёт 0, что не так?

Показать ответ
Ответ:
sawa1989
sawa1989
31.03.2023 07:08
Решение: я попробую объяснить словами...
var a,b,c:integer;
begin
a:=1257;
c:=0;
  while (a>0) do              т.к a>0 (1257>0) начинаем решить действия
    begin
      if (a mod 2 <> 0) then   Здесь: 1257:2=628 (остаток 1)
        b:= a mod 10;            Здесь: 1257:10=125 (остаток 7)
        c:=c+b;                     Получается, мы складываем остатки и
        a:=a div 10;               получаем 8. Для ответа нам пригодится
    end;                              число, составленное из остатка а и 8,
    writeln(c);                       то есть 18.
end.

ответ: 18.
0,0(0 оценок)
Ответ:
SpaniGar
SpaniGar
14.08.2020 14:15
Прежде всего, код надо отформатировать и исправить имеющиеся в нем ошибки. А затем приступать к его рассмотрению.

var
  a, b: integer;

procedure proc(var a: integer; b: integer);
begin
  b := 4; a := 6; b := a + b
end;

begin
  a := 2; b := 3;
  proc(a, b);
  Writeln(a, ' ', b)
end.

Описаны две целочисленные переменные a и b. Им присваиваются значения 2 и 3 соответственно. Затем следует вызов процедуры proc, в которую эти переменные передаются в качестве параметров.

На входе в proc получаем a=2, b=3. Далее b получает значение 4, а получает значение 6 и затем b получает значение суммы a+b, т.е. 4+6=10. На этом работа процедуры завершается. Поскольку параметр процедуры a имеет описатель var, то в основную программу вернется значение, которое a имело внутри процедуры (т.е. 6). Значение b=10 действует только внутри процедуры и в основную программу не вернется.

Следовательно, в основной программа значение а поменяется на 6, а значение b сохранится прежним (3).
В результате на выходе будет строка:
6 3
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота