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 (3) molto confusionario, si capisce che non ha mai programmato
/*Tema d'esam di fondamenti d'informatica A, Studente MARIO EVANGELISTA 104002 corso di laurea in ingegneria elettronica

  Vecchio Ordinamento, esame del 17-09-2003 */ //XXX manca la posta elettronica

#include<iostream>

#include<cstring>

using namespace std;

const char SIZE=80; //FIXME e il carattere di fine stringa?


int main()
{
  char str[SIZE];
  char str2[SIZE];
  char str3[SIZE];
  int  n,z;
  int count=0;

  cout<<"inserire la stringa da analizzare di max: 80 caratteri \n";
  cin>>str; //FIXME il testo diceva iterativamente (ovvero si doveva utilizare un ciclo)


  z=strlen(str);

  while(count<z){  
    if(str[0]==str[count+1]){         //verifico quando il carattere 0 è uguale ad un altro dopodichè devo verificare

      for(int i=0;i<count;i++){     //se i primi count elementi sono uguali ai successivi count se si quello è

  str2[i]=str[i];           //è il periodo minimo, quindi  devo uscire dal ciclo while (uso l'istruzione

  str3[i]=str[i+count];     //break.

      }   
    }
    else if(!strncmp(str2,str3,count)) break;
    else count++;
  }


  if(count==z) cout<<"la periodicità è:"<<strlen(str)<<"\n";
  else cout<<"il periodo min è:"<<count;

  cout<<endl;
  return 0;
}













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