• Чему будет равно значение переменной c в результате
    выполнения фрагмента программы
    a:=125; b:=25; c:=12; if a div 25=0 then
    if a mod 12=0 then c:=b div (a mod c)
    else c:=a div (b mod c);
    1) 0; 2) 1; 3) 12; 4) 125.

Ответы 2

  • Столько исправлений: окно постоянно закрывается, уже два месяца не могут исправить (((
    • Автор:

      rihanna
    • 5 лет назад
    • 0
  • Сначала переменные a,b,c получат значения.Значением условного выражения (a div 25) = 0 будет False (ложно), поскольку 125 / 5 = 5, а не 0.Следовательно, в первом условном операторе должен выполняться код в блоке, стоящий после ключевого слова else, если таковое имеется.Рассмотрим фрагмент программы, как он записан: if a div 25=0 then if a mod 12=0 then c:=b div (a mod c) else c:=a div (b mod c);Отступы придумали не зря: они помогают понимать логику программы.Мы видим ДВА if, ДВА then и только ОДНО else. Какому же if оно сопоставляется?Другими словами, какая из двух следующих конструкций правильная?if a div 25=0 then     if a mod 12=0 then c:=b div (a mod c) else c:=a div (b mod c);if a div 25=0 then     if a mod 12=0 then c:=b div (a mod c) else c:=a div (b mod c);Правила языка Паскаль легко позволяют разрешить проблему: ключевое слово else связывается с ближайшим к нему предшествующим if, не имеющим else.Следовательно, верно первое из толкований, т.е. первый if ветки с else не имеет. Поэтому значение переменной с не изменится, оставшись равным 12.Ответ: 12Замечание.А как сделать, чтобы выполнялась логика второй конструкции? Очень просто: использовать блок.if a div 25=0 then     begin if a mod 12=0 then c:=b div (a mod c) end else c:=a div (b mod c);
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years