[Lugge] Re: [Lugge] Re: 2° esercizio C

  • From: Massimo Arnaudo <marnaudo@xxxxxxxxx>
  • To: lugge@xxxxxxxxxxxxx
  • Date: Wed, 18 Jul 2001 19:06:10 +0200

* mercoledì 18 luglio 2001, alle 17:54, Matteo Ianeselli scrive:
> 
> Massimo Arnaudo, pigiando tasti a caso sul citofono, ha scritto:
> 

Bè, effettivamente...
 
> 
> 1) stai usando un vettore `input[]' il cui contenuto non e`
>    inizializzato in alcun modo. Probabilmente dovresti prima copiarci
>    dentro la stringa.

Ok.

> 
> 2) se `n' e` la dimensione dell'array, al massimo puoi accedere
>    all'elemento con indice n-1, altrimenti sfori. 

Se ti riferisci alla riga

                ...
                s[s1] = input[n1];
                --n;  <--- quì ho commesso un errore di battitura, avrei
                voluto  
                --n1;
                ...
altrimenti non ho compreso il perché.
                
> 
> 3) cosa succede se la stringa e` vuota (lunghezza 0)? 
> 

Avevo pensato che l' eccezione sarebbe stata controllata dalla verifica di new
line, in questo caso il contatore (s1) si sarebbe incrementato di 1 e a questo
punto la condizione s1 < n non sarebbe stata piú rispettata.

> 
> 4) hai dichiarato che la funzione ritorna un char, ma non ritorni
>    nulla.
>

Allora non ho ben capito il paragrafo delle funzioni...
Pensavo che essendo manipolata, la stringa risulterebbe nuova, frutto di una
funzione.

>
>
> 5) nelle intenzioni mi pare che tu voglia far fare a questa funzione
>    qualcosa di piu` della semplice inversione: vuoi anche che elimini
>    certi caratteri dalla fine ('\n', il newline). Ti suggerirei invece
>    di scrivere funzioni che facciano una sola cosa alla volta, e solo
>    quella.

Hai perfettamente ragione, ho fatto ciò partendo da un esercizio appena
scritto.

> 
> 6) se usi nomi significativi per le variabili e per i parametri delle
>    funzioni, semplificherai notevolmente la vita a chi quel codice lo
>    dovrà` esaminare (e possibilmente anche a te stesso, visto che e`
>    raro che qualcuno si ricordi per filo e per segno il funzionamento
>    preciso di un qualcosa scritto tre giorni prima).
> 
>    Chiaro che e` un concetto che si capisce veramente nella sua
>    essenza solo nel momento in cui si deve effettuare manutenzione di
>    codice scritto da altri :-)

Devo dire che il libro 'Linguaggio C' in questo è un pó carente.
Ho trovato un errore di battitura a pag.26, un errore sull' uso di una
variabile a pag.32 e la dichiarazione delle funzioni e le relative chiamate
adottano nomi differenti, mentre, tanto per 'semplificare' l' apprendimento
usano nomi uguali o molto simili in funzioni differenti, cosí da ingarbugliare
il filo logico del programma... 
Chiaro che chi resiste, ha in mano il linguaggio...
Mio Nonno per insegnare a mio padre a nuotare (si sà, popolo di marinai),
altri tempi, lo portò con il gozzo su uno scoglio circondato dall' acqua e lí
lo lasciò... mantenendosi ad alcuni metri di distanza: necessità fà virtú...
Ma ripeto _altri tempi_ visto che il mondo dell' informatica è un hobby, non
voglio affogarci!
> 
> 7) meglio nessun commento che un commento sbagliato. :-)

Li ho copiati...

Grazie
Massimo
-- 
E impari che puoi davvero sopportare,
che sei davvero forte,
e che vali davvero.
---             ---
HomePage:       http://spazioweb.inwind.it/arnaudo
LinuxGroup:     http://lugge.ziobudda.net
<========----------
 Prima di scrivere in m-list per favore leggi il regolamento
 http://lugge.ziobudda.net/benvenuto.html



Other related posts: