Skip to content

Commit

Permalink
fix exercises (#547)
Browse files Browse the repository at this point in the history
* fix typo

* (48-conditionals/30-if) refactoring exercise according to python

* (50-loops/10-while) remove "usage examples" heading

* (50-loops/25-iteration-over-string) fix function name

* (50-loops/30-syntax-sugar) remove "usage examples" heading

* (50-loops/50-mutators) remove "usage examples" heading

* (50-loops/55-return-from-loops) remove game of thrones
  • Loading branch information
ashikov committed Mar 8, 2022
1 parent 14d48f7 commit a03119e
Show file tree
Hide file tree
Showing 11 changed files with 35 additions and 50 deletions.
2 changes: 1 addition & 1 deletion modules/45-logic/28-logical-negation/description.ru.yml
Expand Up @@ -35,7 +35,7 @@ instructions: |
isPalindrome('ага'); // true
isPalindrome('хекслет'); // false
// Слова в метод могут быть переданы в любом регистре
// Слова в функцию могут быть переданы в любом регистре
// Поэтому сначала нужно привести слово в нижний регистр word.toLowerCase()
isPalindrome('Ага'); // true
```
Expand Down
13 changes: 3 additions & 10 deletions modules/48-conditionals/30-if/description.ru.yml
Expand Up @@ -46,20 +46,13 @@ theory: |
instructions: |
Реализуйте функцию `getSentenceTone()`, которая принимает строку и определяет тон предложения. Если все символы в верхнем регистре, то это вопль — `'scream'`. В ином случае — нормальное предложение — `'general'`.
Реализуйте функцию `guessNumber()`, которая принимает число и проверяет, равно ли число заданному (пусть это будет 42). Если равно, то функция должна вернуть строку `'You win!'`, в противном случае нужно вернуть строку `'Try again!'`.
```javascript
getSentenceTone('Hello'); // general
getSentenceTone('WOW'); // scream
guessNumber(42) # 'You win!'
guessNumber(61) # 'Try again!'
```
Алгоритм:
1. Сгенерируйте строку в верхнем регистре на основе строки-аргумента с помощью `toUpperCase()`.
2. Сравните её с исходной строкой:
- Если строки равны, значит, строка-аргумент в верхнем регистре.
- В ином случае — строка-аргумент не в верхнем регистре.
tips: []

definitions: []
11 changes: 6 additions & 5 deletions modules/48-conditionals/30-if/index.js
@@ -1,10 +1,11 @@
// BEGIN
const getSentenceTone = (sentence) => {
if (sentence.toUpperCase() === sentence) {
return 'scream';
const guessNumber = (guess) => {
if (guess === 42) {
return 'You win!';
}
return 'general';

return 'Try again!';
};
// END

export default getSentenceTone;
export default guessNumber;
7 changes: 2 additions & 5 deletions modules/48-conditionals/30-if/test.js
Expand Up @@ -2,9 +2,6 @@ import { test, expect } from '@jest/globals';
import f from './index.js';

test('test', () => {
expect(f('general')).toBe('general');
expect(f('general?')).toBe('general');
expect(f('GeNeral?')).toBe('general');
expect(f('SCREAM')).toBe('scream');
expect(f('SCREAM!')).toBe('scream');
expect(f(100500)).toBe('Try again!');
expect(f(42)).toBe('You win!');
});
2 changes: 0 additions & 2 deletions modules/50-loops/10-while/description.ru.yml
Expand Up @@ -110,8 +110,6 @@ instructions: |
Модифицируйте функцию `printNumbers()` так, чтобы она выводила числа в обратном порядке. Для этого нужно идти от верхней границы к нижней. То есть счётчик должен быть инициализирован максимальным значением, а в теле цикла его нужно уменьшать до нижней границы.
Пример вызова и вывода:
```javascript
printNumbers(4);
```
Expand Down
18 changes: 10 additions & 8 deletions modules/50-loops/25-iteration-over-string/description.ru.yml
Expand Up @@ -29,16 +29,18 @@ theory: |
instructions: |
Реализуйте функцию `printReversedNameBySymbol()`, которая печатает переданное слово посимвольно, как в примере из теории, но делает это в обратном порядке.
Реализуйте функцию `printReversedWordBySymbol()`, которая печатает переданное слово посимвольно, как в примере из теории, но делает это в обратном порядке.
```javascript
const name = 'Arya';
printReversedNameBySymbol(name);
// => 'a'
// => 'y'
// => 'r'
// => 'A'
const word = 'Hexlet';
printReversedWordBySymbol(word);
// => 't'
// => 'e'
// => 'l'
// => 'x'
// => 'e'
// => 'H'
```
tips: []
8 changes: 4 additions & 4 deletions modules/50-loops/25-iteration-over-string/index.js
@@ -1,13 +1,13 @@
/* eslint operator-assignment: 0 */

// BEGIN
const printReversedNameBySymbol = (name) => {
let i = name.length - 1;
const printReversedWordBySymbol = (word) => {
let i = word.length - 1;
while (i >= 0) {
console.log(name[i]);
console.log(word[i]);
i = i - 1;
}
};
// END

export default printReversedNameBySymbol;
export default printReversedWordBySymbol;
2 changes: 0 additions & 2 deletions modules/50-loops/30-syntax-sugar/description.ru.yml
Expand Up @@ -17,8 +17,6 @@ instructions: |
Реализуйте функцию `filterString()`, принимающую на вход строку и символ, и возвращающую новую строку, в которой удален переданный символ во всех его позициях.
Пример вызова:
```javascript
const str = 'If I look back I am lost';
filterString(str, 'I'); // 'f look back am lost'
Expand Down
2 changes: 0 additions & 2 deletions modules/50-loops/50-mutators/description.ru.yml
Expand Up @@ -70,8 +70,6 @@ instructions: |
Для определения каждого n-ного элемента понадобится остаток от деления `%`. Подумайте, как его можно использовать.
Пример вызова:
```javascript
const text = 'I never look back';
// Каждый третий элемент
Expand Down
10 changes: 4 additions & 6 deletions modules/50-loops/55-return-from-loops/description.ru.yml
Expand Up @@ -48,13 +48,11 @@ instructions: |
* Строка
* Буква для поиска
Пример вызова:
```javascript
hasChar('Renly', 'R'); // true
hasChar('Renly', 'r'); // false
hasChar('Tommy', 'm'); // true
hasChar('Tommy', 'd'); // false
hasChar('Hexlet', 'H'); // true
hasChar('Hexlet', 'h'); // false
hasChar('Awesomeness', 'm'); // true
hasChar('Awesomeness', 'd'); // false
```
tips:
Expand Down
10 changes: 5 additions & 5 deletions modules/50-loops/55-return-from-loops/test.js
Expand Up @@ -2,9 +2,9 @@ import { test, expect } from '@jest/globals';
import f from './index.js';

test('test', () => {
expect(f('Renly', 'R')).toBe(true);
expect(f('Renly', 'r')).toBe(false);
expect(f('Tommy', 'm')).toBe(true);
expect(f('Tommy', 'd')).toBe(false);
expect(f('Tommy', 'y')).toBe(true);
expect(f('Hexlet', 'H')).toBe(true);
expect(f('Hexlet', 'h')).toBe(false);
expect(f('Awesomeness', 'm')).toBe(true);
expect(f('Awesomeness', 'd')).toBe(false);
expect(f('Awesomeness', 'o')).toBe(true);
});

0 comments on commit a03119e

Please sign in to comment.