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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2014, 15:10   #11
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

1/2 = 0, так как работает целочисленная арифметика. Пишите 0.5.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 30.03.2014, 15:22   #12
niwssg
Пользователь
 
Регистрация: 12.11.2012
Сообщений: 35
По умолчанию

Как мне видится :
Код:
fun=(1/2)*(1+a);
и
Код:
fun=(1/2)*(t+a/t);
функция fun принимает 2 параметра, а тут ей пытаются присвоить одно значение.
Код:
return fun
Насколько мне известно передавать в функцию и возвращать из функции можно только указатели на функции.
Я могу ошибаться.
niwssg вне форума Ответить с цитированием
Старый 30.03.2014, 15:36   #13
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
1/2 = 0, так как работает целочисленная арифметика. Пишите 0.5.
Изменил,как вы и сказали все то же.
spectrum988 вне форума Ответить с цитированием
Старый 30.03.2014, 15:56   #14
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Что именно "то же"? Попробовал скомпилировать в C++ Builder - не скомпилировалось.
Код:
double fun(int n, int a) {
	double t;
	if (n == 0)
		return 0.5 * (1 + a);
	else {
		t = fun(n - 1, a);
		return 0.5 * (t + a / t);
	}
}
Поскольку не пользуюсь билдером, не знаю, насколько он следует стандартам плюсов, поэтому думал, что конструкция fun = ...; вполне могла бы работать так же, как и в дельфи, но это не так.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 30.03.2014 в 16:04.
BDA вне форума Ответить с цитированием
Старый 30.03.2014, 20:09   #15
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Спасибо большое.Все работает.
spectrum988 вне форума Ответить с цитированием
Старый 30.03.2014, 21:16   #16
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

BDA подскажите пожалуйста,а когда нужно это же задание сделать через цикл как это можно реализовать ?
spectrum988 вне форума Ответить с цитированием
Старый 30.03.2014, 21:33   #17
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Код:
x1 = 1;
x2 = 0.5 * (x1 + a / x1);
while (fabs(x1 - x2) > 0.0001) {
  x1 = x2;
  x2 = 0.5 * (x1 + a / x1);
}
//x2 - ответ
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 30.03.2014, 22:22   #18
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Еще раз,спасибо большое,выручили,проверил,работает, буду разбираться.
spectrum988 вне форума Ответить с цитированием
Старый 30.03.2014, 23:08   #19
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Cкажите,а вот x1=1; что это ? и можете пожалуйста дать краткое объяснение вашим действиям ?
spectrum988 вне форума Ответить с цитированием
Старый 30.03.2014, 23:23   #20
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Я подумал, что так будет более красиво выглядеть. Если подставить х1 во вторую формулу, то как раз и получится начальное значение 0.5 * (1 + а). Затем вычисляются по очереди следующие значения, пока разница между последними двумя не станет достаточно мала.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекуррентная формула Solidera Помощь студентам 5 01.12.2013 18:47
Рекуррентная формула dimka123 Паскаль, Turbo Pascal, PascalABC.NET 6 09.11.2013 07:03
рекуррентная формула unbanned Паскаль, Turbo Pascal, PascalABC.NET 5 18.12.2010 09:23
Рекуррентная формула Paradoxer Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 05.06.2009 20:14
рекуррентная формула redisque Паскаль, Turbo Pascal, PascalABC.NET 2 06.05.2009 21:08