Ежедневно, по будням будут выходить задачи PHP. Каждая задача имеет свою "изюминку". Решая такие задачи, вы будете развивать свои программисткие скиллы. И через некоторое время вы заметите, что ваш код становится изящным и простым, а рабочие проблемы решаются гораздо проще.
Задачи будут выходить по будням, 14.00. Решайте и присылайте ваш код в комментарии к задаче. Начинаем 27-го ноября!
Задачи будут выходить по будням, 14.00. Решайте и присылайте ваш код в комментарии к задаче. Начинаем 27-го ноября!
Задача 1
Проверка на степень
Проверьте, что целое число является степенью другого целого числа. Например, 4 - вторая степень двойки, 9 - вторая степень тройки, 16 - одновременно степень и двойки и четверки. Результатом верните все варианты разложения числа на основание степени и ее показатель.
Проверка на степень
Проверьте, что целое число является степенью другого целого числа. Например, 4 - вторая степень двойки, 9 - вторая степень тройки, 16 - одновременно степень и двойки и четверки. Результатом верните все варианты разложения числа на основание степени и ее показатель.
Задача 2
Проверка на похожесть слов
Некоторые слова выглядят одинаково, если заменить русскую букву на английскую и наоборот. Например, русская и английская буквы 'o', а также 'H' и другие, совпадают. Это может создать проблемы на сайте, к примеру, можно зарегистрировать два 'одинаковых' ника с буквами из разных языков и писать от чужого имени.
Напишите функцию, которая сравнивает строки, учитывая язык - строки, написанные буквами разных языков, но выглядящие одинаково, следует признать равными. Для простоты берем только русский и английский языки.
Проверка на похожесть слов
Некоторые слова выглядят одинаково, если заменить русскую букву на английскую и наоборот. Например, русская и английская буквы 'o', а также 'H' и другие, совпадают. Это может создать проблемы на сайте, к примеру, можно зарегистрировать два 'одинаковых' ника с буквами из разных языков и писать от чужого имени.
Напишите функцию, которая сравнивает строки, учитывая язык - строки, написанные буквами разных языков, но выглядящие одинаково, следует признать равными. Для простоты берем только русский и английский языки.
Задача 3
Подсчет цифр в массиве
Дан массив с числами. Подсчитайте количество цифр 3 в данном массиве. Например, в следующем массиве их пять:
[10, 13, 35, 3, 433]
Подсчет цифр в массиве
Дан массив с числами. Подсчитайте количество цифр 3 в данном массиве. Например, в следующем массиве их пять:
[10, 13, 35, 3, 433]
Задача 4
Дата масленницы
Определите дату ближайшей масленницы (последнее воскресенье зимы). Если в этом году она уже была - покажите за следующий год.
Дата масленницы
Определите дату ближайшей масленницы (последнее воскресенье зимы). Если в этом году она уже была - покажите за следующий год.
Задача 5
Попадание дня в месяц
Дана переменная, содержащая номер дня года от 1 до 366:
$day = 100;
Дана переменная, содержащая год:
$year = 2020;
Напишите код, который узнает в какой месяц года приходится заданный день.
Попадание дня в месяц
Дана переменная, содержащая номер дня года от 1 до 366:
$day = 100;
Дана переменная, содержащая год:
$year = 2020;
Напишите код, который узнает в какой месяц года приходится заданный день.
Задача 6
Названия файлов транслитом
Пусть есть папка с файлами, названия которых даны на русском языке. Преобразуйте русский текст в названиях файлов в его транслит.
Названия файлов транслитом
Пусть есть папка с файлами, названия которых даны на русском языке. Преобразуйте русский текст в названиях файлов в его транслит.
Конкурс CSS картинок. Тема: Новый Год.
Подведение итогов: 31 декабря. Приглашаются все желающие:)
Подробности тут:
https://vk.com/topic-42967112_50416136
P.S.
На прикрепленном фото скрин работы победителя предыдущего конкурса - Сергея Лазарева. Она анимированная) подробнее рассмотреть работу можно в ветке конкурса (ссылка выше)!
Подведение итогов: 31 декабря. Приглашаются все желающие:)
Подробности тут:
https://vk.com/topic-42967112_50416136
P.S.
На прикрепленном фото скрин работы победителя предыдущего конкурса - Сергея Лазарева. Она анимированная) подробнее рассмотреть работу можно в ветке конкурса (ссылка выше)!
Задача 7
Случайная картинка из папки
В папке лежат файлы картинок. При заходе пользователя на сайт покажите ему случайную картинку из этой папки. Если он обновит страницу или зайдет через некоторое - картинка, показываемая ему, не должна поменяться.
Случайная картинка из папки
В папке лежат файлы картинок. При заходе пользователя на сайт покажите ему случайную картинку из этой папки. Если он обновит страницу или зайдет через некоторое - картинка, показываемая ему, не должна поменяться.
Задача 8
Нарастающее разбиение строки
Дана строка с любыми символами. Для примера пусть будет такая:
'1234567890'
Нужно разбить строку в массив таким образом:
['1', '23', '456', '7890']
И так далее, пока символы в строке не закончатся.
Нарастающее разбиение строки
Дана строка с любыми символами. Для примера пусть будет такая:
'1234567890'
Нужно разбить строку в массив таким образом:
['1', '23', '456', '7890']
И так далее, пока символы в строке не закончатся.
Задача 9
Заглавные буквы в начале предложения
Дан текст. Сделайте заглавной первую букву каждого предложения в этом тексте.
Заглавные буквы в начале предложения
Дан текст. Сделайте заглавной первую букву каждого предложения в этом тексте.
Задача 10
Пересечение строк
Даны две строки. Выведите на экран только те слова, которые содержатся в обеих строках.
Пересечение строк
Даны две строки. Выведите на экран только те слова, которые содержатся в обеих строках.
Задача 11
Разделение числа на случайную сумму
Дано целое число. Разбейте его на случайное количество целых чисел так, чтобы в сумме они давали это число. Пример: 100 можно разбить на 50+50, или 51+49, или 20+30+50. Количество фрагментов должно быть любым, случайным, сами фрагменты тоже должны быть случайными.
Разделение числа на случайную сумму
Дано целое число. Разбейте его на случайное количество целых чисел так, чтобы в сумме они давали это число. Пример: 100 можно разбить на 50+50, или 51+49, или 20+30+50. Количество фрагментов должно быть любым, случайным, сами фрагменты тоже должны быть случайными.
Задача 12
Случайная уникальная строка
Посмотрите на сайт jsfiddle.net и похожие на него. Там при сохранении странице присваивается адрес, состоящий из больших и маленьких букв. При этом адреса не должны повторяться, иначе будет конфликт.
Придумайте идею, как это сделать, и реализуйте функцию, который будет генерировать случайную строку, которая не встречалась ранее.
Случайная уникальная строка
Посмотрите на сайт jsfiddle.net и похожие на него. Там при сохранении странице присваивается адрес, состоящий из больших и маленьких букв. При этом адреса не должны повторяться, иначе будет конфликт.
Придумайте идею, как это сделать, и реализуйте функцию, который будет генерировать случайную строку, которая не встречалась ранее.
Задача 13
Календарь текущего месяца
Напишите скрипт, который выводит календирик текущего месяца (квадратный, с днями недели).
Календарь текущего месяца
Напишите скрипт, который выводит календирик текущего месяца (квадратный, с днями недели).
Задача 14
Противоположность array_unique
Реализуйте функцию-противоположность array_unique. Наша функция должна оставлять элементы, имеющие дубли.
Противоположность array_unique
Реализуйте функцию-противоположность array_unique. Наша функция должна оставлять элементы, имеющие дубли.
Задача 15
Корректность времени
Дано время в формате часы:секунды. Проверьте то, что время является корректным: часы от 00 до 23, а минуты от 00 до 59.
Корректность времени
Дано время в формате часы:секунды. Проверьте то, что время является корректным: часы от 00 до 23, а минуты от 00 до 59.
Задача 16
Счастливые билеты
Выведите на экран все счастливые билеты. Счастливый билет - это когда сумма первых трех цифр в номере билета равна сумме второй тройки цифр (номер шестизначный). Подсчитайте сколько счастливых билетов существует и какой % они составляют от общего числа билетов.
Счастливые билеты
Выведите на экран все счастливые билеты. Счастливый билет - это когда сумма первых трех цифр в номере билета равна сумме второй тройки цифр (номер шестизначный). Подсчитайте сколько счастливых билетов существует и какой % они составляют от общего числа билетов.
Задача 17
Половина заглавных букв
Дана строка с маленькими буквами. Сделайте заглавными половину случайных букв этой строки, игнорируя пробелы.
Половина заглавных букв
Дана строка с маленькими буквами. Сделайте заглавными половину случайных букв этой строки, игнорируя пробелы.
Задача 18
Следующий элемент ряда
Дан ряд: a, b, c ,d ... x, y, z , aa, ab, ac, ... ay, az, ba, bb, ... bz, ... aaz.. Напишите функцию, которая получит следующий элемент по предыдущему.
Следующий элемент ряда
Дан ряд: a, b, c ,d ... x, y, z , aa, ab, ac, ... ay, az, ba, bb, ... bz, ... aaz.. Напишите функцию, которая получит следующий элемент по предыдущему.