из целочисленного массива А сформировать массив В таким образом что i-й элемент массива B является средним арифметическим всех элементов массива A кроме тех, значения которых больше A[i], причем сделать это все надо через процедуры
Ozzя
20.01.2010 20:48
А в чем проблема? Среднее арифметическое подсчитать, что ли?
Archon
20.01.2010 21:18
program darkkrad00;
{ Процедура для вывода на экран целочисленных массивов } procedure ShowArrayOfInteger(Title: String; const Arr: array of Integer); var i: Integer; begin Write(Title, ': ', Arr[Low(Arr)]); for i := Low(Arr) + 1 to High(Arr) do Write(', ', Arr[i]); WriteLn('.'); end;
{ Процедура для вывода на экран массивов чисел действительного типа } procedure ShowArrayOfReal(Title: String; const Arr: array of Real); var i: Integer; begin Write(Title, ': ', Arr[Low(Arr)]:0:2); for i := Low(Arr) + 1 to High(Arr) do Write(', ', Arr[i]:0:2); WriteLn('.'); end;
{ Функция, вычисляющая значения для B[i] в соответствии с заданием } function Calculate(Num: Integer; const Arr: array of Integer): Real; var i, Sum, Count: Integer; begin Sum := 0; Count := 0; for i := Low(Arr) to High(Arr) do if Arr[i] <= Arr[Num] then begin Sum := Sum + Arr[i]; Count := Count + 1; end; Calculate := Sum / Count; end;
const n = 10; { Размер массива } var A: array[1..n] of Integer; B: array[1..n] of Real; i: Integer; begin { Заполнение массива A случайными числами от -1000 до 1000 } Randomize; for i := 1 to n do A[i] := Random(2001) - 1000;
{ Вывод массива A на экран } ShowArrayOfInteger('Массив A', A);
{ Заполнение массива A согласно условию } for i := 1 to n do B[i] := Calculate(i, A);
{ Вывод массива B на экран } ShowArrayOfReal('Массив B', B); end.
darkkrad
21.01.2010 1:52
Спасибо, прекрасный код, очень мне помог
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.