Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.03.2018, 09:14
Новичок на форуме
Отправить личное сообщение для hunter24 Посмотреть профиль Найти все сообщения от hunter24
 
Регистрация: 06.03.2018
Сообщений: 3

Вычислить значение суммы с заданной точностью - JavaScript
Нужна помощь с заданием!
Дано действительны величины
x,a,exp. (x!=0, a!=0, exp>0)
Разработать программу, которая вычисляет значение суммы с заданной точностью exp, и указывает количество учтенных слагаемых.
Изображения:
Тип файла: png Screenshot_1.png (2.8 Кб, 11 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2018, 13:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от hunter24
Нужна помощь с заданием!
В чем заключается "помощь"?
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2018, 17:29
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

https://developer.mozilla.org/ru/doc...l_Objects/Math
основное есть тут.
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2018, 19:18
Интересующийся
Отправить личное сообщение для Noga_programmista Посмотреть профиль Найти все сообщения от Noga_programmista
 
Регистрация: 13.03.2018
Сообщений: 17

Проверил на онлайн калькуляторе... вроде погрешности округления небольшие (нас учили что если точность имеет N знака после запятой, то округляем до N+1 знаков)
Все переменные по вашей формуле названы
var exp = 0.001; // точность
		var summ = 0; // переменная для суммы
		var count ; // переменная для кол-во соагаемых

		//считает одно слагаемое
		function get_value(x, a, k) 
		{
			return +( Math.sin( Math.pow(x, k)) / ( Math.pow(a, 2*k) * fac(2*k) ) ).toFixed(4);
		}
		// считает сумму
		function Summ(x, a, k)
		{  
			if(k == 1)//при первом витке сравнивать на точность еще нечего
			{
				return get_value(x, a, k) + Summ(x, a, k+1);
			}
			else{
				if( Math.abs(get_value(x, a, k) - get_value(x, a, k-1)) > exp  )  // |An – An-1| > exp, пока это выражение
				{                                                                 // истинно, вычисления продолжаются.
					return get_value(x, a, k) + Summ(x, a, k+1);
				}
				else{
					count = k;
					return get_value(x, a, k);
				}
			}

			
		}
		// (2k) не может быть отричательным, 
		// поэту проверку на отрицательность не делал
		function fac(num)
		{
			if(num == 1 || num == 0)
			{
				return 1;
			}
			return num * fac(num - 1);
		}

		alert("Сумма = " + Summ(15, 2, 1) +"\nЧисло циклов(при точности " + exp + ") равно : " + count);

Последний раз редактировалось Noga_programmista, 14.03.2018 в 12:31.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из javascript получить значение box-shadow? PAMAC Общие вопросы Javascript 11 10.06.2012 18:48
как значение переменной из javascript передать в php? mobiledeveloper Общие вопросы Javascript 1 02.05.2012 20:00
Значение переменных из JavaScript в PHP pr43unknown Общие вопросы Javascript 3 18.01.2012 18:37
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34