Skip to content
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
54 changes: 54 additions & 0 deletions JSLessonTwo/1.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Homework</title>
</head>
<body>
<!--
Обязательное задание.

Для кода вставленного в теге script необходимо дать комментарии, почему мы
получаем такой результат (в свободной форме).

Подсказка. Чтобы лучше разобраться возьмите этот код и запустите в отладчике в
браузере со включенными точками остановки.
-->
<script>
"use strict";

let a = 1, b = 1, c, d;

/*
a = 1 + 1 = 2
c = a = 2
*/
c = ++a;
console.log(c);

/*
d = b = 1
b = 1 + 1 = 2
*/
d = b++;
console.log(d);

/*
а = 2 + 1 = 3
с = 2 + 3 = 5
*/
c = 2 + ++a;
console.log(c);

/*
d = 2 + 2 = 4
b = 2 + 1 = 3
*/
d = 2 + b++;
console.log(d);

console.log(a);
console.log(b);
</script>
</body>
</html>
32 changes: 32 additions & 0 deletions JSLessonTwo/2.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Homework</title>
</head>
<body>
<!--
Обязательное задание.

Для кода вставленного в теге script необходимо дать комментарии, почему мы
получаем такой результат (в свободной форме).

Подсказка. Чтобы лучше разобраться возьмите этот код и запустите в отладчике в
браузере со включенными точками остановки.
-->
<script>
"use strict";

let a = 2;
let x = 1 + (a *= 2);

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

</script>
</body>
</html>
43 changes: 43 additions & 0 deletions JSLessonTwo/3.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Homework</title>
</head>
<body>
<!--
Обязательное задание.

Необходимо попросить пользователя ввести два числа в переменные `a` и `b`.
Необходимо вывести в консоль один результат из следующих проверок:
1. Если оба числа в переменных `a` и `b` положительные, вывести разность
чисел `a` и `b`, а именно, вычесть из переменной `a` значение переменной `b`.
2. Если оба числа в переменных `a` и `b` отрицательные, вывести произведение
чисел `a` и `b`.
3. Если числа в переменных `a` и `b` разных знаков, вывести сумму чисел
`a` и `b`.
В остальных случаях программа не должна ничего выводить.
-->
<script>
"use strict";
const a = Number(prompt('Введите число а'));
const b = Number(prompt('Введите число b'));

if (isPositive(a) && isPositive(b)) {
console.log (a - b);
} else if (!isPositive(a) && !isPositive(b)){
console.log(a * b);
} else {
console.log(a + b);
}
//В остальных случаях программа не должна ничего выводить. - Остальных случаев быть не может

function isPositive(numValue) {
if (numValue > 0) {
return true;
}
return false;
}
</script>
</body>
</html>
80 changes: 80 additions & 0 deletions JSLessonTwo/4.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Homework</title>
</head>
<body>
<!--
Обязательное задание.

Необходимо реализовать четыре функции, каждая функция должна принимать по два
числа и выполнять одну из операций (каждая функция выполняет одну из них):
1. Сложение
2. Разность
3. Умножение
4. Деление

Необходимо сделать так, чтобы функция вернула число, например выражение
`console.log(sum(2, 6));` должно вывести число 8 в консоль (sum - функция
сложения в данном примере, ваши названия функций могут отличаться).

Округлять значения, которые возвращают функции не нужно, однако, обратите
внимание на разность, функция должна вычесть из большего числа меньшее, либо
вернуть 0, если числа равны.

Функциям всегда передаются корректные числа, проверки на NaN, Infinity делать
не нужно.

Необходимо для всех функций прописать комментарии jsdoc https://jsdoc.app/.
-->
<script>
"use strict";

/**
* Cумма двух чисел
* @param {number} firsrNum
* @param {number} secondNum
* @returns {number} сумма введенных параметров
*/
function sum (firsrNum, secondNum) {
return firsrNum + secondNum;
}

/**
* Разница двух чисел. Меньшее число всегда будет вычитаемым,
* не зависимо от порядка ввода
* @param {number} firsrNum
* @param {number} secondNum
* @returns {number} разница введенных параметров
*/
function subt (firsrNum, secondNum) {
if (firsrNum > secondNum) {
return firsrNum - secondNum;
}
return secondNum - firsrNum;
}

/**
* Произведение двух чисел
* @param {number} firsrNum
* @param {number} secondNum
* @returns {number} произведение введенных параметров
*/
function mul (firsrNum, secondNum) {
return firsrNum * secondNum;
}

/**
* Деление двух чисел.
* @param {number} firsrNum делимое
* @param {number} secondNum делитель
* @returns {number} сумма введенных параметров
*/
function div (firsrNum, secondNum) {
return (firsrNum / secondNum).toFixed(2);
}

