<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sr">
	<id>https://siwiki.rs/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vasilevska</id>
	<title>SI Wiki - Кориснички доприноси [sr]</title>
	<link rel="self" type="application/atom+xml" href="https://siwiki.rs/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vasilevska"/>
	<link rel="alternate" type="text/html" href="https://siwiki.rs/wiki/%D0%9F%D0%BE%D1%81%D0%B5%D0%B1%D0%BD%D0%BE:%D0%94%D0%BE%D0%BF%D1%80%D0%B8%D0%BD%D0%BE%D1%81%D0%B8/Vasilevska"/>
	<updated>2026-06-04T09:05:19Z</updated>
	<subtitle>Кориснички доприноси</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://siwiki.rs/w/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D0%BF%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D0%B8%D0%BE%D1%86%D0%B8_1/%D0%9A1_2017&amp;diff=4940</id>
		<title>Програмски преводиоци 1/К1 2017</title>
		<link rel="alternate" type="text/html" href="https://siwiki.rs/w/index.php?title=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D0%BF%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D0%B8%D0%BE%D1%86%D0%B8_1/%D0%9A1_2017&amp;diff=4940"/>
		<updated>2022-10-29T13:38:46Z</updated>

		<summary type="html">&lt;p&gt;Vasilevska: /* Rešenje */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{tocright}}&lt;br /&gt;
