JAO php lab1

background image

19.10.2010 14:52:37

Języki, automaty, obliczenia

Laboratorium 1

Celem ćwiczenia jest zapoznanie się z podstawami programowania w języku PHP.

Należy napisać program, który wczyta z dysku plik zawierający informację o N zbiorach, zapamięta
tę informację w odpowiednich zmiennych i wyświetli wczytane dane zbiory na konsoli. Zawartość
pliku z danymi:

{A,B,C,D,E}

{1,2,3}
{x1,x2,x3,x4}

{y1,y2,y3,y4,y5}

1. Wstęp do ćwiczenia

Język programowania PHP jest językiem skryptowym, łączącym elementy programowania
strukturalnego i obiektowego. Ponieważ programowanie strukturalne należy obecnie do historii
informatyki, na zajęciach skupimy się na programowaniu obiektowym.

1.1. Program w języku PHP

Wg paradygmatu programowania obiektowego, program składa się z klas. Dobra praktyka
programistyczna nakazuje umieszczać deklarację jednej klasy w jednym pliku. Nazwa klasy jest jest
identyczna z nazwą pliku. Do klasy możemy przypisać pola lub metody:

pole to zmienna przypisana do klasy,

metoda to funkcja przypisana do klasy.

Klasy są podobne do struktur z języka C – oprócz danych zawierają też kod operacji na danych.

W powyższym kodzie pokazano klasę o nazwie

ProgramJAO

, która posiada pole o nazwie

wynik

i metodę o nazwie

main

. Metoda

main

otrzymuje dwa parametry. Słowo public mówi, że pole

i metoda mogą być używana przez dowolną inna klasę.

1.2. Zmienne, funkcje, parametry funkcji w języku PHP

W języku PHP nazwa zmiennej musi być poprzedzona znakiem $.

W przeciwieństwie do języka C, nie trzeba deklarować zmiennych. Deklaracja następuje
w momencie pierwszego przypisania wartości do zmiennej.

1

background image

W PHP występują następujące typy zmiennych:

boolean

,

integer

,

float

,

string

,

array

i typy obiektowe. Interpreter PHP przypisuje typ do zmiennej podczas wykonywania

programu.

W deklaracji funkcji nie określamy typów parametrów.

1.3. Konwencje nazewnicze

Przez lata rozwoju informatyki programiści wypracowali pewne nawyki, których bezwzględnie
należy przestrzegać:

1. Nazwy klas piszemy zawsze wielką literą, np. klasa

ProgramJAO

.

2. Nazwy zmiennym piszemy zawsze małą literą, np.

$parametr

.

3. Nazwy funkcji i metod piszemy zawsze małą literą.
4. Na granicy słów stosujemy wielką literę, np. klasa

StudentPolitechniki

, zmienna

$ocenaKoncowa

, funkcja

wystawOcenę($student)

.

1.4. Klasy i obiekty

Klasa jest opisem informacji i zachowania pewnej grupy obiektów, charakteryzujących się wspólnymi
cechami. Obiekt jest instancją klasy.

Powyższy kod deklaruje zmienną o nazwie

program

i przypisuje do niej obiekt klasy

ProgramJAO

. Druga linijka wywołuje metodę

main

obiektu

program

. Trzecia linijka wyświetla

wartość pola

wynik

obiektu

program

. Operatorem dostępu do pól i metod obiektu jest „

->

”.

1.5. Dostęp do pól w klasie

Z kodu metody klasy możemy uzyskać dostęp do pól klasy, poprzedzając ich nazwy słowem
kluczowym

this

:

class ProgramJAO {

public $wynik;

public function main($parametr1, $parametr2) {

//zwróć uwagę, gdzie jest znak $

$this->wynik = $parametr1 + $parametr2;

}

}

1.6. Tablice

W języku PHP występuja asocjacyjne tablice dynamiczne, tworzone następująco:

$tablica1 = array(); // tworzy pustą tablicę

$tablica1[] = 1; // dodaje element do tablicy
$tablica2[] = 2;

$tablica3[] = ”abc”;
$tablica2 = array(1, 2, ”abc”); // tworzy tablicę

W powyższym przykładzie $tablica1 i $tablica2 zawierają identyczne dane.

2

background image

1.7. Wczytywanie danych tekstowych z pliku

Używamy instrukcji podobnych do języka C.

