Osnove programiranja. Uvod Razvoj i vrste programskih jezika

Слични документи
Транскрипт:

Osnove programiranja Uvod Razvoj i vrste programskih jezika

Nastava Nedeljni fond časova: 3 + 2 Predavanja: 3 x 15 = 45 časova dr Suzana Marković, dipl.inž.el. Laboratorijske vežbe: 2 x 15 = 30 časova Asistent, Anastasija Trninić

Polaganje ispita Kolokvijumi: Teorija (test na papiru) Zadaci (na računaru) Integralni ispit 2 kolokvijuma tokom predavanja Praktični kolokvijum nakon završenih vežbi Položen praktični kolokvijum je uslov za ispit!

Ocenjivanje Teorija - 60% od ukupnog broja poena sa oba kolokvijuma Praktični kolokvijum - 40% od ukupnog broja Konačna ocena: suma bodova iz svih aktivnosti (min. 50% za prolaznu ocenu)

Literatura S. Marković, Osnove programiranja, Akademija poslovnih strukovnih studija, Beograd, 2019. S. Nakov & Co, Fundamentals Of Computer Programming With C#, 2013. http://www.introprogramming.info/english-introcsharp-book/read-online/ Sve C# knjige koje pokrivaju sadržaj predmeta Predavanja (prezentacije) Korisni linkovi i e-knjige

Cilj predmeta Upoznavanje studenata sa programiranjem računara i razvojem softvera. Razumevanje algoritamskog načina rešavanja problema i zadataka. Upoznavanje sa osnovnim konceptima, principima i metodama programiranja. Sticanje znanja potrebnih za realizaciju svih faza životnog ciklusa softvera. Osposobljavanje studenata za samostalno izučavanje i primenu programskih jezika i okruženja.

Sadržaj predmeta Istorijat računarstva i brojeva Razvoj i vrste programskih jezika Algoritmi Konzolne aplikacije Promenljive, konverzije Operatori i izrazi Kontrola toka programa Uslovi Petlje Nizovi Funkcije Greške Osnovni OO koncepti Klase i objekti

Raspored Nedelja Predavanja Datum 1 Uvod Brojni sistemi 23.2. 2.NET i konz. aplikacije Promenljive 2.3. 4 Konverzije Operatori i izrazi 6.3. 5 Kontrola toka IF, alg. 9.3. 6 Petlje 16.3. 7 Priprema za kolokvijum 23.3. 8 KOLOKVIJUM I 30.3. 9 Nizovi 6.4. 10 Funkcije 1 13.4. 11 Funkcije 2 20.4. 12 Greške i fajlovi 27.4. 13 Priprema za kolokvijum 11.5. 14 KOLOKVIJUM II 18.5. 15 Popravni 25.5.

Sadržaj predavanja Istorijat brojeva i računarstva Pojam jezika Definicija programskih jezika Sintaksa i semantika Program i programiranje Klasifikacija programskih jezika po stepenu zavisnosti od računara Hronologija razvoja viših programskih jezika Podela programskih jezika prema načinu rešavanja problema

