1. , :
Procedure sum_number(n : integer; var
s : integer);
begin
s := 0;
repeat
s := s + n mod 10;
n := n div 10
until n = 0
end;
Procedure sum_number(p : longint; var s : longint);
begin
s := 0;
while p <> 0 do
begin
s := s + p mod 10;
p := p div 10
end
end;
2. , :
Procedure quantity_number(n : integer; var
k : integer);
begin
k := 0;
repeat
k := k + 1;
n := n div 10
until n = 0
end;
3. , , , 3467 : 7643.
Procedure backwards(n : integer; var
a : integer);
begin
a := 0;
repeat
a := a*10 + n mod 10;
n := n div 10
until n = 0
end;
4. .
Procedure first_last_number(n : integer; var n1 : integer);
var
a, i, p : integer;
begin
a := n; i := 1;
p := n mod 10; { }
while n >= 10 do
begin
i := i*10;
n := n div 10
end;
n1 := a - n*i - p + n + p*i
end;
5. , , - .
Procedure palindrom(a : integer);
var
b, c, p : integer;
begin
b := a; c := 0;
repeat
p := b mod 10;
c := c*10 + p;
b := b div 10
until b = 0;
if c = a then writeln(' ', a, ' ')
else writeln(' ', a, ' .
29. n k .
Procedure placement(n, k : integer; var
r : longint);
var
i : integer;
begin
r := 1;
for i := 1 to k do r := r*(n - i + 1)
end;
30. n k .
Procedure Combination(n, k : integer; var c : longint);
var
i : longint;
begin
c := 1;
for i := 1 to k do
c := c*(n - k + i) div i
end;
41. .
Function t(eps : real) : integer;
var
k : integer;
begin
k := -1;
repeat
eps := eps*10;
k := k + 1
until eps > 1;
t := k
end;
42. .
1-
Procedure square_root(u, eps : real; var
x : real);
begin
x := (u + 1)/2;
repeat
x := (1/2)*(x + u/x)
until abs(x*x - u) <= eps;
end;
2-
Procedure square_root(u, eps : real; var
x : real);
var
x1, x2 : real;
begin
x1 := 1;
repeat
x1 := (1/2)*(x1 + u/x1);
x2 := (1/2)*(x1 + u/x1)
until abs(x2 - x1) <= eps;
x := x2
end;
167.
a1, a2, ... :
a1, a2, ..., b.
168.
a1, a2,... :
a1, a2, ... .
169. n , n- . ( ).
)
)
)
)
)
)
)
)
x - ,
)
170. , n
, n- . ( ).
)
)
)
)
)
)
)
)
)
)
x - .
171.
r , a2, ... :
,
.
172. n. :
173. u0, u1, ... :
k
')
end;
6. .
, .. , .
Procedure radical_number(n : integer;
var
k : integer);
var
p, s : integer;
begin
repeat
s := 0;
while n <> 0
do
begin
p := n
mod 10; s := s+p; n := n
div
10
end;
n := s
until n < 10;
k := n
end;
7. :
1- ( )
Procedure nod1(a, b : integer;
var
n : integer);
begin
if a > b
then n := b
else n := a;
n := n + 1;
repeat
n := n - 1
until (a
mod n = 0)
and (b
mod
n = 0)
end;
2- ( 1- )
Procedure nod2(a, b : integer;
var
n : integer);
begin
while a <> b
do
begin
if a > b
then a := a - b
else
b := b - a
end;
n := a
end;
3- ( 2- )
Procedure nod(a, b : integer;
var
n : integer);
var
r : integer;
begin
repeat
r := a
mod b;
a := b; b := r
until b = 0;
n := a
end;
8. .
Procedure nod(a, b : integer;
var
n : integer);
begin
if b = 0
then n := a
else nod(b, a
mod
b, n)
end;
9. ().
1-
Procedure nok(a, b : integer;
var
k : integer);
var
m, n : integer;
begin
k := 0;
repeat
if a > b
then
begin
m := a; n := b
end
else
begin
m := b; n := a
end;
k := p + m
until k
mod n = 0
end;
2- ( ).
Procedure nok1(a, b : integer;
var
k : integer);
var
n : integer;
begin
n := a*b;
repeat
c := a
mod b;
a := b; b := c
until b = 0;
k := n
div a
end;
10. .
1-
Procedure everyone
_divisor(n : integer);
var
i : integer;
begin
writeln(' ', n);
for i := 1
to n
div 2
do
if n
mod i = 0
then write(i, ' ');
writeln(n)
end;
2-
Procedure everyone
_divisor(n : integer);
var
i : integer;
begin
writeln(' ', n);
for i := 1
to trunc(sqrt(n))
do
if n
mod i = 0
then write(i, ' ', n
div i, ' ')
end;
11. , :
Procedure number
_division(n : integer;
var k : integer);
var
d : integer;
begin
k := 0;
for d := 1
to n
div 2
do
if n
mod d = 0
then k := k + 1;
k := k + 1
end;
12. :
Procedure probleme
_number(n : integer);
var
i : integer;
begin
while n
mod 2 = 0
do
begin
write(2, ' ');
n := n
div 2
end;
i := 3;
while i <= n
do
if n
mod i = 0
then
begin
write(i, ' ');
n := n div i
end
else
i := i + 2
end;
13. , , .
Procedure probleme
_number(p : integer);
var
i, k : integer;
begin
if p = 2
then write(p, ' ')
else
if p
mod 2 <> 0
then
begin
i := 3; k := 0;
while i <= p
div
2
do
begin
if p
mod i = 0
then k := k + 1;
i := i + 2
end;
if k = 0
then
write(p, ' ')
end
end;
Procedure probleme
_number(p : integer);
var
i, k : integer;
begin
if p = 2
then write(p, ' ')
else if p
mod 2 <> 0
then
begin
i := 3; k := 0;
while i <= trunc(sqrt(p))
do
begin
if p
mod
i = 0
then k := k + 1;
i := i + 2
end;
if k = 0
then
write(p, ' ')
end
end;
14. , , ? , .
: 52 = 25; 252 = 625.
Procedura awtomorf(x : integer);
var
d, k : integer;
begin
d := 10;
while d <= x
do d := d*10;
k := x
mod 10;
if (k = 1)
or (k = 5)
or (k = 6)
then
if x*x
mod d = x
then
writeln(x, ' ', x*x)
end;
15. , , , :
Procedure square(n : integer);
label 1;
var
a, b, k : integer;
begin
a := 1; k := 1;
while a*a + 1 <= n
do
begin
k := k + 1; a := a + 1
end;
for a := 1
to k
do
for b := 1
to a
do if a*a + b*b = n
then
begin
writeln(n, '=', a, '*', a, '+', b, '*', b);
goto 1
end;
1:
end;
16. [n; m].
Procedure pifagor(n, m : integer);
var
a, b, c : integer;
begin
writeln(' [',n, ';', m,']');
for a := n
to m
do
for b := n
to a
do
for c := n
to m
do
if a*a + b*b = c*c
then writeln(a, ' ', b, ' ', c)
end;
17. n .
Procedure sum
_number_cube(n : integer;
var p : integer);
var
i, j, k : integer;
begin
k := 0; i := 1;
while i*i*i + 1 <= n
do
begin
k := k + 1; i := i + 1
end;
p := 0;
for i := k
downto 1
do
for j := 1
to i
do
if i*i*i + j*j*j = n
then
begin
p := p + 1;
writeln(i, '*', i, '*', i, '+', j, '*', j, '*', j, '=', n)
end;
if p = 0
then
begin
write(' ', n, ' ');
writeln(' ')
end
else
writeln(' ', p)
end;
18. n .
Procedure sum
_square
_number(n : integer;
var p : integer);
var
k, x, y, z, p : integer;
begin
k := 0; x := 1;
while x*x + 2 <= n
do
begin
k := k + 1; x := x + 1
end;
p := 0;
for x := 1
to k
do
for y := 1
to x
do
for z := 1
to y
do
if x*x + y*y + z*z = n
then
begin
p := p + 1;
writeln(x, '*', x, '+', y, '*', y, '+', z, '*', z, '=', n)
end;
if p = 0
then
begin
write(' ',n,' ');
writeln(' ')
end
else writeln(' ', p)
end;
19. , n- 1234567891011121314...
Procedure location(n : integer;
var
c : integer);
var
p, s, v, m, q : integer;
Procedure number(n : integer;
var k : integer);
begin
k := 0;
repeat
k := k + 1;
n := n
div 10
until n = 0
end;
begin
p := 1; s := 0;
repeat
number(p, v);
s := s + v; p := p + 1
until s>=n;
m := s - n; p := p - 1; q := 1;
for i := 1
to m
do q := q*10;
c := p
div q;
c := c
mod 10;
writeln(' ', c);
writeln(' ', p)
end;
20. :
repeat ...
until
...
Procedure extent(a, n : integer;
var s : integer);
var
i : integer;
begin
i := 1; s := 1;
repeat
s := s*a; i := i + 1
until i = n
end;
for ...
to
...
do ...
Procedure extent(a, n : integer;
var s : longint);
var
i : integer;
begin
s := 1;
for i := 1
to n
do s := s*a
end;
:
Function extent(a, n : longint) : longint;
var
i : integer;
begin
extent := 1;
for i := 1
to n
do extent := extent*a
end;
21. :
Procedure fac(n : integer;
var f : longint);
var
i : integer;
begin
if n = 0
then f := 1
else for i := 1
to n
do f := f*i
end;
Procedure fac(n : integer;
var f : longint);
begin
if (n = 0)
or (n = 1)
then f := 1
else
begin
fac(n - 1, f);
f := f*n
end
end;
22.
a b, :
Procedure umnogenie(a, b, s : integer);
begin
if b <> 0
then
begin
s := s + a*(b
mod 10);
umnogenie(a, b
div 10, s
div 10);
write(s
mod 10:1)
end
else
if s <> 0
then write(s)
end;
23. .
Function fib(n : integer) : integer;
var
f, f1, f2, i : integer;
begin
f1 := 1; f := 0;
for i := 1
to n do
begin
f2 := f1; f1 := f;
f := f1 + f2;
end;
fib := f
end;
Function fib(n : integer) : integer;
begin
if (n = 1)
or (n = 2)
then fib := 1
else fib := fib(n - 1) + fib(n - 2)
end;
24. [a; b] fx, .. , (h - ), (x1, x2 - ).
Procedure separation_root(a, b, h : real);
var
x1, x2, y1, y2 : real; k : integer;
Function fx(x : real) : real;
begin
fx := ???????????
end;
begin
k := 0; x1 := a; x2 := x1 + h;
y1 := fx(x1);
while x2 <= b
do
begin
y2 := fx(x2);
if y1*y2 < 0
then
begin
k := k + 1;
writeln(k, '- [', x1:6:4, '; ', x2:6:4,']')
end;
x1 := x2; x2 := x1 + h;
y1 := y2
end
end;
25. func(x) (a, b - , eps - , x - , d - ).
Procedure half(a, b, eps : real;
var
x, d : real);
var
c : real;
begin
while abs(b - a) > eps
do
begin
c := (a + b)/2;
if func(a)*func(c) < 0
then b := c
else a := c
end;
x := (a + b)/2;
d := abs(b - a)/2
end;
26. .
{ }
Procedure minfib(a, b, e : real; var x : real);
label 1;
var
aa, bb, x1, x2, y1, y2 : real;
n : integer;
{----------------------------------------------------------------------------------------}
{ }
Function func(x : real) : real;
begin
func := ?????????????????
end;
{----------------------------------------------------------------------------------------}
{ }
Function fib(n : integer) : real;
var
f, f1, f2 : real;
i : integer;
begin
f1 := 1; f := 0;
for i := 1
to n
do
begin
f2 := f1; f1 := f;
f := f1 + f2
end;
fib := f
end;
{----------------------------------------------------------------------------------------}
{ . }
{ approach - }
Procedure approach(a, b : real; n : integer;
var
x2, y2 : real);
begin
x2 := a + (b - a)*fib(n - 1)/fib(n);
y2 := func(x2)
end;
begin
n := 3;
approach(a, b, n, x2, y2);
while abs(b - a) > e
do
begin
x1 := a + b - x2; y1 := func(x1);
if (x2 > x1)
and (y2 > y1)
then
begin
n := n + 1;
approach(a, b, n, x2, y2);
b := x2; x2 := x1; y2 := y1;
goto 1
end;
if (x2 <= x1)
and (y2 > y1)
then
begin
n := n + 1;
approach(a, b, n, x2, y2);
a := x2; x2 := x1; y2 := y1;
goto 1
end;
if (x2 > x1)
and (y2 < y1)
then
begin
n := n + 1;
approach(a, b, n, x2, y2);
a := x1;
goto 1
end;
if (x2 <= x1)
and (y2 <= y1)
then
begin
n := n + 1;
approach(a, b, n, x2, y2);
b := x1;
goto 1
end;
n := n + 1;
approach(a, b, n, x2, y2);
1:
end;
x := (a + b)/2;
end;
27. .
Procedure mingold(a, b, e : real;
var
x : real);
var
x1, x2, y1, y2 : real;
{----------------------------------------------------------------------------------------}
Function func(x : real):real;
begin
func := ????????????
end;
{----------------------------------------------------------------------------------------}
Function f1(a, b : real) : real;
begin
f1 := 0.618*a + 0.382*b
end;
{----------------------------------------------------------------------------------------}
Function f2(a, b : real) : real;
begin
f2 := 0.382*a+0.618*b
end;
{----------------------------------------------------------------------------------------}
begin
x1 := f1(a, b); y1 := func(x1);
x2 := f2(a, b); y2 := func(x2);
while abs(b - a) > e
do
if y1<y2
then
begin
b := x2; x2 := x1; y2 := y1;
x1 := f1(a, b); y1 := func(x1)
end
else
begin
a := x1; x1 := x2; y1 := y2;
x2 := f2(a, b); y2 := func(x2)
end;
x := (a + b)/2
end;
28. ax + by = c:
Procedure
The_equation(a, b, c : integer); { ax + by = c}
label 1;
var
max, x, y, n : integer;
begin
if (nod(a, b) <> 1)
and
(c
mod nod(a, b) = 0)
then begin n:= nod(a,b); a := a
div n; b := b
div n; c := c
div n
end
else if (nod(a, b) <> 1)
and (c
mod nod(a, b) <> 0)
then
writeln(' ');
if
abs(a) > abs(b)
then max := abs(a)
else max := abs(b);
for x := -max
to max
do
for y := -max
to x
do
begin
if (a*x + b*y = 1)
and
(a > 0)
and (b > 0)
then begin writeln(' x = ', x*c, '+', b,'*t, y = ', y*c, '-', a, '*t,');
writeln(' t - ');
goto 1
end;
if
(a*x + b*y = 1)
and (a < 0)
and (b > 0)
then begin writeln(' x = ', x*c, '+', b,'*t, y = ', y*c, ' ', a, '*t,');
writeln(' t - ');
goto 1
end;
if
(a*x + b*y = 1)
and (a > 0)
and (b < 0)
then begin writeln(' x = ', x*c, ' ', b,'*t, y = ', y*c, '-', a, '*t,');
writeln(' t - ');
goto 1
end;
if
(a*x + b*y = 1)
and (a < 0)
and (b < 0)
then begin writeln(' x = ', x*c, ' ', b,'*t, y = ', y*c, ' ', a, '*t,');
writeln(' t - ');
goto 1
end
end;
1:
end;
u0, u1, ..., u15
.
174.
175.
a,
176.
a, 0 < a < 1, x - .
177. r an.
a128, r 4.
178.
...,
179.
180. an
an
? n, an 0,0001?
181. , un ?
.
182. ,
n ,
183. , n- :
)
)
...,
, xn+1 xn 堠
)
3
Program Task3;
uses WinCrt;
var
n : integer;
y, eps : real;
{----------------------------------------------------------------------------------------}
Function
t(eps : real) : integer;
var
k : integer;
begin
k := -1;
repeat
eps := eps*10;
k := k + 1
until
eps > 1;
t := k
end;
{----------------------------------------------------------------------------------------}
Procedure
Element_succession(eps : real;
var n : integer;
var y : real);
var
k : integer;
begin
n := 1;
y := 1;
k := -1;
while abs(y - 2) >= eps
do
begin
n := n + 1;
k := k*(-1);
y := 2 + k/n
end
end;
{----------------------------------------------------------------------------------------}
{ }
begin
writeln(' ');
write(' '); readln(eps);
Element_succession(eps, n, y);
writeln(' ', y:6:t(eps));
writeln(' ', n , '- ')
end.
4
Program Task4;
uses
WinCrt;
var
i, j, n : integer;
k, k1 : longint;
yn, ym, eps : real;
{----------------------------------------------------------------------------------------}
Function
t(eps : real) : integer;
var
k : integer;
begin
k := -1;
repeat
eps := eps*10;
k := k + 1
until
eps > 1;
t := k
end;
{----------------------------------------------------------------------------------------}
begin
writeln(' ');
write(' '); readln(eps);
i := 1;
yn := 1/3;
k := 2;
while
abs(yn - 1) >= eps do
begin
i := i + 1;
k := k*2;
yn := (k - 1)/(k + 1)
end;
writeln(' |yn - 1| < ', eps:1:t(eps), ' ');
writeln(' yn = ', yn:6:t(eps), ',');
writeln(' ', i); writeln;
write(' ');
write(' ', i, ' '); readln(n);
j := i; ym := yn;
k1 := k;
while
j <= n do
begin
j := j + 1;
k1 := k1*2;
ym := (k1 - 1)/(k1 + 1);
end;
if
abs(ym - 1) < eps
then
begin
write(' abs(1 - ',ym:6:t(eps),') <', eps:1:t(eps));
writeln(' ')
end
else
begin
write(' abs(1-', ym:6:t(eps),') <', eps:1:t(eps));
writeln(' ')
end
end.
5
Program Task5;
uses
WinCrt;
var
n : longint;
u, u1, eps : real;
{----------------------------------------------------------------------------------------}
Function
s(k : integer) : longint;
var
i, z : longint;
begin
z := 1;
for
i := 1
to k
do z := 3*z;
s := z
end;
{----------------------------------------------------------------------------------------}
Function
t(eps : real) : integer;
var
k : integer;
begin
k := -1;
repeat
eps := eps*10;
k := k + 1
until
eps > 1;
t := k
end;
{----------------------------------------------------------------------------------------}
{ }
begin
writeln(' eps');
write(' '); readln(eps);
u := 0;
n := 1;
repeat
u := u + 1/(s(n) + 1);
n := n + 1;
u1 := u + 1/(s(n) + 1);
until
abs(u1 - u) < eps;
writeln(' ', u1:6:t(eps));
writeln(' ', eps:1:t(eps))
end.