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 (4) non imbrocca l'algoritmo, si capisce che non si e' esercitata
//autore: Capobianco Davide 150390 cad06 e-mail: antonio.capobianco8@tin.it

//17/09/2003 - esame di fondamenti di informatica, corso di laurea in ingegneria elettronica


#include <iostream>
#include <cstring>
using namespace std;

int main()
{

  char buffer[80]; //FIXME e il carattere di fine stringa dove lo metto?

  do
  {
    //inserimento nella stringa

    cout<<"inserisci la stringa: ";
    cin.getline(buffer,80);
    //operazioni per calcolare il periodo  

    if(*buffer)
    {
      int size=strlen(buffer);

      //controllo che la parola non sia tutta formata dalla stessa lettera

      int count=0;
      for(int i=0; i<size; i++)
  if (buffer[i]==buffer[i+1]) count++;
      if (count==size-1){ cout<<"il periodo della stringa e' 1";return 0;} //FIXME magari si poteva metterci un acapo

      //XXX funziona ma e' comunque un caso particolare


      int periodo;
      if (size%2==1)  //XXX non mi e' chiara la differenza tra lunghezze del buffer dispari e pari

      {
  cout<<"dispari "<<endl;                 //la lunghezza di buffer e' un numero dispari

  for(int i=3; i<size; i+2)
  { 
    char per[i];
    strncpy(per,buffer,i); 
    //in per[i] ci sono ora i primi i caratteri di buffer                                  


    if (!strncmp(per,buffer,i)) periodo=i; //FIXME occorreva far scorrere la sottostringa sulla stringa

                                           //      generale e ripetere il confronto.

  }


      } 
      else cout<<"pari"<<endl;                 //la lunghezza di buffer e' un numero pari






    }
  }while (*buffer); 

}


Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a bertozzi@CE.UniPR.IT