Istorijat brojeva Pre više od 5000 godina, Egipćani osmislili način zapisivanja brojeva koristeći slike Grci su znanja iz geometrije preuzeli od Egipćana umesto slika koristili slova za prikaz brojeva (Δ (delta) deka: 10, h (eta) hekaton: 100, M (mi) myrioi: 1000. I jedni i drugi koristili su dekadni brojni sistem

Pojava nule Nulu su stvorili Vavilonci Za računanje koristili računaljku princip nizanja kamenčića (lat. calculate, calculus - kamenčić) Brojevi 1 i 60 su isto zapisivani ali su na računaljci zauzimali dve različite pozicije. Tako se ukazala potreba za zapisivanjem praznog mesta nule.

Istorijat brojeva Današnji brojevi razvili su se od simbola koji su nastali u Indiji Arapi brojni sistem preuzimaju od Indijaca, zajedno sa nulom Početkom XIII veka Leonardo Fibonači donosi sistem arapskih brojeva u Evropu Fibonačijev niz (problem kunića) odnos dva susedna broja u nizu približava se zlatnom preseku

ISO definicije: Pojam jezika Jezik je skup znakova, dogovora i pravila koji se koriste za prenos i saopštavanje informacija Prirodni jezik jezik čija se pravila zasnivaju na svakodnevnom korišćenju bez njihove eksplicitne definicije Veštački jezik jezik čija su pravila eksplicitno utvrđena pre njegovog korišćenja

Definicija programskih jezika Programski jezik veštački jezik koji se koristi za pripremu programa za računar (ANSI) Jezik za izradu programa, sastavljen od simbola koje računar može da prevede u direktne radnje Algoritamski jezik veštački jezik namenjen opisu algoritma

Sintaksa i semantika Skup pravila koja formiraju programski jezik naziva se sintaksa programskog jezika. Utvrđuje se da li je određena konstrukcija pravilno napisana. Prevodilac ih lako otkriva. Semantika određuje značenje konstrukcija ili programa u celini. Semantičke greške su logičkog tipa i tiču se razumevanja toga kako program funkcioniše. Otkriva ih programer.

Program i programiranje PROGRAM je niz instrukcija (naredbi) zapisanih u memoriji računara kojim se precizno određuje na koji način će se transformisati ulazni podaci da bi se dobio željeni izlaz. Proces pripreme programa, koji se sastoji od projektovanja, pisanja i testiranja programa naziva se programiranje.

Klasifikacija programskih jezika po stepenu zavisnosti od računara

Prevođenje programskih jezika izvorni program public class Zdravo { public static void main (String[] args) { System.out.println("Zdravo!"); } } izvršni program 10010000010101001010101 00011111000100101010101 00000100110010101010101 11110010101010101010100 01101010101010100000101

Simbolički jezici Umesto instrukcija pisanih nizom bitova, uvedene su mnemoničke skraćenice (simbolički kodovi instrukcija) za operacije i simboličke oznake podataka, npr. naredbom ADD a, b vrši se sabiranje podataka. Program se piše u simboličkom jeziku, prevodi se na mašinski, a program koji vrši prevođenje iz simboličkog u mašinski jezik naziva se asembler (translator).

Programski jezici višeg nivoa Mašinski nezavisni jezici. Visok stepen nezavisnosti u odnosu na arhitekturu računara i operativni sistem na kojem se izvršavaju. Svaki program pisan jezikom višeg nivoa prevodi se na mašinski jezik. Na osnovu načina prevođenja i izvršavanja, jezike višeg nivoa delimo na kompajlerske i interpreterske jezike.

Kompajleri i interpretatori Kompajliranje programa - prevođenje programa i izvršavanje programa vremenski odvojeni procesi. Kompajliranje izvode programi koji se nazivaju prevodioci (kompajleri). Interpretiranje programa - prevođenje programa i izvršavanje programa vremenski spojeni procesi u jedan. Interpretiranje izvode programi koji se nazivaju interpretatori.

Viši programski jezici

Podela VJ prema načinu rešavanja problema Deklarativni jezici - problemi se opisuju, a sam sistem (interpreter) ima ugrađene postupke kako da reši opisani problem. Program u neproceduralnom jeziku je niz naredbi koji određuje ŠTA treba učiniti (npr. izdvoji podatke koji zadovoljavaju dati uslov ) Primeri deklarativnih jezika su Prolog i SQL.

Podela VJ prema načinu rešavanja problema Proceduralni jezici -računaru se daje kompletan skup instrukcija kojim se rešava problem - algoritam za rešavanje zadataka. Program u proceduralnom jeziku je niz naredbi koji određuje KAKO se određena akcija obavlja (npr. otvori datoteku, zatvori datoteku itd.) Programski jezici su ovog tipa: Fortran, Cobol, Basic, Pascal, C kao i mašinski zavisni jezici.

Programski jezik C Nastaje 1970. godine Jezik za razvoj UNIX-a ANSI C standard osnovna referenca za programiranje Sprega sa hardverom Pogodan za razvoj komponenti sistemskog softvera i u drugim primenama gde je potrebna sprega sa resursima sistema Objektna nadgradnja C++, C#

Objektno orijentisani jezici Prisutni su i proceduralni i neproceduralni elementi. Podaci i akcije koje se izvode nad njima predstavljaju jednu nerazdvojnu celinu i čine aktivan objekat. Program u OO jeziku predstavlja skup objekata koji između sebe i sa spoljnim svetom komuniciraju putem poruka. Mnoštvo različitih objekata može se uočiti u okruženju grafičkih operativnih sistema (Graphic User Interface). Npr. Ikona je objekat. Svakoj je pridružen skup osobina i akcija koje opisuju reagovanje na spoljašnje događaje (klik miša, dvoklik, itd.)

SMALLTALK Koreni objektnih jezika - Simula 67 Prvi potpuno objektno orijentisan jezik - Smalltalk-80 Današnji savremeni jezici su skoro svi objektno orijentisani Kombinacija objektnog i vizuelnog programiranja Event Driven Programming Visual Basic, Visual C++, Java, C#

C# C# je jednostavan objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se pojavila 2002. godine. Poslednja verzija C# je 7.0 koja se pojavila 2017. god. Pošto je naslednik C i C++ jezika, dobio je ime sharp po inspiraciji muzičke notacije i znači da se napisana nota izvodi za pola koraka više (C # ). Fajlovi pisani u ovom jeziku imaju ekstenziju cs.