Треки
/
PHP
PHP
/
Вправи
/
Щасливі числа
Щасливі числа

Щасливі числа

Навчальна вправа

Вступ

Жонглювання типами

Жонглювання типами також називають приведенням типів. Жонглювання типами - це коли два значення різних типів зводяться до одного типу, щоб виконати операцію.

$baskets = 5 // int
$apples_per_basket = "3" // string
$baskets * $apples_per_basket
# => 15

Це може відбуватися неявно (див. приклад вище) або явно, за допомогою приведення типів у стилі C:

$apples_per_basket = "3" // string
$my_number = (int) $apples_per_basket // cast string to int
# => 3 // int

Для ручного приведення типів дозволені такі типи: bool, int, float, string, array, object. Найчастіше приведення типів використовують, щоб перетворити ціле число (int) на число з плаваючою комою (float) або навпаки.

Вказівки

Наш друг Kojo дуже любить числа. У нього є невеликий сайт, де можна гратися з числами. Kojo не дуже добре програмує, тож він попросив нас про допомогу.

Ми створимо два допоміжні методи для нових числових ігор на сайті Kojo, а також третій, щоб перевіряти деякі введені користувачем дані.

1. Обчисліть суму чисел на гральному автоматі

Одна з ігор на сайті Kojo має вигляд грального автомата, який показує дві групи коліс із цифрами. Кожна група цифр представляє число. Для ігрової механіки Kojo потрібно знати суму цих двох чисел.

Напишіть метод sumUp, який приймає два масиви як параметри. Кожен масив складається з однієї або більше цифр від 0 до 9. Функція повинна інтерпретувати кожен масив як число та повернути суму цих двох чисел.

<?php
$lucky_numbers = new LuckyNumbers()

$lucky_numbers->sumUp([1, 2, 3], [0, 7]);
//=> 130

// [1, 2, 3] represents 123 and [0, 7] represents 7.
// 123 + 7 = 130

2. Визначте, чи є число паліндромом

На сайті є ще одна гра, невелика вікторина під назвою «Щасливі числа». Користувач може ввести число й побачити, чи належить воно до якоїсь таємної послідовності або закономірності. Послідовність або закономірність «щасливих чисел» змінюється щомісяця, і кожен користувач має лише обмежену кількість спроб, щоб її вгадати.

Щасливими числами цього місяця мають бути числа-паліндроми. Числа-паліндроми не змінюються, якщо записати їхні цифри у зворотному порядку.

Реалізуйте нову функцію isPalindrome, яка приймає ціле число як параметр. Функція повинна повернути true, якщо число є паліндромом, і false в іншому разі. Вхідне число завжди буде додатним цілим числом.

<?php
$lucky_numbers = new LuckyNumbers()

$lucky_numbers->isPalindrome(1441);
//=>  true

$lucky_numbers->isPalindrome(123);
//=> false

3. Створіть повідомлення про помилку для некоректних вхідних даних

У різних місцях сайту є поля введення, де користувачі можуть вводити числа й натискати кнопку, щоб запустити якусь дію. Kojo хоче покращити користувацький досвід свого сайту. Він хоче показувати повідомлення про помилку, якщо користувач натискає кнопку, а поле містить некоректне введене значення.

Ось трохи більше інформації про те, як формується значення поля введення.

  • Якщо користувач вводить щось у поле, повʼязане значення завжди є рядком тексту (англ. string), навіть якщо він ввів лише цифри.
  • Якщо користувач щось вводить, а потім стирає, змінна буде порожнім рядком тексту.
  • Ще до того, як користувач почне вводити, змінна буде порожнім рядком тексту.

Напишіть функцію validate, яка приймає введені користувачем дані як параметр. Якщо користувач не надав жодних вхідних даних, validate має повернути 'Required field'. Якщо введене значення не є додатним цілим числом, що не дорівнює нулю (згідно з правилами перетворення типів PHP), слід повернути 'Must be a whole number larger than 0'. У всіх інших випадках можна вважати, що введені дані коректні, і тоді поверненим значенням має бути порожній рядок тексту.

<?php
$lucky_numbers = new LuckyNumbers()

$lucky_numbers->validate('123');
// => ''

$lucky_numbers->validate('');
// => 'Required field'

$lucky_numbers->validate('abc');
// => 'Must be a whole number larger than 0'
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
PHP Exercism

Час розпочати Щасливі числа?

Зареєструйтеся на Exercism, щоб вивчати й опановувати PHP, а також 11 концепцій122 вправи та справжнє наставництво від людей, і все це безкоштовно.