Разберем оператор по шагам. Обозначим Т - промежуточный результат операции.
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).
Итог: оператор недопустим и будет отмечен ошибочным при компиляции.
Var
a:array[1..1000] of extended;
i,n:longint;
begin
readln(n);
for i:=1 to n do read(a[i]);
writeln;
for i:=1 to n do writeln(a[i]:0:3);
end.
<span>
</span>
Программа на паскале:
program square;
var a,s:integer;
begin
write('a = ');
readln(a);
s:=a*a;
writeln('s = ',s);
end.
Пример:
a = 5
s = 25
Const m=24;
var k6,k5,n:integer;
begin
for k6:=0 to m div 6 do
for k5:=0 to (m-k6*6) div 5 do
if (m-k6*6-k5*5) mod 2 =0 then<span> n:=n+1;
</span>writeln(n);
end.
Результат:
9