Page 1
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 1/12
Ime i prezime
Kolokvijum iz predmeta Teoretske osnove računarstva 02.07.2009.
A. Za zadani ulaz, pronaći izlaz sljedećih lex programa (NAPOMENA:
znak ¶ označava newline karakter i ne ispisuje se!)
%s L
LI "*"
%%
<INITIAL>^{LI} { printf("<ul><li>"); BEGIN L; }
<L>^{LI} { printf("<li>"); }
<L>^[^*] { printf("</ul>"); BEGIN INITIAL; REJECT; }
<L>\n { printf("</li>\n"); }
ulaz:
*1¶
*2¶
3¶
4¶
%%
. yymore();
\n ECHO;
ulaz:Ovo je¶
jedan¶
test¶
%%
something
jav.?c { printf(("%d ## %s\n", yyleng, yytext);}
ulaz:
javac something.java¶
negdje izmedju¶
je something.¶
%%
superman|batman|aquaman { printf("Superheroj:\n
%s\n",yytext); }
[A-Z][a-z]{1,8}[0-9] { printf("Zlikovac:
%s\n",yytext); }
ulaz:
superman i aquaman¶
Osobaa1 ima ispit.¶
Page 2
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 2/12
Ime i prezime
Kolokvijum iz predmeta Teoretske osnove računarstva 02.07.2009.
%{
#include <stdio.h>
int lineno =1;
%}
line .*\n
%%
{line} {printf("%d %s", lineno++, yytext); }
%%
int main()
{
printf("Procesiranje\n");
yylex();
}
ulaz:
Danas je TeOR ¶
Poceo u 17:00¶
Kraj u 17:50¶
B. Za zadane linije na ulazu pronaći sva poklapanja za sljedeće POSIXregularne izraze (ispisati samo match, ne cijelu liniju!)
1+2
ulaz:
1+2
3
001122
12
3456
^[^a-z]+[a-z]+$
ulaz:
1. jedan
dva (2)
3. (3)4. test
^#.*$
ulaz:
$#.*$
#.*$
####
#komentar
^#.*$
$.abc$
\b0[xX][0-9a-fA-F]+\b
ulaz:25 je 0x19
0X98G
123
TeOR X0x578
^([^a]|a[^b]|ab[^c])*.{0,2}$
ulaz:
abcdef
abdefg
efabcd
wxyzab
Page 3
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 3/12
Ime i prezime
Kolokvijum iz predmeta Teoretske osnove računarstva 21.06.2010.
A. Za zadani ulaz, pronaći izlaz sljedećih lex programa (NAPOMENA:
znak ¶ označava newline karakter i ne ispisuje se!)
%{
#include <math.h>
%}
%s expect
%%
expect-floats BEGIN(expect);
<expect>[0-9]+"."[0-9]+ {
printf( "dec, = %f\n",
atof( yytext ) );
}
<expect>\n {BEGIN(INITIAL);}
[0-9]+ {printf( "int, = %d\n",
atoi( yytext ) );
}
"." printf( "tacka\n" );
ulaz:
1.3¶
2¶
.¶
2.45 di 2.¶
%%
mega- ECHO; yymore();
test ECHO;
ulaz:
Ovo je¶
mega-mega-¶ test¶
%%
something
jav.?c { printf(("%d ## %s\n", yyleng, yytext,
yyless(3));}
ulaz:
javac something.java¶
negdje izmedju¶
je something.¶
digit [0-9]
alpha [a-fA-F]
hextail ({digit}|{alpha}){1,8}
hex 0[xX]{hextail}
%%
{hex} printf("Pronadjen - %s !", yytext);
. printf("");
ulaz:
340x231a¶
0X333321abcFFdan¶
Page 4
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 4/12
Ime i prezime
Kolokvijum iz predmeta Teoretske osnove računarstva 21.06.2010.
%{
#include <stdio.h>
int sentnum =1;
%}
sentence [A-Z][a-zA-Z0-9,]+[.?!]
%%
{sentence} {printf("%d %s", sentnum++, yytext); }
%%
int main()
{
printf("Trazenje\n");
yylex();
}
ulaz:
Danas je TeOR ¶
Poceo u 14:00!¶
kraj u 14:50.¶
B. Za zadane linije na ulazu pronaći sva poklapanja za sljedeće POSIXregularne izraze (ispisati samo match, ne cijelu liniju!)
1*2+3[6-95]+
ulaz:
12365
11112
234
1*2+367
2375
^[^2-7]+[a-d]*[0-6]{2,4}+$
ulaz:
8xac0471
1dd6032
xf01db1axad026
((ba[x-z]?){1,3})|(12[a-b]+)
ulaz:
2234baba
baxy
12bbbax
b12ba3
\b[20-34]+([a-d]+|[1-4]?)+\b
ulaz:
203
225d28dda
2234baba
^[a-z0-9][a-z0-9\\-]+(’s|[a-z0-9])$
ulaz:
b12ba3
a0-’s
x0-567.
a111’sp
Page 5
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 5/12
Ime i prezime
Izlazni kolokvijum iz predmeta Teoretske osnove računarstva 02.07.2010.
A. Za zadani ulaz, pronaći izlaz sljedećih lex programa (NAPOMENA:
znak ¶ označava newline karakter i ne ispisuje se!)
%{
#include <math.h>
%}
%s expect
%%
expect-floats BEGIN(expect);
<expect>[0-9]+"."[0-9]+ {
printf( "dec, = %f\n",
atof( yytext ) );
}
<expect>\n {BEGIN(INITIAL);}
[0-9]+ {printf( "int, = %d\n",
atoi( yytext ) );
}
"." printf( "tacka\n" );
ulaz:
1.¶
expect-floats 2.3 1 4.5¶
2¶
2.45¶
%%
dan.* {ECHO; yymore();}
danas {ECHO; REJECT;} ulaz:
Dan danas je¶
petak i radimo¶
danima test¶
word [A-Za-z]{2,8}
%%
cat|lucky|feel {printf("en word %s", yytext);}
{word} { printf("other -> %s\n", yytext); yyless(1);}
ulaz:
java cat¶
lucky¶
ocat feel¶
smt [0-9]+
%%
{smt} {printf("found - %x", atoi(yytext));}
smt {printf(""); unput(0);}
ulaz:
26¶
smt 35¶
hex 11a¶
Page 6
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 6/12
Ime i prezime
Izlazni kolokvijum iz predmeta Teoretske osnove računarstva 02.07.2010.
%{
#include <stdio.h>
int citatbr =1;
%}
citat ^\"[A-Z][a-zA-Z0-9,]+[.?!]\"$
%%
{citat} {printf("%d %s", citatbr+2, yytext); }
%%
int main()
{
printf("CitatI\n");
yylex();
}
ulaz:
"Danas je TeOR".¶
"Java!" - samo san.¶
B. Za zadane linije na ulazu pronaći sva poklapanja za sljedeće POSIXregularne izraze (ispisati samo match, ne cijelu liniju!)
[a-f]?[24-70]+[:-]?
ulaz:
a2:di
bf69
334
278
ca4
www[.][a-z]+[a-z0-9]+(\.de|\.ru)
ulaz:
www.34xss.ru
www.demol34.de
www.de333.ba
www.w3cxss.ru
\b[01]{6,8}\b
ulaz:
10111111111018
101010
18010101
00011101
[6-9]+[.][0-9]{2}
ulaz:
45
6.11
96.2
78.3332
\.[^.\\/:*?"<>|\r\n]+$
ulaz:
iz .java kompajliranjem
nastaje .class,
a ne .*class
.di“?.com
Page 7
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 7/12
Ime i prezime
Kolokvijum iz predmeta Teoretske osnove računarstva 10.06.2011.
A. Za zadani ulaz, pronaći izlaz sljedećih lex programa (NAPOMENA:
znak ¶ označava newline karakter i ne ispisuje se!)
%{
#include <math.h>
%}
%s expect
%%
expect-floats BEGIN(expect);
<expect>[0-9]+"."[0-9]+ {
printf( "dec, = %f\n",
atof( yytext ) );
}
<expect>\n {BEGIN(INITIAL);}
[0-9]+ {printf( "int, = %d\n",
atoi( yytext ) );
}
"." printf( "tacka\n" ); ulaz:1.3¶
2¶
.¶
2.45 di 2.¶
%%
mega- ECHO; yymore();
test ECHO;
ulaz:
Ovo je¶
mega-mega-¶ test¶
%%
something
jav.?c { printf(("%d ## %s\n", yyleng, yytext,
yyless(3));}
ulaz:javac something.java¶ negdje izmedju¶ je something.¶
digit [0-9]
alpha [a-fA-F]
hextail ({digit}|{alpha}){1,8}
hex 0[xX]{hextail}
%%
{hex} printf("Pronadjen - %s !", yytext);
. printf("");
ulaz:340x231a¶ 0X333321abcFFdan¶
Page 8
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 8/12
Ime i prezime
Kolokvijum iz predmeta Teoretske osnove računarstva 10.06.2011.
%{
#include <stdio.h>
int sentnum =1;
%}
sentence [A-Z][a-zA-Z0-9,]+[.?!]
%%
{sentence} {printf("%d %s", sentnum++, yytext); }
%%
int main()
{
printf("Trazenje\n");
yylex();
}
ulaz:Danas je TeOR ¶ Poceo u 14:00!¶ kraj u 14:50.¶
B. Za zadane linije na ulazu pronaći sva poklapanja za sljedeće POSIXregularne izraze (ispisati samo match, ne cijelu liniju!)
3*[5-8]+41
ulaz:
3233941564741333541
\b[a-z]?[1-5]{2,4}[ab^c]+
ulaz:
b223ddd11abc
xa12abv
d34abxsxz
^[12^d]+[@*$]?(axy)+$
ulaz:
11*@aaa
12c$axy
21kaxyaxy
12g$axy+$
([(]?[:alnum:]+[+/*^]+[:alnum:]{1,4}[)]?)+
ulaz:203a+ss)(a-2)+(53/a)
(a+b)^4444b)(1+3a)(2*4ha)
^[A-Z][a-zA-Z ]+[:number:]+$
ulaz:
b12ba3
Marka Markovica 45
Slavka slavkica bb
Ana A 123b
Page 9
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 9/12
Broj indeksa: Ime i prezime:
ELEKTROTEHNIČKI FAKULTET
BANJA LUKA
TEORETSKE OSNOVE RAČUNARSTVA – IK (07.06.2012.)
I DEO: Za zadane linije na ulazu, odrediti i upisati u datu tablicu (znak po znak) izlaz datih LEX programa.
1. rec [a-z]{4}
%%
{rec} { char c = input(); printf("%c", c); }
Ulaz:
teoretski
osnovi
racunarstva
2. digit [0-9]
alpha [a-fA-F]
hextail ({digit}|{alpha}){1,8}
hex 0[xX]{hextail}
%%
{hex} printf("%s\n", yytext);.|\n printf("");
Ulaz:
x2344f8f
2X0xbadbroj
broj0Xf1492A4d661436
3. %s expect
%%
"*" BEGIN(expect);
<expect>[0-9]+"."[0-9]+ { printf("%.2f",
atof(yytext)); }
<expect>\n { BEGIN(INITIAL); }
[0-9]+ { printf("%d",
atoi(yytext)); }
"." printf(" ");
Ulaz:
2.5 120 43
*2.33 5 5.8
20
2.25
4. %%
eksperiment { ECHO; yyless(9); }
Ulaz:
experimentisem
sa
eksperimentom
5. %%super { ECHO; yymore(); }
man { ECHO; }
Ulaz:
superman is
super man
Page 10
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 10/12
Broj indeksa: Ime i prezime:
ELEKTROTEHNIČKI FAKULTET
BANJA LUKA
II DEO: Za zadane linije na ulazu, odrediti i upisati u datu tablicu sva poklapanja (svako poklapanje upisati u
jedan red) za date POSIX regularne izraze.
1. 2*3=6
Ulaz:
33=66
2*33=66
2*3=66
22*3=66
63+3=66
2. ^#.*$
Ulaz:
$#.*$
#.*$
####
#komentar
^#.*$$.abc$
3. www[.][a-z]+[a-z0-9]+(\.de|\.ru)
Ulaz:
www.34xss.ru
www.demol34.de
www.de333.ba
www.w3cxss.ru
4. ^([^a]|a[^b]|ab[^c])*.{0,2}$
Ulaz:
abcdef
abdefg
efabcdwxyzab
5. \b[20-34]+([a-d]+|[1-4]?)+\b
Ulaz:
203
225d
28dda
2234baba
Page 11
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 11/12
ELEKTROTEHNIČKI FAKULTET
BANJA LUKA
TEORETSKE OSNOVE RAČUNARSTVA (21.06.2013.)
BR. INDEKSA: IME I PREZIME:
1. DEO 2. DEO∑
(30)1.
(3)
2.
(3)
3.
(3)
4.
(3)
5.
(3)
1.
(3)
2.
(3)
3.
(3)
4.
(3)
5.
(3)
ZADACI
1. DEO: Za zadane linije na ulazu, odrediti i upisati u datu tablicu sva poklapanja (svako poklapanje upisati u
jedan red) za date POSIX regularne izraze.
1. \b((1)|(2)|(3))\1+\2+?\3+?
Ulaz:
1221 1232
2231 3112
1113 3322
1333 2133
2. ^[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-Z]{2}$
Ulaz:
ZZR9 2GX
D9XX 9D
99 F0 5DD
K1 9CM
L2 2QRRNB 7DH
3. ^.*\b[1-9]+\.[0-9]*\b.*$
Ulaz:
225
x=2 y=3.14
6.28=x*y
2*x = 4
4. ^([0-9]{1,3}(,[0-9]{3})*(\.[0-9]+)?|\.[0-9]+)$
Ulaz:
300
2333.55
400.
1.23
.25
5. ^(\w,){3}(\w,)*1,?(\w,)*(\w)$
Ulaz:
1,2,3,4,5,1
2,3,4,5,6,8
1,3,2,1,8,3
9,9,1,2,8,0
1,1,1,0,0,1
Page 12
7/26/2019 Formalne Izlazni
http://slidepdf.com/reader/full/formalne-izlazni 12/12
ELEKTROTEHNIČKI FAKULTET
BANJA LUKA
2. DEO: Za zadane linije na ulazu, odrediti i upisati u datu tablicu (znak po znak) izlaz datih LEX programa.
1. int glob = 0;
rec [a-zA-Z]+
%%
int loc = 0;{rec} { loc += yyleng;
glob += yyleng;
printf("<%d>", loc); }
[0-9]+ REJECT;
%%
int main()
{ yylex(); printf("glob: %d", glob);
return 0; }
Ulaz:
Rezultat meca je:
Man.Utd. 2-1 Swansea
2. %%
[a-z]+cat|cat[a-z]+ yyless(3);
Ulaz:
hellcat firecat
catwoman application
3. int b, o;
%s B
rec [a-zA-Z]+
%%
<INITIAL>"\\b" printf("<b>"); BEGIN B;
<INITIAL>{rec} o++; REJECT;
<B>"\\b" printf("</b>"); BEGIN INITIAL;
<B>{rec} printf("X"); b++; REJECT;
{rec} printf("Y");
%%
int main(){ yylex(); printf("B: %d, O: %d", b, o);
return 0; }
Ulaz:
\bFormatirani
tekst\b na
ko\blokv\bijumu
iz \bTeOR\b-a.
4. %%
[1-9][0-9]+/[.][0-9]+ { printf("%d\n",
atoi(yytext));
yymore(); }
[1-9]*\.[0-9]+ { printf("%.2f\n",
atof(yytext)); }
.|\n ;
Ulaz:
5.2
98.5
9.
30
.1
5. %%
(.)(.)/.{2} { ECHO;
char c = input(), d = input();
unput(c); unput(d); }
Ulaz:
(()))
(a+(b*(c-(d/e))))
#include <stdio.h>