<span>116 = 1110100
</span>402 = 110010010
<span>215 = 11010111
</span><span>11111 = 10101101100111
</span><span>101111 = 11000101011110111
</span><span>100001 = 11000011010100001</span>
<u>// PascalABC.NET 3.2, сборка 1473 от 08.06.2017</u>
<u>// Внимание! Если программа не работает, обновите версию!</u>
begin
var a:=ReadLines('Pas.txt').ToArray;
var b:=a.Select(s->s.ToWords.JoinIntoString(' ')).ToArray;
b[0]:='НАЧАЛО '+b[0]; b[b.Length-1]+=' КОНЕЦ';
var f:=OpenAppend('Pas1.txt'); // после проверки заменить на Pas.txt
foreach var s in a do Writeln(f,s); // удалить, если используется Pas.txt
foreach var s in b do Writeln(f,s);
f.Close
end.
//PascalABC.NET 3.1 сборка 1200
function F1(n: integer): integer;
begin
if n = 1 then
F1 := 2
else if n = 2 then
F1 := 1
else
F1 := F1(n - 1) + F1(n - 2);
end;
function F2(n: integer): integer;
begin
if n = 1 then
F2 := 1
else if n = 2 then
F2 := 2
else
F2 := F2(n - 1) - F2(n - 2) + 2 * n;
end;
begin
var n:= ReadInteger('n=');
Writeln(F1(n)); // вариант1
Writeln(F2(n)); // вариант2
end.
дополнительный алгоритм - инкапсулированная процедура или функция не зависимая от основного алгоритма, исполняет свою часть задачи в зависимости от переданых параметров
Const
n = 8;
var
i, j, umax, lmax: integer;
a: array[1..n, 1..n] of integer;
begin
Randomize;
writeln('Исходный массив');
for i := 1 to n do
begin
for j := 1 to n do
begin
a[i, j] := Random(40) - 20;
write(a[i, j]:4)
end;
writeln;
end;
umax := -100;
for i := 1 to n do
for j := i to n do
if umax < a[i, j] then umax := a[i, j];
lmax := -100;
for i := 1 to n do
for j := 1 to i do
if lmax < a[i, j] then lmax := a[i, j];
writeln('Разность максимумов равна ', umax - lmax)
end.
Тестовое решение:
Исходный массив
-5 18 -13 1 -16 5 0 -13
4 -18 -17 -14 2 10 -2 -15
-15 -8 -6 -16 -10 -12 -18 -17
-18 6 11 -5 4 -6 -1 1
10 14 3 -7 2 11 10 -1
6 -2 -20 1 4 9 13 -4
-9 -7 4 -6 -12 3 1 -14
15 -16 -1 -3 13 -15 3 -10
Разность максимумов равна 3