Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005

Слични документи
P2.1 Formalne gramatike

Inženjering informacionih sistema

Teorija skupova - blog.sake.ba

Програмирај!

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Microsoft Word - 1. REALNI BROJEVI- formulice

Vjezbe

Математика основни ниво 1. Одреди елементе скупова A, B, C: a) б) A = B = C = 2. Запиши елементе скупова A, B, C на основу слике: A = B = C = 3. Броје

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Microsoft Word - 02 Elementi programskog jezika Pascal

Fortran

СХЕМАТСКИ ПРИКАЗИ У НАСТАВИ ГРАМАТИКЕ (НА ПРИМЕРУ ОБЛИКА ПРИСВОЈНИХ ЗАМЕНИЦА)

Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odr

Microsoft Word - Lekcija 11.doc

Pojačavači

PowerPoint Presentation

Dijagrami sekvenci

Microsoft PowerPoint - Topic04-Serbian.ppt

Principi softverskog inženjerstva O predmetu

Пројектовање Информационих система

CIJELI BROJEVI 1.) Kako još nazivamo pozitivne cijele brojeve? 1.) Za što je oznaka? 2.) Ispiši skup prirodnih brojeva! 3.) Kako označavamo skup priro

Slide 1

Рационални Бројеви Скуп рационалних бројева 1. Из скупа { 3 4, 2, 4, 11, 0, , 1 5, 12 3 } издвој подскуп: а) природних бројева; б) целих броје

Министарство просвете, науке и технолошког развоја ДРУШТВО МАТЕМАТИЧАРА СРБИЈЕ Општинско такмичење из математике ученика основних школа III

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

Орт колоквијум

М А Т Е М А Т И К А Први разред (180) Предмети у простору и односи међу њима (10; 4 + 6) Линија и област (14; 5 + 9) Класификација предмета према свој

P1.2 Projektovanje asemblera

Microsoft Word - CAD sistemi

COMARC/A Format

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

Microsoft Word - ASIMPTOTE FUNKCIJA.doc

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe

Microsoft Word - ???????? ???????? ??????? ????? _1_.doc111.doc

Državna matura iz informatike

Aksiomatska semantika kroz primere Seminarski rad u okviru kursa Verifikacija softvera Matematički fakultet Nikola Katić, 1094/2017

Funkcije predavač: Nadežda Jakšić

Информатичка одељења Математика Република Србија Министарство просвете, науке и технолошког развоја Завод за вредновање квалитета образовања и васпита

My_P_Red_Bin_Zbir_Free

РАСПОРЕД ИСПИТА У ИСПИТНОМ РОКУ ЈАНУАР 1 ШКОЛСКЕ 2016/2017. ГОДИНЕ (последња измена ) Прва година: ПРВА ГОДИНА - сви сем информатике Име пр

МОДЕЛ КОНТРОЛНЕ ВЕЖБЕ Информатика и рачунарство за шести разред разред Наставна тема: Редни број часа: 8. РАЧУНАРСТВО Циљ часа: Теститарање постигнућа

PASCAL UVOD 2 II razred gimnazije

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ТЕСТ МАТЕМАТИКА УПУТСТВО ЗА О

Електротехнички факултет Универзитета у Београду Катедра за рачунарску технику и информатику Kолоквијум из Интелигентних система Колоквију

Рачунарска интелигенција

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ТЕСТ МАТЕМАТИКА школска 2013/

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

ALIP1_udzb_2019.indb

Microsoft Word - 11 Pokazivaci

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

SKRIPTE EKOF 2019/20 skripteekof.com Lekcija 1: Brojevni izrazi Lekcija 1: Brojevni izrazi Pregled lekcije U okviru ove lekcije imaćete priliku da nau

Microsoft Word - X-Lite_EUnetUputstvo_Mart11.doc

Шифра ученика: Укупан број бодова: Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ и технолошког РАзвоја ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСП

DISKRETNA MATEMATIKA

8 2 upiti_izvjesca.indd

