18.03.2019, 23:17
|
Интересующийся
|
|
Регистрация: 13.03.2019
Сообщений: 15
|
|
рони, спасибо, почитаю.
|
|
21.03.2019, 15:34
|
Интересующийся
|
|
Регистрация: 13.03.2019
Сообщений: 15
|
|
Когда ты подступаешься к программированию, ничего изначально не зная - как я - то обилие языков программирования производит пугающее впечатление.
У тебя нет понимания, какой язык тебе нужен; непонятно, чем они отличаются; и вопрос о том, какой из них учить, кажется очень сложным. Внутри сидит представление об обычных человеческих языках общения. Кажется, что если вначале ошибёшься, и выучишь португальский; а потом окажется, что в жизни больше полезен китайский - то кошмар и ужас, черта с два потом переучишься.
Но когда подступаешься поближе, то шокирует уже похожесть этимх самых языков программирования.
Я сейчас одновременно штудирую JS и PHP - и такое чувство, что учу сразу и украинский, и белорусский) И проблема, соответственно, совсем не в том, что имеешь дело с двумя сложными предметами одновременно - а в том, что предметы очень похожи, и ты их путаешь.
Я ещё немного Python потрогал, и это тоже, пользуясь упомянутой метафорой, какой-то болгарский по ощущениям.
|
|
21.03.2019, 15:49
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
А можете пояснить в чем схожесть php и js?
|
|
21.03.2019, 17:12
|
Интересующийся
|
|
Регистрация: 13.03.2019
Сообщений: 15
|
|
B чем схожесть?
Это неожиданный для меня вопрос. Хочется ответить "во всём".
Схожесть в общей структуре. И там, и там есть некие объекты - и список важнейших из этих объектов совпадает - числа, строки. Массивы.
И мы с этими объектами манипулируем. Одинаковым образом манипулируем - через арифметические, логические и строковые операции. Вводим переменные, конструируем функции. Имея при этом набор готовых уже, стандартных функций.
Важнейший, насколько я понимаю, оператор(?)
while(){}
практически полностью совпадает.
Естественней для меня выглядел бы вопрос о том, в чём различия языков.
И различия эти в мелкой орфографии, в лексике. Там "$", тут "var". Там str.length, тут strlen($str). Легко запутаться.
Надо оговориться, что я, конечно, просто описываю впечатления новичка, ни в коей мере не претендуя на глубокое понимание сути.
Последний раз редактировалось Allegro75, 21.03.2019 в 17:14.
|
|
21.03.2019, 18:26
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
Сообщение от Allegro75
|
Важнейший, насколько я понимаю, оператор(?)
while(){}
практически полностью совпадает.
|
А что не дает сказать "полностью совпадает"?
|
|
21.03.2019, 21:28
|
Интересующийся
|
|
Регистрация: 13.03.2019
Сообщений: 15
|
|
А что не дает сказать "полностью совпадает"?
Ну, просто неуверенность новичка - может, я чего ещё не знаю про эти операторы?..
|
|
21.03.2019, 22:16
|
Интересующийся
|
|
Регистрация: 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;
}
|
|
22.03.2019, 23:10
|
Интересующийся
|
|
Регистрация: 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));
}
}
|
|
23.03.2019, 09:03
|
|
Профессор
|
|
Регистрация: 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);
}
}
|
|
23.03.2019, 20:46
|
Интересующийся
|
|
Регистрация: 13.03.2019
Сообщений: 15
|
|
Очень круто, Malleys!
Для меня отдельным удовольствием было то, что я всю эту запись понял)
Почему я не мог так сделать - потому, что у меня не было уверенного знания о том, что пустая строка и undefined(?) это одно и то же.
Я так понимаю, это достигается за счёт слабой типизации в JavaScript...
P.S.
Хотя нет, я понял, что тут слабая типизация, похоже, ни при чём.
Всё сделано просто и прямо...
Респект.
Последний раз редактировалось Allegro75, 23.03.2019 в 21:01.
|
|
|
|