Podstawowe informacje

Download Report

Transcript Podstawowe informacje

Programowanie
Podstawowe pojęcia
Specyfikacja zadania – określenie danych wejściowych oraz
wyników, które powinny być uzyskane, a także warunków,
jakie powinny one spełniać; może zawierać również związki
pomiędzy danymi a wynikami; abstrakcyjny model.
Algorytm jest ciągiem czynności, które prowadzą do
rozwiązania zadania.
Z punktu widzenia techniki komputerowej:
Algorytm – sposób przetwarzania informacji wejściowych
(danych wejściowych) na informacje wyjściowe (wyniki), w
skończonej liczbie kroków.
Algorytm definiuje:
 abstrakcyjne obiekty, na których wykonywane są działania –
zmienne i stałe algorytmu;
 operacje realizujące cel algorytmu;
 kolejność wykonywania działań.
Kod źródłowy programu - zakodowana postać algorytmów stanowiących
rozwiązanie problemu; tworzony pod dowolnym edytorem; jest najczęściej
zapisywany za pomocą instrukcji takich języków programowania, jak: C, Pascal,
Java, Fortran, Cobol.
Przed wykonaniem program źródłowy należy przetłumaczyć na postać zrozumiałą dla
komputera, czyli na kod wynikowy.
Kod wynikowy - kod pośredni w języku maszynowym, który jest zrozumiały dla
komputera; ciąg rozkazów i danych procesora, zapisanych w pamięci komputera w
kodzie binarnym.
Kod wynikowy jest przekształcany przez program linkera do postaci wykonywalnej.
Linker – program łączący kody wynikowe odpowiednich modułów programu w kod
wykonywalny, który może być wielokrotnie uruchamiany w komputerze.
W praktyce linker łączy w jeden plik wykonywalny następujące elementy:
pliki wynikowe (obiektowe), otrzymane w wyniku kompilacji modułów programu;
standardowy kod startowy programu dla danego systemu operacyjnego;
kody wynikowe funkcji, wykorzystywanych w programie, zapisane
w odpowiednich bibliotekach.
Kod wykonywalny - zawiera liczby, które są
pobierane z pamięci komputera przez procesor i
interpretowane jako rozkazy podlegające wykonaniu
lub jako dane stanowiące argumenty rozkazów.
Translator – realizuje przekształcenie programu z
postaci źródłowej na postać wynikową.
Rodzaje translatorów: kompilatory, interpretatory.
Kompilator – program przetwarzający kod
źródłowy na kod wynikowy (kod pośredni w języku
maszynowym, który jest zrozumiały dla komputera).
Interpretator – realizuje translację instrukcji
naprzemiennie z ich wykonywaniem; przy
zastosowaniu interpretatora każde wykonanie
programu jest związane z jego ponowną translacją
(np. Basic, SQL).
Proces tworzenia (kodowania)
programu (na przykładzie C++)
 ( *.cpp ) kod źródłowy
 kompilator  ( *.obj ) kod wynikowy
 linker  ( *.exe ) kod wynikowy
połączony z bibliotekami
 edytor
 (step/watch) śledzenie
działania, usuwanie błędów
 debugger
Pascal
Podstawowe informacje
Pascal
Podstawowe informacje
Program strukturalny
“Struktury danych + Algorytmy = Program”
Program przykład;
var
x: array[1..100] of integer;
i: integer;
y: integer;
begin
for i := 1 to 100 do
begin
readln(y);
x[i] := y;
end;
end.
Dane
Algorytm
C++
Podstawowe informacje
C++ proceduralny i obiektowy
Programowanie obiektowe
Cechy programu obiektowego





