Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые...

0 голосов
24 просмотров

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые положительные значения от 1 до 10 000 включительно. Напишите на языке программирования Паскаль программу, которая находит сумму минимального из четных элементов массива и минимального из нечетных элементов массива, затем уменьшает все элементы массива, которые больше этой суммы, на величину этой суммы, на величину этой суммы, и выводит измененный массив в обратном порядке, по одному числу в строке. Если в массиве нет четных или нечетных элементов, считается, что соответствующий минимум равен 0. Например, из массива 7, 5, 2, 4, 8,10, 14, 15 программа должна получить массив 7, 5, 2, 4, 1, 3, 7, 8 и вывести (по одному числу в строке) числа: 8 7 3 1 4 2 5 7


Информатика (54 баллов) | 24 просмотров
Дан 1 ответ
0 голосов

если массив заполняется случайными числами , то

var

 mas: array[0..31]of word;

 a, b, c: integer;

begin

 b := 10000;

 c := 10000;

 for a := 0 to 29 do

 begin

   mas[a] := random(9999) + 1;

   if mas[a] mod 2 = 0 then begin if mas[a] < b then b := mas[a]; mas[30] := mas[30] + 1; end;

   if mas[a] mod 2 = 1 then begin if mas[a] < c then c := mas[a]; mas[31] := mas[31] + 1; end;

 end;

 if mas[30] = 0 then b := 0;

 if mas[31] = 0 then c := 0;

 for a := 0 to 29 do begin if mas[a] > c + b then mas[a] := mas[a] - c - b; writeln(mas[a]); end

end.

если массив заполняется вручную , то

label o;

var

 mas: array[0..31]of word;

 a, b, c: integer;

begin

 b := 10000;

 c := 10000;

 for a := 0 to 29 do

 begin

   o:

   read(mas[a]);

   if (mas[a] < 1)or(mas[a] > 10000) then goto o;

   if mas[a] mod 2 = 0 then begin if mas[a] < b then b := mas[a]; mas[30] := mas[30] + 1; end;

   if mas[a] mod 2 = 1 then begin if mas[a] < c then c := mas[a]; mas[31] := mas[31] + 1; end;

 end;

 if mas[30] = 0 then b := 0;

 if mas[31] = 0 then c := 0;

 for a := 0 to 29 do begin if mas[a] > c + b then mas[a] := mas[a] - c - b; writeln(mas[a]); end

end.

(258 баллов)