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