blob: c9cb966a6d308e62d324c937417e22eac79c975e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure main is
function Factorial (N : Integer) return Integer is
F : Integer := 1;
begin
for i in 2 .. N loop
F := F * i;
end loop;
return F;
end Factorial;
function Fib (N : Integer) return Integer is
F : array (0 .. N) of Integer;
begin
F (0) := 0;
F (1) := 1;
for I in F'First + 2 .. F'Last loop
F (I) := F (I - 2) + F (I - 1);
end loop;
return F (N);
end Fib;
function Fib_Rec (N : Integer) return Integer is
begin
if N = 0 then
return 0;
elsif N = 1 then
return 1;
else
return Fib_Rec (N - 1) + Fib_Rec (N - 2);
end if;
end Fib_Rec;
procedure Greet_5 is
counter : Integer := 1;
begin
Put_Line ("Greet_5");
loop
Put_Line ("Counter: " & Integer'Image (counter));
exit when counter = 5;
counter := counter + 1;
end loop;
end Greet_5;
procedure Greet_With_While is
counter : Integer := 1;
begin
Put_Line ("Greet_With_While");
while counter <= 5 loop
Put_Line ("Counter: " & Integer'Image (counter));
counter := counter + 1;
end loop;
end Greet_With_While;
procedure Swap (A, B : in out Integer) is
Tmp : Integer;
begin
Tmp := A;
A := B;
B := Tmp;
end Swap;
procedure Guessing_Game is
Answer : Integer := 47;
Guess : Integer;
begin
loop
Put ("Enter a number: ");
Get (Guess);
if Guess < Answer then
Put_Line ("Too low!");
elsif Guess > Answer then
Put_Line ("Too high!");
else
Put_Line ("Correct!");
exit;
end if;
end loop;
end Guessing_Game;
N : Integer;
X : Integer := 2;
Y : Integer := 3;
begin
Put ("Enter an integer value: ");
Get (N);
if N >= 0 then
Put_Line ("Fib(" & Integer'Image (N) & ") = " & Integer'Image (Fib (N)));
Put_Line
("Factorial(" & Integer'Image (N) & ") = " &
Integer'Image (Factorial (N)));
else
Put_Line ("Please enter a non-negative integer");
end if;
Greet_5;
Greet_With_While;
Put_Line ("Swapping " & Integer'Image (X) & " and " & Integer'Image (Y));
Swap (X, Y);
Put_Line ("X = " & Integer'Image (X) & ", Y = " & Integer'Image (Y));
Guessing_Game;
end main;
|