Programiranje 1 IEEE prikaz brojeva sažetak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, IEEE p

Satnica.xlsx

NAUČNO-STRUČNA KONFERENCIJA LOGOPEDA SRBIJE INOVATIVNI PRISTUPI U LOGOPEDIJI Nacionalni skup sa međunarodnim učešćem Organizator: Udruženje logopeda S

OOP1 - domaci 2 (2004/05)

Tutoring System for Distance Learning of Java Programming Language

Republika Srbija MINISTARSTVO PROSVJETE, NAUKE I TEHNOLOŠKOG RAZVOJA ZAVOD ZA VREDNOVANJE KVALITETA OBRAZOVANJA I ODGOJA ZAVRŠNI ISPIT NA KRAJU OSNOVN

Математика 1. Посматрај слику и одреди елементе скуупова: а) б) в) средњи ниво А={ } B={ } А B={ } А B={ } А B={ } B А={ } А={ } B={ } А B={ } А B={ }

1

Microsoft Word - 6ms001

PROMENLJIVE, TIPOVI PROMENLJIVIH

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007

Tutoring System for Distance Learning of Java Programming Language

Funkcije predavač: Nadežda Jakšić

KDP

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ У ОСНОВНОМ ОБРА

(Microsoft Word vje\236ba - LIMES FUNKCIJE.doc)

18. ožujka Državno natjecanje / Osnovna škola (6. razred) Primjena algoritama (Basic/Python/Pascal/C/C++) Sadržaj Zadaci... 1 Zadatak: Kineski..

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ПРОБНИ ЗАВРШНИ ИСПИТ школска

Uputstva za oblikovanje doktorske disertacije

P1.1 Analiza efikasnosti algoritama 1

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

P11.3 Analiza zivotnog veka, Graf smetnji

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

Tutoring System for Distance Learning of Java Programming Language

1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме

Microsoft Word - 1_Uputstvo-za-ocenjivanje_ZI-2018_Matematika Jun.doc

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

Algoritmi SŠ P1

Школа Ј. Ј. Змај Свилајнац МЕСЕЧНИ ПЛАН РАДА ЗА СЕПТЕМБАР Школска 2018 /2019. Назив предмета: Информатика и рачунарство Разред: 5. Недељни број часова

UPUTE ZA OBLIKOVANJE DOKTORSKE DISERTACIJE Doktorska disertacija se piše na hrvatskom standardnom jeziku. Disertacija može biti napisana na nekom od s

UPUTE ZA IZRADBU ZAVRŠNOG RADA

DR DRAGOŚ CVETKOVIC DR SLOBODAN SIMIC DISKRETNA MATEMATIKA MATEMATIKA ZA KOMPJUTERSKE NAUKĘ DRUGO ISPRAYLJENO I PROSIRENO IZDANJE HMUJ

Microsoft Word - vopr.doc

Microsoft Word - NULE FUNKCIJE I ZNAK FUNKCIJE.doc

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ У ОСНОВНОМ ОБРА

Microsoft PowerPoint - podatkovni promet za objavu.pptx

Шифра ученика: Укупан број бодова: Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ и технолошког РАзвоја ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСП

ПРИЈЕДЛОГ ОБРАЗЦА ЗА НАСТАВНИ ПРОГРАМ

Упутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у п

Орт колоквијум

РАСПОРЕД ПИСМЕНИХ ПРОВЕРА ЗНАЊА 1. ОДЕЉЕЊЕ МАТЕМАТИКА- КОНТРОЛНА ВЕЖБА ЛАТИНСКИ - ПИСМЕНИ ЗАДАТАК ФИЗИКА-

Tutoring System for Distance Learning of Java Programming Language

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ У ОСНОВНОМ ОБРА

Matematka 1 Zadaci za vežbe Oktobar Uvod 1.1. Izračunati vrednost izraza (bez upotrebe pomoćnih sredstava): ( ) [ a) : b) 3 3

Транскрипт:

Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005

2