Linia 36 otwiera plik o nazwie

dane.txt

w trybie do odczytu. W pętli

while

(linia 38) wczytujemy

kolejne linie tekstu z pliku (linia 40). W linii 42 sprawdzamy, czy przeczytano pustą linię.
Po zakończeniu operacji na pliku, plik jest zamykany (linia 47).

1.8. Pobieranie znaków z tekstu

W celu odczytania z łańcucha tekstowego znaku z pozycji n, używamy funkcji:

1.9. Zastępowanie znaków w tekście

W języku PHP do zastępowania znaków w tekście używamy funkcji str_replace:

W linii 41 tworzymy tablicę zawierającą znaki, które będą wyszukiwane w tekście. Linia 42 powinna
zawierać tablicę przechowującą znaki, którymi zastąpione zostaną znalezione. Ponieważ zmienna ta
jest pusta, funkcja

str_replace

usunie znalezione znaki. Linia 43 wykonuje operację zastąpienia.

Ze zmiennej

linia

usunięte zostaną elementy tablicy

znaki

.

1.10. Usuwanie znaków

W języku PHP do usunięcia znaków z początku lub końca linii uzywamy funkcji ltrim i rtrim:

$linia = rtrim($linia, ","); // usuwa ”,” z końca linii
$linia = ltrim($linia, "#"); // usuwa ”#” z początku linii

$linia = trim($linia, "-+"); // usuwa ”+-” z początku i końca linii

3

background image

1.11. Zamiana tekstu na tablicę

W języku PHP zamianę tekstu na tablicę wykonuje funkcja

explode

:

// jeżeli jest $linia=”a:b:c”;
// to będzie $zbior=array(”a”, ”b”, ”c”);

$zbior = explode(”:”, $linia);

Pierwszym parametrem funkcji

explode

jest separator elementów tablicy. W przykładzie powyżej

w zmiennej

zbior

pojawi się tablica utworzona z zawartości zmiennej

linia

.

1.12. Łączenie i wyświetlanie tekstów

Operatorem łączenia łańcuchów tekstowych w języku PHP jest „.” (kropka):

$linia = $linia . " tekst";

Do wyświetlania informacji na konsoli służy m.in. funkcja echo:

echo "{" . $linia . "}\n";

Do wyświetlania zmiennych w sposób zrozumiały dla człowieka służy funkcja print_r:

print_r($tablica);

2. Przebieg ćwiczenia

Uruchom program Netbeans. Z menu Window wybierz polecenie Projects. Pojawi się okno
z projektami (może być puste). Jeżeli okno ma aktywny przycisk dokowania (po ustawieniu kursora
myszy, pojawi się podpowiedź Pin), kliknij go.

2.1. Zamknij otwarte projekty w Netbeans

Może się zdarzyć, że po uruchomieniu środowiska Netbeans, otwarte zostaną projekty z innych zajęć.
Zamknij je wszystkie.
Na rysunku poniżej otworzone są trzy projekty. Dla każdego projektu:

kliknij lewym przyciskiem myszy w

nazwę projektu

, żeby go podświetlić,

wciśnij na klawiaturze klawisz z napisem Delete lub Del,

w okienku Delete Project zaznacz opcję

Also delete sources

,

w okienku Delete Project kliknij przycisk z napisem Yes.

4

background image

Czy po wykonaniu tych czynności okno projektów w Netbeans wygląda tak, jak na rysunku niżej?

NIE

→ wykonaj jeszcze raz punkt 2.1.

TAK → przejdź do punktu 2.2.

2.2. Utworzenie Projektu

Upewnij się, czy wykonany został punkt 2.1. instrukcji do ćwiczenia.

Utwórz nowy projekt z kategorii PHP, typ PHP Application, wybierając z menu File polecenie New
Project
.

5

Nazwa

projektu

x

?

background image

Podaj nazwę projektu, np. JAOLab1 i wybierz folder na pliki projektu. Wybierz taki folder, który jest
pusty
i w którym masz uprawnienia do zapisu. Na systemie operacyjnym Windows prawa do zapisu
masz w folderze o nazwie Moje Dokumenty.

W kroku o nazwie Run Configuration wybierz opcję Run as Script (run in command line). Jeżeli
środowisko Netbeans nie znalazło interpretera języka PHP, osoba prowadząca zajęcia poda
odpowiednią ścieżkę.

