Опишите на Паскале алгоритм вычисления разности максимального среди элементов, имеющих чётные значения, и максимального среди элементов, имеющих нечётные значения, в заданном целочисленном массиве из 30 положительных элементов ...

Опишите на Паскале алгоритм вычисления разности максимального среди элементов, имеющих чётные значения, и максимального среди элементов, имеющих нечётные значения, в заданном целочисленном массиве из 30 положительных элементов (в предположении, что в массиве есть и чётные, и нечётные элементы).
Гость
Ответ(ы) на вопрос:
Гость
Если в нашем распоряжении имеется современная версия PascalABC.Net 3.2, то есть минимум два способа решить такую задачу. Массив мы будем заполнять случайными числами из интервала [1;98]. Первый способ - использовать имеющуюся в этой версии паскаля возможность находить максимумы и минимумы встроенными в язык средствами. Это очень быстро программируется и обычно страхyет от возможных ошибок при написании более детальных программ. // PascalABC.NET 3.2, сборка 1353 от 27.11.2016 // Внимание! Если программа не работает, обновите версию! begin   var a:=ArrRandom(30,1,98); a.Println;   Writeln('D=',a.Where(x->x.IsEven).Max-a.Where(x->x.IsOdd).Max) end. Пример 29 52 58 75 13 77 63 13 17 6 67 17 53 51 14 93 83 30 81 17 93 58 13 71 78 96 42 66 4 91 D=3 Второй способ не привязан к упомянутой выше версии языка, т.е. может быть использован в школах, исповедующих "доисторический стиль программирования" ))) Естественно, он длиннее и можно будет сравнить количество строк кода. Алгоритм основан на последовательном переборе элементов массива и одновременном получении максимума среди четных и нечетных его элементов. const   n=30; var   a:array[1..30] of integer;   i,a1max,a2max:integer; begin   Randomize;   a1max:=0; a2max:=0;   for i:=1 to n do begin     a[i]:=Random(98)+1;     Write(a[i],' ');     if a[i] mod 2 <> 0 then       begin if a1max