Javascript.RU

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

Немогу понять как правильно решить данною функцию?
Вычислить и вывести на печать положительные значения функции Y=sin nx- cos n/x, если n=1,2...50.
Вот как я сделал, ну не знаю или верно такое ришение:
var n = 0; 
var x = 1; 
for (i = 0; i < 50; i++){ 
n = n+1; 
console.log(Math.abs(Math.sin(n*x) - Math.cos(n/x))); 
};

Последний раз редактировалось ARKASS, 30.11.2015 в 02:05.
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2015, 09:12
Аватар для join
Профессор
Отправить личное сообщение для join Посмотреть профиль Найти все сообщения от join
 
Регистрация: 05.03.2012
Сообщений: 477

для примера:

var n=0;
var x=1;
var plusY='';
var minusY='';

matanaliz(50);

function matanaliz(total){
  var num = '';
  for( var i=1; i <= total; i++ ){
    n=i;
	num = (Math.abs(Math.sin(n*x) - Math.cos(n/x)));
	(num >= 0) ? (plusY += (num + '; (n='+n+',x='+x+') ' + '\t\n')) : (minusY += num + '; (n='+n+',x='+x+') ' + '\t\n');
  }
  console.log('plusY: '+plusY);
  console.log('minusY: '+minusY);
};
Ответить с цитированием
  #3 (permalink)  
Старый 30.11.2015, 09:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

мысли вслух зачем Math.abs ?
Ответить с цитированием
  #4 (permalink)  
Старый 30.11.2015, 11:12
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

рони, это видимо такой новый метод выводить только положительные значения
Ответить с цитированием
  #5 (permalink)  
Старый 30.11.2015, 14:19
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

топикстартеру наверное стоит проверять положительное ли значение, а не делать его положительным с помощью
Math.abs();
Ответить с цитированием
  #6 (permalink)  
Старый 30.11.2015, 16:22
Новичок на форуме
Отправить личное сообщение для ARKASS Посмотреть профиль Найти все сообщения от ARKASS
 
Регистрация: 29.11.2015
Сообщений: 5

Сообщение от Ruslan_xDD Посмотреть сообщение
рони, это видимо такой новый метод выводить только положительные значения
А можите обьяснить как привельно решить даною функцию, без Math.abs();?

Последний раз редактировалось ARKASS, 30.11.2015 в 16:27.
Ответить с цитированием
  #7 (permalink)  
Старый 30.11.2015, 16:32
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

ARKASS,

if(n >= 0) {

}
Ответить с цитированием
  #8 (permalink)  
Старый 30.11.2015, 16:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

ARKASS,
при x = 1 -- икс можно не учитывать

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<script>
var n = 0;
var x = 1;
for (var i = 0; i < 50; i++){
n = i + 1
n = Math.sin(n) - Math.cos(n);
if(n > 0 )document.write(n + "<br>")
};
</script>
</body>

</html>

Последний раз редактировалось рони, 30.11.2015 в 16:43.
Ответить с цитированием
  #9 (permalink)  
Старый 30.11.2015, 16:43
Новичок на форуме
Отправить личное сообщение для ARKASS Посмотреть профиль Найти все сообщения от ARKASS
 
Регистрация: 29.11.2015
Сообщений: 5

Сообщение от Ruslan_xDD Посмотреть сообщение
ARKASS,

if(n >= 0) {

}
Если я правильно понял, должно быть от так?

var n=0;
var x=1;
var plusY='';
var minusY='';

matanaliz(50);
function matanaliz(total){
  var num = '';
// вот тут добавить проверку, если я правильно понял?
     if(n >=0){
  for( var i=1; i <= total; i++ ){
    n=i;
    num = (Math.sin(n*x) - Math.cos(n/x));
    (num >= 0) ? (plusY += (num + '; (n='+n+',x='+x+') ' + '\t\n')) : (minusY += num + '; (n='+n+',x='+x+') ' + '\t\n');
  }
}
  console.log('plusY: '+plusY);
  console.log('minusY: '+minusY);
};

Последний раз редактировалось ARKASS, 30.11.2015 в 16:49.
Ответить с цитированием
  #10 (permalink)  
Старый 30.11.2015, 16:55
Новичок на форуме
Отправить личное сообщение для ARKASS Посмотреть профиль Найти все сообщения от ARKASS
 
Регистрация: 29.11.2015
Сообщений: 5

Извините, на верное я забыл уточнить...что n-мне вводить в ручную водить не надо там диапазон n вид 1 до 50. Просто интересно как сделать без даною Math.abs();?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
If , elseif else - как правильно собрать функцию? Nilsan jQuery 3 18.09.2015 10:28
Как правильно вызвать функцию Mateus jQuery 1 16.12.2012 15:43
[Closure Compiler] Как запретить инлайнить функцию, которая вызывается из setTimeout? xintrea Events/DOM/Window 4 11.02.2011 16:23
Как получить указатель на элемент вызвавший функцию pelayo Общие вопросы Javascript 9 29.06.2010 23:32
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20