Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 18.03.2019, 23:17
Интересующийся
Отправить личное сообщение для Allegro75 Посмотреть профиль Найти все сообщения от Allegro75
 
Регистрация: 13.03.2019
Сообщений: 15

рони, спасибо, почитаю.
Ответить с цитированием
  #12 (permalink)  
Старый 21.03.2019, 15:34
Интересующийся
Отправить личное сообщение для Allegro75 Посмотреть профиль Найти все сообщения от Allegro75
 
Регистрация: 13.03.2019
Сообщений: 15

Когда ты подступаешься к программированию, ничего изначально не зная - как я - то обилие языков программирования производит пугающее впечатление.
У тебя нет понимания, какой язык тебе нужен; непонятно, чем они отличаются; и вопрос о том, какой из них учить, кажется очень сложным. Внутри сидит представление об обычных человеческих языках общения. Кажется, что если вначале ошибёшься, и выучишь португальский; а потом окажется, что в жизни больше полезен китайский - то кошмар и ужас, черта с два потом переучишься.

Но когда подступаешься поближе, то шокирует уже похожесть этимх самых языков программирования.
Я сейчас одновременно штудирую JS и PHP - и такое чувство, что учу сразу и украинский, и белорусский) И проблема, соответственно, совсем не в том, что имеешь дело с двумя сложными предметами одновременно - а в том, что предметы очень похожи, и ты их путаешь.
Я ещё немного Python потрогал, и это тоже, пользуясь упомянутой метафорой, какой-то болгарский по ощущениям.
Ответить с цитированием
  #13 (permalink)  
Старый 21.03.2019, 15:49
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,705

А можете пояснить в чем схожесть php и js?
Ответить с цитированием
  #14 (permalink)  
Старый 21.03.2019, 17:12
Интересующийся
Отправить личное сообщение для Allegro75 Посмотреть профиль Найти все сообщения от Allegro75
 
Регистрация: 13.03.2019
Сообщений: 15

B чем схожесть?
Это неожиданный для меня вопрос. Хочется ответить "во всём".
Схожесть в общей структуре. И там, и там есть некие объекты - и список важнейших из этих объектов совпадает - числа, строки. Массивы.
И мы с этими объектами манипулируем. Одинаковым образом манипулируем - через арифметические, логические и строковые операции. Вводим переменные, конструируем функции. Имея при этом набор готовых уже, стандартных функций.
Важнейший, насколько я понимаю, оператор(?)
while(){}
практически полностью совпадает.

Естественней для меня выглядел бы вопрос о том, в чём различия языков.
И различия эти в мелкой орфографии, в лексике. Там "$", тут "var". Там str.length, тут strlen($str). Легко запутаться.

Надо оговориться, что я, конечно, просто описываю впечатления новичка, ни в коей мере не претендуя на глубокое понимание сути.

Последний раз редактировалось Allegro75, 21.03.2019 в 17:14.
Ответить с цитированием
  #15 (permalink)  
Старый 21.03.2019, 18:26
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,705

Сообщение от Allegro75
Важнейший, насколько я понимаю, оператор(?)
while(){}
практически полностью совпадает.
А что не дает сказать "полностью совпадает"?
Ответить с цитированием
  #16 (permalink)  
Старый 21.03.2019, 21:28
Интересующийся
Отправить личное сообщение для Allegro75 Посмотреть профиль Найти все сообщения от Allegro75
 
Регистрация: 13.03.2019
Сообщений: 15

А что не дает сказать "полностью совпадает"?

Ну, просто неуверенность новичка - может, я чего ещё не знаю про эти операторы?..
Ответить с цитированием
  #17 (permalink)  
Старый 21.03.2019, 22:16
Интересующийся
Отправить личное сообщение для Allegro75 Посмотреть профиль Найти все сообщения от Allegro75
 
Регистрация: 13.03.2019
Сообщений: 15

Новую задачку решил.
Горазды же эти математики на придумывание неких сущностей. Первый раз слышу про "совершенные" числа.

