ZSEiO w Krośnie
|
TECHNIK INFORMATYK
|
|||
|
|
||||
Lekcja nr:
|
4
|
Nazwa
przedmiotu:
|
||
Temat:
Tablice – numeryczne, asocjacyjne, tekst jako
tablice, tablice jedno i dwuwymiarowe
|
Czas trwanie 45 min |
|||
|
Autor materiałów:
dr Marcin Skuba |
||||
1.
Treści programowe:
Język PHP, tablice
numeryczne, tablice indeksowane, tworzenie tablic, odwoływanie się do wybranego
elementu tablicy
2.
Cel zajęć:
Celem zajęć jest
zrozumienie działania tablicy w php oraz nabycie
umiejętności posługiwania się tablicami do przechowywania danych
3.
Materiały dydaktyczne
W PHP tablice (ang. arrays)
to struktury danych, które pozwalają na przechowywanie wielu wartości w jednej
zmiennej. Są one niezwykle elastyczne i można ich używać na dwa główne sposoby:
jako listy lub jako słowniki.
1. Tablice indeksowane numerycznie (Listy)
To najprostszy typ tablicy. Elementy są
przechowywane w kolejności i dostępne przez numeryczny indeks, który domyślnie
zaczyna się od 0.
Tablica przechowująca wartości tekstowe:

Tablica przechowująca
wartości liczbowe

Wyświetlanie elementów tablicy za pomocą pętli for

Funkcja print_r() w PHP
służy do wyświetlania czytelnej dla człowieka reprezentacji zmiennej.
Jest ona niezwykle przydatna podczas debugowania (czyli szukania błędów
w kodzie), zwłaszcza gdy pracujemy z tablicami lub obiektami.
Funkcja number_format($srednia,
2) służy do zaokrąglenia i sformatowania wyniku do dwóch miejsc po
przecinku.
2. Tablice asocjacyjne (Słowniki)
W tych tablicach wartościom przypisuje się klucze
tekstowe, a nie numeryczne indeksy. Umożliwia to tworzenie bardziej
czytelnych i opisowych zbiorów danych.

3. Kluczowe cechy tablic w PHP
4.
Sortowanie elementów tablicy
Sortowanie tablicy indeksowanej
Do posortowania prostej tablicy numerycznej lub
tekstowej w porządku rosnącym użyj funkcji sort(). Ta funkcja zmienia oryginalną tablicę, a jej indeksy zostaną zresetowane.
Do posortowania prostej tablicy numerycznej lub
tekstowej w porządku malejącym użyj funkcji rsort() (od reverse sort)


5. Sortowanie tablicy asocjacyjnej
Jeśli chcesz posortować tablicę asocjacyjną według
wartości, zachowując powiązania między kluczami a wartościami, użyj funkcji
asort().


Jeśli chciałbyś posortować tablicę asocjacyjną według
kluczy (np. alfabetycznie po imieniu), zamiast asort() użyj funkcji ksort().
6.
Tekst jako tablica
W PHP możesz łatwo traktować ciąg tekstowy jako
tablicę, ponieważ każdy znak w tekście jest dostępny za pomocą swojego indeksu.
To tak, jakbyś miał tablicę znaków, gdzie indeks 0 to pierwszy znak, indeks 1
to drugi i tak dalej.

o
Funkcja strlen() służy
do liczenia znaków w ciągu tekstowym (stringu). Zwraca liczbę
całkowitą reprezentującą długość tekstu.
7.
Tablica dwuwymiarowa z kluczami liczbowymi
Ten przykład tworzy tablicę reprezentującą dane, np.
oceny uczniów w kilku przedmiotach.

8.
Tablica dwuwymiarowa z kluczami tekstowymi (asocjacyjna)
Tutaj używamy tablic asocjacyjnych, co sprawia, że
kod jest bardziej czytelny. Możesz łatwo odwołać się do danych, używając
sensownych kluczy, takich jak imię ucznia i nazwa przedmiotu.

