Download
uvod u programiranje matematika i i ii predavanje n.
Skip this Video
Loading SlideShow in 5 Seconds..
Uvod u programiranje - matematika – I i II predavanje PowerPoint Presentation
Download Presentation
Uvod u programiranje - matematika – I i II predavanje

Uvod u programiranje - matematika – I i II predavanje

160 Vues Download Presentation
Télécharger la présentation

Uvod u programiranje - matematika – I i II predavanje

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Uvod u programiranje- matematika –I i II predavanje Vesna Veličković vesna@pmf.ni.ac.rs

  2. Ciljpredmeta • Upoznavanje sa osnovnim konceptima i metodama programiranja • Sistematizacija razmišljanja • Korišćenje progamskog jezika – pisanje programa, testiranje, ispravljanje grešaka • Rešavanje jednostavnih zadataka 2 časa predavanja i 2 časa vežbi

  3. Distribucija poena • Domaći zadaci – 25 poena • Kolokvijum – 20 poena • Pismeni deo ispita – 30 poena • Usmeni deo ispita – 25 poena

  4. Anketa • Ime, prezime, broj indeksa • e-mail • Srednja škola • Dostupan računar i Internet? • Za koje aktivnosti koristite računar? • Šta ste učili iz Informatike u školi (ocena)? • Da li ste imali Programiranje u školi (ocena)? • Koje programske jezike znate (ocena)? • Dodatne informacije

  5. Programski jezik • U gimnazijama – Pascal • Programski jezik je JEZIK • Gramatika - nauka o jeziku i njegovim zakonitostima • Sintaksa – skup pravila za obrazovanje pravilnih konstrukcija jezika • Semantika – skup pravila za utvrđivanje značenja jezičkih konstrukcija

  6. Opis sintakse • Bekusova notacija < >meta promenljiva koja se definiše ::=po definiciji je | ili ( )grupisanje [ ]opciono pojavljivanje { }ponavljanje nula ili više puta <ceobroj> ::= [ (+|-) ] <cifra> {<cifra>} • Sintaksni dijagrami

  7. Strukturaprograma u Pascalu Deklaracija programa ; Blok . Struktura bloka: • Deklaracije labela • Definicijekonstanti • Definicijetipova • Deklaracijepromenljivih • Deklaracjepotprograma • Izvršni blok naredbi (begin<naredbe>end; složena naredba)

  8. Ime (identifikator) počinje slovom i može sadržati slova, cifre i znak “_”. • Ključne reči podvlačimo • Deklaracija programa program <ime programa> ; • Definicija konstanti const <ime konstante> = <konstanta> ; Konstanta određenog tipa • “;” se piše posle deklaracija, definicija i između dve naredbe u složenoj naredbi (begin...end) • Ne pravi se razilika između malih i velikih slova • Komentari između zagrada { } ili (* *).

  9. Prvi program {komentar} program prvi; const pi = 3.1415; begin write (‘Zdravo!’); write (pi); end.

  10. Tipovi u Pascalu • Definicija tipa type <ime tipa> = <tip> ; Vrste tipova u Pascalu Prosti (nestruktuirani)Složeni (struktuirani) Redni tipovipointer INTEGER REAL array CHAR record BOOLEAN string intervalni file nabrojani set

  11. Redni tipovi • Elemente možemo poređati po redosledu • Funkcije ORD redni broj PRED predcessor, predhodni element SUCC succesor, sledeći element • Relacije <, <=, >, >=, =, <>

  12. INTERGER • Skup celih brojeva u određenom opsegu • 16-bitni računari – opseg -215.. +215 • 32-bitni računari – opseg -231.. +231 Konstante -345, +25, 3456 • Skup mogućih funkcija: ord (x) = x pred (x) = x-1 succ(x) = x+1 abs (x) = | x | sqr (x) = x2 • Skup mogućih relacija: <, <=, >, >=, =, <> • Skup mogućih operacija: +, -, *, div, mod 7 div 3 = 2 7 mod 3 = 1

  13. REAL • Podskup realnih brojeva • 7-8 značajnih cifara, eksponent 38, 308,... Konstante -3.45, +0.25, 2.0, 0.7e-3, -2E45, +1E Automatska konverzija INTEGER u REAL, 3=3.0 • Skup mogućih funkcija (real nije redni tip): abs (x) = | x | sqr (x) = x2 sqrt (x) = √ x sin (x) cos (x) atan (x) = arcustangens (x) ln (x) exp (x) = ex • Skup mogućih relacija: <, <=, >, >=, =, <> • Skup mogućih operacija: +, -, *, /

  14. BOOLEAN (BOOL) Logički tip • Skup mogućih vrednosti: TRUE, FALSE True je tačno, a false je netačno. To su konstante. • Deklaracija promenljivih: var x : bool; • Skup mogućih funkcija(redni): ord, pred, succ ord (false) = 0 ord (true) = 1 • Skup mogućih relacija: <, <=, >, >=, =, <> • Skup mogućih operacija: not , and, or Ekvivalencija je =, a implikacija <=

  15. CHAR • Skup znakova na računaru (slova, cifre, specijalni znaci,...) • Konstante pod apostrofima, ‘A’, ‘7’, ’&’ • Apostrof se piše kao dva apostrofa, ‘’’’ • Skup mogućih funkcija: ord (x) = redni broj znaka x (kod znaka x) ord (‘A’) = 65 chr (65) = ‘A’ • Skup mogućih relacija: <, <=, >, >=, =, <>

  16. String • Niska znakova pod apostrofima • Apostrof u stringu se piše kao dva apostrofa • Konstante: ‘Ana voli Milovana’, ‘Nis ‘’13’

  17. Promenljive • Služe za čuvanje vrednosti tokom izvršenja programa • Svaka promenljiva ima IME, TIP i VREDNOST • Deklaracija promenljivih var i, j, k : integer; a, b, c : real; znak : char;

  18. Naredbe • Naredba je algoritamska radnja koja se može izvršiti. • Složena naredba begin { <naredba> ; }end Između dve naredbe u složenoj naredbi se pise “;” • Prazna naredba

  19. Štampanje vrednosti • write: write (‘x = ‘, x) • writeln štampa oznaku kraja reda • writeln (‘Ana’) odštampa prvo ‘Ana’ a zatim predje u novi red Write (i:2) štampa vrednost integer promenljive i na 2 mesta Write (x:8:2) štampa vrednost realne promenljive x na 8 mesta sa dve decimale

  20. Učitavanje vrednosti x: integer; ili x: real; • read: write (‘x = ‘); read (x) • readln: write (‘x = ‘); readln (x) Očitava nisku znakova sa standardnog ulaza (tastature), konvertuje je u brojčanu vrednost i tu vrednost upisuje u promenljivu x • Read i readln se razlikuju samo kod tipa char c: char; readln (c) očitava jedan znak (može da bude i oznaka kraj reda), upisuje ga u promenljivu c, a zatim prelazi u novi red. Sa Readln se ignorišu svi znaci do kraja reda, što nije slučaj kod read.

  21. Naredba dodele vrednosti <ime promenljive> := <izraz> • Izvršenje: prvo se izračuna vrednost izraza a zatim se ta vrednost upiše u promenljivu na levoj strani naredbe dodeljivanja • Tip vrednosti izraza mora da bude kompatibilan za dodeljivanje tipu vrednosti promenljive X := 3+5*2; Vrednost promenljive se može menjati samo učitavanjem ili naredbom dodele vrednosti.

  22. Izraz <izraz> ::= <prost izraz> [ <relacija> <prost izraz> ] <prost izraz> ::= <član> { <aditivan operator> <član> } <član> ::= <faktor> { <multiplikativan operator> <faktor> } <faktor> ::= <ceo broj> | <realan broj> | <string> | <ime konstante> | <ime promenljive> | <ime funkcije> [ (lista prametara)]|not <faktor> | (<izraz>)

  23. Prioritet operacija u Pascalu • Funkcije, not, zagrade • Multiplikativni operatori: *, /, div, mod, and • Aditivni operatori: +, -, or • Relacioni operatori (relacije): <, <=, >, >=, = , <> Operatori istog prioriteta se izvršavaju jedan za drugim s leva na desno. 2*x - 4*y / z, prioritet (2*x) – ((4*y) / z) ne može 2<x<3, već (2<x) and (x<3)

  24. Tok izvršenja programa Upravljačke strukture • Sekvenca • Grananje • Petlje Moguće je proizvoljno kombinovanje.

  25. Sekvenca Naredbe se izvršavaju redom jedna za drugom. Realizuje se složenom naredbom. begin <nareba1> ; <nareba2> ; <nareba3> end. Struktuirano pisanje (uvlačenje naredbi unutar struktuiranih naredbi)

  26. Grananje Tok izvršenja programa zavisi od nekog uslova (logičkog izraza). Uslovne naredbe • IF za grananje u dve grane • CASE za višestruko grananje

  27. IF naredba If <logički izraz> then <naredba1> [ else <naredba2> ] • Struktuirano pisanje • Tipična greška je staviti “;” ispred else. • Moguće je ugnježdavanje if naredbi, kao i svih ostalih struktuiranih naredbi.

  28. Izvršenje IF naredbe • Prvo se izračuna vrednost logičkog izraza (uslova) • Ako je ta vrednost tačna, izvrši se naredba1. • Ako nije tačna i postoji else grana, izvrši se naredba2. • U oba slučaja, posle izvršenja if naredbe prelazi se na sledeću naredbu u sekvenci.

  29. Složena naredba u IF • Ako je unutar then ili else grane potrebno napisati više od jedne naredbe, stavljamo ih u složenu naredbu. if <logički izraz> thenbegin <naredba1> ; <naredba2> elsebegin <naredba3> ; <naredba4> end

  30. Ugnježdavanje IF naredbi If <uslov1> then if <uslov2> then <naredba1> else <naredba2> else if <uslov3> then <naredba3> else <nareedba4>

  31. Domaći zadatak 1 • Učitati jedan znak sa tastature i odštampati njegov ASCII kod.

  32. Domaći zadatak 2 • Studente treba podeliti u k grupa, prema broju indeksa. Ako je indeks deljiv sa k, pripada prvoj grupi, ako pri deljenju sa k daje ostatak 1, pripada drugoj grupi, i tako redom. • Odštampati svoje ime,prezime i broj indeksa. • Učitati prirodan broj k i odredite kojoj grupi pripadate.

  33. Domaći zadatak 3 • Učitati x i y koordinatu tačke i ispitati da li ona pripada • Krugu k1: x2+y2 <= 9 • Krugu k2: (x-3)2+(y+2)2 <= 4 • Njihovom preseku • Nijednom od krugova k1 i k2.