Kurzusok
/
PHP
PHP
/
Feladatok
/
Szerencseszámok
Szerencseszámok

Szerencseszámok

Tanulófeladat

Bevezetés

Típuszsonglőrködés

A típuszsonglőrködést automatikus típuskonverziónak is nevezik. A típuszsonglőrködés azt jelenti, hogy két különböző típusú érték ugyanarra a típusra alakul, hogy elvégezhető legyen egy művelet.

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

Ez történhet automatikusan (lásd a fenti példát), vagy explicit módon, C-stílusú kasztolással:

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

A kézi kasztolásnál megengedett típusok: bool, int, float, string, array, object. A kasztolást leggyakrabban arra használjuk, hogy egy egész számot (int) tizedes törtté (float) alakítsunk, vagy fordítva.

Utasítások

A barátod, Kojo nagy számrajongó. Van egy kis weboldala, ahol a számokkal játszadozhat. Kojo nem valami jó programozásban, ezért segítséget kért tőled.

Két segédmetódust fogsz írni Kojo weboldalának új számjátékaihoz, és egy harmadikat, amely ellenőrzi a felhasználó által megadható bemenetet.

1. Számítsd ki a nyerőgépen lévő számok összegét

Kojo weboldalán az egyik játék úgy néz ki, mint egy nyerőgép, amelyen két számjegyes kerékcsoport látható. A számjegyek mindegyik csoportja egy-egy számot jelöl. A játék működéséhez Kojónak ismernie kell a két szám összegét.

Írj egy sumUp metódust, amely két tömböt fogad paraméterként. Mindegyik tömb egy vagy több, 0 és 9 közötti számjegyből áll. A függvény mindegyik tömböt számként értelmezze, és adja vissza a két szám összegét.

<?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. Állapítsd meg, hogy egy szám palindrom-e

Az oldalon egy másik játék egy kis kvíz, amelynek a címe „Szerencseszámok”. A felhasználó beírhat egy számot, majd megnézheti, hogy a szám hozzátartozik-e valamilyen titkos sorozathoz vagy mintázathoz. A „szerencseszámok” sorozata vagy mintázata minden hónapban változik, és minden felhasználónak csak korlátozott számú próbálkozása van, hogy kitalálja.

Ebben a hónapban a szerencseszámok azok a számok, amelyek palindromok. A palindromszámok ugyanazok maradnak, ha a számjegyeiket megfordítjuk.

Valósítsd meg az új isPalindrome függvényt, amely egy egész számot fogad paraméterként. A függvény true-t adjon vissza, ha a szám palindrom, egyébként false-t. A bemeneti szám mindig pozitív egész szám lesz.

<?php
$lucky_numbers = new LuckyNumbers()

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

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

3. Készíts hibaüzenetet érvénytelen felhasználói bemenethez

A weboldal több helyén is vannak beviteli mezők, ahol a felhasználók számokat írhatnak be, és egy gombra kattintva elindíthatnak valamilyen műveletet. Kojo szeretné javítani az oldala felhasználói élményét. Szeretne hibaüzenetet megjeleníteni, ha a felhasználó rákattint a gombra, de a mező érvénytelen bemeneti értéket tartalmaz.

Íme néhány további információ arról, hogyan áll elő egy beviteli mező értéke.

  • Ha a felhasználó beír valamit egy mezőbe, a hozzá tartozó érték mindig string, még akkor is, ha csak számokat írt be.
  • Ha a felhasználó beír valamit, de aztán törli, a változó üres string lesz.
  • Mielőtt a felhasználó egyáltalán gépelni kezdene, a változó üres string.

Írj egy validate függvényt, amely paraméterként fogadja a felhasználói bemenetet. Ha a felhasználó nem adott meg semmilyen bemenetet, a validate a 'Required field' értékkel térjen vissza. Ha a bemenet nem pozitív, nullától különböző egész számot jelent (a PHP típuskonverziós szabályai szerint), akkor a 'Must be a whole number larger than 0' értéket kell visszaadni. Minden más esetben feltételezheted, hogy a bemenet érvényes, ekkor a visszatérési érték üres string legyen.

<?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'
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
PHP Exercism

Készen állsz elkezdeni a(z) Szerencseszámok feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) PHP nyelvet 11 fogalom121 feladat segítségével, valódi emberi mentorálással, mindez ingyen.