Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Немогу понять как правильно решить данною функцию? (https://javascript.ru/forum/misc/59845-nemogu-ponyat-kak-pravilno-reshit-dannoyu-funkciyu.html)

ARKASS 30.11.2015 01:09

Немогу понять как правильно решить данною функцию?
 
Вычислить и вывести на печать положительные значения функции 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))); 
};

join 30.11.2015 09:12

для примера:

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);
};

рони 30.11.2015 09:46

:-? мысли вслух зачем Math.abs ?

ruslan_mart 30.11.2015 11:12

рони, это видимо такой новый метод выводить только положительные значения :haha:

EmperioAf 30.11.2015 14:19

топикстартеру наверное стоит проверять положительное ли значение, а не делать его положительным с помощью
Math.abs();

ARKASS 30.11.2015 16:22

Цитата:

Сообщение от Ruslan_xDD (Сообщение 398091)
рони, это видимо такой новый метод выводить только положительные значения :haha:

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

ruslan_mart 30.11.2015 16:32

ARKASS,

if(n >= 0) {

}

рони 30.11.2015 16:36

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>

ARKASS 30.11.2015 16:43

Цитата:

Сообщение от Ruslan_xDD (Сообщение 398128)
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:55

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


Часовой пояс GMT +3, время: 22:21.