tehnike programiranja predavanje 11 - studentski.net · programiranje programski jeziki...
TRANSCRIPT
![Page 1: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/1.jpg)
Tehnike programiranja
PREDAVANJE 11
![Page 2: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/2.jpg)
Predavanje 11
Načrtovanje programov
Programski jeziki
ldos.fe.uni-lj.si
>študij >Tehnike programiranja
>Gradiva
Kolokvij:
28.5. ob 9:30
![Page 3: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/3.jpg)
![Page 4: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/4.jpg)
![Page 5: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/5.jpg)
![Page 6: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/6.jpg)
![Page 7: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/7.jpg)
Program
algoritem – določeno zaporedje ali niz navodil, ki opisujejo rešitev
problema
diagram poteka
sestavine programa
Primer: podaj algoritem za naslednji problem...
![Page 8: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/8.jpg)
Programiranje
programski jeziki
načrtovanje programske opreme
programiranje je proces ko dani problem formuliramo tako, da ga
računalnik lahko izvede.
računalniški program je niz ukazov
![Page 9: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/9.jpg)
Ali so vsi programi že napisani?
Računalniki so prisotni 50 let. Pričakovali bi, da so vsi programi že napisani.
Na voljo je na stotine programov: programi za obdelavo besedila, računovodstvo, risanje, igre, načrtovanje, ...
Program:
– kupim
– kupim/dobim in nadgradim
– napišem sam
![Page 10: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/10.jpg)
Vhod / izhod
Tipkovnica prinese revolucijo
? sodobni vmesniki
01000001 A
A
tipkovnica spomin tiskalnik / monitor
računalnik
vhod izhod proces
![Page 11: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/11.jpg)
Vhodne enote
tipkovnica
miška
zaslon na dotik
pisalna plošča
magnetno črnilo
optični čitalci
senzorji
kamere
Mikrofon
...
![Page 12: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/12.jpg)
Izhodne enote
Avdio/video prikazovalniki
Tiskalniki, ploterji, mikrofilm, ...
Disk, tračne enote, optične enote
Brezžične in žične povezave
![Page 14: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/14.jpg)
![Page 15: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/15.jpg)
![Page 16: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/16.jpg)
Pristopi k reševanju problema
1. Identifikacija problema
2. Razumevanje problema
3. Iskanje alternativnih poti za rešitev problema
4. Izbor optimalne rešitve
5. Nabor korakov za izvedbo
6. Evalvacija rešitve
![Page 17: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/17.jpg)
Pristopi k reševanju problemov
top-down – analiza in dekompozicija problema
– razgradnja sistema na podsisteme, modularnost
– proceduralno programiranje: jezik C
bottom-up – sinteza
– poudarek na kodiranju in testiranju
– uporaba delov kode
– objektno programiranje: jezika C++ in Java
običajno uporabimo kombinacijo obeh
UML (universal modelling language)
![Page 18: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/18.jpg)
Razvoj programske opreme
1. Planiranje
2. Analiza problema
3. Načrtovanje rešitve
4. Implementacija rešitve
5. Vzdrževanje
![Page 19: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/19.jpg)
SDLC (system development life cycle)
zahteve predlog
sistema, alternative
specifikacije sistema
sistem plan
vzdrževanja
planiranje analiza načrtovanje izdelava vzdrževanje
![Page 20: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/20.jpg)
Primer LOC
Year Operating System SLOC (Million)
1993 Windows NT 3.1 4-5
1994 Windows NT 3.5 7-8
1996 Windows NT 4.0 11-12
2000 Windows 2000 more than 29
2001 Windows XP 40
2003 Windows Server
2003 50
![Page 21: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/21.jpg)
LOC
Operating System SLOC (Million)
Red Hat Linux 6.2 17
Red Hat Linux 7.1 30
Debian 2.2 55-59
Debian 3.0 104
Debian 3.1 215
Debian 4.0 283
OpenSolaris 9.7
FreeBSD 8.8
Mac OS X 10.4 86
Linux kernel 2.6.0 5.2
![Page 22: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/22.jpg)
Planiranje rešitve
Analiza problema
– Vhodni podatki
– Željeni rezultati
– Zahtevana obdelava (procesiranje)
– Nabor možnih rešitev
Komunikacija z računalnikom: Kodiranje
Plan testiranja
![Page 23: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/23.jpg)
Principi načrtovanja
analiza
načrtovanje, oblikovanje
testiranje, ocenjevanje
izboljšave
programer končni uporabnik
![Page 24: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/24.jpg)
![Page 25: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/25.jpg)
Programski jeziki
programski jeziki:
– proceduralni jeziki: C, Pascal, …
– objektno usmerjeni jeziki: C++, Java
skriptni jeziki: JavaScript
označevalni jeziki: HTML
? izbor programskega jezika
Primeri uporabe programskih jezikov
![Page 26: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/26.jpg)
Programski jeziki
Proceduralno
– Zgradba: glavni program (rutina), ki kliče funkcije
– Reševanje sekvenčnih problemov
– Neprimerno za interaktivne aplikacije
Objektno
– Zgradba: objektni principi, kjer so objekti v interakciji med seboj –
posnemanje realnega sveta
– Rešuje probleme sekvenčnega programiranja
![Page 27: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/27.jpg)
LOC (Lines of code)
C COBOL
#include <stdio.h>
int main(void) {
printf("Hello World");
return 0;
}
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLOWORLD.
000300
000400*
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL. 000800
OBJECT-COMPUTER. RM-COBOL. 000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400 DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500 DISPLAY "Hello world!" LINE 15 POSITION 10.
100600 STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800 EXIT.
Lines of code: 5
(excluding whitespace)
Lines of code: 17
(excluding whitespace)
![Page 28: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/28.jpg)
Programski jezik Java
objektno orientiran jezik
neodvisnost od platforme – operacijskega sistema
izhodišče C++
public class Pozdrav {
public static void main(String[] args) {
System.out.println("Pozdravljeni!");
}
}
![Page 29: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/29.jpg)
Strojni jezik in zbirnik sta odvisna določena za dani CPE
Sled preprostega programa
![Page 30: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/30.jpg)
Programski jezik Java
Principi objektnega programiranja
– Definiranje razredov in objektov
– Določitev interakcije med objekti
– Načrtovanje programa in testiranje
Prevajalnik (compiler) prevede javansko kodo v strojno kodo
– (JavaScript uporablja interpreter (intepreter)!)
![Page 31: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/31.jpg)
Odjemalec - Strežnik
Programska koda na odjemalcu (client):
– Izvede se na odjemalcu, običajno del HTML datoteke
– Primer: skripta napisana v jeziku JavaScript
– Uporaba: dinamična vsebina spletne strani
Programska koda na strežniku (server):
– Izvede se na strežniku pred pošiljanjem odgovora odjemalcu
– Primer: Skripta napisana v jeziku PHP
– Uporaba: generacija vsebine spletne strani s trenutnimi podatki v
podatkovni bazi
![Page 32: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/32.jpg)
Spletne strani
spletne strani sestavljajo: besedilo, slike, povezave, ...
vsebino spletne strani lahko vidim, če v brskalniku pritisnem desno tipko in
izberem View Source
![Page 33: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/33.jpg)
JavaScript v Adobe Photoshop CS
Uporaba skript za obdelavo gradiv v Adobe Photoshop okolju
– Avtomatizacija obdelave velike količine slik
– Prilagoditev in dodajanje ukazov
– Dodajanje novih funkcionalnosti, prilagoditev uporabniškega vmesnika
Možnost izvajanja odločitev in pogojev: pogojni in ponavljalni stavki
http://www.howtogeek.com/howto/34334/how-to-use-javascript-to-save-time-by-automating-photoshop/
http://morris-photographics.com/photoshop/tutorials/scripting2.html
http://www.photoshopsupport.com/tutorials/jennifer/photoshop-scripts.html
![Page 34: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/34.jpg)
![Page 35: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/35.jpg)
http://blog.jonasbandi.net/2012/02/future-smells-like-javascript.html
![Page 36: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/36.jpg)
![Page 37: Tehnike programiranja PREDAVANJE 11 - studentski.net · Programiranje programski jeziki načrtovanje programske opreme programiranje je proces ko dani problem formuliramo tako, da](https://reader030.vdocuments.net/reader030/viewer/2022040311/5d67733f88c993d4378b6967/html5/thumbnails/37.jpg)