1)
Program Pr1;
uses crt;
var mas:array[100..999] of integer;
i:integer;
Begin
clrscr;
for i:=100 to 999 do mas[i]:=i; {1 sposob}
for i:=100 to 999 do if mas[i] mod 9 =0 then writeln(mas[i]);
i:=100; {2 sposob}
while i<=999 do begin
if mas[i] mod 9=0 then writeln(mas[i]);
i:=i+1;
end;
i:=100; {3 sposob}
repeat
if mas[i] mod 9=0 then writeln(mas[i]);
i:=i+1
until i=999
end.
2)
Program Pr1;
uses crt;
var mas:array[100..999] of integer;
i,v:integer;
Begin
clrscr;
v:=0;
for i:=100 to 999 do mas[i]:=i; {1 sposob}
for i:=100 to 999 do if mas[i] mod 17 =0 then v:=v+mas[i];
writeln(v);
i:=100; {2 sposob}
v:=0;
while i<=999 do begin
if mas[i] mod 17=0 then v:=v+mas[i];;
i:=i+1;
end;
writeln(v);
i:=100; {3 sposob}
v:=0;
repeat
if mas[i] mod 17=0 then v:=v+mas[i];
i:=i+1
until i=999;
writeln(v);
end.
Переменным вещественного типа можно присваивать значения целого типа, но наоборот нельзя. Почему? Наверное потому, что множество целых чисел является подмножеством множества действительных. Теперь смотрим.
a) y:=y+2 - так можно, вещественное плюс целое = вещественное
b) n:=n/2 - нельзя, потому что результат n/2 это вещественное число
c) n:=y*10 - нельзя, то же самое
d) n:=n-3 - можно, результат целое число
e) n:=Sqrt(9) - нельзя, функция Sqrt возвращает вещественное число
f) y:=Sqr(n) - можно, функция Sqr возвращает значение целого или вещественного типа, в зависимости от значения выражения аргумента, в данном случае результат целое число
g) y:=y mod 2 - нельзя, операция mod применима только к целым операндам