Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/doctored11/firststartertasks

практика на простых задачках
https://github.com/doctored11/firststartertasks

Last synced: 6 days ago
JSON representation

практика на простых задачках

Awesome Lists containing this project

README

        

# Список моих задачек

---

### Task1

Напишите функцию **filter()**, которая создаёт и выводит массив email-адресов, не попавших в чёрный список. В качестве аргументов функция должна принимать: массив строк с исходными email адресами, массив строк с email адресами в чёрном списке.

> не обязательно писать mail по стандарту, можно использовать любые слова

_мое решение в папочке Task2_

### Task2

Напишите функцию **filter**, фильтрующую массив объектов по значению свойства.

```js
let objects = [
{ name: "Василий", surname: "Васильев" },
{ name: "Иван", surname: "Иванов" },
{ name: "Пётр", surname: "Петров" },
];
```

Массив, название свойства и нужное значение должны передаваться в качестве аргументов. Пример использования:

```js
let result = filter(objects, "name", "Иван");
```

Результат выполнения должен быть:

```js
[{ name: "Иван", surname: "Иванов" }];
```

> Мини подсказка:
>
> - было бы правильно вспомнить о методах Object,
> Особенно о Object.key и Object.entries

_мое решение в папочке Task2_

### Task3

Создайте страницу, которая спрашивает имя у пользователя и выводит его в модальном окне.

> Мини подсказка:
>
> - было бы правильно вспомнить о взаимодействие в js, alert, prompt, confirm

_мое решение в папочке Task3_

### Task4

Напишите функцию **degreeUp**, которая возвращает x в степени n. Иначе говоря, умножает x на себя n раз и возвращает результат. Желательно забирать у пользователя значения используя взаимодействие ввода (prompt).

```
// _пример 1_
n = 5;
x = 2;
result = 32;

// _пример 2_
n = 2;
x = 0.1;
result = 0.01;
```

_мое решение в папочке Task4_

### Task5

Создайте HTML-страницу с полем для ввода числа, кнопкой и div-элементом с числом 0. В поле для ввода должно вводиться число с количеством секунд, после изменения поля должен запускаться таймер. При запуске таймера число в div-элементе должно замениться на введённое в поле. Затем каждую секунду оно должно уменьшаться на единицу до тех пор, пока не дойдёт до 0. При этом таймер должен корректно работать, если во время его работы пользователь запускает его заново.

> Мини подсказка:
>
> - лучше ознакомиться с DOM деревом, особенно про **document.querySelector** и **.textContent**
> - так же для таймера рекомендуется быть вкурсе о **setInterval()**

_мое решение в папочке Task5_

### Task6

С помощью js создайте страницу с полем для ввода и пустым h-элементом. Введённый в поле текст должен отображаться внутри h-элемента, но с задержкой в 300 мс (можно больше, но не нужно). При этом каждый введённый пользователем в поле символ **сбрасывает предыдущий** отложенный вызов и запускает новый. Таким образом программа **должна ожидать завершения ввода пользователя** и только после этого изменять текст в h.

> Мини подсказка:
>
> - в html файле внутри тега body ничего не должно быть, допустимо только подключение скрипта
> - Стоит ознакомиться с setTimeout() и clearTimeout()
> - Лучше знать о **document.createElement** , **.append** , **.prepend** и **.addEventListener** , чем не знать)

_мое решение в папочке Task6_

### Task7

Сделайте страницу с переводом любого десятичного числа в число
с системой счисления до 16. Пользователь должен вводить число в десятичной системе счисления и основание системы для нового числа.

_мое решение в папочке Task7_

### Task8
Cоздайте класс Computer c методами позволяющими менять его комплектующие (процессор, оперативную память, накопитель, экран и клавиатуру).
У каждой "детали" должны быть собственные характеристики (вес и например размеры или частота или потребляемая мощность...).
Классы этих комплектующих желательно сделать иммутабельными.
Создайте метод который считает вес собраного компьютера, а так же метод с выводом всех характеристик включая вес.

_мое решение (на языке Java) в папочке Task8_

### Task9
Прямо в классе Main напишите цикл, который найдет все числовые коды русского алфавита (желательно учитывать оба регистра )

_мое решение (на языке Java) в папочке Task9_

### Task10
На вход подается строка из 2х чисел(a,b) , напишите программу обнуляющее b последних битов числа а

_мое решение (на языке Java) в папочке Task10_

