
Дан массив из 20 целых чисел. Записать в новый массив те числа в которых количество чётных
чисел=количеству нечётных. Найти максимум среди отрицательных и минимум среди положительных. Задача решается на Паскале. Пожалуйста помогите кто сможет решить!!!

Ответы на вопрос

n = 20;
var
pos,neg: integer;
i,k,x: integer;
ev,un: integer;
a,b: array [1..n] of integer;
begin
for i := 1 to n do
read(a[i]);
k := 0;
pos := 0;
neg := 0;
for i := 1 to n do
begin
ev := 0;
un := 0;
x := a[i];
if x <> 0 then
if x > 0 then
if (x < pos) or (pos = 0) then
pos := x
else
else
if (x > neg) or (neg = 0) then
neg := x;
x := abs(x);
while x <> 0 do
begin
if odd(x) then
un := un + 1
else
ev := ev + 1;
x := x div 10
end;
if un = ev then
begin
k := k + 1;
b[k] := a[i]
end
end;
writeln(pos,' ',neg);
for i := 1 to k do
write(b[i],' ')
end.



Конечно, я могу помочь вам написать программу на Паскале для решения данной задачи. Ниже приведен пример кода:
```pascal program ArrayOperations;
const SIZE = 20;
var inputArray: array[1..SIZE] of integer; evenCount, oddCount, i, maxNeg, minPos: integer; resultArray: array of integer;
begin // Вводим значения в массив writeln('Введите 20 целых чисел:'); for i := 1 to SIZE do begin write('Число ', i, ': '); readln(inputArray[i]); end;
// Инициализируем счетчики evenCount := 0; oddCount := 0;
// Подсчитываем количество четных и нечетных чисел for i := 1 to SIZE do begin if inputArray[i] mod 2 = 0 then evenCount := evenCount + 1 else oddCount := oddCount + 1; end;
// Проверяем и создаем новый массив if evenCount = oddCount then begin SetLength(resultArray, evenCount); evenCount := 0; // сбрасываем счетчик четных чисел for i := 1 to SIZE do begin if inputArray[i] mod 2 = 0 then begin resultArray[evenCount] := inputArray[i]; evenCount := evenCount + 1; end; end;
// Находим максимум среди отрицательных maxNeg := resultArray[0]; for i := 1 to evenCount - 1 do begin if (resultArray[i] < 0) and (resultArray[i] > maxNeg) then maxNeg := resultArray[i]; end;
// Находим минимум среди положительных minPos := resultArray[0]; for i := 1 to evenCount - 1 do begin if (resultArray[i] > 0) and (resultArray[i] < minPos) then minPos := resultArray[i]; end;
// Выводим результаты writeln('Максимум среди отрицательных: ', maxNeg); writeln('Минимум среди положительных: ', minPos); end else writeln('Количество четных и нечетных чисел не совпадает.');
readln; end. ```
Этот код сначала заполняет массив `inputArray` из 20 целых чисел, затем подсчитывает количество четных и нечетных чисел. Если эти количества совпадают, создается новый массив `resultArray` из четных чисел и находятся максимум среди отрицательных и минимум среди положительных чисел в этом новом массиве. В противном случае выводится сообщение о том, что количество четных и нечетных чисел не совпадает.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili