Красив тот, кто красиво поступает.
Sub MyTest()
Dim a As Variant, i As Integer
a = Range("A1:B5")
For i = 1 To 5
Cells(i, 3) = S(a(i, 1), a(i, 2))
Next i
End Sub
Function S(ByVal x As Double, ByVal y As Double) As Double
Dim i As Integer
If x < y Then
S = 0
For i = 1 To 20
S = S + x ^ i * y ^ (i + 1)
Next i
ElseIf x > y Then S = (x * y) ^ 2
Else: S = x * x + y * y
End If
End Function
x - по колонке A1:A5, y - по колонке B1:B5, результат в C1:C5
НОД будем находить при помощи Эвклидового алгоритма, а НОК - по формуле:
.
program nod_nok;
var
a, b, g: integer;
l: real;
function Gcd(a, b: integer): integer;
var
t: integer;
begin
while b <> 0 do
begin
t := b;
b := a mod b;
a := t;
end;
Gcd := a;
end;
function Lcm(a, b, gcd: integer): real;
begin
Lcm := Abs( a * b ) / gcd;
end;
begin
write('a = ');
readln(a);
write('b = ');
readln(b);
g := Gcd(a, b);
writeln('НОД: ', g);
l := Lcm(a, b, g);
writeln('НОК: ', l:1:0);
end.
Program Z1;
var
s,i:integer;
a,b:real;
Begin
readln(a,b);
s:=0;
for i:=b to a do
s:=s+i;
writeln(s);
end.
11010 (2)=1*2^4+1*2^3+0*2^2+1*2^1+0*2^0