podstawy programowania 5


Podstawy programowania
dr inż. Paweł Róg
1
Zagadnienia
%
Sprawdzanie typu zmiennej i nie tylko
ą
isset
ą
gettype
ą
empty
ą
is_
ą
var_dump
ą
unset
%
Sterowanie działaniem programu
ą
if
ą
if ... else
ą
while
ą
do ... while
ą
for
ą
switch
ą
break
ą
contiunue
2
isset
%
Funkcja isset umożliwia sprawdzenie, czy
zmienna została zainicjalizowana i czy nie jest
NULL. Zwraca wartość True/False.
%
Przykład
$var = ' ';
// $var = NULL;
// isset($var)==TRUE
if (isset($var)) {
print "Ta zmienna jest zainicjalizowana.";
}
3
gettype
%
Funkcja gettype zwraca typ zmiennej
%
Wartości zwracane:
ą
"boolean"
ą
"integer"
ą
"double"
ą
"string"
ą
"array"
ą
"object"
ą
"resource"
ą
"NULL"
ą
"unknown type"
%
Przykład
$var = 1.0;
print gettype($var); // double
4
empty
%
Funkcja empty sprawdza, czy zmienna nie
przechowuje wartości pustej. Zwraca wartość
True/False.
%
Następujące wartości są traktowane jako puste:
ą
   pusty ciąg znaków;
ą
0  jako integer;
ą
 0  jako string;
