Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2012, 16:31   #1
Stas_
Новичок
Джуниор
 
Регистрация: 27.06.2012
Сообщений: 1
По умолчанию Среднее арифметическое в Delphi

Подскажыте как в Delphi найти среднее арифметическое целых чисел, которые вписаны в несколько полей edit и вывести результат в поле memo с помощью кнопки button. Результат не всегда будет целым, его будет нужно округлять до десятых.
Stas_ вне форума Ответить с цитированием
Старый 27.06.2012, 16:54   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

В точности так же как и в математике, только с использованием переменных (контролов). Где Ваши наработки7 Что не получается?
FaTaL вне форума Ответить с цитированием
Старый 27.06.2012, 16:57   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
Memo1.Lines.Append( FloatToStr( 
   Round( (IntToStrDef(Edit1.Text,0) + IntToStrDef(Edit2.Text,0) 
               + IntToStrDef(Edit3.Text,0) {повторить сколько Edit'ов}) 
    / 3 {на сколько делить = сколько Edit'в}) * 10)/10 ));
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.06.2012, 21:26   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
IntToStrDef
StrToIntDEF
И Round я бы заменил на:
Код:
 Summ:=0;
for i :=0 to Components.Count-1 do
 if Components[i] is TEdit then Summ:=Summ+StrToIntDef(TEdit(Components[i]).Text);
Memo.Lines.Append(format('%10.2f',[Summ]));
ИМХО надежнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.06.2012, 09:05   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Stilet, +1

всё так. согласен с замечаниями и поправками!
спасибо.

НО!
1-е. Вы забыли среднее найти. (TC нужна не сумма, а среднее арифметическое)
тогда уже так:
Код:
 Cnt := 0; 
 Summ :=0 ;
for i :=0 to Components.Count-1 do
 if Components[i] is TEdit then begin
      Summ:=Summ+StrToIntDef(TEdit(Components[i]).Text,0);
      Inc(Cnt);
 end; 
 if Cnt<>0 then  
   Memo.Lines.Append(format('%10.1f',[Summ/Cnt]));
2-е. использовать перебор ВСЕХ компонентов Edit на форме нужно понимая, все тебе нужны или нет. Если задача стоит найти среднее ВСЕХ Edit'ов на форме, Ваш код, конечно, намного проще, надёжнее и эффективнее.



p.s. Виталий, я функцию неправильно написал, но и Вам StrToIntDef тоже не далась! у функции должно быть два параметра, второй - значение, если в строке не целое число

Последний раз редактировалось Serge_Bliznykov; 28.06.2012 в 09:07.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.06.2012, 09:56   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вы забыли среднее найти.
Я не забыл, я это оставил автору.
Цитата:
но и Вам StrToIntDef тоже не далась!
Ну голова у автора то наверное должна быть не только для едьбы
Пусть подкумекает малость - компилятор подскажет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Найти среднее арифметическое положительных и среднее арифметическое отрицательных чисел, минимальное по модулю число. Юрик 530 Помощь студентам 4 03.12.2011 16:26
Среднее арифметическое в delphi Seede1 Помощь студентам 2 22.09.2011 10:36
среднее арифметическое legita Помощь студентам 2 18.12.2010 19:40
Делфи.среднее геометрическое элементов массива.среднее арифметическое каждой строки матрицы Karrina Помощь студентам 0 06.12.2010 18:32