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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.01.2008, 00:06   #1
rzd
 
Регистрация: 07.01.2008
Сообщений: 3
Восклицание среднее геометрическое чисел

Помогите пожалуйста разобраться смотрел в исхлдниках подобного примера нет (дана непустая последовательность положительных чисел, за которой следует 0{признак конца последовательности} Вчислить среднее геометрическое этих чисел (Delphi7)) изучал паскаль но простоту перехода на delphi не заметил. Не могу задать массив оканчивающийся 0
rzd вне форума
Старый 08.01.2008, 03:16   #2
FliPP
 
Аватар для FliPP
 
Регистрация: 03.01.2008
Сообщений: 9
По умолчанию

Можно использовать событие OnSetEditText для StringGrid... Тогда там следует прописать условие, при котором начнется вычисление среднего геометрического.
FliPP вне форума
Старый 08.01.2008, 08:16   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не могу задать массив оканчивающийся 0
Дык чего его задавать то? делай динмассив, в цикле вводи в него последовательность пока очередной элемент не равен 0 расширяй границы этого массива. Или введи строку, в которой элементы последовательности раздели скажем запятыми и при вводе получай массив из этой строки через TstringList.CommaText. Проверяй равен ли последний елемент этого СтрингЛиста нулю.
I'm learning to live...
Stilet вне форума
Старый 08.01.2008, 09:42   #4
rzd
 
Регистрация: 07.01.2008
Сообщений: 3
По умолчанию

Условие такое что это строка типа Edit в которую вводятся числа без запятых и разделениий до тех пор пока не встретится 0 после чего ввод цифр невозможен а потом уже button расчет среднего геометрического
rzd вне форума
Старый 08.01.2008, 09:53   #5
True_Evil
Пользователь
 
Регистрация: 05.01.2008
Сообщений: 12
По умолчанию

Код:
var 
  i:integer; 
  s:string; // входная строка
  cSrGeom:currency; 
begin
  i:=1;
  cSrGeom:=1;
  while i<=length(s) and not(s[i]='0') do
  begin
    cSrGeom:=cSrGeom*strtoint(s[i]);
    inc(i);
  end;
  dec(i);
  if not (i=0) then
    cSrGeom:=Exp(1/i * ln(cSrGeom)); // среднее геометрическое
end;
наскоряк накидал, проверить негде сейчас но должно работать

Последний раз редактировалось True_Evil; 08.01.2008 в 15:52.
True_Evil вне форума
Старый 08.01.2008, 10:03   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

RZD, стоило сказать что последовательность однозначных чисел.

Цитата:
cSrGeom:=0;
Ну тут наверное бы луче было cSrGeom:=cSrGeom*strtoint(s[1]);
а цикл начать со следующего элемента, ато ведь на ноль сколько не умножай все равно ноль будет )
I'm learning to live...
Stilet вне форума
Старый 08.01.2008, 14:40   #7
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Ну так возьмём и запретим ввод как только вписали ноль.

Код:
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key = 48 Then Edit1.Enabled := False;
end;
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума
Старый 08.01.2008, 14:46   #8
True_Evil
Пользователь
 
Регистрация: 05.01.2008
Сообщений: 12
По умолчанию

косяк исправил, пасиба
True_Evil вне форума
Старый 08.01.2008, 14:55   #9
FliPP
 
Аватар для FliPP
 
Регистрация: 03.01.2008
Сообщений: 9
По умолчанию

Цитата:
cSrGeom:=0;
Там ведь далше следует умножение на cSrGeom!!! Мне кажется что надо начальное значение установить равное 1...

Цитата:
cSrGeom:=cSrGeom / i; // среднее геометрическое
там походу будет cSrGeom:=exp(1/i * ln(cSrGeom));...
FliPP вне форума
Старый 08.01.2008, 14:59   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ну так возьмём и запретим ввод как только вписали ноль.
А как тогда завершать ввод строки?
I'm learning to live...
Stilet вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Среднее в Сводной ExcArt Microsoft Office Excel 6 30.07.2008 11:58
среднее значение tonic Microsoft Office Excel 1 04.01.2008 00:20
вычисление суммы чисел, кратных 3 из последовательности, состоящей из 10 чисел, заранее заданных Белка Помощь студентам 3 27.10.2007 11:53