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) incompleto
/*cognome/nome: De Bernardi Emanuela, matr:155648, postazione di lavoro: stud14*/
/*data della prova: 17/9/2003 - esame di fondamenti di informatica,corso di laurea in Ingegneria Informatica*/


# include <stdio.h>
# include <string.h>
# define SIZE 80 //FIXME se si chiede una stringa di 80 caratteri massimo occorre

                 // tenere anche in conto il carattere di fine stringa, ergo doveva usare 81



main () {
  char stringa[SIZE];
  char copia[SIZE];
  int i;
  int periodo=0;

  printf ("inserisci una stringa: ");
  scanf("%s",stringa);

  /*se la stringa e vuota o se e' piu' lunga di SIZE,il pgm termina,altrimenti*/
  //XXX poteva usare strlen()

  while (strcmp(stringa,"")!=0) //FIXME attenzione, lei utilizza un ciclo al cui interno stringa non viene toccata,

  // di conseguenza se la condizione e' vera dal ciclo non si uscira' mai


  {

    /*allungo la stringa,intanto la confronto con se stessa intera*/
    for (i=0;i<strlen(stringa);i++)

    {

      if (strcmp(stringa,&stringa[i])==0)   /*confronto*/ //FIXME la condizione che lei va ada analizzare e' necessaria, purtroppo non e' sufficiente

  /*se sono uguali,ho un periodo e*/
  /*inserisco il contatore di caratteri confrontati nella variabile periodo*/

      {
  if (i < periodo)
    periodo=i;
      }


    }
  }

  printf("\nil periodo piu' piccolo e': %d\n",periodo);

  return 0;}







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