2.3. Struktura programu

W okienku Projects rozwiń utworzony projekt i grupę
Source Files.
Czy w grupie Source Files jest plik o nazwie

index.php

?

Tak → przejdź do punktu 2.3.2

Nie → przejdź do punktu 2.3.1

6

?

background image

2.3.1 Utworzenie pliku index.php

Jeżeli w grupie Source Files nie ma pliku o nazwie

index.php

, utwórz go:

kliknij prawym przyciskiem myszy w grupę Source files i z menu kontekstowego wybierz
polecenie New PHP File,

w oknie kreatora pliku wpisz nazwę pliku:

index

,

w oknie kreatora pliku kliknij przycisk z etykietą Finish.

2.3.2 Kontrola poprawności wykonywania ćwiczenia
Czy okno Netbeans wygląda tak, jak na rysunku niżej?

NIE

→ przejdź do punktu 2.1. instrukcji.

TAK → kontynuuj wykonywanie ćwiczenia.

7

background image

2.3.3 Utworzenie klasy programu

1. Utwórz nową klasę PHP:

rozwiń zawartość projektu,

kliknij prawym przyciskiem myszy w grupę Source files i z menu kontekstowego wybierz
polecenie New PHP Class.

2. W oknie kreatora klasy wpisz nazwę klasy:

ProgramJAO

.

3. W grupie plików źródłowych Utwórz nowy pusty plik (New empty file) o nazwie dane

z rozszerzeniem txt (

dane.txt

). Wypełnij plik danymi postaci:

{ A, B,C, D , E}

{1,2,3 }

{x1,x2,x3,x4}

4. Zapisz plik z danymi.
5. Przejdź do klasy

ProgramJAO

. W miejscu, w którym podpowiada środowisko Netbeans (put

your code here) wpisz następujący kod (patrz punkt 1.1.):

utwórz publiczne pole o nazwie

wynik

,

utwórz publiczną bezparametrową metodę o nazwie

main

.

6. Przejdź do pliku

index.php

. Pomiędzy znacznikami

<?php

i

?>

dopisz następujący kod:

zadeklaruj zmienną o nazwie

program

i przypisz do niej obiekt klasy

ProgramJAO

(patrz punkt 1.4.),

wywołaj metodę

main

obiektu

program

,

wyświetl przy użyciu funkcji

print_r

pole

wynik

obiektu

program

(punkt 1.12.).

Sprawdź, czy liczba linii kodu wpisanych przez ciebie jest równa 3. Jeżeli wpisane zostało
więcej niż 3 linie kodu, skasuj je wszystkie i wykonaj punkt 6. od początku.

7. W pliku

index.php

, w pierwszej linijce, która zost-

ała napisana przez ciebie, kliknij prawym przyciskiem
myszy na nazwę klasy

ProgramJAO

. Z menu kon-

tekstowego wybierz polecenie Fast import. Pojawi się
okno z propozycjami klas, które należy dołączyć do
programu. Wybierz instrukcję

require_once ProgramJAO.php

.

8

background image

8. Z menu Run wybierz polecenie Run project. Okno Output środowiska Netbean powinno być

puste.

2.4. Implementacja algorytmu

Pisząc kod programu, przestrzegaj następujące zasady:

1. Wstawiaj w komentarzach odnośniki do kroków algorytmu, np. punktom 1 i 2 algorytmu

odpowiada następujący kod PHP:

$zbiory = array(); // punkt 1

$zbior = array(); // punkt 2

2. Stosuj tabulatory w celu uczynienia kodu czytelnym, np.:

while(true) {

for($i = 0; $i<10; $i++) {
echo $i;

}
}

W metodzie

main

klasy

ProgramJAO

dodać kod działający wg algorytmu:

1. Utwórz zmienną o nazwie

zbiory

i przypisz do niej pustą tablicę (punkt 1.6.). Ta tablica

będzie przechowywać wszystkie zbiory z pliku.

2. Utwórz zmienną o nazwie

zbior

i przypisz do niej pustą tablicę (punkt 1.6.). Ta tablica

będzie przechowywać dane jednego zbioru.

3. Otwórz plik z danymi w trybie do odczytu (punkt 1.7.).
4. Dopóki są dane w pliku, w pętli wykonuj algorytm:

