Programiranje

Report
Programski jezici
101
Programske jezike svrstavamo u više
grupa :
 - Web jezici ( ASP.NET, PHP )
 - Desktop jezici ( C, C++, C# )
 - SQL ( jezik za rad s bazama
podataka)
 - Masovne primjene ( JAVA )
 - Šaljivi jezici ( LOLCODE, Brainfuck)

Web jezici

PHP

HTML

Hypertext Preprocessor
Serverski programski
jezik široke namjene
Ima sintaksu sličnu C-u
Može bit umetnut u
HTML kod

Hypertext Markup
Language
Jednostavan, “ human
readable “ jezik
HTML element su
osnova svake web
stranice





Web jezici

JavaScript

ASP(.NET)

Klijentski programski
jezik ( izvršava se u
pretraživaću korisnika )
Koristi se za povećanje
interaktivnosti s
korisnikom

Active Server Pages
Proizvedena od strane
Microsofta



ASP.NET je sljedeća
generacija ASP-a
Desktop jezici

C
Najzastupljeniji desktop
programski jezik široke
namjene
 Prvi put se pojavio 1972.
godine
 Ima mnogo implementacija
i služi kao osnova za
mnoge buduće programske
jezike


C++, C#

Sljedeće generacije C-a
okrenute objektno
orjentiranom
programiranju
C++ je jezik iz kojeg su
sastavljeni Windowsi
C# je Microsoftov
programski jezik


( Zastarjeli ) Desktop jezici

Assembly

Low Level programski
jezik ( nije portabilan)
Koristi se za
programiranje rada
računala,
mikroprocesora,
mikrokontrolera, i ostalih
programabilnih uređaja


Fortran

Prvi put se pojavljuje
1957. godine te je
masovno prihvaćen od
strane IBM-a, Intel-a,
Oracle-a, Fujitsua
U prvom redu napisan za
znanstveno računanje

SQL jezici
Podržava umetanje ,
mjenjanje , brisanje
podataka, upravljanje
strukturom baze, i
kontrolu pristupa
podacima
 Proceduralni (neobjektni)
pristup rada


Structured Query
Language
Prvi put se pojavljuju 1974.
godine
 Služe za rad
(komunikaciju) sa bazama
podataka
 Odlikuju se statičnošću i
jačinom

Masovna primjena ( JAVA )


Objektno orijentirani
programski jezik
sastavljen od strane
Sun Microsystems-a
Najzastupljeniji
programski jezik,
nalazimo ga svugdje:
televizije, mobiteli,
radio uređaji, kućanski
aparati, u
automobilima,
pojačalima i mnogim
drugim.
Njegova sintaksa je
inspirirana od strane
C++, Delphi-a,
Pascala, a njime su
inspirirani C#,
JavaScript, PHP,
Pyton, i drugi
Šaljivi jezici

LOLCODE
Ezoterični programski
jezik sastavljen 2007.
godine
 Napisan kao šala, ali
ipak je našao svoju
grupu korisnika
 Ima vrlo ograničenu
upotrebu
 Filename ekstenzija
.lol


Hello World primjer:

HAI

( početak programa )

CAN HAS STDIO?

( upotreba standardne input / output biblioteke,
ekvivalent #include <stdio.h> )

VISIBLE “HAI WORLD!“

( prikazuje poruku “HAI WORLD” na ekranu )

KTHXBYE

( završava program, literalno: ok, thanks, bye)
LOLCODE nastavak








LOLCODE primjer
sa jednostavnim
if/else (ako/inače)
PLZ OPEN FILE “LOLCATS.TXT”?
zahtjevom kojim se
AWSUM THX
pokuša otvoriti file (
VISIBLE FILE
PLZ OPEN FILE –
pokušaj otvoriti ovaj
O NOES
file ), AWSUM THX
INVISIBLE “ERROR!”
ako je uspješno, ili O
KTHXBYE
NOES ako nije
uspješno
HAI
CAN HAS STDIO?

Web jezici


HTML
Osnova svake web
stranice, opisuje
strukturu i značajke
(properties) stranice,
kao npr. : ključne
rječi, opis, standard
po kojem je stranica
pisana, i drugo.

Kako izgleda kod
tablice u HTML-u:

<table width=“100px”
height=“50px” align=“center”>
<tr>
<td>tekst</td>
</tr>
</table>
Ovaj kod crta tablicu širine
100 piksela, visine 50 piksela,
i nalazi se na sredini stranice,
i ima jedan redak (row) unutar
kojeg je tekst ”tekst”





Web jezici




CSS
Cascading Style
Sheets
Služi kao jezik kojim
se manipulira izgled
web stranice (izgled
i formatiranje)
Može biti korišten
van HTML-a (XML,
SVG, i drugi.)

Primjer formatiranja
linkova u CSS-u:

a:hover {
Color: red;
}
A:active {
Color: blue;
}






Ovaj će kod linkovima
promjeniti boju u crveno kada
pređemo mišem preko njih, te
zaplaviti kada kliknemo na
njih (focus)
Web jezici

JavaScript


Klijentski programski
jezik (izvršava se u
pretraživaću) izumljen
1995. godine
Ne postoji jamstvo da
će se JavaScript kod
izvršiti u pretraživaću
(jer korisnik može
isključiti u
pretraživaću
izvršavanje JS koda)



Često se koristi u web
stranicama i izvan njih
Kada je korišten u
web stranicama on se
najčešće koristi za
iskakanje novih
prozora, provjeru
(validiranje) inputa,
efekte i mnogo više
Kada je korišten izvan
web stranice onda se
najčešće koristi kao
ekstenzija postojećim
aplikacijama
Web jezici

“Hello World”
JavaScript primjer:

<script type=“text/javascript”>
Document.write(‘hello world’);
</script>
<noscript>
Ovo se izvršava ako
pretraživać ne podržava
JavaScript
</noscript>






Važno je napomenuti i
AJAX (Asynchronous
JavaScript and XML),
grupu usko povezanih
metoda za izvršavanje
asinkronih
(procesiranje koje
dozvoljava drugim
procesima da se
nastavljaju izvršavati
prije nego što se
prijenos završi)
zadaća.
Osnove Programiranja

Svaki programski jezik
se sastoji od varijabli,
funkcija, petlji, konstanti,
uvijeta, i drugo.
Moderniji programski
jezici podržavaju
objektno orijentirano
programiranje (OOP).
Slijede primjeri u PHP-u,
čija je sintaksa slična
mnogim drugim
programskim jezicima (
najviše C-u, iz kojeg je
napravljena).















Primjer varijeble:
$imevarijable = “sadržaj varija”ble”;
Primjer stvaranja nove funkcije:
Function primjer($unos) {
Echo “Unos: $unos”;
}
Primjer konstante, najčešće se pišu
velikim slovima:
NASA_KONSTANTA = ‘sadrzaj’;
Primjer OOP – a, tj. klase:
Class primjer {
$varijabla;
Function primjer() {
// nista se ne izršava
}
}
Osnove Programiranja - nastavak

Uvjeti – if / elseif / else

Define(‘KONSTANTA’, 1);
If (KONSTANTA == 2) {
// ovo se ne će izvršavati jer
KONSTANTA nije 2
} elseif (KONSTANTA == 1) {
// ovo će se izvršavati
} else {
// ovo se ne će izvršavati, a
izvršavalo bi se kada nijedan
prijašnji uvjet nije zadovoljen
}








Petlje (loops)

Kao najjednostavniji primjer koristiti ćemo while
petlju. Ona se izvršava sve dok je uvjet u
zagradi istinit.

$i = 0;
While ($i < 10) {
// ovo će se izvršavati dok god je $i manji od 10
$i++;
// $i se svaki put poveća za 1
}






Važno je petlju učiniti non-infinite, tj. spriječiti
da se ona beskonačno ponavlja.
Web jezici :: PHP


Otvorenog koda,
široke primjene i
specijaliziran za
razvoj web aplikacija i
može biti ugrađen u
HTML.
Sintaksu preuzeo iz
C-a, u kojem je i
napisan.




Prvi put se pojavljuje
1995. godine
Inicijalno izdan od
strane Rasmusa
Lerdorfa, sada PHP
grupe
Radi na više platforma
(Windows, Linux, Mac
OSX, Solaris)
Uobičajne ekstenzije:
.php, .phtml, .phps
Web jezici :: PHP

Hello World primjeri
<?
// ovo je komentar. Prvi primjer:
Echo “Hello World!”;
/* drugi primjer: */
$varijabla = “Hello “;
Echo $varijabla . “World”;
# treći primjer:
Print “Hello World”;
?>
Echo() funkcija se
koristi za ispis
podataka na ekranu.
U drugom primjeru
uveli smo varijable, no
rezultat je jednak,
samo što je string
(skup znakova, slova i
brojki) “Hello” sadržan
u varijabli $varijabla.
 Funkcija print()
ekvivalentna je funkciji
echo().

Web jezici :: PHP

U sljedećem
primjeru
demonstriramo
jednostavan PHP
program pomoću
kojeg vidimo koliko
je puta stranica
pogledana. Rezultati
se spremaju u file
log.txt.














<?
// ime filea
$ime = “log.txt”;
// dohvaćamo trenutnu vrijednost
$vrijednost = file_get_contents($ime);
// povećamo je za jedan
$vrijednost++;
// umećemo novu vrijednost u log.txt
File_put_contents($ime, $vrijednost);
// prikazujemo novu vrijednost
Echo “Broj Posjeta: “ . $vrijednost;
// alternativni način prikazivanja vrijednosti
Printf(‘Broj Posjeta: %d’, $vrijednost);
?>
Web jezici :: PHP i Baze Podataka

U sljedećem primjeru
prikazujem upotrebu
PHP-a i SQL jezika za
komunikaciju s
MySQL bazom
podataka (data base).
Koristiti ćemo
moderno objektno
orijentirano
programiranje, te već
interno implementirani
mysqli objekt.
Dostupno od četvrte
verzije PHP-a.

<?
// iniciramo novi MySQL objekt

$db = new mysqli(‘_lokacija baze_’, ‘_korisničko
ime_’, ‘_lozinka_’, ‘_ime baze_’);


// provjeravamo da li je veza uspješna
If ($db->connect_error) {


// ako nije, prekini izvršavanje programa
Die (‘Neuspješno spajanje’);

}

/* naredba koju ćemo predati MySQL
poslužitelju. Ako zamislimo da je baza ispunjena
korisnicima, želimo prikazati koliko je osoba
kojima je ime Ivan */
$sql = “SELECT * FROM _ime baze_ WHERE
ime = ‘Ivan’”;


// izvršavamo naredbu
$q = $db->query($sql);
... nastavak













/* provjeravamo postoji li osoba sa imenom Ivan u bazi podataka */
$provjera = $db->num_rows($q);
If($provjera == 0) {
Die (‘Korisnik ne postoji’);
} else {
/* korisnik postoji, izbacujemo broj ljudi sa imenom Ivan u bazi podataka */
Echo $provjera;
}
// oslabađamo memoriju
$db->free($q);
// zatvaramo vezu sa MySQL poslužiteljom
$db->close();
?>
Web programiranje :: Jednostavna HTML i
PHP forma



<html>
<body>
<form action=“Rezultat.php”
method=“post”>
<input type=“text”name=“ime”>
<input
type=“submit”name=“pokrenuto”>
</form>
<!– ovo je primjer komentara u
htmlu -->
</body>
</html>
Ova jednostavna PHP aplikacija
ispisuje na ekran uneseno ime,
ako je forma pokrenuta.

Forma.html

Rezultat.php












<?
If ($_POST[‘pokrenuto’]) {
$ime = $_POST[‘ime’];
Echo “Vaše ime je $ime.”;
?>
Web programiranje - Sigurnost

Sigurnost je vrlo bitan
dio programiranja.
Vrlo je bitno
provjeravati unose
korisnika, jer bi u
suprotnome korisnik
vrlo lako mogao srušiti
web stranicu,
neovlašteno
manipulirati bazom
podataka te čak srušiti
web server.






Primjer zaštite od neovlaštenih unosa
korištenjem PHP funkcije addslashes(). Ta će
funkcija dodati znak \ ispred svakog apostrofa
(‘) kako bi se spriječilo injektiranje malicioznog
koda.
$unos = addslashes($_POST[‘neki-korisnikovunos’]);
Sljedeći primjer zaštite koristi funkciju
htmlentities() kako bi se potencijalno zloćudni
specijalni znakovi pretvorili u njihov bezopasni
ekvivalent. Varijabla $unos je već definirana.
$unos = htmlentities($unos);
Mysqli objekt već ima unaprijed definiranu
funkciju za zaštitu od malicioznog injektiranja.
$unos = mysqli::real_escape_string($unos);
Programiranje - KTHXBYE

Programiranje, iako se čini drukčije, vrlo je
abstraktna vještina.

similar documents