You are on page 1of 1

Dokumentace lohy CST: C Stats v Python do IPP 2009/2010 Jmno a !"#m$n": Tom%& 'ahu(ek )o*+n: ,-ahu(00 .

a(+anta (o#ektu do IPP: S/S0CST


Hlavn funkce
1lavn" 2unkce o-sahu#e 3 (acov%n" a(*ument4 a vol%n" #ednotl+v5ch 2unkc"6 7(om$ toho8 v !" ad$ a(amet(u 9:: out ut9 !esm$(ov%v% standa(dn" v5stu na 3adan5 sou-o(6 P!ed s u&t$n"m vy-(an 2unkce ; okud se ne#edn% o 2unkc+ n% ov$dy< se 3avol% 2unkce listfiles()8 kte(% 3e 3adan cesty v(%t" se3nam sou-o(4 3 danho ad(es%!e a #eho odad(es%!4 ;v !" ad$ sou-o(u v(%t" n%3ev sou-o(u<6

Pomocn Funkce
P(o*(am o-sahu#e n$kol+k omocn5ch 2unkc"8 kte( 3de st(u=n$ o "&u6 >unkce RemovePath() odst(a?u#e cestu 3e se3namu sou-o(4 a onech% #en #e#+ch n%3vy6 >unkce OutPut() 3 (acu#e se3nam sou-o(4 a se3nam hodnot v(%cen5ch vy-(anou 2unkc"8 vy o="t% celkovou hodnotu8 us o!%d% !%dky v5 +su odle n%3vu8 vy o="t% odsa3en" a ud$l% v5 +s6 >unkce listdir()vytvo!" se3nam v&ech sou-o(4 v danm ad(es%!+ a odad(es%!"ch6 >unkce listfiles() 3 tohoto se3namu vyhod" sou-o(y8 kte( nema#" koncovku @6cA ne-o @6hA6 >unkce RemoveComments() odst(a?u#e koment%!e ;!%dkov + v"ce!%dkov<8 RemoveStrings() odst(a?u#e !et$3ce8 RemoveDirectives() odst(a?u#e d+(ekt+vy (e (oceso(u6

Funkce CountOperators()
S o="t% v&echny o e(%to(y ve 3d(o#ovm sou-o(u6 Be# (ve odst(an" koment%!e8 d+(ekt+vy (e (oceso(u a !et$3ce6 .yhled%v%n" #e !e&en" #ednoduch5m se=ten"m v5skyt4 v&ech oloCek 3e se3namu o e(%to(4 ve 3d(o#ovm kDdu6 P!+ tomto 3 4so-u -y se v&ak mohlo st%t8 Ce v kousku kDdu 9a EEF -9 -y (o*(am na&el aC G o e(%to(4 ;9EEF989EE989EF989F9 a 2 k(%t 9E9<6 Tento (o-lm #e !e&en tak8 Ce #sou t!+ se3namy o e(%to(4: opList3;H: 3nakov<8opList2;2:3nakov< a opList1;1:3nakov<6 P(o*(am s o="t% v sou-o(u v5skyt t(o#3nakov5ch o e(%to(4 a odst(an" #e8 s o="t% v5skyt dvou3nakv5ch o e(%to(4 a odst(an" #e8 a s o="t% v5skyt #edno3nakov5ch o e(%to(46 Bakonec s o="t% v5skyt o e(%to(u 9698 !+=emC -e(e v vahu + konte,t6 1led%n" tohoto o e(%to(u #e !e&eno (e*ul%(n"m v5(a3em6

Funkce CountIdKw()
P(otoCe o="t%n" +dent+2+k%to(4 a kl"=ov5ch slov ;a o-ou doh(omady< s olu 3ce souv+s"8 +m lementoval #sem #e v #edn 2unkc+6 Be# (ve se odst(an" koment%!e8 d+(ekt+vy (e (oceso(u a !et$3ce6 Ie*ul%(n"m v5(a3em se vytvo!" se3nam otenc+%ln"ch +dent+2+k%to(4 a kl"=ov5ch slov6 PoloCky v tomto se3namu se o(ovn%va#" s oloCkam+ v se3namu kl"=ov5ch slov a odle toho se u(=" o=et kl"=ov5ch slov a +dent+2+k%to(46 Bakonec se v(%t" hodnota o=tu +dent+2+k%to(4 ne-o kl"=ov5ch slov ne-o o-ou doh(omady ; odle 3adan5ch a(amet(4<6

Funkce CountBytes()
Tato 2unkce s o="t% o=et -a#t4 v koment%!"ch v=etn$ 3nak48 kte( uv%d$#" a ukon=u#" koment%!e6 Be# (ve se 3#+st" celkov% dlka sou-o(u6 Jdst(an" se koment%!e a 3#+st" se dlka sou-o(u -e3 n+ch6 Bakonec se od se-e ode=tou dlka 4vodn"ho sou-o(u a dlka sou-o(u -e3 koment%!46 Teo(et+cky -y se to dalo !e&+t vytvo!en"m nov omocn 2unkce8 kte(% odst(an" v&e k(om$ koment%!4 a s o="t% dlku v5sledku8 ale ouC+t5 3 4so- #e tak #ednoduch5 -e3 nutnost+ vytv%!en" nov omocn 2unkce6

Funkce FindPattern()
>unkce hled% ve 3d(o#ovm sou-o(u v5skyt 3adanho !et$3ce a to + v !et$3c"ch a koment%!"ch8 ale ne v d+(ekt+v%ch (e (oceso(u6 Be# (ve #sou 3e 3d(o#ovho sou-o(u odst(an$ny d+(ekt+vy (e (oceso(u a ak se s o="t% doslovn5 v5skyt !et$3ce6 Doslovn5 3namen%8 Ce nen" moCnost hledat omoc" (e*ul%(n"ch v5(a34 a tedy !et$3ec 96K9 -y v(%t+l o=et v5skyt4 te=ky a hv$3d+=ky a n+kol+ l+-ovolnho !et$3ce6

Funkce CountOperators() CountIdKw() CountBytes() FindPattern()


J-ecn$ kaCd% 3 t$chto 2unkc" dostane na vstu se3nam sou-o(4 a (om$nnou8 kte(% u(=u#e 3da chceme ve v5 +su I cestu6 >unkce ak (ohled%v% se3nam sou-o(48 (o kaCd5 vy o="t% hodnotu ; o=et v5skyt4< a !+d% #+ do se3namu hodnot6 Bakonec vol% 2unkc+ Jut ut8 kte( o&le se3nam sou-o(48 se3nam hodnot a (om$nnou8 kte(% u(=u#e 3da m% -5t ve v5 +su cesta ne-o ne6

You might also like