4.1. Pobierz linię z pliku. Zapisz ją do zmienne o nazwie

linia

.

4.2. Jeżeli linia wczytana z pliku jest pusta, przerwij pętlę.
4.3. Usuń z wczytanej linii znaki

” ”, ”\r”, ”\n”

(punkt 1.9.).

4.4. Sprawdź, czy na początku linii jest znak

”{”

, a na końcu

”}”

(punkt 1.8.). Jeżeli nie ma

tych znaków, przerwij pętlę.

4.5. Usuń znaki

”{”

i

”}”

z początku i końca linii (patrz 1.10.).

4.6. Zamień linię na tablicę o nazwie

zbior

. Separatorem elementów zbioru jest przecinek

(znak „ , ”) (punkt 1.11.).

4.7. Dodaj zmienną

zbior

do tablicy

zbiory

(punkt 1.6.)

5. Zamknij plik.
6. Przypisz zawartość zmiennej

zbiory

do pola

wynik

(patrz punkt 1.5.).

9

background image

2.5. Koniec ćwiczenia

Sprawdź, czy:

1. Program napisany przez ciebie wykonuje się bez błędów i realizuje cel ćwiczenia.
2. Program składa się z trzech plików:

dane.txt

,

index.php

i

ProgramJAO.php

.

3. Plik

index.php

zawiera instrukcję dołączenia pliku

ProgramJAO.php

i 3 linijki kodu.

4. W pliku

ProgramJAO.php

znajduje się wyłącznie klasa

ProgramJAO

.

5. Klasa

ProgramJAO

zawiera jedno publiczne pole o nazwie

wynik

i jedną publiczną

bezparametrową metodę o nazwie

main

.

6. Kod wpisany do metody

main

klasy

ProgramJAO

jest zgodny z algorytmem z punktu 2.4.

7. Linie kodu z metody

main

klasy

ProgramJAO

zawierają w komentarzach odnośniki

do punktów algorytmu.

Zamknij projekt w środowisku Netbeans. Zarchiwizuj katalog z projektem i prześlij go na adres
e-mail podany przez osobę prowadzącą zajęcia.

3. Pytania na wejściówkę

1. Jak przetłumaczyć na język polski następujące zdanie w języku angielskim:

Put your code here.
Wskazówka: jest to zdanie w trybie rozkazującym, czasownikiem jest słowo put.

2. W języku C, zadeklaruj zmienną o nazwie i typu int.
3. W języku C, zadeklaruj zmienną typu wskaźnikowego do typu FILE. Używając dynamicznej

alokacji pamięci, zarezerwuj obszar pamięci o rozmiarze typu FILE i przypisz wskaźnik do tej
pamięci do zadeklarowanej zmiennej.

4. W języku C, zadeklaruj bezparametrową funkcję o nazwie

main

, nie zwracającą żadnej

wartości.

5. Napisz program w języku C wg algorytmu:

dana jest tablica znaków (

char [] tablica;

)

pobierz pierwszy i ostatni znak z tablicy (użyj funkcji

strlen

),

jeżeli pierwszy znak jest różny od „{” i ostatni jest różny od „}”, wyświetl komunikat
o treści „błąd”.

4. Sprawozdanie z ćwiczenia

Na stronie internetowej z materiałami dydaktycznymi znajduje się szablon sprawozdania
z ćwiczenia 1. Należy go zastosować do wykonania sprawozdania.

10


Document Outline


Wyszukiwarka

Podobne podstrony:
JAO php lab3
JAO php lab2
JAO php lab5
lab1 12 id 258878 Nieznany
lab1 VHDL
PHP podst progr suplement wyklad grudzien 2011
bioinformatyczneBD lab1
Ćw lab1 Gleb wilg gleby OŚ
Architekrura Systemów Lab1
lab1
Lab1 szular
FCKU1 lab1(6na6) id 169034 Nieznany
cw php
dsp lab1 id 144058 Nieznany
Jak wysłać ze strony WWW e-mail z dowolnym załącznikiem, PHP Skrypty
Jak przerwać wykonywanie pętli (for, PHP Skrypty
Jak stworzyć prostą wyszukiwarkę dla własnych stron WWW, PHP Skrypty
Jak stworzyć zaawansowany test wyboru lub quiz, PHP Skrypty
Jak wygenerować bezpieczne, PHP Skrypty

więcej podobnych podstron