</script>
</body>
</html>
103 changes: 103 additions & 0 deletions JSLessonTwo/5.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Homework</title>
</head>
<body>
<!--
Обязательное задание.

Необходимо скопировать и вставить в данный скрипт все функции из 4 задания.
Необходимо реализовать функцию:
mathOperation(arg1, arg2, operation);
Параметры:
arg1 - первое число.
arg2 - второе число.
operation - строка, которая содержит один символ из: "+", "-", "*", "/".
Функция mathOperation должна вернуть результат операции, который был передан в
параметр operation для двух первых аргументов (arg1 и arg2).
Функция mathOperation должна использовать для вычисления функции из 4 задания.

Примеры вызова функции:
console.log(mathOperation(5, 3, "+")); // 8
console.log(mathOperation(5, 3, ":)")); // NaN

Функции mathOperation всегда передаются корректные числа, проверки на NaN,
Infinity делать не нужно, однако, в случае если был передан некорректный
аргумент в параметр operation, необходимо вернуть NaN.

Необходимо для всех функций прописать комментарии jsdoc https://jsdoc.app/.
-->
<script>
"use strict";

/**
* Производит базовые математические действия с двумя числами
* @param {number} arg1
* @param {number} arg2
* @param {string} operation математическое действие (Возможные значения: "+", "-", "*", "/")
* @returns {number} результат математического действия
*/
function mathOperation(arg1, arg2, operation) {
switch(operation) {
case "+":
return sum(arg1, arg2);
case "-":
return subt(arg1, arg2);
case "*":
return mul(arg1, arg2);
case "/":
return div(arg1, arg2);
default:
return NaN;
}

}

/**
* Cумма двух чисел
* @param {number} firsrNum
* @param {number} secondNum
* @returns {number} сумма введенных параметров
*/
function sum (firsrNum, secondNum) {
return firsrNum + secondNum;
}

/**
* Разница двух чисел. Меньшее число всегда будет вычитаемым,
* не зависимо от порядка ввода
* @param {number} firsrNum
* @param {number} secondNum
* @returns {number} разница введенных параметров
*/
function subt (firsrNum, secondNum) {
if (firsrNum > secondNum) {
return firsrNum - secondNum;
}
return secondNum - firsrNum;
}

/**
* Произведение двух чисел
* @param {number} firsrNum
* @param {number} secondNum
* @returns {number} произведение введенных параметров
*/
function mul (firsrNum, secondNum) {
return firsrNum * secondNum;
}

/**
* Деление двух чисел.
* @param {number} firsrNum делимое
* @param {number} secondNum делитель
* @returns {number} сумма введенных параметров
*/
function div (firsrNum, secondNum) {
return (firsrNum / secondNum).toFixed(2);
}
</script>
</body>
</html>
55 changes: 55 additions & 0 deletions JSLessonTwo/6.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Homework</title>
</head>
<body>
<!--
Необязательное задание.

Необходимо реализовать функцию, которая будет принимать первым аргументом
целое положительное число, в следующих трех аргументах функция принимает слова
в разных склонениях.
Функция должна возвращать одно из трех переданных в параметры слов подходящее
под число, которое передано первым аргументом.

Пример:
console.log(declinationOfNumber(1, "яблоко", "яблока", "яблок")); // "яблоко"
console.log(declinationOfNumber(2, "мяч", "мяча", "мячей")); // "мяча"
console.log(declinationOfNumber(5, "стул", "стула", "стульев")); // "стульев"

Функция должна работать с любым словом и любым целым положительным числом.
Все аргументы, которые будут передаваться функции будут верны.
-->
<script>
"use strict";

function declinationOfNumber(count, one, two, five) {
count = String(count);
const lastNumber = Number(count.charAt(count.length-1))
const isSecondDecade = count.length > 1 && Number(count.charAt(count.length-2)) === 1;

if (!isSecondDecade && lastNumber === 1) {
return one;
} else if (!isSecondDecade && lastNumber > 1 && lastNumber < 5) {
return two;
}
return five;
}

// Число яблок, можно пробовать поставить свое целое, положительное число.
const applesNumber = 5;
// Получаем от функции одно из слов "яблоко", "яблока" или "яблок".
const word = declinationOfNumber(applesNumber, "яблоко", "яблока", "яблок");
// Выводим корректную строку, например:
// "У меня есть 1 яблоко."
// "У меня есть 2 яблока."
// "У меня есть 5 яблок."
// При любом целом, положительном числе в applesNumber, строка, которая
// выводится в console.log, должна иметь правильное склонение слова "яблоко".
console.log(`У меня есть ${applesNumber} ${word}.`);

</script>
</body>
</html>