Создайте функцию isPerfect, которая принимает число и возвращает true, если оно совершенное, и false — в ином случае.

Совершенное число — это положительное целое число, равное сумме его положительных делителей (не считая само число). Например, 6 — идеальное число, потому что 6 = 1 + 2 + 3.


Список совершенных чисел:
6
28,
496,
8128,
33 550 336,..


Моё решение:
const isPerfect = (num) => {
  if (num === 1) {
    return false;
  }
  let sumOfDividers = 1;
  let divider = 2;
  const half = num / 2;
  while (divider <= half) {
    if ((num % divider) === 0) {
      sumOfDividers += divider;
    }
    divider += 1;
  }
    
  if (num === sumOfDividers) {
    return true;
  }
  return false;
}
Ответить с цитированием
  #18 (permalink)  
Старый 22.03.2019, 23:10
Интересующийся
Отправить личное сообщение для Allegro75 Посмотреть профиль Найти все сообщения от Allegro75
 
Регистрация: 13.03.2019
Сообщений: 15

Ещё задачка.

Условие:

fizzBuzz.js
Реализуйте и экспортируйте по умолчанию функцию, которая выводит (console.log) в терминал числа в диапазоне от begin до end. При этом:

Если число делится без остатка на 3, то вместо него выводится слово Fizz
Если число делится без остатка на 5, то вместо него выводится слово Buzz
Если число делится без остатка и на 3, и на 5, то вместо числа выводится слово FizzBuzz
В остальных случаях выводится само число

Функция принимает два параметра (begin и end), определяющих начало и конец диапазона (включительно). Для простоты считаем, что эти параметры являются целыми числами больше нуля. Если диапазон пуст (в случае, когда begin > end), то функция просто ничего не печатает.
Пример

Вызов функции:

fizzBuzz(11, 20);

Вывод в терминале:

11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz

Это задание крайне часто задают на собеседованиях.



Решение:
const fizzBuzz = (begin, end) => {
  const word = (num) => {
    if (((num % 3) === 0) && ((num % 5) === 0)) {
      return 'FizzBuzz';
    }
    else if ((num % 3) === 0) {
      return 'Fizz';
    }
    else if ((num % 5) === 0) {
      return 'Buzz';
    }
    else return num;
  }
  let start = begin;
  for (; start <= end; start += 1) {
    console.log(word(start));
  }
}
Ответить с цитированием
  #19 (permalink)  
Старый 23.03.2019, 09:03
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

function fizzBuzz(begin, end) {
	for(var i = begin; i <= end; i++) {
		var s = (i % 3 === 0 ? "Fizz" : "") +
		        (i % 5 === 0 ? "Buzz" : "");

		console.log(s === "" ? i : s);
    }
}
Ответить с цитированием
  #20 (permalink)  
Старый 23.03.2019, 20:46
Интересующийся
Отправить личное сообщение для Allegro75 Посмотреть профиль Найти все сообщения от Allegro75
 
Регистрация: 13.03.2019
Сообщений: 15

Очень круто, Malleys!

Для меня отдельным удовольствием было то, что я всю эту запись понял)

Почему я не мог так сделать - потому, что у меня не было уверенного знания о том, что пустая строка и undefined(?) это одно и то же.
Я так понимаю, это достигается за счёт слабой типизации в JavaScript...

P.S.
Хотя нет, я понял, что тут слабая типизация, похоже, ни при чём.
Всё сделано просто и прямо...
Респект.

Последний раз редактировалось Allegro75, 23.03.2019 в 21:01.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактор для добавления постов в блог через админку kaurav Node.JS 2 05.11.2017 16:44
Новый чат блог форум с нуля - ваши пожелания Minimus Оффтопик 0 15.08.2015 09:25
Мой авто блог loodsine Ваши сайты и скрипты 3 09.08.2011 02:49
Оцените блог VL.VG Regent Ваши сайты и скрипты 8 10.01.2010 18:05