Const
N = 10; //Задаём размерность массива
Var
A: array[1..N] of integer; //Объявляем массив
i, B: integer;
Begin
Randomize;
Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i] := random(2*N+1)-N; //Заполняем массив случайными числами
Write(' ',A[i]); //и выводим его на экран
End;
WriteLn;
B := A[N]; //В переменной B будет находится искомое число
For i:= 1 to N-1 do
if (A[i] > 0)and(A[i] < B) then
B := A[i];
WriteLn('Наименьшее положитиельное чилсо: ',B);
End.
Программу я не смогу написать, но примерный алгоритм дам.
Если (M = 1, 3, 5, 7, 8, 10, или 12) И (D <= 30), то (D = D + 1)
Если (M = 1, 3, 5, 7, 8, 10) И (D = 31), то (M = M + 1, D = 1)
Если (M = 12) И (D = 31), то (G = G + 1, M = 1, D = 1)
Если (M = 4, 6, 9, 11) И (D <= 29), то (D = D + 1)
Если (M = 4, 6, 9, 11) И (D = 30), то (M = M + 1, D = 1)
Если (M = 2) И (D <= 27), то (D = D + 1)
Если (M = 2) И (G mod 4 <> 0) И (D = 28), то (M = 3, D = 1)
Если (M = 2) И (G mod 4 = 0) И (D = 28), то (D = D + 1)
Если (M = 2) И (G mod 4 = 0) И (D = 29), то (M = 3, D = 1)
Если (M = 2) И (G = 1900 или 2100) И (D = 28), то (M = 3, D = 1)
В последней строчке я учёл разницу между Григорианским и Юлианским календарями.
По Юлианскому после 28.02 1900 или 2100 года наступит 29.02.
По Григорианскому наступит 01.03.