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