generated from hexlet-basics/exercises-template
-
Notifications
You must be signed in to change notification settings - Fork 3
/
description.ru.yml
70 lines (48 loc) · 3.37 KB
/
description.ru.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
---
name: Отрицание
theory: |
Наряду с конъюнкцией (И) и дизъюнкцией (ИЛИ), часто используется операция «отрицание». Отрицание меняет логическое значение на противоположное. В программировании ему соответствует унарный оператор `!`.
Если есть функция, проверяющая чётность числа, то с помощью отрицания можно выполнить проверку нечётности:
```javascript
const isEven = (number) => number % 2 === 0;
isEven(10); // true
!isEven(10); // false
```
https://replit.com/@hexlet/js-basics-logical-negation
То есть мы просто добавили `!` слева от вызова функции и получили обратное действие.
Отрицание — мощный инструмент, который позволяет лаконично выражать задуманные правила в коде без необходимости писать новые функции.
А что если написать так `!!isEven(10)`? Внезапно, но код сработает. В логике двойное отрицание подобно отсутствию отрицания вообще.
```javascript
isEven(10); // true
!isEven(10); // false
!!isEven(10); // true
```
instructions: |
В этом уроке вам нужно будет реализовать две функции `isPalindrome()` и `isNotPalindrome()`
1. Функция `isPalindrome()` определяет, является ли слово палиндромом или нет. Палиндром это слово, которое читается одинаково в обоих направлениях.
```javascript
isPalindrome('шалаш'); // true
isPalindrome('ага'); // true
isPalindrome('хекслет'); // false
// Слова в функцию могут быть переданы в любом регистре
// Поэтому сначала нужно привести слово в нижний регистр word.toLowerCase()
isPalindrome('Ага'); // true
```
Для определения палиндрома необходимо перевернуть строку и сравнить ее с исходной. Для этого воспользуйтесь функцией `reverse()`
```javascript
reverse('мама'); // амам
```
2. Функция `isNotPalindrome()` проверяет что слово НЕ является палиндромом:
```javascript
isNotPalindrome('шалаш'); // false
isNotPalindrome('ага'); // false
isNotPalindrome('хекслет'); // true
```
Для этого, вызовите функцию `isPalindrome()` внутри `isNotPalindrome()` и примените отрицание.
tips:
- |
[Законы Де Моргана](https://ru.wikipedia.org/wiki/Законы_де_Моргана)
definitions:
- name: Отрицание
description: |
логическая операция, которая меняет логическое значение на противоположное.