&#039;&#039;&#039;Prvi kolokvijum 2017. godine&#039;&#039;&#039; održan je 28. oktobra i trajao je dva sata. Radna verzija postavke roka je [http://ir4pp1.etf.rs/Rokovi/2017-2018/si4pp1-1718-k1k2.zip dostupna sa stranice predmeta] (arhiva).&lt;br /&gt;
&lt;br /&gt;
== 1. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
Projektovati potisni automat koji prepoznaje sledeći skup sekvenci: &amp;lt;math&amp;gt;\left\{a^k b^m c^{k-1}\right\} k &amp;gt; 0, m \geq 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iz zadatog skupa izabrati jednu sekvencu dužine veće od tri i prikazati proces njenog prepoznavanja.&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Prvo stanje potisne mašine za prepoznavanje sekvence&lt;br /&gt;
!&lt;br /&gt;
! a&lt;br /&gt;
! b&lt;br /&gt;
! c&lt;br /&gt;
! ─┤&lt;br /&gt;
|-&lt;br /&gt;
! ∇&lt;br /&gt;
|&lt;br /&gt;
* PUSH(A)&lt;br /&gt;
* ADVANCE&lt;br /&gt;
| REJECT&lt;br /&gt;
| REJECT&lt;br /&gt;
| REJECT&lt;br /&gt;
|-&lt;br /&gt;
! A&lt;br /&gt;
|&lt;br /&gt;
* PUSH(B)&lt;br /&gt;
* ADVANCE&lt;br /&gt;
|&lt;br /&gt;
* ADVANCE&lt;br /&gt;
* STATE(S2)&lt;br /&gt;
|&lt;br /&gt;
* RETAIN&lt;br /&gt;
* STATE(S3)&lt;br /&gt;
| ACCEPT&lt;br /&gt;
|-&lt;br /&gt;
! B&lt;br /&gt;
|&lt;br /&gt;
* PUSH(B)&lt;br /&gt;
* ADVANCE&lt;br /&gt;
|&lt;br /&gt;
* ADVANCE&lt;br /&gt;
* STATE(S2)&lt;br /&gt;
|&lt;br /&gt;
* RETAIN&lt;br /&gt;
* STATE(S3)&lt;br /&gt;
| REJECT&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Drugo stanje potisne mašine za prepoznavanje sekvence&lt;br /&gt;
!&lt;br /&gt;
! a&lt;br /&gt;
! b&lt;br /&gt;
! c&lt;br /&gt;
! ─┤&lt;br /&gt;
|-&lt;br /&gt;
! A&lt;br /&gt;
| REJECT&lt;br /&gt;
| ADVANCE&lt;br /&gt;
| REJECT&lt;br /&gt;
| ACCEPT&lt;br /&gt;
|-&lt;br /&gt;
! B&lt;br /&gt;
| REJECT&lt;br /&gt;
| ADVANCE&lt;br /&gt;
|&lt;br /&gt;
* RETAIN&lt;br /&gt;
* STATE(S3)&lt;br /&gt;
| REJECT&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Treće stanje potisne mašine za prepoznavanje sekvence&lt;br /&gt;
!&lt;br /&gt;
! a&lt;br /&gt;
! b&lt;br /&gt;
! c&lt;br /&gt;
! ─┤&lt;br /&gt;
|-&lt;br /&gt;
! A&lt;br /&gt;
| REJECT&lt;br /&gt;
| REJECT&lt;br /&gt;
| REJECT&lt;br /&gt;
| ACCEPT&lt;br /&gt;
|-&lt;br /&gt;
! B&lt;br /&gt;
| REJECT&lt;br /&gt;
| REJECT&lt;br /&gt;
|&lt;br /&gt;
* POP&lt;br /&gt;
* ADVANCE&lt;br /&gt;
| REJECT&lt;br /&gt;
|}&lt;br /&gt;
Rad ovog automata možemo prikazati na sekvenci &#039;&#039;&#039;aabbbc&#039;&#039;&#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Stek&lt;br /&gt;
! Sekvenca&lt;br /&gt;
! Stanje&lt;br /&gt;
! Operacije&lt;br /&gt;
|-&lt;br /&gt;
| ∇&lt;br /&gt;
| aabbbc─┤&lt;br /&gt;
| 1&lt;br /&gt;
| PUSH(A), ADVANCE&lt;br /&gt;
|-&lt;br /&gt;
| ∇A&lt;br /&gt;
| abbbc─┤&lt;br /&gt;
| 1&lt;br /&gt;
| PUSH(B), ADVANCE&lt;br /&gt;
|-&lt;br /&gt;
| ∇AB&lt;br /&gt;
| bbbc─┤&lt;br /&gt;
| 1&lt;br /&gt;
| ADVANCE, STATE(S2)&lt;br /&gt;
|-&lt;br /&gt;
| ∇AB&lt;br /&gt;
| bbc─┤&lt;br /&gt;
| 2&lt;br /&gt;
| ADVANCE&lt;br /&gt;
|-&lt;br /&gt;
| ∇AB&lt;br /&gt;
| bc─┤&lt;br /&gt;
| 2&lt;br /&gt;
| ADVANCE&lt;br /&gt;
|-&lt;br /&gt;
| ∇AB&lt;br /&gt;
| c─┤&lt;br /&gt;
| 2&lt;br /&gt;
| RETAIN, STATE(S3)&lt;br /&gt;
|-&lt;br /&gt;
| ∇AB&lt;br /&gt;
| c─┤&lt;br /&gt;
| 3&lt;br /&gt;
| POP, ADVANCE&lt;br /&gt;
|-&lt;br /&gt;
| ∇A&lt;br /&gt;
| ─┤&lt;br /&gt;
| 3&lt;br /&gt;
| ACCEPT&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 2. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
[[Datoteka:PPR K1 2017 zadatak 2 postavka.svg|thumb|Stablo iz postavke drugog zadatka.]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Direktno na zadatom sintaksnom stablu jednog regularnog izraza naznačiti poništivost, i funkcije prva i poslednja pozicija.&lt;br /&gt;
# Nacrtati tabelu sa vrednostima funkcije sledeća pozicija.&lt;br /&gt;
# Na osnovu zadatog stabla i rezultata pod a) odrediti konačni automat. Obavezno navesti postupak. Nije potrebna minimizacija.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
[[Datoteka:PPR K1 2017 zadatak 2 rešenje.svg|thumb|Stablo iz rešenja drugog zadatka.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Tabela sledećih pozicija&lt;br /&gt;
! Pozicija&lt;br /&gt;
! Sledeća pozicija&lt;br /&gt;
|-&lt;br /&gt;
! 1&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
! 2&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| 4, 5, 8&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| 4, 5, 8&lt;br /&gt;
|-&lt;br /&gt;
! 5&lt;br /&gt;
| 6&lt;br /&gt;
|-&lt;br /&gt;
! 6&lt;br /&gt;
| 7, 8&lt;br /&gt;
|-&lt;br /&gt;
! 7&lt;br /&gt;
| 7, 8&lt;br /&gt;
|-&lt;br /&gt;
! 8&lt;br /&gt;
| -&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Postupak pretvaranja sintaksnog stabla u deterministički konačni automat&lt;br /&gt;
!&lt;br /&gt;
! +&lt;br /&gt;
! -&lt;br /&gt;
! d&lt;br /&gt;
! .&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! 1, 2, 3&lt;br /&gt;
| 3&lt;br /&gt;
| 3&lt;br /&gt;
| 4, 5, 8&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 3&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 4, 5, 8&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 4, 5, 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 4, 5, 8&lt;br /&gt;
| 6&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! 6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 7, 8&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 7, 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 7, 8&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Deterministički konačni automat&lt;br /&gt;
!&lt;br /&gt;
! +&lt;br /&gt;
! -&lt;br /&gt;
! d&lt;br /&gt;
! .&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! A&lt;br /&gt;
| B&lt;br /&gt;
| B&lt;br /&gt;
| C&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! B&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| C&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! C&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| C&lt;br /&gt;
| D&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! D&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| E&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! E&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| E&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 3. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
[[Datoteka:PPR K1 2017 zadatak 3 postavka.svg|thumb|Nedeterministički konačni automat iz postavke trećeg zadatka pod b.]]&lt;br /&gt;
&amp;lt;div class=&amp;quot;abc-list&amp;quot;&amp;gt;&lt;br /&gt;
# Da li su dati automati ekvivalentni? Obavezno prikazati postupak.&lt;br /&gt;
# Konvertovati zadati nedeterministički automat u deterministički. Obavezno prikazati postupak. Nije potrebna minimizacija.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Prvi automat iz postavke trećeg zadatka pod a&lt;br /&gt;
!&lt;br /&gt;
! 0&lt;br /&gt;
! 1&lt;br /&gt;
! 2&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! → Ax&lt;br /&gt;
| Ax&lt;br /&gt;
| Ax&lt;br /&gt;
| Bx&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! Bx&lt;br /&gt;
| Bx&lt;br /&gt;
| Ax&lt;br /&gt;
| Bx&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Drugi automat iz postavke trećeg zadatka pod a&lt;br /&gt;
!&lt;br /&gt;
! 0&lt;br /&gt;
! 1&lt;br /&gt;
! 2&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! → Az&lt;br /&gt;
| Cz&lt;br /&gt;
| Az&lt;br /&gt;
| Bz&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! Bz&lt;br /&gt;
| Bz&lt;br /&gt;
| Az&lt;br /&gt;
| Az&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! Cz&lt;br /&gt;
| Cz&lt;br /&gt;
| Az&lt;br /&gt;
| Bz&lt;br /&gt;
| 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Postupak provere ekvivalencije automata iz trećeg zadatka pod a&lt;br /&gt;
!&lt;br /&gt;
! 0&lt;br /&gt;
! 1&lt;br /&gt;
! 2&lt;br /&gt;
|-&lt;br /&gt;
! Ax, Az&lt;br /&gt;
| Ax, Cz&lt;br /&gt;
| Ax, Az&lt;br /&gt;
| Bx, Bz&lt;br /&gt;
|-&lt;br /&gt;
! Ax, Cz&lt;br /&gt;
| Ax, Cz&lt;br /&gt;
| Ax, Az&lt;br /&gt;
| Bx, Bz&lt;br /&gt;
|-&lt;br /&gt;
! Bx, Bz&lt;br /&gt;
| Bx, Bz&lt;br /&gt;
| Ax, Az&lt;br /&gt;
| &#039;&#039;&#039;Bz, Az&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
Zbog toga što stanja Bz i Az nisu kompatibilna, ova dva automata &#039;&#039;&#039;nisu ekvivalentna&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Postupak pretvaranja nedeterminističkog konačnog automata u deterministički&lt;br /&gt;
!&lt;br /&gt;
! +&lt;br /&gt;
! -&lt;br /&gt;
! d&lt;br /&gt;
! .&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! → 1, 2, 4, 7, 8, 9&lt;br /&gt;
| 3, 8, 9&lt;br /&gt;
| 5, 8, 9&lt;br /&gt;
| 9, 10, 11, 12, 17, 18, 19&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 3, 8, 9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 9, 10, 11, 12, 17, 18, 19&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 5, 8, 9&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 9, 10, 11, 12, 17, 18, 19&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 9, 10, 11, 12, 17, 18, 19&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 9, 10, 11, 12, 17, 18, 19&lt;br /&gt;
| 13, 14&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! 13, 14&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 14, 15, 16, 19&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! 14, 15, 16, 19&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| 14, 15, 16, 19&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Deterministički konačni automat&lt;br /&gt;
!&lt;br /&gt;
! +&lt;br /&gt;
! -&lt;br /&gt;
! d&lt;br /&gt;
! .&lt;br /&gt;
! Prihvata&lt;br /&gt;
|-&lt;br /&gt;
! → A&lt;br /&gt;
| B&lt;br /&gt;
| C&lt;br /&gt;
| D&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! B&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| D&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! C&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| D&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! D&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| D&lt;br /&gt;
| E&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! E&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| F&lt;br /&gt;
|&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! F&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| F&lt;br /&gt;
|&lt;br /&gt;
| 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 4. zadatak ==&lt;br /&gt;
=== Postavka ===&lt;br /&gt;
?????&lt;br /&gt;
&lt;br /&gt;
=== Rešenje ===&lt;br /&gt;
?????&lt;br /&gt;
&lt;br /&gt;
[[Категорија:Рокови]]&lt;br /&gt;
[[Категорија:Програмски преводиоци 1]]&lt;/div&gt;</summary>
		<author><name>Vasilevska</name></author>
	</entry>
</feed>