Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.11.2011, 14:20
Аватар для MarkZ
Интересующийся
Отправить личное сообщение для MarkZ Посмотреть профиль Найти все сообщения от MarkZ
 
Регистрация: 03.11.2011
Сообщений: 11

[Учебник javascript]Одну из задач не могу понять
Напишите функцию pow(x,n), которая возвращает x в степени n (для натуральных n). Иначе говоря, умножает x на себя n раз и возвращает результат.

pow(3, 2) = 3*3 = 9
pow(3, 3) = 3*3*3 = 27
pow(1, 100) = 1*1*...*1 = 1
Создайте страницу, которая запрашивает x и n, а затем выводит результат pow(x,n)

Вот что написано в решении:

<script>

function pow(x, n) {
var result = x

for(var i=1; i<n; i++) {
result *= x;
}

return result
}

var x = prompt("x?", '')
var n = prompt("n?", '')

alert( pow(x, n) )

</script>

мой маленький мозг не догоняет, что да как.
прошу объяснить
Ответить с цитированием
  #2 (permalink)  
Старый 24.11.2011, 15:12
Аватар для MarkZ
Интересующийся
Отправить личное сообщение для MarkZ Посмотреть профиль Найти все сообщения от MarkZ
 
Регистрация: 03.11.2011
Сообщений: 11

и еще.
почему половина этой главы написана на англ.яз.
http://beta.javascript.ru/tutorial/exceptions
Ответить с цитированием
  #3 (permalink)  
Старый 24.11.2011, 15:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от MarkZ
мой маленький мозг не догоняет, что да как.
Если уже такой пример непонятен, можно подумать о двух вариантах:
1. Бросить это дело
2. Записаться на операцию по увеличению мозга

Сообщение от MarkZ
почему половина этой главы написана на англ.яз.
Это непереводимый английский фольклёр... Т.ч. забей...
Ответить с цитированием
  #4 (permalink)  
Старый 24.11.2011, 20:00
Аватар для MarkZ
Интересующийся
Отправить личное сообщение для MarkZ Посмотреть профиль Найти все сообщения от MarkZ
 
Регистрация: 03.11.2011
Сообщений: 11

ну, бросать я не буду.
операция дорогая;(
эх. придется дальше учить
Ответить с цитированием
  #5 (permalink)  
Старый 24.11.2011, 20:52
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

правильно, не бросай сразу.
for (var i = 1; i < n; i++) {
    result *= x;
}

Это значит простой цикл. Все что внутри будет повторяться пока i меньше n, и на каждом шаге идет увеличение i на один.

result *= x; Это тоже самое что и result = result * x;

Можно написать еще более прикольный вариант, посложнее:
function pow(x, n) {
    if (n == 1) return x;
    return x * pow(x, n - 1);
}
Ответить с цитированием
  #6 (permalink)  
Старый 24.11.2011, 21:02
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

ваый, наркоман штоле?)
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 24.11.2011, 21:04
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Сообщение от Aetae
ваый, наркоман штоле?)
ну иногда )))
на самом деле, написал эту хрень, и тоже подумал, что что-то я переработался сегодня..
Ответить с цитированием
  #8 (permalink)  
Старый 24.11.2011, 21:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Повеселили...
Ответить с цитированием
  #9 (permalink)  
Старый 02.12.2011, 13:45
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

MarkZ, могу посоветовать выучить другой язык программирования)
В js я тоже новичок : ) Но попробую растолковать. Если где-то не прав, думаю, меня поправят:

// Определение ф-ции, и кол-во переменных, кот. она будет обрабатывать. Хотя, последнее спорно)
function pow(x, n) {
	// Объявить переменную с областью видимости внутри функции, присвоить ей значение x
	var result = x;
	// Цикл (выполняется, пока условие истинно): 
	//		1. объявляем переменную i, присваиваем ей значение 1
	//		2. собственно, само условие, кот. проверяется на каждом проходе цикла
	//		3. инкремент, опять-таки каждую итерацию
	for(var i=1; i<n; i++) {
		// присвоение с умножением, все равно, что result = result * x
		result *= x;
	}
	// значение, кот. возвращает функция
	return result;
}
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 02.12.2011 в 13:49.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наболевший this. Не могу понять Harvey Общие вопросы Javascript 6 19.08.2011 17:30
Не могу понять, почему не работает автокомпил в IE 8 gargon2008 jQuery 0 07.06.2011 11:31
помогите уже месяц не могу понять как это сделать... CTEPEOTUn Общие вопросы Javascript 5 13.04.2011 00:21
RegExp - поиск в найденном. Не могу понять senseysensor Общие вопросы Javascript 9 17.10.2010 21:55
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 15:22