Другие языки программирования и технологии

помогите решить задачу на паскале. +10 за решение)

Написать программу, использующую файлы, которая, получая входную последовательность целых чисел А1,А2,...Аn, удаляет из нее все четные элементы, если среднее арифметическое всех элементов четно, и нечетные элементы в противном случае.
Доброго времени суток.

Задача не корректна, т. к. средним арифметическим будет действительное число для которого понятия четности не имеет смысла.

Чётность в теории чисел — характеристика целого числа, определяющая его способность делиться нацело на два. Если целое число делится на два, оно называется чётным (примеры: 2, 28, —8, 40), если нет — нечётным (примеры: 1,3, 75, —19). Нуль считается чётным числом.
( http://dic.academic.ru/dic.nsf/ruwiki/13240 )

Что делат в случае трех входных чисел 2, 3, 5? Среднее арифметическое будет 3.3(3)

Если вас все-таки не смущает это, то можно сделать так. Открываете файл, пока не конец файла читаете чиссла и подсчитываете их сумму и количество. Вычисляете среднее и определяетесь с тем, что должно попасть в выходной файл. Открываете выходной файл, сбрасываете входной и начинаете снова читать числа, записывая нужные в выходной файл. Примерно так

Assign(InF, 'InF.txt');
Reset(InF);
Sum := 0; {сумма элементов}
K := 0; {их количество}
while not Eof(InF); do begin
ReadLn(InF, N);
K := K + 1;
Sum := Sum + N;
end;

Mid := Sum / K; {среднее}

FlagRemove := Trunc(Mid) mod 2 = 0; {флаг удаления элемента (True для четного среднего) }

Assign(OutF, 'OutF.txt');
Rewrite(OutF);
Reset(InF);
while not Eof(InF); do begin
ReadLn(InF, N);
if (N mod 2 = 0) = FlagRemove then WriteLn(OutF, N); {запись только тех элементов, четность которых равна FlagRemove}
end;

Close(InF);
Close(OutF);

Удачи!
!!!аль Farukh !!!
!!!аль Farukh !!!
59 613
Лучший ответ
т. к выбрать лучший ответ из 1 ответа невозможно, то я вам помогу)))