Correzione prova pratica del 17 settembre 2003
Correzione prova pratica del 17 settembre 2003
Istruzioni:
il commento iniziale rappresenta il giudizio complessivo sul programma. Nei commenti trovate:
- FIXME: segnalazione di un errore, non necessariamente sono tutti segnalati e non necessariamente sono tutti presi in considerazione
per il voto finale
- TODO: segnala l'assenza di parti di codice
- XXX: segnala qualcosa di non chiaro o inutile ai fini del codice, commenti di ordine generale, errori di battitura o suggerimenti
Il codice presentato non è necessariamente identico a quello consegnato in quanto possono essere state effettuate modifiche per
renderlo compilabile e/o per la corretta indentazione.
//XXX (9.5) essenzialmente corretto, vi e' un'allocazione sbagliata
//autore: <Ferrari> <Fulvio> <149862> <STUD05> XXX e l'indirizzo di posta elettronica?
//<17-09-2003>- Esame di Fondamenti di informatica A, corso di ingegneria delle telecomunicazioni
#include<iostream.h>
#include<string.h>
char r[81];
int cont=0,flag=0;
main()
{
do
{
cout<<"Inserisci la stringa da analizzare: ";
cin.getline(r,81);
if (r[0])
{
for (int i=1;i<=strlen(r);i++)
{
if (!(strlen(r)%i))
{
char *temp;
temp=new char (i); //FIXME non necessario e comunque ha un memory leak visto che non disalloca mai
cont=0;
do
{
temp=(r+(i*cont));
flag=strncmp(r,temp,i);
cont++;
}
while ((cont<=(strlen(r)/i)) && (!flag));
if (cont>(strlen(r)/i))
{
cout<<"Il periodo piu' piccolo e' pari a "<<i<<endl;
break;
}
}
}
}
}
while (r[0]);
return 0;
}
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a
bertozzi@CE.UniPR.IT