W obu przypadkach tablica dwuwymiarowa to po
prostu tablica, której elementy są same w sobie tablicami. Dostęp do
pojedynczego elementu wymaga podania dwóch kluczy w nawiasach kwadratowych:
pierwszy dla zewnętrznej tablicy (np. wiersz), a drugi dla wewnętrznej (np.
kolumna).
4.
Zadania
Zadanie 1:
Lista zakupów (Tablica indeksowana)
Utwórz tablicę o nazwie $zakupy i w linii deklaracji
dodaj do niej co najmniej 3 produkty spożywczych (np. "chleb",
"mleko", "jajka"). Następnie, za pomocą pętli foreach, wyświetl całą listę na stronie w formie
nieuporządkowanej (<ul>) z użyciem znaczników <li>.
Następnie dodaj do tej samej listy dwa kolejne
produkty i jeszcze raz wyświetl całą listę.
Zadanie 2:
Obliczenie średniej oceny (Tablica indeksowana)
Zadeklaruj tablicę $oceny i przypisz jej 10 losowych
wartości liczbowych. Napisz program, który za pomocą pętli for obliczy
średnią arytmetyczną tych ocen i wyświetli wynik z dokładnością do dwóch miejsc
po przecinku. Na stronie wyświetl również wszystkie wylosowane oceny w kolorze
zielonym.
Zadanie 3:
Kopiowanie elementów tablicy (Tablica
indeksowana)
Zadeklaruj tablicę $liczby i przypisz jej losowe
wartości liczbowe. Utwórz drugą tablicę $liczby_odwrotnie
oraz przypisz jej wartości z tablicy $liczby w odwrotnej kolejności. Ostatni
element tablicy $liczby przypisz do pierwszego tablicy $liczby_odwrotnie
itd… Wyświetl elementy dwóch tablic na stronie jedna
pod drugą. Wynik wyświetl w kontenerze, który odpowiednio wystylizuj.
Zadanie 4: Znajdowanie najmniejszej i największej wartości
(Tablica i pętla)
Utwórz tablicę $temperatury i wypełnij ją 15
losowymi liczbami z zakresu od -10 do 35. Napisz program, który przejdzie przez
tablicę i znajdzie najniższą oraz najwyższą temperaturę, a następnie wyświetli
obie wartości. Wskazówka: Do znalezienia wartości użyj pętli i dwóch zmiennych,
które będą przechowywać aktualne minimum i maksimum.
Zadanie 5:
Generator kuponu rabatowego (Tablica i losowanie)
Napisz program, który wygeneruje losowy kod rabatowy
składający się z 8 znaków. Kod powinien zawierać losowe litery (wielkie) i
cyfry. Wykorzystaj tablicę, w której przechowasz wszystkie możliwe znaki (np.
od 'A' do 'Z' i od '0' do '9'), a następnie w pętli wylosuj 8 razy znak z tej
tablicy i dodaj go do zmiennej. Na końcu wyświetl wygenerowany kod. Wskazówka:
Użyj funkcji strlen() do określenia liczby znaków w
ciągu, a następnie rand() do losowania indeksu.
Zadanie 6:
Sprawdzanie dostępności
Utwórz tablicę $produkty_sklep
z co najmniej 5 produktami. Zadeklaruj zmienną $szukany_produkt
i przypisz jej nazwę produktu, który chcesz sprawdzić. Napisz kod sprawdzający
czy $szukany_produkt znajduje się w tablicy. Wyświetl
odpowiedni komunikat: "Produkt jest dostępny." lub "Produkt nie
jest dostępny.".
Zadanie 7:
Wizytówka ucznia (Tablica asocjacyjna)
Utwórz tablicę asocjacyjną $dane_ucznia,
w której kluczami będą imie, nazwisko, klasa i
specjalizacja. Przypisz do nich przykładowe wartości. Następnie wyświetl
wszystkie dane w formie czytelnego tekstu, np. "Imię: Jan, Nazwisko:
Kowalski, Klasa: 3A, Specjalizacja: Technik Informatyk".
Zadanie 8:
Tabele z danymi osobowymi (Tablice wielowymiarowe)
Utwórz tablicę wielowymiarową $uczniowie, w której
każdy element będzie tablicą asocjacyjną z danymi jednego ucznia (np. imie, nazwisko, ocena). Zdefiniuj dane dla co najmniej
trzech uczniów. Następnie, za pomocą zagnieżdżonych pętli foreach,
wyświetl dane wszystkich uczniów w formie tabeli HTML.
Zadanie 9: Analiza tekstu
Napisz program PHP, który przeanalizuje podany tekst
i zliczy w nim wystąpienia każdej samogłoski. Program ma działać jak prosty
analizator tekstu.
Warunki:
Zadanie 10:
Analiza macierzy z losowymi wartościami
Napisz program, który będzie analizował macierz
liczb. Macierz zostanie wypełniona losowymi wartościami.
Warunki: