Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matan!
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Интересные моменты 2

Запись от Matan! размещена 31.03.2018 в 19:29

Продолжение. Начало в Интересные моменты

Задача: Создать приложение для нахождения среднего арифметического значения всех положительных элементов каждого из массивов А(8), В(9). Вычисление повторяющейся части организовать с помощью подпрограммы-функции. Для вывода результатов использовать многострочный редактор.

P.S. Да, задача самая что ни есть элементарная и избитая. Но вот ответ krapotkinа мне настолько понравился, что я решил его сохранить здесь.
Ответ (с)krapotkin:
Кликните здесь для просмотра всего текста

создать форму
на нее положить TButton и TMemo
объявить тип
Delphi
1
2
type
  TIntArray=array of integer;
объявить переменные - массивы
Delphi
1
2
var 
  a,b:array of integer;
создать процедуру заполнения массива произвольными значениями, например
Delphi
1
2
3
4
5
6
procedure RandomFillArray(var Arr:TIntArray);
  var i:integer;
begin
  for i:=0 to high(Arr) do
    arr[i] := random(200) - 100;
end;
создать функцию вычисления среднего среди положительных элементов массива, например
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function GetAvg(var Arr:TIntArray):double;
  var i,n:integer;
begin
  result := 0;
  n:=0;  
  for i:=0 to High(Arr) do
  begin
    if Arr[i]>0 then
    begin
      n:=n+1;
      result := result + arr[i];
    end;
  end;
  if n<>0 then
    result := result / n;
end;
создать обработчик нажатия кнопки
там
1. задать размеры массивов A и B
Delphi
1
2
SetLength(A,8);
SetLength(B,9);
2. заполнить оба массива произвольными значениями c помощью процедуры RandomFillArray
Delphi
1
2
RandomFillArray(A);
RandomFillArray(B);
3. вывести в memo результаты работы функции GetAvg()
Delphi
1
2
memo1.lines.add(formatFloat('0.000', getAvg(A));
memo1.lines.add(formatFloat('0.000', getAvg(B));
Размещено в Без категории
Просмотров 297 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru