15.06.2013 Views

Teza doctorat (pdf) - Universitatea Tehnică

Teza doctorat (pdf) - Universitatea Tehnică

Teza doctorat (pdf) - Universitatea Tehnică

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Se repune {CIFRA} in stream-ul de intrare:<br />

nrcif--;<br />

unput(yytext[1]);<br />

}<br />

2. Regula pentru tratarea cifrei ‘0’ :<br />

0 { // cifra 0 singulară<br />

if((nrcif==1)&&(nrini==1))<br />

{<br />

copy(Cuvint,"zero");<br />

return(NUMAR);<br />

}<br />

// Dacă nu e singulară<br />

// nu se mai rosteşte "zero zeci", "zero sute"<br />

nrcif--;<br />

}<br />

3. Reguli pentru tratarea cifrelor ‘1’, ‘2’, ‘3’, … :<br />

1 { //unu<br />

copy(Cuvint,"unu");<br />

cat(Cuvint,term[nrcif]);<br />

// Excepţiile pentru o sută, o mie, un milion :<br />

if((nrcif==3)||(nrcif==6))<br />

copy(Cuvint,"o suta ");<br />

// 1000=o mie, dar:<br />

// 31000= treizeci si unu mii<br />

if((nrcif==4)&&(nrini==4))<br />

copy(Cuvint,"o mie ");<br />

if((nrcif==7))<br />

copy(Cuvint,"un milion ");<br />

// Excepţie pentru două cifre: ‘unsprezece’<br />

if(exc_1x)<br />

{ copy(Cuvint,"un"); // un<br />

cat(Cuvint,term_1x); // sprezece<br />

cat(Cuvint,term[nrcif]); // mii sau milioane<br />

exc_1x=0; }<br />

if(nrcif>0) nrcif--;<br />

return(NUMAR);<br />

}<br />

2 { //doi<br />

if(nrcif>=2)<br />

copy(Cuvint,"doua");<br />

else<br />

copy(Cuvint,"doi");<br />

// Excepţie pentru două cifre: ‘doisprezece’<br />

if(exc_1x)<br />

{<br />

cat(Cuvint,term_1x);<br />

exc_1x=0;<br />

}<br />

187<br />

Cap. 6. Metode de sinteză de voce

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!