Problem jest przedstawiony w postaci logicznie powiązanych
ze sobą struktur danych - obiektów;
dziedziczenie, które polega na przypisywaniu tworzonej
klasie wszystkich cech i zachowań klasy istniejącej
abstrakcja - każdy obiekt w systemie służy jako model
abstrakcyjnego "wykonawcy", który może wykonywać pracę,
opisywać i zmieniać swój stan, oraz komunikować się z
innymi obiektami w systemie, bez ujawniania, w jaki sposób
zaprogramowano dane cechy
polimorfizm (wielopostaciowość) – dla jednej metody
określonej przez wspólny nagłówek istnieje wiele postaci
treści tej metody
enkapsulacja (hermetyzacja) - zapewnia, że obiekt nie może
zmieniać stanu wewnętrznego innych obiektów w
nieoczekiwany sposób
PROGRAMOWANIE STRUKTURALNE:
Algorytmy + struktury danych = programy
PROGRAMOWANIE OBIEKTOWE:
Obiekt = dane + metody operujące na tych
danych
Java – programowanie
obiektowe
Podstawowe informacje
Java




Java jest językiem, który w dużej mierze opiera się na
C++.
Stanowi spójne logicznie środowisko programistyczne,
posiadające najlepsze cechy swoich wzorców.
W porównaniu z C++ Java jest zoptymalizowana.
Usunięto mechanizmy będące przyczyną częstych
błędów programistycznych, takie jak:
 wskaźniki,
 wielokrotne dziedziczenie,
 przeciążanie operatorów.
Początkowo Java służyła wyłącznie do tworzenia
interaktywnego oprogramowania witryn internetowych.
Z czasem obszar zastosowań Javy był systematycznie
rozszerzany.
Cechy języka java


Niezależność od platformy sprzętowo-programowej.
◦ Java to uniwersalny język programowania – raz
napisany kod można wykorzystać w dowolnym
środowisku, do którego przeniesiono JVM.
◦ Uniwersalne środowisko programowania GUI
i multimediów.
◦ Uniwersalne środowisko dostępu do baz danych.
◦ Uniwersalne środowisko programowania w sieci
i w systemach rozproszonych.
Możliwość budowania programów z gotowych
komponentów.
Wirtualna maszyna Javy
Java Virtual Machine to rodzaj wirtualnego komputera,
który ma swój zestaw rejestrów, zestaw instrukcji, stos
i pamięć dla programów.
 Dzięki standaryzacji maszyny wirtualnej, programy
napisane w Javie są uniwersalne, tzn. wykonują się
identycznie w każdym systemie operacyjnym.
 Programy napisane w Javie są kompilowane do poziomu
kodu pośredniego, nazywanego kodem bajtowym Javy
(bytecode).
 Kod bajtowy jest interpretowany przez wirtualną
maszynę JVM do postaci programu wykonywalnego dla
danego systemu operacyjnego.

Zasada działania
Pliki *.java
Pliki *.class
kompilacja
interpretacja
JVM
18
Program w Javie
 Każdy program w Javie jest zestawem klas.
 Klasa jest podstawową jednostką enkapsulacji (nie
można pisać kodu poza definicją klasy).
 Pisany przez nas program może być zapamiętany
w jednym lub wielu plikach źródłowych o rozszerzeniu
"java".
 Należy przestrzegać następującej konwencji dotyczącej
nazewnictwa – nazwa klasy powinna być zgodna z
nazwą pliku, który przechowuje program.
19
Aplkacje i aplety
 Wyróżniamy dwa rodzaje programów: aplikacje
(standalone programs) i aplety (applets).
 Aplikacje mogą działać zarówno w trybie graficznym
jak i tekstowym.
 Aplety działają jedynie w środowisku graficznym.
 Aby zobaczyć działanie aplikacji musimy mieć
zainstalowaną w naszym komputerze wirtualną
maszynę Javy – JVM.
 Aplety są wykonywane przez środowisko przeglądarek;
są one widoczne wtedy, gdy przeglądarka posiada
zintegrowaną wirtualną maszynę Javy.
20
Struktura kodu w Javie
W pliku źródłowym umieść definicję
klasy.
W klasie umieść definicję metod.
W metodach umieść instrukcje.
Plik źródłowy

