Skip to content

Lesson 02 #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/*
1. Дан код:
var a = 1, b = 1, c, d;
c = ++a; alert(c); // 2
d = b++; alert(d); // 1
c = (2+ ++a); alert(c); // 5
d = (2+ b++); alert(d); // 4
alert(a); // 3
alert(b); // 3
Почему код даёт именно такие результаты?
*/

var a = 1, b = 1, c //2, d //2;
c = ++a; alert(c); // 2
/* Инкремент ++ увеличивает переменную на 1 (то есть 1 + 1), но еогда оператор идёт до
переменной — это «префиксная форма».*/
d = b++; alert(d); // 1
/* Инкремент ++ увеличивает переменную на 1 (1 + 1), но когда оператор идёт после
переменной — это «постфиксная форма»:
В вышеуказанных двух случаях инкремент ++ делает одно и то же, но с одним отличием - в первом случае (префиксная
форма) инкремент возвращает (показывает нам) новое значение), в то время как во втором случае (постфиксная
форма) инкремент возвращает (показывает нам) старое значение).
Тем самым, если результат оператора мы не хотим использовать, а хотим только лишь увеличить или уменьшить
переменную, то не имеет значения используем мы постфиксную или префиксную формы инкремента. Если же мы хотим
использовать результат, то нужна префиксная форма. */
c = (2+ ++a); alert(c); // 5
/* В первом примере мы увеличили a на единицу (стал 2). Тем самым сейчас у нас получается 2 + 3, что равно 5. */
d = (2+ b++); alert(d); // 4
/* Во втором примере мы увеличили b на единицу, но вернули 1. Тем самым сейчас у нас получается 2 + 2 (то есть на
входе у нас первоначальный b). */
alert(a); // 3
/* В первом и третьем примерах a у нас вырос на 1 по разу в каждом.*/
alert(b); // 3
/* Во втором и четвёртом примерах b у нас вырос на 1 по разу в каждом. Получается, что b этот рост был записан,
но вот выражение во втором и четвёртом примерах этот результат не вывело.*/
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/*
2. Чему будет равен x в примере ниже?
var a = 2;
var x = 1 + (a *= 2);
*/

var a = 2;
var x = 1 + (a *= 2);
console.log(x) // 5

/*
Здесь применяется присваивание с умножением (смысл: a = a * 2). То есть x = 1 + 4.
*/
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
3. Объявить две целочисленные переменные a и b и задать им произвольные
начальные значения. Затем написать скрипт, который работает по
следующему принципу:
если a и b положительные, вывести их разность;
если а и b отрицательные, вывести их произведение;
если а и b разных знаков, вывести их сумму; ноль можно считать положительным числом.
*/

'use strict';

const a = 5;
const b = 10;

if (a >= 0 && b >= 0) {
console.log('Результат разности a и b: ' + (a - b) + '.');
} else if (a < 0 && b < 0) {
console.log('Результат произведения a и b: ' + (a * b) + '.');
} else if ((a < 0 && b >= 0) || (a => 0 && b < 0)) {
console.log('Результат суммы a и b: ' + (a + b) + '.');
}


/*
// Тернарный оператор здесь не сильно подходит, как я понимаю, но захотелось попробовать и через него:
'use strict';

let a = -5;
let b = -10;

a >= 0 && b >= 0 ? console.log('Результат разности a и b: ' + (a - b) + '.') :
a < 0 && b < 0 ? console.log('Результат произведения a и b: ' + (a * b) + '.') :
(a < 0 && b >= 0) || (a => 0 && b < 0) ? console.log('Результат суммы a и b: ' + (a + b) + '.') : console.log('Условие не релевантно.');
*/
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/*
4. Присвоить переменной а значение в промежутке [0..15]. С помощью
оператора switch организовать вывод чисел от a до 15.
*/

let a = +prompt('Введите число в промежутке от 0 до 15: ');
switch (a) {
case 1:
console.log(a++);
case 2:
console.log(a++);
case 3:
console.log(a++);
case 4:
console.log(a++);
case 5:
console.log(a++);
case 6:
console.log(a++);
case 7:
console.log(a++);
case 8:
console.log(a++);
case 9:
console.log(a++);
case 10:
console.log(a++);
case 11:
console.log(a++);
case 12:
console.log(a++);
case 13:
console.log(a++);
case 14:
console.log(a++);
case 15:
console.log(a++);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
5. Реализовать основные 4 арифметические операции в виде функций с
двумя параметрами. Обязательно использовать оператор return.
*/

function subtraction (a, b) {
return console.log(a - b);
}

function addition (a, b) {
return console.log(a + b);
}

function multiplication (a, b) {
return console.log(a * b);
}

function division (a, b) {
return console.log(a / b);
}

subtraction(100, 5);
addition(100, 5);
multiplication(100, 5);
division(100, 5);
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
6. Реализовать функцию с тремя параметрами: function mathOperation(arg1,
arg2, operation), где arg1, arg2 – значения аргументов, operation – строка с
названием операции. В зависимости от переданного значения операции
выполнить одну из арифметических операций (использовать функции из
пункта 5) и вернуть полученное значение (использовать switch).
*/

function subtraction (a, b) {
return console.log(a - b);
}

function addition (a, b) {
return console.log(a + b);
}

function multiplication (a, b) {
return console.log(a * b);
}

function division (a, b) {
return console.log(a / b);
}

function mathOperation(arg1, arg2, operation) {
switch (operation) {
case '-':
case 'вычесть':
return subtraction(arg1, arg2);
case '+':
case 'сложить':
return addition(arg1, arg2);
case '*':
case 'умножить':
return multiplication(arg1, arg2);
case '/':
case 'поделить':
return division(arg1, arg2);
}
}

mathOperation(50, 10, '-')
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
7. *Сравнить null и 0. Попробуйте объяснить результат.
*/

/*
null можно использовать как результат отрицательного поиска (когда результат
отсутствует), а 0 сам по себе может являться результатом поиска (когда, например,
стоимость акции равна 0 рублей). Тем самым если я буду производить проверку с
применением 0, а не null, то в результате поиска компьютер проигнорирует товар
с ценой 0 рублей.

Другими словами, null - когда чего-то преднамеренно не хватает.

В отличие от null undefined:
1. возвращается, если переменная была объявлена, но ей не было присвоено значение.
2. не существует свойство объекта.
3. функция имеет отсутствующий параметр.
Одним словом, undefined для случае, когда чего-то не хватает, но оно должно быть.
*/
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/*
8. *С помощью рекурсии организовать функцию возведения числа в степень.
Формат: function power(val, pow), где val – заданное число, pow – степень.
*/

function power(val, pow) {
if (pow == 1) {
return val;
} else {
return val * power(val, pow - 1);
}
}

console.log(power(2, 5)); // 32