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: 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