Есть ответ 👍

Чему будет равно значение переменной 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.

234
335
Посмотреть ответы 2

Ответы на вопрос:


Сначала переменные 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);

Program n1; var a,b: real; begin write('введите а и b: '); readln(a,b); if a< b then writeln('наибольшее b; квадрат: ',b*b); if a> b then writeln('наибольшее a; квадрат: ',a*a); end.

Популярно: Информатика