Uses crt;
var a,b:integer;
begin
writeln('введите первое число');
readln(a);
writeln('введите второе число');
readln(b);
if a>b then writeln(a-b,' первое число больше второго');
if a<b then writeln(b-a,' второе число больше первого');
if a=b then writeln('0 оба числа равны');
end.
Разберем оператор по шагам. Обозначим Т - промежуточный результат операции.
y:= round(y*(7 div 4) mod 7/3)/y - trunc(0.724);
1) T:= 7 div 4 ⇒ T:=1, тип T целочисленный.
2) T:=y*T, тип Т определяется типом y.
3) T:=T mod 7, в операции mod операнды могут быть только целочисленными, следовательно, тип у в 2) может быть только целочисленным, иначе мы получим на данном шаге ошибку. Результат операции - Т целочисленного типа.
4) T:=T/3; T - вещественного типа.
5) T;=round(T); T - целочисленного типа.
6) T:=T/y, T - вещественного типа.
7) Trunc(0.724)
вернет 0 целочисленного типа.
8) Т:=T-0 не изменит значения и типа Т: Т по-прежнему остается вещественным.
9) y:=T; для корректного присваивания y должен иметь вещественный тип, но это, как указано в 3), вызовет ошибку при выполнении 2).
Итог: оператор недопустим и будет отмечен ошибочным при компиляции.
Вычисление разности происходит следующим образом:
X - Y = X + (-Y) = X + допкод(Y).
Перевод в допкод - проинвертировать число и добавить к нему 1.
Видим, что единица добавляется позже. Тогда A = B = проинвертированный предпоследний разряд второго числа = 1. 11101111 + 1 = 11110000. С = 1, D = 0
Ответ: (2)
Ответ:
program Delitel;
var
n, i, j, c, d: Integer;
a: array of Integer;
begin
Write ('Введите N: ');
ReadLn (n);
SetLength (a, n + 1);
for i := 1 to n do begin
c := 0;
for j := 1 to i do begin
if i mod j = 0 then
Inc (c);
end;
a [i] := c;
end;
c := 1;
for i := 1 to n do begin
if a [i] > a [c] then
c := i;
end;
WriteLn ('Число ', c, ' имеет ', a [c], ' делителей.');
ReadLn;
end.