ą
NULL;
ą
FALSE;
ą
array()  pusta tablica;
ą
var $var;  niezainicjalizowane pole w klasie.
5
is_
%
Rodzina funkcji postaci is_, gdzie
jest nazwą typu, sprawdza, czy zmienna jest
danego typu. Zwraca wartość True/False.
%
Do funkcji z tej rodziny należą m.in.: is_array,
is_bool, is_double, is_int, is_null,
is_object, is_resource, is_string.
%
Przykład
$pi = 3.1416;
$proteins = array("hemoglobin", "cytochrome c
oxidase", "ferredoxin");
print is_scalar($pi);
print is_scalar($proteins)
6
var_dump
%
Funkcja var_dump wyświetla strukturyzowny
raport o przekazanych jej jako parametr
wyrażeniach, który zawiera informacje o typach
i wartościach. Nie zwraca żadnej wartości.
%
Przykład
$b = 3.1;
$c = true;
var_dump($b, $c);
%
Wyświetli
float(3.1)
bool(true)
7
%
Przykład
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
%
Wyświetli
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
8
unset
%
Funkcja unset niszczy zmienne przekazane jej
jako parametry.
%
Przykłady
// niszczy pojedynczą zmienną
unset($foo);
// niszczy element tablicy
unset($bar['quux']);
// niszczy więcej niż jedną zmienną
unset($foo1, $foo2, $foo3);
9
Instrukcja warunkowa
Instrukcja warunkowa to taka instrukcja, która
Instrukcja warunkowa to taka instrukcja, która
w zależności od wartości warunku logicznego W
w zależności od wartości warunku logicznego W
umieszczonego w tej instrukcji umożliwia wykonywanie
umieszczonego w tej instrukcji umożliwia wykonywanie
lub nie innych instrukcji  tak zwanych instrukcji
lub nie innych instrukcji  tak zwanych instrukcji
wewnętrznych A i B.
wewnętrznych A i B.
%
Instrukcję tę będziemy zapisywać w algorytmach
następująco:
Jeśli spełniony jest warunek W, to wykonaj instrukcję A;
%
lub:
Jeśli spełniony jest warunek W, to wykonaj instrukcję A,
w przeciwnym wypadku wykonaj instrukcję B.
Algorytm, w którym występują instrukcje warunkowe,
Algorytm, w którym występują instrukcje warunkowe,
nazywa się algorytmem rozgałęzionym.
nazywa się algorytmem rozgałęzionym.
0
1
Badanie znaku podanej liczby
START
Wczytaj: x
TAK NIE
x >= 0
Wypisz: Wypisz:
 x jest liczbą nieujemną  x jest liczbą ujemną
STOP
1
1
Instrukcja if
%
Instrukcja warunkowa if ma następującą postać:
if (wyrażenie_logiczne)
instrukcja
%
Przykłady
if ($a > $b)
print "a jest większe niż b";
if ($a > $b) {
print "a jest większe niż b";
$b = $a;
}
2
1
if ... else
%
Instrukcja warunkowa if ... else ma
następującą postać:
if (wyrażenie_logiczne)
instrukcja_1
else
instrukcja_2
%
Przykład
if ($a > $b) {
print "a jest większe od b";
} else {
print "a NIE jest większe od b";
}
3
1
elseif, else if
%
Przykład
if ($a > $b) {
print "a jest większe od b";
} elseif ($a == $b) {
print "a jest równe b";
} else {
print "a jest mniejsze od b";
}
if ($a > $b) {
print "a jest większe od b";
} else if ($a == $b) {
print "a jest równe b";
} else {
print "a jest mniejsze od b";
}
4
1
switch
%
Instrukcja sterująca switch umożliwia wybór
pomiędzy alternatywnymi instrukcjami na
podstawie wartości selektora:
switch (selektor) {
case wart_1:
blok_instrukcji_1
case wart_2:
blok_instrukcji_2
...
case wart_n:
blok_instrukcji_n
default:
blok_instrukcji_domyślnych
}
5
1
if ($i == 0) { switch ($i) {
print "i == 0"; case 0:
} elseif ($i == 1) { print "i == 0";
break;
print "i == 1";
} elseif ($i == 2) { case 1:
print "i == 1";
print "i == 2";
} break;
case 2:
print "i == 2";
break;
}
%
Instrukcja break w tym kontekście oznacza
przerwanie wykonywania instrukcji switch
i przejście do dalszej części programu.
6
1
%
Instrukcja switch (w przypadku stosowania
instrukcji break dla każdego przypadku) jest
równoważna następującemu ciągowi instrukcji
if...elseif...else:
if (selektor == wart_1) {
blok_instrukcji_1
} elseif (selektor == wart_2)
blok_instrukcji_2
} ...
elseif (selektor == wart_n)
blok_instrukcji_n
} else {
blok_instrukcji_domyślnych
}
7
1
switch ($i) {
case "czerwony":
print "i jest czerwony";
break;
case "zielony":
print "i jest zielony";
break;
case "niebieski":
print "i jest niebieski";
break;
}
8
1
switch ($i) {
case 0:
case 1:
case 2:
print "i < 3, ale jest nieujemne";
break;
case 3:
print "i jest równe 3";
}
9
1
switch ($i) {
case 0:
print "i jest równe 0";
break;
case 1:
print "i jest równe 1";
break;
case 2:
print "i jest równe 2";
break;
default:
print "i <> 0, 1 lub 2";
}
0
2
Instrukcja iteracji
Iteracją nazywamy instrukcję powtarzania danego ciągu
Iteracją nazywamy instrukcję powtarzania danego ciągu
operacji. Liczba powtórzeń może być ustalona przed
operacji. Liczba powtórzeń może być ustalona przed
wykonaniem instrukcji lub może zależeć od spełnienia
wykonaniem instrukcji lub może zależeć od spełnienia
pewnego warunku, który jest sprawdzany w każdej
pewnego warunku, który jest sprawdzany w każdej
iteracji. Iteracja inaczej zwana jest pętlą.
iteracji. Iteracja inaczej zwana jest pętlą.
%
W PHP mamy trzy podstawowe instrukcje iteracji:
ą
while,
ą
do ... while,
ą
for.
1
2
while
%
Instrukcja iteracji while ma następującą postać:
while (wyrażenie_logiczne)
instrukcja
%
Zapis w postaci algorytmu
TAK NIE
warunek
instrukcja
2
2
%
Przykład
$i = 1;
while ($i <= 10) {
print $i++; /* wyświetlona zostanie wartość
$i przed zwiększeniem
(post-inkrementacja) */
}
3
2
do ... while
%
Instrukcja iteracji do...while ma następującą
postać:
do instrukcja
while (wyrażenie_logiczne)
%
Zapis w postaci algorytmu
instrukcja
TAK NIE
warunek
4
2
%
Przykłady
$i = 0;
do {
print $i;
} while ($i > 0);
$i = 0;
do {
print $i++;
} while ($i <= 10);
5
2
for
%
Instrukcja iteracji for ma następującą postać:
for (inicjalizacja; wyrażenie_logiczne;
wyrażenie)
instrukcja
%
Zapis w postaci algorytmu
inicjalizacja
NIE
TAK
wyrażenie
warunek
instrukcja
6
2
%
Przykłady
for ($i = 1; $i <= 10; $i++) {
print  $i\n ;
}
for ($i = 10; $i >= 0; $i--) {
print  $i\n ;
}
for ($i = 1, $j = 0; $i <= 10; $j += $i, print
 $i\n , $i++);
for ($i = 1, $j = 0; $i <= 10; ) {
$j += $i; print  $i\n ; $i++;}
7
2
break
%
Instrukcja break kończy wykonanie instrukcji
iteracji (for, while, do...while) lub
struktury switch, w której jest umieszczona.
%
Przykład
for ($i = 1; $i < 100; ++$i) {
if ($i % 33 == 0) {
break;
}
print  %i\n ;
}
8
2
continue
%
Instrukcja continue w instrukcjach iteracji
umożliwia pominięcie pozostałych instrukcji
w bieżącej iteracji i przejście do następnej iteracji.
%
Przykład
for ($i = 0; $i < 100; ++$i) {
if ($i % 2 == 0) {
continue; /* pominięcie
parzystych */
}
print  $i\n ;
}
9
2
Alternatywna składnia
%
PHP umożliwia zastosowanie alternatywnej
składni dla instrukcji sterujących przebiegiem
wykonania programu. Ogólna postać tej składni to:

