Professional Documents
Culture Documents
Informàtica Ordenació PDF
Informàtica Ordenació PDF
Bk Ak,.
En el poema, sn separadors els carcters: blanc, coma, punt, gui i apstrof. Els versos estan separats
entre si pel carcter salt de lnea i el poema acaba amb un vers virtual que no cont cap lletra, s a dir,
dos carcter salts de lnea entre els quals no hi ha cap carcter. Es considera que dos versos rimen si les
seves ltimes paraules tenen idntiques lletres a partir de la vocal tnica, aquesta incluida. Per a poder
reconixer les vocals tniques shan escrit amb majscules, i la resta de las lletres shan escrit en
minscules.
Especificaci. Lalgorisme t com entrada una sequncia de carcters estructurada com indica
lenunciat. La sortida s si si el poema de entrada rima segons lenunciat i no en cas contrari.
Per exemple, donat el segent poema Carles Riba (extret de Estances) lalgorisme escriuria si.
Si tengelosia el camI.
que em prengus com una estimAda
fidel a mon flanc i de mI
peixent-se per mos ulls en la flama abrivAda
del pensament, que vora della es sap ms divI,
pobla, amor, el cam que em mEna
dun dol desig, com dun constAnt
oreig que duu el sol i asserEna
lespectacle profs i viatja amb linstAnt
i esventa al cor distant la vagabunda pEna.
Soluci:
Primer nivell
typedef estrofa;
int main(){
estrofa e;
e= LlegirEstrofa()
while (!EstrofaFinal(e) && RimaEstrofa(e) ){
e = LlegirEstrofa();
}
if ( RimaEstrofa(e) )
cout<<Si segueix la rima donada;
else
cout<<No segueix la rima donada;
} // fi main
Segon nivell
typedef struct {
bool ef, rb ;
} estrofa;
j = 0;
n = LlegirVers();
while ( j < 4 && !VersFinal(n)) {
v[j] = n;
n = LlegirVers();
j = j+ 1;
}
if ( VersFinal(n)){
e.ef = true;
e.rb = (j == 0);
} else {
v[j] = n;
e.rb= RimaVers(v[0],v[2])&&RimaVers(v[1],v[3])&&RimaVers(v[0],v[4]);
e.ef = fals;
}
return e;
}
Tercer nivell
typedef struct {
int long:
string v;
} vers;
bool VersFinal(vers v) {
return v.lon == 0;
}
Quart nivell
bool CarFinal(char c) {
return c== saltlinea;
}
bool Majuscula(char c) {
return (c>= A && c<= Z);
}