Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.08.2012, 15:18
Новичок на форуме
Отправить личное сообщение для Виктор1 Посмотреть профиль Найти все сообщения от Виктор1
 
Регистрация: 02.08.2012
Сообщений: 4

Скрипт не работает
Добрый день. Только начал с нуля изучать JavaScript. Купил детскую книгу (думал так легче будет Вашу книгу изучать) в ней приводится следующий скрипт:
<script>
var X1=1, X2=5, X3=5, res;

//////////////////////////////////////////////////
//Определение функции-конструктора объектного типа MyObjectType:
function MyObjectType ( Number )
{
//Свойство number:
this.number = Number;

//Метод Aver():
this.Aver =
function (x1,x2,x3)
{
return ( number + x1 + x2 + x3 ) / 4;
}
}
/////////////////////////////////////////////////

//Создание объекта типа MyObjectType:
var ob1 = new MyObjectType (5);

//Вызов метода Aver() для объекта ob1 с целью вычисления
//среднего значения, характеризующего объект ob1:
res = ob1.Aver (X1, X2, X3);

//Вывод вычисленной характеристики объекта ob1 в окно сообщений:
alert (res);
</script>
Который не работает. Выдает ошибку number is not defined. Подскажите почему не работает.
Ответить с цитированием
  #2 (permalink)  
Старый 02.08.2012, 15:55
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

return ( this.number + x1 + x2 + x3 ) / 4;
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2012, 18:08
Новичок на форуме
Отправить личное сообщение для Виктор1 Посмотреть профиль Найти все сообщения от Виктор1
 
Регистрация: 02.08.2012
Сообщений: 4

Спасибо. Продолжение темы Скрипт не работает
<script>
var x1, x2, x3, res;
x1 = window.promt ("input x1", "");
x2 = window.promt ("input x2", "");
x3 = window.promt ("input x3", "");
res=(Math.sin(x1)+Math.sin(x2)+Math.sin(x3))/3;
document.write ("Result = "+res);
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2012, 18:15
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

Виктор1,
заключайте скрипт в
[js][/js]
или в
[js run][/js]
для "проигрывания"

Последний раз редактировалось Hekumok, 06.08.2012 в 18:19.
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2012, 18:19
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

Виктор1,
о эта вечная ошибка (я её тоже когда то допускал) - надо писать не
window.promt
а
prompt
"p" - предпоследняя буква
Ответить с цитированием
  #6 (permalink)  
Старый 06.08.2012, 19:02
Новичок на форуме
Отправить личное сообщение для Виктор1 Посмотреть профиль Найти все сообщения от Виктор1
 
Регистрация: 02.08.2012
Сообщений: 4

Спасибо всем. Решил тут поэксперементировать и так видоизменил,
<script>
var x1, x2, x3, res = (Math.sin(window.prompt("input x1", "")) + Math.sin(window.prompt("input x2", "")) + Math.sin(window.prompt ("input x3", "")))/3;
document.write(res)
</script>
Все на первый взгляд работает. Что здорово, язык позволяет использовать другие функции в качестве аргумента.
Но потом обратил внимание - оба скрипта выдают неправильные ответы, например если вводить 90 три раза - то ответ должен быть 1. А ответ 0,893...
Ответить с цитированием
  #7 (permalink)  
Старый 06.08.2012, 19:05
Новичок на форуме
Отправить личное сообщение для Виктор1 Посмотреть профиль Найти все сообщения от Виктор1
 
Регистрация: 02.08.2012
Сообщений: 4

Забыл, заметил что не поставил точку с запятой после последнего оператора, исправил, но все работает также, результат тот же. Получается интерпретатор не видит отсутствие символа. Интересно... Но это к делу не относится
Ответить с цитированием
  #8 (permalink)  
Старый 06.08.2012, 19:15
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Сообщение от Виктор1
Но потом обратил внимание - оба скрипта выдают неправильные ответы, например если вводить 90 три раза - то ответ должен быть 1. А ответ 0,893...
Math.sin считает синус в радианах. Если нужно в градусах, то можно преобразовать:
Math.sin(x*180/Math.PI)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает скрипт как ссылка Abraham jQuery 31 14.06.2011 03:04
Не работает скрипт :( VladimirV Javascript под браузер 5 21.12.2010 14:26
Сверкающая ссылка. Скрипт не работает в фаерфоксе Wukong Firefox/Mozilla 3 09.09.2010 15:09
скрипт работает только в IE, а в остальных браузерах нет. melodicman Firefox/Mozilla 0 23.06.2010 15:18
скрипт не работает в IE( SunYang Общие вопросы Javascript 3 02.02.2010 22:45