parent
2b2a4f3816
commit
5d6ffe8d89
@ -0,0 +1,30 @@ |
||||
VAR i, x, r; |
||||
|
||||
PROCEDURE fib; |
||||
VAR xx, r1, r2; |
||||
BEGIN |
||||
xx := x; |
||||
IF xx = 0 THEN r := 1; |
||||
IF xx = 1 THEN r := 1; |
||||
IF xx >= 2 THEN BEGIN |
||||
x := xx - 2; |
||||
CALL fib; |
||||
r1 := r; |
||||
|
||||
x := xx - 1; |
||||
CALL fib; |
||||
r2 := r; |
||||
r := r1 + r2; |
||||
END |
||||
END; |
||||
|
||||
BEGIN |
||||
i := 0; |
||||
WHILE i < 30 DO BEGIN |
||||
x := i; |
||||
CALL fib; |
||||
write i; |
||||
write r; |
||||
i := i + 1; |
||||
END |
||||
END. |
@ -0,0 +1,61 @@ |
||||
CONST |
||||
m = 7, |
||||
n = 85; |
||||
|
||||
VAR |
||||
x, y, z, q, r; |
||||
|
||||
PROCEDURE multiply; |
||||
VAR a, b; |
||||
BEGIN |
||||
a := x; |
||||
b := y; |
||||
z := 0; |
||||
WHILE b > 0 DO BEGIN |
||||
IF ODD b THEN z := z + a; |
||||
a := 2 * a; |
||||
b := b / 2; |
||||
END |
||||
END; |
||||
|
||||
PROCEDURE divide; |
||||
VAR w; |
||||
BEGIN |
||||
r := x; |
||||
q := 0; |
||||
w := y; |
||||
WHILE w <= r DO w := 2 * w; |
||||
WHILE w > y DO BEGIN |
||||
q := 2 * q; |
||||
w := w / 2; |
||||
IF w <= r THEN BEGIN |
||||
r := r - w; |
||||
q := q + 1 |
||||
END |
||||
END |
||||
END; |
||||
|
||||
PROCEDURE gcd; |
||||
VAR f, g; |
||||
BEGIN |
||||
f := x; |
||||
g := y; |
||||
WHILE f # g DO BEGIN |
||||
IF f < g THEN g := g - f; |
||||
IF g < f THEN f := f - g; |
||||
END; |
||||
z := f |
||||
END; |
||||
|
||||
BEGIN |
||||
x := m; |
||||
y := n; |
||||
CALL multiply; |
||||
x := 25; |
||||
y := 3; |
||||
CALL divide; |
||||
x := 84; |
||||
y := 36; |
||||
CALL gcd; |
||||
write z; |
||||
END. |
Loading…
Reference in new issue