В языке С/С++ любое ненулевое значение считается истинным.
Цикл с заголовком while (a(x)) выполнятся до тех пор. пока a(x) ненулевое, следовательно, при выходе из цикла a(x)=0.
Первоначально х=1 и если a(1) окажется равным нулю, то тело цикла не выполнится ни разу. В этом случае у будет равен начальному значению, т.е. у=1.
Если же а(1) не равняется нулю, то будет выполняться тело цикла. При у<0 переменная х получает значение 2, у получает значение 10. Мы должны полагать что а(2) ложно и тогда произойдет выход из цикла. Если же это не так, то тело цикла будет выполняться повторно. Ветка при y>=0 дает присваивание х=1, а мы рассматриваем вариант, когда такое значение не приводит к выходу из цикла, следовательно у=20 никогда не будет последним присваиванием значения у. Тогда возможен только вариант ответа 1 (у=1 или 10)
<em><u>Ответ:</u></em> Вариант 1
Работает при условии, что А - не отрицательное число:
Var A:integer;
Begin
Write('A = ');
Read(A);
While A >0 do
Begin
A:=A-3;
End;
if A=0 then Write('А кратно трём')
else Write('А не кратно трём')
End.
Var
A:integer;
Begin
Write('A = ');
Read(A);
While A >3 do
Begin
A:=A-3;
End;
WriteLn('Остаток от деления А на 3: ',A);
End.
4294967296 бииииииииииииииииит
Дано:
i = 16 бит
K = 60 символов
-----------------------
I - ?
Решение:
I = K×i = 60×16 = 960 бит = 120 байт
Ответ: 120 бай
Паскаль АВС:
<span>
Числа a и b имеют разную четность.
if (a mod 2) <> (b mod 2) then
Одно из чисел a и b положительно.
</span><span><span>if (a >0) or (b >0) <span>then
</span></span>Одно из чисел a и b является квадратом другого.
if (a=b*b) or (b=a*a) then
Точка A(x,y) принадлежит первому или второму квадранту.
</span><span><span>if (y >0) <span>then
</span></span>Число a не больше среднего арифметического чисел b, c, d.</span>
<span>if (a <= (b+c+d)/3) <span>then</span></span>