Sadržaj 1 5 1.1 Specifikacija sintakse programskih jezika, meta jezici....... 6 1.1.1 BNF (Backus-Naur form).................. 6 1.1.2 EBNF (Extended Backus-Naur form)........... 7 1.1.3 Sintaksni dijagrami...................... 8

4 SADRŽAJ

Čas 1

6 Jelena Tomašević i Sana Stojanović 1.1 Specifikacija sintakse programskih jezika, meta jezici Za opis programskih jezika često se koriste kontekstno-slobodne gramatike. Bekus- Naurova forma (BNF) je konvencija za zapisivanje pravila kontekstno-slobodnih jezika. Proširena Bekus-Naurova forma (EBNF) dodaje odrežene sintaksičke izraze BNF notaciji i omogućava jednostavniji zapis pravila gramatike. 1.1.1 BNF (Backus-Naur form) Meta jezik je jezik koji služi da se pomoću njega opiše neki drugi jezik ili isti taj jezik. Tako se na primer služimo srpskim jezikom da bismo opisali gramatiku srpskog jezika. Bitno je razlikovati term meta jezika od terma jezika koji se opisuje. BNF(Bekus-Naurova forma) je formalni meta jezik za predstavljanje kontekstnoslobodnih gramatika odnosno gramatika programskih jezika. U BNF se koriste sledeće konvencije za zapisivanje pravila gramatike: Umesto simbola koristi se simbol ::= Pomoćni simboli se navode mežu zagradama i Vertikalna crta (izbor) razdvaja desne strane pravila koja odgovaraju istom simbolu sa leve strane pravila Prazna niska ε se zapisuje kao empty. Sledi nekoliko primera BNF-a : BNF za cifru: <cifra> ::= 1 2 3 4 5 6 7 8 9 0 BNF za neoznačen ceo broj: <neoznacenceobroj> ::= <cifra> <cifra> <neoznacenceobroj> <cifra> ::= 1 2 3 4 5 6 7 8 9 0 Drugo pravilo može da se napiše i kao: <neoznacenceobroj> ::= <cifra> <neoznacenceobroj> <cifra> BNF za ceo broj: <ceobroj> ::= <neoznacenceobroj> + <neoznacenceobroj> - <neoznacenceobroj> <neoznacenceobroj> ::= <cifra> <cifra> <neoznacenceobroj> <cifra> ::= 1 2 3 4 5 6 7 8 9 0 BNF za realne brojeve:

1.1 Specifikacija sintakse programskih jezika, meta jezici 7 <realanbroj> ::= - <neoznacenrealanbroj> + <neoznacenrealanbroj> <neoznacenrealanbroj> <neoznacenrealanbroj> ::= <neoznacenceobroj> <neoznacenceobroj>. <neoznacenceobroj> <neoznacenceobroj> ::= <cifra> <cifra> <neoznacenceobroj> <cifra> ::= 1 2 3 4 5 6 7 8 9 0 BNF za identifikator (niska cifara ili slova koja ne sme počinjati cifrom): <identifikator> ::= <slovo> <identifikator> <slovo> <identifikator> <cifra> <cifra> ::= 1 2 3 4 5 6 7 8 9 0 Primetimo da ovde ne smemo da zamenimo mesta pomoćnim simbolima (proverite!). 1.1.2 EBNF (Extended Backus-Naur form) Proširena Bekus-Naurova forma ima istu izražajnu moć kao BNF s tim što su u njoj izvršene izmene koje doprinose čitljivosti zapisu pravila. Zapravo, BNF koristi rekurziju (definisanje pomoćnig simbola preko njega samog) da bi se izrazile relacije a EBNF koristi iteraciju. Konvencije za EBNF su 1 : Pomoćni simboli se zapisuju velikim početnim slovom Završni simboli se zapisuju pod jednostrukim navodnicima ako se sastoje od jednog karaktera, a crnim slogom (engl. bold) ako su višeslovni. Npr. + ali div ili integer Oble zagrade ( i ) se koriste za grupisanje Vitičaste zagrade { i } ogražuju deo koji se ponavlja 0 ili više puta Uglaste zagrade [ i ] opisuju opcionu konstrukciju Značenje ostalih oznaka je isto kao kod BNF. Sve ove konstrukcije mogu biti izražene i u BNF-u što je pokazatelj toga da BNF i EBNF imaju istu izražajnu moć. Sledi nekoliko primera EBNF-a : EBNF za neoznačen ceo broj. NeoznacenCeoBroj ::= Cifra{Cifra} Cifra ::= 1 2 3 4 5 6 7 8 9 0 EBNF za ceo broj. 1 Po nekim konvencijama se koriste sledeći sufiksi:? umesto [], * umesto {}, + sa značenjem jedno ili više pojavljivanja simbola.