...

lub
instrukcja_ster (warunek):
instrukcja
endinstrukcja_ster;
0
3

A jest równe 5

if ($a == 5):
print "a jest równe 5";
print "...";
elseif ($a == 6):
print "a jest równe 6";
print "!!!";
else:
print "a nie jest równe 5 lub 6";
endif;
?>
1
3
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
for ($i = 1; $i <= 10; $i++):
print $i;
endfor;
2
3
switch ($i):
case 0:
print "i jest równe 0";
break;
case 1:
print "i jest równe 1";
break;
case 2:
print "i jest równe 2";
break;
default:
print "i <> 0, 1 lub 2";
endswitch;
3
3
Pierwiastki równania kwadrat.
$a = -1;
$b = -2;
$c = 1;
printf ( y = %+.2f*x^2%+.2f*x%+.2f
 , $a, $b,
$c);
$delta = $b*$b-4*$a*$c;
if ($delta < 0) {
print ('Równanie nie ma pierwiastków
rzeczywistych');
} elseif ($delta == 0) {
$x = -$b/(2*$a);
print ( Równanie ma jeden pierwiastek rzeczywisty:
$x );
} else {
$x1 = (-$b-sqrt($delta))/(2*$a);
$x2 = (-$b+sqrt($delta))/(2*$a);
print ( Równanie ma dwa pierwiastki rzeczywiste:
$x1 i $x2 );
}
4
3
n!
$n = 10;
$silnia = 1;
for ($i = 1; $i <= $n; $i++) {
$silnia *= $i;
}
print ( $n! = $silnia );
5
3
Liczby pierwsze
$n = 5;
if ($n < 1) {
print ( Podaj liczbę większą od $n. );
} elseif ($n == 1) {
print ('Liczba 1 nie jest ani pierwsza, ani
złożona.');
} elseif ($n%2 == 0) {
print ( Liczba $n jest parzysta, więc jest
złożona. );
} else {
$jest_pierwsza = True;
for ($i = 3; $i <= sqrt($n); $i+=2) {
if ($n % $i == 0) {
$jest_pierwsza = False;
break;
}
}
6
3
Liczby pierwsze cd.
if ($jest_pierwsza) {
print ( Liczba $n jest pierwsza. );
} else {
print ( Liczba $n jest złożona. );
}
}
7
3
NWD
$a = 32;
$b = 12;
print ( Największy wspólny dzielnik liczb $a i
$b to:  );
while ($a != $b) {
if ($a < $b) {
$pom = $a;
$a = $b;
$b = $pom;
}
$a -= $b;
}
print ($a);
8
3
Więcej niż 100
$i = 0;
$suma = 0;
do {
$suma += ++$i;
} while ($suma <= 100);
print ( Suma liczb od 1 do $i daje
$suma. );
9
3
Nie gęsi...
$dzien = date('d');
$miesiac = date('m');
$rok = date('Y');
switch ($miesiac) {
case '01': $miesiac = 'stycznia'; break;
case '02': $miesiac = 'lutego'; break;
case '03': $miesiac = 'marca'; break;
case '04': $miesiac = 'kwietnia'; break;
case '05': $miesiac = 'maja'; break;
case '06': $miesiac = 'czerwca'; break;
case '07': $miesiac = 'lipca'; break;
case '08': $miesiac = 'sierpnia'; break;
case '09': $miesiac = 'września'; break;
case '10': $miesiac = 'pazdziernika'; break;
case '11': $miesiac = 'listopada'; break;
case '12': $miesiac = 'grudnia'; break;
default : $miesiac = 'nieznany'; break;
}
print  $dzien $miesiac $rok ;
0
4
%
sites.google.com/site/p4welrog
%
p4wel.rog@google.com
1
4


Wyszukiwarka

Podobne podstrony:
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
Podstawy Programowania Wersja Rozszerzona
Visual C 6 0 Podstawy programowania
matlab podstawy programowania
JP SS 2 algorytmy i podstawy programowania
Podstawy programowania II 2
Podstawy programowania  11 2013
podstawa programowa
podstawa programowa
Podstawy Programowania
Delphi podstawy programowania rejestr systemowy
wychowanie fizyczne w nowej podstawie programowej
ćw 05 podstawy programowania
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 8
[C ]Rataj Podstawy programowania obiektowego
Podstawy programowania programy 17 12 2013
podstawa programowa z plastyki nowa

więcej podobnych podstron