===== PascalABC.NET =====
procedure pK(n: integer; var k: int64);
begin
k := 1;
for var i := 2 to n do
k *= i
end;
function fK(n: integer): int64;
begin
Result := 1;
for var i := 2 to n do
Result *= i
end;
begin
var n := ReadInteger('n =');
var r: int64;
pK(n, r);
Println('Процедура:', r);
Println('Функция:', fK(n))
end.
<em>1. Современное решение, когда можно решить "в одну строку"</em>
<em>// PascalABC.NET 3.2, сборка 1439 от 09.05.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
Writeln('S=',ReadSeqInteger(3).Select(n->n.ToString
.Where(d->Pos(d,'13579')>0)).SelectMany(c->c)
.Select(c->c.ToDigit).Sum)
end.
<u>Пример</u>
252 337 105
S=24
<em>2. А примерно вот так учат писать в школе - долго и длинно (да и не особо понятно)</em>
var
m,i,j,s,d:integer;
begin
s:=0;
for i:=1 to 3 do begin
Read(m);
for j:=1 to 3 do begin
d:=m mod 10;
if d mod 2<>0 then s:=s+d;
m:=m div 10
end
end;
Writeln('S=',s)
end.
<em>MS DOS QBasic 1.0</em>
RANDOMIZE TIMER
CONST n = 9
DIM a(1 TO n) AS INTEGER
CLS
FOR i = 1 TO n
a(i) = INT(99 * RND)
PRINT a(i);
NEXT i
PRINT
FOR i = 1 TO n - 1
FOR j = i + 1 TO n
IF a(i) < a(j) THEN
t = a(i)
a(i) = a(j)
a(j) = t
END IF
NEXT j
NEXT i
FOR i = 1 TO n
PRINT a(i);
NEXT i
<u>Пример</u>
85 21 7 21 29 45 98 70 23
98 85 70 45 29 23 21 21 7
Если я правильно понял формулу то решение будет такое.
program zadacha_1;
var
z, c, v: real;
i, x, y, t : integer;
begin
writeln('Введите Х: ');
read(x);
writeln('Введите Y: ');
read(y);
writeln('Введите T: ');
read(t);
c:=((x * x * x) + (2 * t) + (3 * sqrt(y)));
z:=cos(c) + sin(c);
v:=7*exp(1);
for i:=2 to x do v:=v*v;
z:=z+v;
writeln('Результат равен ', z);
end.
Б) остольные не верны. Возможно А), но больше Б)