Zadanie 1: Liczenie średniej wartości
Opis: Napisz funkcję, która przyjmuje tablicę liczb (całkowitych lub rzeczywistych) i zwraca ich średnią arytmetyczną.
Kroki rozwiązania:
- Sprawdź, czy tablica nie jest pusta. Jeśli jest, wynik średniej można zdefiniować jako 0 (lub umówić się, że funkcja zwróci 0 albo null w takim przypadku), aby uniknąć dzielenia przez zero.
- Zsumuj wszystkie liczby z tablicy (np. iterując pętlą foreach lub używając wbudowanej funkcji array_sum).
- Oblicz liczbę elementów tablicy (funkcją count).
- Podziel sumę przez liczbę elementów, aby uzyskać średnią.
- Zwróć obliczoną średnią.
Dane wejściowe:
$dane = [2, 8, 4, 6];
Zadanie 2: Formatowanie daty
Opis: Napisz funkcję, która przyjmuje datę w formacie „RRRR-MM-DD” (rok-miesiąc-dzień, np. „2023-07-15”) i zwraca tę datę w formacie „DD.MM.RRRR” (dzień.miesiąc.rok, np. „15.07.2023”).
Kroki rozwiązania:
- Przyjmij parametr będący łańcuchem znaków z datą w formacie rok-miesiąc-dzień.
- Rozbij ten łańcuch na trzy części: rok, miesiąc, dzień. Można to zrobić funkcją explode(„-„, $data) lub innym sposobem (np. substr).
- Ułóż nowy łańcuch w żądanej kolejności: najpierw dzień, potem miesiąc, potem rok. Między części wstaw kropki.
- Zwróć sformatowany łańcuch.
Zadanie 3: Walidacja adresu e-mail
Opis: Napisz funkcję, która sprawdza, czy podany tekst jest prawidłowym adresem e-mail. Jeśli tak, funkcja ma zwrócić true, w przeciwnym razie false.
Kroki rozwiązania:
- Funkcja powinna przyjąć jeden parametr (łańcuch znaków) – adres e-mail do sprawdzenia.
- Najprostszym sposobem w PHP jest użycie wbudowanego filtra FILTER_VALIDATE_EMAIL poprzez funkcję filter_var. Zwraca on adres (jako string) jeśli jest poprawny lub false jeśli nie.
- Można też sprawdzić ręcznie, np. czy adres zawiera znak „@” i po nim kropkę, ale to niewystarczające kryteria – dlatego lepiej zaufać gotowej funkcji.
- Zastosuj filtr i na jego podstawie zwróć wartość logiczną.
- (Opcjonalnie) Usuń ewentualne zbędne spacje na początku/końcu napisu przed walidacją (funkcja trim).
Zadanie 4: Sortowanie listy wartości
Opis: Napisz funkcję, która przyjmuje tablicę wartości (np. liczb lub napisów) i zwraca nową tablicę z tymi wartościami posortowanymi w porządku rosnącym.
Kroki rozwiązania:
- Przyjmij tablicę jako parametr funkcji.
- Skopiuj tę tablicę lub operuj na niej bezpośrednio (w PHP tablice przekazywane są przez wartość, więc wewnątrz funkcji mamy kopię, ale dla przejrzystości można zrobić własną kopię).
- Użyj wbudowanej funkcji sortującej, np. sort() dla sortowania rosnącego.
- sort($tablica) posortuje elementy tablicy (numerycznie lub leksykograficznie dla stringów).
- Zwróć posortowaną tablicę.
Dane wejściowe:
$wartosci = [5, 2, 8, 1];
$slowa = ["gruszka", "jabłko", "śliwka"];
Zadanie 5: Wyszukiwanie wartości w tablicy
Opis: Napisz funkcję, która sprawdza, czy w podanej tablicy znajduje się określona wartość. Funkcja powinna zwracać true jeśli znajdzie wartość, lub false w przeciwnym przypadku.
Kroki rozwiązania:
- Funkcja przyjmuje dwa argumenty: tablicę oraz szukaną wartość.
- Można wykorzystać pętlę (foreach lub for), iterując przez elementy tablicy i porównując każdy z szukaną wartością.
- Jeśli któryś element jest równy (==) lub identyczny (===) szukanej wartości, można natychmiast zwrócić true.
- Jeśli zakończono przeglądanie całej tablicy bez znalezienia elementu, zwrócić false.
- Alternatywnie, skorzystaj z wbudowanej funkcji in_array($wartosc, $tablica), która wykonuje dokładnie powyższe sprawdzenie i zwraca wynik logiczny.
Dane wejściowe:
$owoce = ["jabłko", "banan", "wiśnia"];
Zadanie 6: Znajdowanie wartości minimalnej i maksymalnej
Opis: Napisz funkcję, która przyjmuje tablicę liczb i zwraca dwuelementową tablicę, zawierającą odpowiednio najmniejszą i największą liczbę z tej tablicy.
Kroki rozwiązania:
- Upewnij się, że tablica nie jest pusta (jeśli jest, można zwrócić np. pustą tablicę lub [null, null] – zależnie od założeń).
- Zainicjalizuj zmienne min i max pierwszym elementem tablicy.
- Przejdź przez kolejne elementy tablicy (pętla).
- Dla każdego elementu:
- Jeśli jest mniejszy od obecnego min, zaktualizuj min.
- Jeśli jest większy od obecnego max, zaktualizuj max.
- Po zakończeniu pętli, min i max będą skrajnymi wartościami.
- Zwróć tablicę [$min, $max].
Dane wejściowe:
$wartosci = [7, 2, 9, 4, 5];
Zadanie 7: Pobieranie rozszerzenia nazwy pliku
Opis: Napisz funkcję, która przyjmuje nazwę pliku (np. „dokument.txt”, „archiwum.tar.gz”) i zwraca jego rozszerzenie (czyli wszystko, co znajduje się po ostatniej kropce w nazwie). Jeśli plik nie ma rozszerzenia (brak kropki w nazwie), funkcja powinna zwrócić pusty string.
Kroki rozwiązania:
- Funkcja przyjmuje jeden argument – nazwę pliku jako string.
- Znajdź pozycję ostatniego wystąpienia kropki „.” w tym napisie. Można użyć funkcji strrpos($nazwa, „.”).
- Jeśli kropka nie została znaleziona (strrpos zwróci false), zwróć pusty string (brak rozszerzenia).
- Jeśli kropka jest ostatnim znakiem w nazwie (np. nazwa kończy się na „.”), również potraktuj to jako brak rozszerzenia.
- W przeciwnym razie, skorzystaj z substr, aby wyciąć fragment napisu od pozycji po ostatniej kropce do końca.
- Zwróć otrzymany fragment.
Przykładowe rozwiązanie:
Zadanie 8: Tworzenie akronimu z podanej frazy
Opis: Napisz funkcję, która z podanego zdania/frazy tworzy akronim (skrót utworzony z pierwszych liter wyrazów). Na przykład dla wejścia „Polska Akademia Nauk” funkcja powinna zwrócić „PAN”.
Kroki rozwiązania:
- Przyjmij łańcuch znaków (fraza) jako argument.
- Podziel frazę na słowa. Najprościej użyć explode(” „, $fraza) zakładając, że słowa są oddzielone spacjami (dla bardziej rozbudowanej wersji można by uwzględnić także inne znaki interpunkcyjne jako separatory).
- Iteruj przez uzyskaną tablicę słów. Z każdego słowa weź jego pierwszą literę.
- Skonwertuj tę literę na wielką literę (funkcja strtoupper lub mb_strtoupper dla polskich znaków).
- Dodaj literę do akronimu (np. do zmiennej wynikowej poprzez konkatenację).
- Zwróć zbudowany akronim.
Zadanie 9: Konwersja stopni Celsjusza na Fahrenheita
Opis: Napisz funkcję, która przelicza temperaturę podaną w stopniach Celsjusza na stopnie Fahrenheita. Wzór przeliczenia: F = C * 9/5 + 32. Funkcja powinna przyjmować temperaturę w °C jako liczbę (int lub float) i zwracać odpowiadającą temperaturę w °F.
Kroki rozwiązania:
- Funkcja przyjmuje jeden argument – temperaturę w stopniach Celsjusza.
- Zastosuj wzór: pomnóż wartość przez 9/5 (czyli 1.8) i dodaj 32.
- Otrzymany rezultat to temperatura w Fahrenheitach.
- Zwróć tę wartość (ewentualnie można zaokrąglić wynik do jednej czy dwóch cyfr po przecinku, ale to zależy od założeń – w tym zadaniu nie jest to konieczne).
- (Opcjonalnie) Można również napisać analogiczną funkcję odwrotną, przeliczającą °F na °C, ale tu skupiamy się na jednym kierunku.
Zadanie 10: Usuwanie duplikatów w tablicy
Opis: Napisz funkcję, która przyjmuje tablicę zawierającą duplikaty i zwraca nową tablicę z unikalnymi wartościami (tj. usuwa powtarzające się elementy).
Kroki rozwiązania:
- Funkcja przyjmuje tablicę (wartości mogą być np. liczbami lub napisami).
- Można utworzyć nową tablicę wynikową i przejść przez oryginalną tablicę, dodając do wynikowej tylko te elementy, których jeszcze w niej nie ma.
- Do sprawdzania obecności można użyć in_array na tablicy wynikowej lub utrzymywać pomocniczą tablicę kluczy.
- Alternatywnie, PHP oferuje funkcję array_unique($tablica), która zwraca nową tablicę z usuniętymi duplikatami – co znacząco ułatwia zadanie.
- Zwróć przefiltrowaną tablicę unikalnych wartości.
Dane wejściowe:
$dane = [1, 5, 2, 5, 3, 1, 4];