var
i: Integer;
Af: array [1..10] of Integer;
begin
Af [1] := 1; // первый член ряда равен 1
Af [2] := 1; // второй член ряда равен 1
for i := 3 to 10 do begin // цикл, начинающийся с 3-го члена до заданного (десятого)
Af [i] := Af [i - 2] + Af [i - 1]; // каждый член ряда равен сумме двух предыдущих
end;
for i := 1 to 10 do begin // вывод на экран первых 10 членов ряда
Write (Af [i], ', ');
end;
end.
// 2-й вариант (без использования массива)
var
a, b, c, i: Integer;
begin
a := 1;
Write (a, ', ');
b := 1;
Write (b, ', ');
for i := 3 to 10 do begin
c := a + b;
Write (c, ', ');
a := b;
b := c;
end;
end.
var
A: array [1..11] of Real;
i, j, aj, ai: Integer;
amax, atmp, P: Real;
begin
Randomize;
WriteLn ('Исходный массив:');
for i := Low (A) to High (A) - 1 do begin
A [i] := Random * 100;
Write (A [i]:5:2, ' ');
end;
for i := Low (A) to High (A) - 1 do begin
A [i] := Round (A [i]);
end;
for i := Low (A) to High (A) - 1 do begin
amax := A [i];
aj := i;
for j := i to High (A) do begin
if A [j] > amax then begin
amax := A [j];
aj := j;
end;
end;
if i <> aj then begin
atmp := A [i];
A [i] := A [aj];
A [aj] := atmp;
end;
end;
WriteLn;
WriteLn ('Полученный массив:');
for i := Low (A) to High (A) - 1 do begin
Write (A [i]:5:2, ' ');
end;
WriteLn;
Write ('Введите число Р: ');
Read (P);
ai := High (A);
for i := Low (A) to High (A) - 1 do begin
if P > A [i] then begin
ai := i;
Break;
end;
end;
for i := High (A) downto ai + 1 do
A [i] := A [i - 1];
A [ai] := P;
WriteLn ('Массив после вставки:');
for i := Low (A) to High (A) do begin
Write (A [i]:5:2, ' ');
end;
end.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
type
Pinnacle=record
St:Stack<integer>;
No:integer;
constructor (n:integer);
begin
St:=new Stack<integer>;
No:=n
end;
end;
var
MoveNo:integer;
procedure MoveDisk(s1,s2:Pinnacle);
begin
if s1.St.Count>0 then begin
MoveNo+=1;
s2.St.Push(s1.St.Pop);
Writeln(MoveNo:3,': №',s2.St.Peek,' ',s1.No,' -> ',s2.No)
end
end;
procedure MovePinnacle(n:integer; s1,s2,s3:Pinnacle);
begin
if n=0 then exit;
MovePinnacle(n-1,s1,s3,s2);
MoveDisk(s1,s2);
MovePinnacle(n-1,s3,s2,s1);
end;
begin
var n:=5;
var p1:=new Pinnacle(1);
var p2:=new Pinnacle(2);
var p3:=new Pinnacle(3);
Range(n,1,-1).ForEach(i->p2.St.Push(i));
MoveNo:=0;
MovePinnacle(n,p2,p3,p1);
end.
Результат работы
1: №1 2 -> 3
2: №2 2 -> 1
3: №1 3 -> 1
4: №3 2 -> 3
5: №1 1 -> 2
6: №2 1 -> 3
7: №1 2 -> 3
8: №4 2 -> 1
9: №1 3 -> 1
10: №2 3 -> 2
11: №1 1 -> 2
12: №3 3 -> 1
13: №1 2 -> 3
14: №2 2 -> 1
15: №1 3 -> 1
16: №5 2 -> 3
17: №1 1 -> 2
18: №2 1 -> 3
19: №1 2 -> 3
20: №3 1 -> 2
21: №1 3 -> 1
22: №2 3 -> 2
23: №1 1 -> 2
24: №4 1 -> 3
25: №1 2 -> 3
26: №2 2 -> 1
27: №1 3 -> 1
28: №3 2 -> 3
29: №1 1 -> 2
30: №2 1 -> 3
31: №1 2 -> 3
Иллюстрация первых пяти шагов приведена во вложении.