Skip to content

Commit 6dde893

Browse files
committed
Добавлена новая информация в файл Readme.md
1 parent fc34a4c commit 6dde893

File tree

1 file changed

+12
-153
lines changed

1 file changed

+12
-153
lines changed

README.md

Lines changed: 12 additions & 153 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,17 @@
99

1010
Исходный код представлен на языке программирования PHP (версия интерпретатора = 8.1.2).
1111

12+
Наиболее интересные и сложные задачи, представленные в данном репозитории (на мой взгляд):
13+
14+
- [Решето Эратосфена (поиск последовательности простых чисел)](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/15%20-%20sieve_of_eratosthenes.php)
15+
- [Различные операции с матрицами (двумерными массивами)](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/19%20-%20matrix_arithmetic.php)
16+
- [Конвертация чисел в разные системы счислений без использования встроенных в языке методов](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/10%20-%20dec_to_hex%2C%20hex_to_dec.php)
17+
- [Подсчёт суммы всех цифр в числе с использованием регулярных выражений](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/09%20-%20sum_of_all_digits.php)
18+
- [Факторизация натурального числа (разложение на простые сомножители)](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/13%20-%20factorize_the_number.php)
19+
- [Два варианта реализации поиска уникальных элементов в списке случайных чисел](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/17%20-%20unique_elements.php)
20+
21+
С полным списком всех 20 задач и ссылками на исходный код с решениями можно ознакомиться [здесь](https://github.com/sudomango/PHP-Algo-A/blob/main/all_tasks_readme.md).
22+
1223
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
1324

1425
<details><summary>💿 Установка и запуск решений на компьютере:</summary>
@@ -38,162 +49,10 @@ php script_name.php
3849

3950
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
4051

41-
## Список задач в репозитории
42-
43-
<details><summary>Первый блок задач (задачи 01 - 10):</summary>
44-
45-
<br>
46-
47-
01\. Функция, которая проверяет, является ли указанный год високосным.
48-
49-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/01%20-%20is_leap_year.php)
50-
51-
<br>
52-
53-
02\. Функция, которая проверяет, является ли число, переданное в качестве аргумента, простым.
54-
55-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/02%20-%20is_prime_number.php)
56-
57-
<br>
58-
59-
03\. Функция, которая генерирует одномерный массив случайных целых чисел размером count. Все числа должны находиться в диапазоне min_value ... max_value. Дополнительно следует реализовать возможность генерации массива, состоящего только из уникальных (неповторяющихся) элементов.
60-
61-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/03%20-%20random_int_array.php)
62-
63-
<br>
64-
65-
04\. Фильтрация исходного массива: Дан массив из 100 случайных целых чисел. Создать два новых массива на основе первого = в первом оставить только чётные положительные числа, во втором - двузначные числа, кратные 10. Вывести оригинальный массив и оба получившихся массива на экран консоли.
66-
67-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/04%20-%20array_filter.php)
68-
69-
<br>
70-
71-
05\. Использование ассоциативных массивов: Зарплата сотрудника вычисляется по формуле = 1000$ + 20$ за каждый отработанный час + 30$ за каждого нового клиента. Подсчитать зарплату каждого из сотрудников. Вывести их в порядке от "лучшего" к "худшему". Каждый сотрудник представляет собой ассоциативный массив.
72-
73-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/05%20-%20salary_amount_calculate.php)
74-
75-
<br>
76-
77-
06\. Дан список продуктов на складе. У каждого есть срок его изготовления и срок годности (всегда указан в днях). Необходимо проверить, какие продукты на текущую дату можно считать просроченными, а какие - всё ещё свежими. Даты можно указать любые, главное, чтобы было видно, что функция работает правильно.
78-
79-
[Исходный код решения (использование функции strtotime)](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/06%20-%20is_still_fresh_one.php)
80-
81-
[Исходный код решения (использование методов класса DateTime)](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/06%20-%20is_still_fresh_two.php)
82-
83-
<br>
84-
85-
07\. Реализовать программу "Калькулятор для вклада". Пользователь вводит начальную сумму и количество месяцев, после чего должен получить финальную сумму, которая будет на вкладе по истечению указанного им срока. Условия вклада такие: любая сумма до 6 месяцев (включительно) = 6.5% годовых; если вклад делается на срок больше 6 месяцев, то для сумм больше 500.000 процентная ставка = 8%, для сумм меньших или равных 500.000 = 10%. Все вклады идут с ежемесячной капитализацией процентов (проценты каждый месяц прибавляются к сумме вклада, и в новом месяце процент считается уже от новой суммы).
86-
87-
Так как это учебная программа, результат при выводе разрешается округлить до 2-3 знаков после запятой.
88-
89-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/07%20-%20deposit_calculator.php)
90-
91-
<br>
92-
93-
08\. Даны две строки, необходимо выяснить являются ли они анаграммами? В содержании строк следует учитывать только буквы и цифры. Пробелы и знаки препинания необходимо удалить или игнорировать их при сравнении. Сравнение сделать case-insensitive (регистронезависимым).
94-
95-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/08%20-%20is_an_anagram.php)
96-
97-
<br>
98-
99-
09\. Вывести на экран сумму всех цифр указанного числа (функция должна работать в том числе и для отрицательных чисел, и для вещественных).
100-
101-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/09%20-%20sum_of_all_digits.php)
102-
103-
<br>
104-
105-
10\. Реализовать функции dec_to_hex, hex_to_dec, dec_to_bin, bin_to_dec, rgb_to_hex, hex_to_rgb без использования аналогичных функций, встроенных в язык программирования. Входные данные = целые неотрицательные числа в указанной системе счисления в виде строки: "40AC20", "600", "1011011" и т. д. RGB-цвет должен быть представлен в виде массива из трёх целочисленных значений (0 .. 255).
106-
107-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_01/10%20-%20dec_to_hex,%20hex_to_dec.php)
108-
109-
</details>
110-
111-
<div style="margin-top: 16px"></div>
112-
113-
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
114-
115-
<details><summary>Второй блок задач (задачи 11 - 20):</summary>
116-
117-
<br>
118-
119-
11\. Количество вхождений элемента в последовательность: В текстовом файле записана произвольная строка или текст. Пользователь вводит символ или подстроку. Необходимо вывести, какое количество раз она повторяется в исходном тексте. Поиск сделать case-insensitive (регистронезависимым).
120-
121-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/11%20-%20repeated_elements_count.php)
122-
123-
<br>
124-
125-
12\. Реализовать функцию, которая выводит на экран все делители указанного натурального числа.
126-
127-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/12%20-%20find_all_divisors.php)
128-
129-
<br>
130-
131-
13\. Функция, которая раскладывает натуральное число (n > 1) на простые сомножители.
132-
133-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/13%20-%20factorize_the_number.php)
134-
135-
<br>
136-
137-
14\. Дан массив из натуральных чисел. Найти НОД для всех чисел в указанном массиве.
138-
139-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/14%20-%20nod_of_the_array.php)
140-
141-
<br>
142-
143-
15\. Решето Эратосфена: Вывести список всех простых чисел в диапазоне от 2 до \<user_number\>.
144-
145-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/15%20-%20sieve_of_eratosthenes.php)
146-
147-
<br>
148-
149-
16\. Реализовать две функции для целочисленной арифметики денежных единиц: одна - для сложения, вторая - для вычитания. Мы знаем, что представление дробной части вещественного числа в компьютере не всегда точное из-за особенностей двоичной арифметики. Поэтому для денежных единиц обычно создаётся отдельный объект, в котором реализованы свои методы для арифметических операций с этим объектом. Копейки считаются отдельно, а рубли - отдельно. Так как мы пока не затрагиваем ООП, предлагается реализовать описанный функционал через ассоциативные массивы (словари).
150-
151-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/16%20-%20money_true_calculation.php)
152-
153-
<br>
154-
155-
17\. Дан массив случайных чисел. Вывести на экран только уникальные (неповторяющиеся) элементы.
156-
157-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/17%20-%20unique_elements.php)
158-
159-
<br>
160-
161-
18\. Реализовать две функции: Первая вычисляет, является ли указанная строка палиндромом. Вторая делает тоже самое, но для целых неотрицательных чисел. Можно использовать любой известный алгоритм для вычисления палиндромов.
162-
163-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/18%20-%20palindrome_function.php)
164-
165-
<br>
166-
167-
19\. Матричная арифметика = целых четыре подзадачи в одной. В дальнейшем считать матрицу и двумерный массив синонимами. Все индексы будем считать с нуля.
168-
169-
Итак, дана квадратная матрица 5-го порядка. Можно наполнить её любыми целыми числами.
170-
171-
A\. Вывести на экран исходную и транспонированную ей матрицу. Вывод обязательно реализовать с выравниванием по столбцам.
172-
173-
B\. Вывести сумму элементов с чётными индексами на главной диагонали. Например: A[0][0], A[2][2] и т. д. Исходная матрица может быть любого размера (но она обязательно будет квадратной).
174-
175-
C\. Вывести последнюю цифру суммы всех элементов на главной и побочной диагоналях.
176-
177-
D\. Найти и вывести минимальный элемент матрицы и координаты (индексы) его последнего вхождения.
178-
179-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/19%20-%20matrix_arithmetic.php)
180-
181-
<br>
182-
183-
20\. Найти и вывести на экран НОД и НОК для двух указанных натуральных чисел. Разрешается использовать любой известный алгоритм, кроме встроенных в язык программирования функций.
184-
185-
[Исходный код решения](https://github.com/sudomango/PHP-Algo-A/blob/main/Block_02/20%20-%20nok_and_nod_of_two_numbers.php)
186-
187-
</details>
188-
189-
<div style="margin-top: 16px"></div>
190-
191-
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
192-
19352
## Некоторые примечания
19453

19554
Весь код проверен на работоспособность на Windows 10 и Ubuntu Server 22.04, результат выполнения всегда соответствует поставленному условию задачи.
19655

19756
![Source Code Sreenshot](resources/source_code_screen.jpg)
19857

199-
Весь исходный код **служит для учебных целей**, в связи с чем в нём могут встречаться различные пояснительные комментарии, не всегда оптимальные алгоритмы, отладочная информация и так далее.
58+
Весь исходный код **служит для учебных целей**, в связи с чем в нём могут встречаться различные пояснительные комментарии, не всегда оптимальные алгоритмы, отладочная информация и так далее.

0 commit comments

Comments
 (0)