Co się umieszcza w pliku
źródłowym?

Plik źródłowy (ten z
rozszerzeniem .java) zawiera
definicję klasy.
Klasa reprezentuje pewien
element programu, choć bardzo
małe aplikacje mogą się składać
tylko z jednej klasy. Zawartość
klasy musi być umieszczona
wewnątrz pary nawiasów
klamrowych.
Klasa
Co się umieszcza w klasie?
 Wewnątrz klasy umieszcza się
jedną lub kilka metod. W klasie Pies
metoda szczekaj mogłaby zawierać
instrukcje określające, w jaki sposób
pies ma szczekać. Wszystkie metody
muszą być deklarowane wewnątrz
klasy (innymi słowy, wewnątrz
nawiasów klamrowych
wyznaczających klasę).
Metoda

Co się umieszcza w metodzie?
Wewnątrz nawiasów klamrowych
metody należy umieszczać
instrukcje określające sposób
działania metody. Kod metody to po
prostu zbiór instrukcji i, jak na razie,
możesz wyobrażać sobie, że
metoda to coś podobnego do funkcji
lub procedury.

Anatomia klasy
Każda aplikacja Javy musi zawierać
przynajmniej jedną klasę
i
metodę main.
Czesc.java
Zmienne
Co można zamieszczać w głównej
metodzie programu?
W głównej metodzie programu main
można umieszczać wszelkie konstrukcje,
stosowane w większości innych języków
programowania, które mają sprawić, aby
komputer wykonał jakąkolwiek czynność.
 Kod może nakazać, aby wirtualna maszyna
Javy wykonała: instrukcje (deklaracje,
przypisania, wywołania metod), pętle (for
oraz while) i rozgałęzienia (testy if oraz
if..else)

Instrukcje (deklaracje, przypisania,
wywołania metod)
Instrukcje sterujące
Generalnie podobne jak w C++
 Najczęściej spotykane

◦ if , while , for , case , return
Instrukcja warunkowa if
Pętla for
Instrukcja while
Instrukcja do-while
Zmienne indeksowane

Definicja

Użycie
Zakres
- Najniższy indeks: 0

Składnia
PHP
Podstawowe informacje
PHP:
 jest
językiem:
 skryptowym
 interpretowanym
 ściśle zintegrowanym z HTML i protokołem HTTP
 Skrypty
php są wykonywane na serwerze.
 (Nazwa
pochodzi od Personal Home Page Tools
lub Preprocessor HyPer text)
Możliwości PHP
 PHP
jest językiem interpretowanym, skrypty nie
są wykonywane tak szybko jak programy
kompilowane
 PHP nie udostępnia działania na bitach
 PHP nie udostępnia wskaźników.
 PHP wymaga większej niezależności w obsłudze
baz danych.
Większość funkcji służących do obsługi baz
danych dostępnych w PHP sprowadza się do
wywołania odpowiedniej funkcji API,
udostępnianej przez konkretny system baz
danych. Oznacza to, że obsługa każdej z baz
danych wymaga odrębnych funkcji i metod.
Możliwości PHP
 PHP
jest narzędziem niezależnym od
systemu operacyjnego serwera WWW
 PHP działa z większością webserwerów
(Apache, Microsoft IIS, AOL Server, Netscape
Enterprise Server) dostępnych na różnych
systemach operacyjnych (systemy unixowe,
Windows itp.)
 zapożycza najlepsze cechy i możliwości
funkcjonalne języka C, Javy, Perl-a. W
rzeczywistości składnia PHP jest bardzo
podobna do składni języka C
 jest produktem darmowym
