Отрицательные элементы определяются с помощью проверки условия arr[i] < 0. Если для элемента это условие не выполняется, то осуществляется выбор для обработки следующего элемента массива, то есть значение i увеличивается на 1. При обнаружении отрицательного элемента он добавляется к сумме и otrCount увеличивается на 1, затем происходит переход к следующему элементу массива.
Цикл обработки элементов массива заканчивается, когда проверены все элементы массива, начиная с первого и заканчивая элементом с номером Count.
После обработки, если otrCount < 0, выводится среднеарифметическое отрицательных элементов (otrSumm/otrCount), в противном случае выводится сообщение, о том, что отрицательных элементов в массиве нет.
3) Программа на языке Turbo Pascal:
(* Podkluchaem modul crt dlia funkzii clrscr, kotoraya chistit ekran *)
uses crt;
const
MAX_LENGTH = 1000; (* maksimalnaya dlinna massiva *)
var
count: integer; (* kollichestvo elementov v massive *)
arr: array [1..MAX_LENGTH] of integer; (* massiv *)
otrSumm: integer; (* summa otrizatelnih elementov *)
otrCount: integer; (* kolichestvo otrizatelnih elementov *)
i: integer; (* schetchick dlya сiklov *)
begin
clrscr;
(* Vvodim kollichestvo elementov v massive *)
write(‘Input array length: ‘);
readln(count);
if (count < 1) or (count > MAX_LENGTH) then
begin
write(‘Nevernoe kolichestvo elementov’);
exit;
end;
(* Vvodim posledovatelno elementi massiva *)
for I := 1 to count do
begin
write(‘Input a[‘, I, ‘]: ‘);
readln(arr[i]);
end;
(* Ishem otrizatelnie elementi, ih summu (otrSumm) I kolichestvo (otrCount) *)
otrCount := 0;
otrSumm := 0;
for I := 1 to count do
begin
if arr[i] < 0 then
begin
otrSumm := otrSumm + arr[i];
inc(otrCount);
end
end;
(* Vivodim rezultat (otrSumm/otrCount) ili soobshenie o tom, chto otrizatelnih elementov net. *)
if otrCount > 0 then
begin
(* Format vivoda drobnih chisel :2:2 – 2 simvola do tochki I dva posle *)
write(‘Srednee arifmeticheskoe otrizatelnih elementov = ‘, otrSumm / otrCount :2:2);
end
else
begin
write(‘V massive net otrizatelnih elementov’);
end;
(* Zhdem nazhatiya ENTER *)
readln;
end.
4) Пояснения к программе:
На запрос Input array length вводим с клавиатуры значение Count. Затем в цикле, повторяющемся Count раз, вводим по одному элементу массива на каждый запрос.
Count | Массив | otrSumm/otrCount |
5 | -5, 7, -15, 30, 0 | (-5+(-15))2= -10.00 |
8 | -3, -2, 1, -7, -8, 100, 0, 2 | ((-3)+(-2)+(-7)+(-8))= -5.00 |
7 | -7, -9, -6, 1, -7, 4, 2 | ((-7)+(-9)+(-6)+1+(-7)+4+2)= -7.25 |
2 | 5, 0 | V massive net otricatelnux elementov |
Обнуляем otrSumm и otrCount. Далее в цикле проверяем условие arr[i] < 0. Если очередной элемент массива оказывается отрицательным, то добавляем его к сумме и увеличиваем количество отрицательных элементов.
Продолжение Табл.
10 | -3, 5, -9, -1, 2, -4, 3, -6, 8, 4 | ((-3)+5+(-9)+(-1)+2+(-4)+3+(-6)+8+4)= -4.60 |
Цикл заканчивается, когда проверены все элементы массива.
И в завершении программы найденную сумму делим на количество отрицательных элементов и выводим на экран монитора результат.
Список литературы
1. Архангельский А.Я. Программирование в Delphi 7. – М.: ООО «Бином-Пресс», 2003. – 1152 с.: ил.
2. Велихов А.В. Основы информатики и компьютерной техники. – М.: Солон-Пресс, 2003. – 544 с.: ил.
3. Дарахвелидзе П.Г., Марков Е.П. Программирование в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 748 с.: ил.
4. Информатика. Базовый курс / Симонович С.В. и др. – СПб.: Питер, 2003. – 640 с.: ил.
5. Информатика / Острейковский В.А. Учебник для вузов. – М.: Высшая школа, 2000. – 511 с.: ил.
6. Стивенс Р. Delphi. Готовые алгоритмы / Пер. с англ. Мерещука П.А. – 2-е изд., стер. – М.: ДМК Пресс; СПб.: Питер, 2004. – 384 с.: ил.
7. Уткин В.Б., Балдин К.В. Информационные системы и технологии в экономике: Учебник для вузов. – М.: ЮНИТИ-ДАНА, 2003. – 335 с.: ил.
8. Экономическая информатика / под ред. П.В. Конюховского и Д.Н. Колесова. – СПб.: Питер, 2001. – 560 с.: ил.
Источники в Интернете
1. http://www.symantec.com
2. http://www.kasperskylab.ru
3. http://www.winzip.com
4. http://www.netzip.com