Javascript.RU

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

Не понимаю, начиная с циклов
По учебной программе идёт javascript.
Все хорошо, первые лекции все понимаю, с интересом вникаю. Но! Только доходит дело до циклов и первых же лабораторных с ними я становлюсь в ступор. Вот пример: преподаватель объясняет и показывает циклы while. Мне все понятно. И сразу же он задаёт очень простую задачку - "возвести 2 в степень 10, применить цикл while и вывести результат в консоль".
Я как тупица не могу сообразить как это описать, как составить алгоритм. Когда преподаватель показал и написал код я сразу все понял.
Далее снова лаба на этом же уроке: "вывести на экран символы таким образом, используя while
*
**
***
****
*****

я снова в ступоре не могу сообразить алгоритм.


Всё плохо?
Ответить с цитированием
  #2 (permalink)  
Старый 31.07.2014, 00:00
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

да. Попробуйте выйти из ступора, изложите в словах свои мысли. Здесь же несложно совсем
Ответить с цитированием
  #3 (permalink)  
Старый 31.07.2014, 00:55
Интересующийся
Отправить личное сообщение для xSPiRiTx Посмотреть профиль Найти все сообщения от xSPiRiTx
 
Регистрация: 30.07.2014
Сообщений: 12

дошло, но только после просмотра кода и объяснения преподавателя!

var num =2, exp =10, result =1; count = 0;
while (count<exp) {
	result = result*num;
	count++;
}
console.log(result);


для удобства и для того, чтобы в будущем можно было легко менять значения, не перелопачивая весь код объявляем переменные: num - число, которое будем возводить в степень, exp - сама степень, result - переменная для получения результата, мы ее обозначили как числовой тип и присвоили единицу, потому что если там будет 0, то при возведении в степень всегда будет результат 0, count - ну и счётчик...причем у нас ему присвоен 0, значит в решении count должен быть меньше exp ибо отсчет начинается с нуля...а с нуля до девяти - это уже 10 (нам требуется возвести в степень 10)...если же в count мы запихаем 1, то тогда в решении будет count <= exp, потому что начнется отсчёт с единицы пока не станет равно нашей exp, которая в свою очередь равна 10.

результатом будет присвоение переменно result умножение её на число, которое возводится в степень. т.е. 1*2=2, теперь уже переменная result = 2. а значит в следующем цикле result = result*num будет выглядеть как 2*2. счётчик увеличился на один шаг (count++) и пока что в теле while значение true, поэтому он продолжает запускать цикл заново. Таким образом пока счетчик не перестанет соответствовать условию, что он меньше 10 (count<exp) циклы будут запускаться снова и снова. в то же время переменная result все набирает и набирает обороты. 2*2 - уже она равна 4 и выражениу result*num уже выглядит как 4*2 (у нас уже получается 2 в степени 3).

Последний раз редактировалось xSPiRiTx, 31.07.2014 в 01:26.
Ответить с цитированием
  #4 (permalink)  
Старый 31.07.2014, 01:30
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

var num = 2;
  var exp = 10;
  var count = 1;
  var result = 1; //2 в 0
  while (count <= exp) {
    result *= num;
    count++;
  }
  alert(result);
alert(Math.pow(2, 10));
Ответить с цитированием
  #5 (permalink)  
Старый 31.07.2014, 01:58
Интересующийся
Отправить личное сообщение для xSPiRiTx Посмотреть профиль Найти все сообщения от xSPiRiTx
 
Регистрация: 30.07.2014
Сообщений: 12

решение это хорошо, но дело в том, что мне нужно не решение. тут вопрос другой. я туго понимаю алгоритм решения задач. долго разбираюсь, и то если пинка дадут
Ответить с цитированием
  #6 (permalink)  
Старый 31.07.2014, 03:15
Интересующийся
Отправить личное сообщение для xSPiRiTx Посмотреть профиль Найти все сообщения от xSPiRiTx
 
Регистрация: 30.07.2014
Сообщений: 12

вторая задача с треугольником решилась очень просто:
var string = "", cnt = 1;
while (cnt<=5) {
string += "*";
console.log(string);
cnt++;
}
Ответить с цитированием
  #7 (permalink)  
Старый 31.07.2014, 10:23
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

xSPiRiTx,
ну, вот стоило только преодолеть ступор.
Инкремент, кстати, можно вынести в условие. Даже более логично и наглядно здесь было бы использовать декремент.
var string = "", cnt = 5;
while (cnt--) {
string += "*";
console.log(string);
}
Ответить с цитированием
  #8 (permalink)  
Старый 31.07.2014, 10:42
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

xSPiRiTx, у всех так было. Практикуйся, сиди и тупи над задачами и если хватит задротства, то всё начнёт получаться. У меня первый год обучения был таким, например, мне почему то очень трудно давалась тема массивов, хз почему. Когда начал JS изучать, то очень долго не понимал прототипов (первые 2 года боялся их юзать и не вылезал за пределы задачек jQuery), а потом как то утром проснулся и всё само стало ясно.

Главное тут понять, что процесс обучения - это долгая штука. Я, например, уже 12+ лет изучаю программирование (начинал с Pascal, потом Delphi, потом PHP, потом C#, а уже потом JS), на JS 7 лет и процесс обучения всё идёт (в идеале он никогда не должен кончаться).
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 31.07.2014 в 10:47.
Ответить с цитированием
  #9 (permalink)  
Старый 31.07.2014, 10:48
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Сообщение от kobezzza
на JS 7 лет
и как, сильно торкает? ))
Ответить с цитированием
  #10 (permalink)  
Старый 31.07.2014, 10:54
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Shaci Посмотреть сообщение
и как, сильно торкает? ))
Ну, кол-во лет не главное на самом деле, а типы решаемых задач. Первые 3 года я делал всякую хрень: попачики, всплывашки, слайдеры и т.д. короче банальный UI и если бы так всё продолжалось, то наверное бы развитие уже давно остановилось, но потом круг задач резко изменился, и слава Богу

А вообще меня очень печалит, что нет времени ни на что, кроме JS и он мне порядком уже надоел, хочется поковырять Rust, D, но пока только совсем на примитив есть время
__________________
kobezzza
code monkey
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
метод sort не понимаю. pshcolnyy Общие вопросы Javascript 12 02.09.2016 08:17
Переадресация. Ничего не понимаю!!! Daniel.ace Общие вопросы Javascript 3 28.05.2014 11:42
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
Не понимаю код, строчку... АrnowtАА Общие вопросы Javascript 8 13.05.2011 18:45
Не понимаю почему возникает ошибка при перетаскивании satels jQuery 4 10.01.2010 03:57