### Task11

Напишите класс Vector2D (вектор на плоскости).
В классе необходимо предусмотреть:
Два публичных дробных поля (double) vX и vY - значения проекций вектора на оси.
- Конструктор без параметров, который инициализирует вектор значениями (1,1).
- Конструктор с двумя параметрами (проекция на ось X, проекция на ось Y).
- Конструктор с параметром Vector2D (такие конструкторы в литературе принято называть конструкторами копирования).
- Метод print(), который выводит вектор на экран в виде: (vX, vY), при этом значения проекций округлить до двух знаков после запятой. Разделитель в дробных числах - точка. Например, при печати вектора с проекциями vX = 1.2374 и vY = 2.2334, на экране должно появиться (1.24, 2.23).
Для организации форматного вывода можно воспользоваться методом format() класса String. После выполнения следующей строки: System.out.println(String.format(Locale.US, "%.2f", 1.2345)); на экране появится число 1.23.
- Метод вычисления длины вектора length().
- Метод add(Vector2D v), прибавляющий вектор, указанный в аргументе, к текущему.
- Метод sub(Vector2D v), вычитающий вектор, указанный в аргументе, из текущего.
Метод scale(double scaleFactor), умножающий текущий вектор на scaleFactor.

##### дополнительно можно предусмотреть:
- Метод normalized(), нормализующий текущий вектор. Нормализация вектора — это преобразование заданного вектора в вектор в том же направлении, но с единичной длиной.
- Метод dotProduct(Vector2D v), возвращающий скалярное произведение вектора, указанного в аргументе, и текущего вектора. Скалярным произведением двух векторов a и b будет скалярная величина, равная сумме попарного произведения координат векторов a и b.
Статическое поле count для подсчета количества созданных векторов.

примеры для проверки

| На вход (main) | ожидаемый вывод в консоль|
| ------------- |:-------------:|
| Vector2D v = new Vector2D(1.2374, 2.2334);
Vector2D v2 = new Vector2D();
Vector2D v3 = new Vector2D(v);
v.print();
v2.print();
v3.prin();
|(1.24, 2.23)
(1.00, 1.00)
(1.24, 2.23)
|
|Vector2D vA = new Vector2D();
Vector2D vB = new Vector2D(1.0, 3.0);
Vector2D vc = new Vector2D(vB);
vA.add(vB);
VA.print();
vA.sub(vC);
VA.print();
system.out.print1n(vB.length());
vC.scale(2);
vC.print();
| (2.00, 4.00)
(1.00, 1.00)
3.1622776601683795
(2.00, 6.00)
|
| Vector2D vA = new Vector2D();
Vector2D vB = new Vector2D(5.0, 7.0);
Vector2D vc = new Vector2D(vB) ;
vA.add(vB);
VA.print();
vA.sub(vC);
VA.print();
system.out.print1n(vB.length());
vC.scale(1.5);
vC.print();
vC.normalized() ;
System.out.print1n(vC.Length());
vC.scale(2);
system.out.print1n(vA.dotProduct(vB))
system.out.print1n(vA.count) ;
| (6.00 8.00)
(1.00 1.00)
8.602325267
(7.50 10.50)
1.0
12.0
3
|

_мое решение (на языке Java) в папочке Task11_

### Task 12
Задача:
На вход подается количество ящиков,
один грузовик помещается максимум 12 контейнеров. В каждый контейнер — не более 27 ящиков. Ящики, контейнеры и грузовики пронумерованы. Напишите код для удобного вывода всех ящиков в контейнерах и грузовиков в формате:
Грузовик: 1
| Контейнер: 1
|| Ящик: 1
|| Ящик: 2
Необходимо:
грузовиков - 1 шт.
контейнеров - 1 шт.

_мое решение (на языке Java) в папочке Task12_

### Task 13

Реализуйте удаление лишних символов при вводе номера телефона в консоли и проверку соответствия номера формату мобильных номеров в России. Если введённую строку нельзя привести к формату мобильного номера, выводите сообщение о неверном вводе. Телефон может быть введён не только в формате 79091234567, но и с лишними символами.
| На вход в консоль | ожидаемый вывод в консоль|
| ------------- |:-------------:|
| +7 909 123-45-67 | 79091234567 |
| 8-905-1234567 | 79051234567 |
| 9-453-1234567 | Неверный формат номера |
| 905-1234567 | 79051234567 |