uvod razvoj i vrste programskih jezika c# je objektno orijentisan programski jezik opšte namene....

28
Osnove programiranja Uvod Razvoj i vrste programskih jezika

Upload: others

Post on 03-Dec-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Osnove programiranja

Uvod

Razvoj i vrste programskih jezika

Page 2: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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ć

Page 3: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Polaganje ispita

Kolokvijumi:

Teorijski (test na papiru)

Praktični (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!

Page 4: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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)

Page 5: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Literatura S. Marković, Osnove programiranja,

Beogradska poslovna škola, 2016.

S. Nakov & Co, Fundamentals Of Computer

Programming With C#, 2013.

http://www.introprogramming.info/english-intro-

csharp-book/read-online/

Sve C# knjige koje pokrivaju sadržaj predmeta

https://sites.google.com/site/bbsosnoveprogra

miranja/

Predavanja (prezentacije)

Korisni linkovi i e-knjige

Page 6: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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.

Page 7: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Sadržaj predmeta

Page 8: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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

Page 9: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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

Page 10: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Pojava nule

Nulu su stvorili Vavilonci

Za računanje koristili računaljku koja je radila po

principu 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.

zapisivanje praznog mesta – nule.

Page 11: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Istorijat brojeva

Današnji brojevi razvili su se od simbola koji su

nastali u Indiji

trebalo bi da se zovu indijski, a ne arapski brojevi.

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

Page 12: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Pojam jezika

Sistem izražavanja misli koji ima određena

glasovna i gramatička pravila i služi kao glavno

sredstvo za sporazumevanje među ljudima.

ISO definicije:

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

Page 13: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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

Page 14: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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 otkriva sintaksne greške.

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.

Programer otkriva semantičke greške.

Page 15: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Program i programiranje

Izrazi kojima se zadaju mašinske operacije nazivaju se

mašinske instrukcije ili mašinske naredbe.

PROGRAM je niz instrukcija 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.

Page 16: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Klasifikacija programskih jezika

po stepenu zavisnosti od računara

Page 17: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Mašinski jezici

Najvažniji delovi računara izgrađeni su od

elektronskih i magnetnih komponenti, koje

karakterišu dva stabilna stanja (ima/nema

napona).

U računaru se sve predstavlja pomoću dva

simbola, 0 i 1, binarnom azbukom (bit, bajt).

Mašinski program sastoji od niza nula i jedinica i

zahteva dobro poznavanje načina rada i

arhitekture određenog računara.

Page 18: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Prevođenje programskih jezika

public class Zdravo {

public static void main

(String[] args) {

System.out.println("Zdravo!");

}

}

10010000010101001010101

00011111000100101010101

00000100110010101010101

11110010101010101010100

01101010101010100000101

izvorni program izvršni program

Ako je program napisan na nekom višem jeziku,

mora se izvršiti prevođenje na mašinski jezik.

Page 19: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Simbolički jezici

Koristi 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.

Mašinski zavisan jezik - programiranje zavisi od

konkretnog procesora.

Program u simboličkom jeziku prevodi se na mašinski,

a obavlja ga asembler (translator).

Page 20: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Programski jezici višeg nivoa

Da bi se premostile poteškoće u programiranju na

asemblerskim jezicima, počinju da se razvijaju mašinski

nezavisni jezici.

Oni imaju 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 (Algol, Fortran, Cobol,

PL/I...) i interpreterske jezike (Lisp, Prolog, Basic, ...).

Page 21: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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.

Page 22: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Viši programski jezici

Page 23: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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.

Page 24: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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#

Page 25: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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.

Page 26: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

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.).

Page 27: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

Kratak istorijat OO jezika

Prvi potpuno objektno orijentisan jezik Smalltalk-80

Koreni objektnih jezika u jeziku Simula 67

Današnji savremeni jezici su skoro svi objektno-orijentisani

Kombinacija objektnog i vizuelnog programiranja

Event Driven Programming

Visual Basic, Visual C++, Java, C#

Page 28: Uvod Razvoj i vrste programskih jezika C# je objektno orijentisan programski jezik opšte namene. Razvio ga je Microsoft tim koji je vodio Andres Hejlsberg. Prva verzija (C# 1.0) se

C#

C# je 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.