Ниже приведена программа, записанная на двух языках программирования Паскаль+Алгоритмический язык Было проведено 9 запусков программы. при которых в качестве значений переменных s и t вводились следующие пары чисел (6, 8); (3,5); (-7,2); (7,7); (9,8); (-1,3); (-4,5); (6,9); (2,-1)
uses Crt;
const
n=20;
var
a,b:array[1..n] of integer;
i,k:integer;
begin
ClrScr;
Randomize;
Writeln('*** Исходный массив ***');
k:=0;
for i := 1 to n do begin
a[i]:=Random(51)-25;
Write(a[i]:4);
if Odd(a[i]) and (a[i]>0) then
begin Inc(k); b[k]:=a[i] end
end;
Writeln;
if k>0 then begin
Writeln('*** Сформированный массив ***');
for i:=1 to k do Write(b[i]:4);
Writeln
end
else Writeln('Нет элементов для формирования выходного массива');
ReadKey
end.
Тестовое решение:
*** Исходный массив ***
-3 -16 -9 20 18 11 -25 14 -22 -20 -11 15 -19 20 -16 19 -2 -4 -8 -17
*** Сформированный массив ***
11 15 19
А вот для сравнения современный вариант программы:
// PascalABC.NET 3.0, сборка 1088
begin
var n:=ReadInteger('Размер массива=');
var a:=ArrRandom(n,-25,25);
Writeln('*** Исходный массив ***',#13#10,a);
var b:=a.Where(x->(Odd(x) and (x>0)));
If b.Count>0 then Writeln('*** Сформированный массив ***',#13#10,b)
else Writeln('Нет элементов для формирования выходного массива')
end.
Тестовое решение:
Размер массива=20
*** Исходный массив ***
[-9,-1,8,-7,13,0,-22,20,18,-15,9,-14,16,15,0,1,9,-17,22,-13]
*** Сформированный массив ***
[13,9,15,1,9]
Исправлено: по " трудящихся" добавлена блок-схема.
function Fib(n:integer):longint;
begin
if n<3 then Fib:=1 else Fib:=Fib(n-2)+Fib(n-1)
end;
var
a,b,f,mn:longint;
i:integer;
begin
Write('Введите а и b: '); Read(a,b);
if a<b then mn:=a else mn:=b;
i:=1;
repeat
f:=fib(i); Inc(i);
until f>=mn;
if f=mn then begin
if a=mn then mn:=b else mn:=a;
if fib(i)=mn then Writeln('Соседние числа Фибоначчи')
else Writeln('Меньшее - число Фибоначчи, большее - не его сосед')
end
else Writeln('Меньшее - не число Фибоначчи, работа закончена')
end.
Тестовые решения:
Введите а и b: 610 987
Соседние числа Фибоначчи
Введите а и b: 500 250
Меньшее - не число Фибоначчи, работа закончена
Введите а и b: 610 830
Меньшее - число Фибоначчи, большее - не его сосед