Wykonanie skryptu
W javascript kod jest pobierany z serwera i
wykonywany przez przeglądarkę klienta,
mającą wbudowany interpreter danego
języka skryptowego.
W PHP kod nie jest przesyłany do
przeglądarki klienta ale wykonywany przez
serwer WWW (np. Apache, IIS) a wyniki
działania skryptu są przesyłane do
przeglądarki już w kodzie języka HTML.
Co jest niezbędne do wykonania skryptu
PHP?
1.
2.
3.
4.
Przeglądarka internetowa,
Zainstalowany jeden z serwerów WWW, np.
Apache, IIS,
Zainstalowany interpreter języka PHP (ang.
parser)
Uwaga: Najlepiej zainstalować cały pakiet
KRASNAL ver. od 2.7, posiada wszystko, co
potrzeba do uruchomienia, przetestowania
skryptów.
Skrypty PHP
 Skrypty
są tworzone w językach
programowania. Następnie ich kod jest
przekazywany przed wykonaniem do
specjalnego
oprogramowania
–
interpretera (parsera), który tłumaczy go
na postać zrozumiałą w danym systemie
operacyjnym, po czym skrypt ten jest
wykonywany.
 Pliki
PHP powinny mieć domyślne
rozszerzenie .php lub .html,
Dozwolone schematy skryptu PHP
1. <?php
instrukcja skryptu
?>
lub w wersji skróconej <? a ?>
Wówczas musi być zapisany jako oddzielny plik
skryptowy o rozszerzeniu .php lub
2. <SCRIPT language=„php”>
Instrukcja skryptu
</SCRIPT>
lub w kodzie języka HTML
3. <BODY>
<?php
printf („<B>pierwszy skrypt</B>”); } skrypt PHP
?>
</BODY>
kod php w dokumencie html
<?php instrukcje_skryptu ?>
Przykład
<body>
<?php
/* najpierw wyswietlimy tytul,
tytul jest wazny */
echo ”<h1> tytul </h1> tekst”;
?>
</body>
wynik:
tytul
tekst
Podstawy języka PHP - zmienne
-zmiennych nie trzeba deklarować,
- typ zmiennej określany jest w czasie wykonywania programu i zależy od
kontekstu, w jakim zmienna została użyta
- nazwa zmiennej musi być poprzedzona znakiem $:
$a = 2;
//zmienna typu całkowitego
$b = 1.2;
//zmienna typu rzeczywistego
$c = "tekst"; //zmienna typu tekstowego
Typy zmiennych
integer – przechowuje liczby całkowite, np. 33;
double – przechowuje liczby rzeczywiste, np. 7,45;
string - przechowuje ciągi znakowe, np. tekst;
array – tablice (zmienne wielokrotne);
boolean – zmienne logiczne o wartości TRUE lub
FALSE.
Przykłady wykorzystania zmiennych
<?
$y=0.55;
$x=10;
$z=$x+$y;
printf (”zmienna z ma wartość: $z”);
?>
Sekwencje unikowe
\n – przejście do nowej linii (tylko w źródle),
\r – powrót karetki do nowej linii,
\t – odpowiednik klawisza Tab (tabulacja),
\\ - wyświetla znak \,
\* - wyświetla znak *,
\$ - wyświetla znak $.
Podstawowe operatory arytmetyczne w PHP
+ (dodawanie) $x+$y  Suma $x i $y
- (odejmowanie) $x-$y  Różnica $x i $y
* (mnożenie) $x*$y  Iloczyn $x i $y
/ (dzielenie) $x/$y  Iloraz $x i $y
% (modulo) $x%$y  Reszta z dzielenia $x i $y
zmienne, instrukcje, proste
wyrażenia - przykłady
$calkowita = 2;
$calkowita = $calkowita + 2;
$calkowita++;
wartość calkowitej = 5
$napis = ”ala ma kota";
$inny = $napis . ” burego”;
wartość napisu = ”ala ma kota burego”
$pi = 3.14;
$tablica[0] = ”ola”;
$tablica[1] = ”ula”;
$a==$b
wartością jest true jeśli $a równe $b,
false w przeciwnym przypadku
inne warunki: $a<$b, $a>5, $a!=$c, $a<=$g, $d>=$d (mniejsze,
większe, różne, mniejsze lub równe, większe lub równe)
Funkcje
phpinfo();
$dzis = date( ”Y-m-d”);
print( ”dziś jest ” . $dzis . ”<br>”);
$studenci = array(”ula”, ”ela”, ”ola”,
”ala”);
sort( $studenci);
echo
echo
echo
echo
studenci[
studenci[
studenci[
studenci[
0]
1]
2]
3]
.
.
.
.
”, ”;
”, ”;
”, ”;
” ”;
IF…
if (wyrażenie) instrukcja
Jeśli wyrażenie ma wartość TRUE, to podana instrukcja zostanie
wykonana. W wyrażeniach można stosować operatory logiczne: OR (lub)
lub AND (i).
Przykład
if( $a < $b) print( ”a za male”);
if(( $a < 0) OR ( $b < 0)) {
print ( ”a i b nie moga być mniejsze od
0!”);
$a = 0; $b = 0;
}
IF…ELSE
Rozszerzenie instrukcji if o część wykonywaną w przypadku gdy warunek
nie jest spełniony.
Przykład
if( $a < $b) { print( ”a za male”); }
else { print( ”a w sam raz </p>”); }
if(( $a < 0) OR ( $b < 0))
{ print( ”a i b musza być wieksze od 0!”); }
elseif { $a < $b)
{ print( ”b musi byc mniejsze od a!”); }
else { print( ”ok”); }
WHILE…
while (wyrażenie) instrukcja
wielokrotne wykonanie instrukcji (pętla), instrukcja wykonuje się jak
długo wyrażenie ma wartość TRUE .
Przykłady
$a = 0;
while ( $a <= 6) {
print( ”a”);
$a++;
}
wyniki: aaaaaaa
$a = 0;
while ( $a <= 6){
print( $a);
$a = $a + 1;
}
wyniki: 0 1 2 3 4 5 6
DO… WHILE
do instrukcja while (wyrażenie)
wielokrotne wykonanie instrukcji (pętla), warunek jest sprawdzany po
wykonaniu instrukcji
Przykłady
$a = 0;
do {
print( ”$a ”);
$a++; }
while ( $a <= 6)
wyniki: 0 1 2 3 4 5 6
$a = 0;
do {
print( $a);
$a++; }
while ( $a < -10)
wyniki: 0
FOR…
for( wyrażenie1; wyrażenie2; wyrażenie3)
instrukcja
pętla, wykonanie jest następujące:
wyrażenie1;
while wyrażenie2 {
instrukcja;
wyrażenie3;
}
Przykład
for( $i = 0; $i <= 6; $i++) { print( $i . ”
”); }
wyniki: 0 1 2 3 4 5 6
PHP - przykłady
<HTML>
<HEAD>
<TITLE>Przyklad 1</TITLE>
</HEAD>
<BODY>
Aktualna data to:
<?PHP
//wyświetl aktualną datę
print(Date("d-m-Y"));
?>
</BODY>
</HTML>
Przykłady
<HTML> <HEAD>
<TITLE>Tabliczka mnożenia</TITLE>
</HEAD> <BODY>
<?
print("<TABLE BORDER=\"1\">\n"); //rozpocznij tabelę
for($Row=1; $ Row <= 12; $ Row ++)
{
print("<TR>\n"); // rozpocznij wiersz
// wyświetl każdą z kolumn
for($Column=1; $ Column <= 12; $ Column ++)
{
print("<TD>");
print($Row * $Column);
print("</TD>");
}
print("</TR>\n"); // zakończ wiersz
}
print("</TABLE>\n"); // zakończ tabelŕ
?>
</BODY>
</HTML>
Przykłady
Przeglądarka wyświetli nam
tabliczkę mnożenia
Korzystając tylko z HTMLa
kod byłby znacznie dłuższy
przez co łatwiej o pomyłkę.