8 Jelena Tomašević i Sana Stojanović CeoBroj ::= [ + - ] NeoznacenCeoBroj NeoznacenCeoBroj ::= Cifra{Cifra} Cifra ::= 1 2 3 4 5 6 7 8 9 0 Pri čemu se umesto prva dva pravila može pojaviti pravilo: CeoBroj ::= [ + - ] Cifra{Cifra} EBNF za realne brojeve. RealanBroj ::= [ + - ] Cifra{Cifra} [. Cifra{Cifra}] Cifra ::= 1 2 3 4 5 6 7 8 9 0 EBNF za identifikator. Identifikator ::= Slovo{Slovo Cifra} Zadatak 1 Napisati BNF/EBNF za aritmeticki izraz. Rešenje: BNF: <izraz> ::= <izraz> + <term> <izraz> - <term> <term> <term> ::= <term> * <faktor> <term> / <faktor> <faktor> <factor> ::= (<izraz>) <neoznacenceobroj> EBNF: Izraz ::= Term{( + - )Term} Term ::= Faktor{( * / )Faktor} Faktor ::= ( Izraz ) NeoznacenCeoBroj Zadatak 2 (DOMAĆI) Napisati BNF/EBNF za klauzu (nad nekim fiksnim skupom iskaznih slova) Zadatak 3 Napisati BNF/EBNF za klauzu duzine npr. 5 (nad nekim fiksnim skupom iskaznih slova). Pomoć: <klauza> ::== <literal> <literal> <literal> <literal> <literal> 1.1.3 Sintaksni dijagrami Sintaksni dijagrami predstavljaju pravila gramatike posredstvom grafova. Imaju istu izražajnu moć kao BNF i EBNF. Konstruišu se na sledeći način: Svakom pravilu gramatike dodeljuje se po jedan graf koji nosi ime pomoćnog simbola sa leve strane pravila

1.1 Specifikacija sintakse programskih jezika, meta jezici 9 Čvorovi grafa su obeleženi simbolima desne strane pravila i to pravougaonikom ako odgovaraju pomoćnom simbolu gramatike, a elipsom ako su pridruženi završnom simbolu gramatike. Lukovi u grafu povezuju čvorove na način opisan samim gramatičkim pravilom. Jezik predstavljen grafom se dobija obilaskom puteva u grafu. Pogledajmo kako izgledaju sintaksni dijagrami nekoliko već pomenutih gramatika: Sintaksni dijagram za Cifra: Cifra ::= 1 2 3 4 5 6 7 8 9 0 Cifra 1 2 3 4 5 6 7 8 9 0 Sintaksni dijagram za NeoznacenCeoBroj: NeoznacenCeoBroj ::= Cifra{Cifra} NeoznacenCeoBroj cifra Sintaksni dijagram za CeoBroj: CeoBroj ::= [ + - ] Cifra{Cifra}

10 Jelena Tomašević i Sana Stojanović CeoBroj cifra + - Sintaksni dijagram za RealanBroj: RealanBroj ::= [ + - ] Cifra{Cifra} [. Cifra{Cifra}] RealanBroj cifra +. cifra - Sintaksni dijagram za Identifikator: Identifikator ::= Slovo { Slovo Cifra } Identifikator slovo cifra slovo