Chat del 15 Dicembre 2017 dalle 18:36:38 alle 19:09:54
- Stefano Salvi
- Ho preparato al soluzione dell\'esercizio di stamattina (con ben pochi commenti). Se mi laasciate un\'attimo lo metto su Moodle, così magari ci date un\'occhiata e può darvi spunti per le domande.
- Federico DI GIACOMO
- grazie prof
- Riccardo MIRANDOLA
- Grazie mille
- Sebastiano GASPARINI
- Buonasera Prof, ok grazie
- Filippo BELLANZA
- grazie . .
-
- Stefano Salvi
- Fatto. Potete darci un\'occhiata, intanto che fate le altre domande.
- Andrea POTITO
- Grazie prof
- Qual è la differenza fra array e vettore?
- Federico DI GIACOMO
- io non ho capito quando assegno il tipo alla funzione cosa cambia tra inserire int e void
- Stefano Salvi
- Potito: array è il termine inglese (generico) che vale sia per l\'italiano "vettore" cheper l\'italiano "matrice". In Italiano vettore ha un solo indice, matrice più di uno (a volte si considera ne abbia due e si precisa "matrice multidimensionale" se ne ha di più).
- Riccardo MIRANDOLA
- In un ciclo for posso chiamare una funzione?
- Nel senso posso chiamare una funzione tra le parentesi del forma?
- For*
- Stefano Salvi
- Di Giacomo: una funzione "void" non ritorna alcun valore. Una funzione "int" ritorna un valore di tipo intero. Nella funzione "void" possiamo omettere il "return" e se lo mettiamo avrà la forma "return;". Nella funzione "int" il return è obbligatorio e sarà nella formula "return <espressione intera>;" dove "<espressione intera>" è un\'espressione che ritorna un intero, quindi anche una semplice costante o una semplice variabile.
- Sebastiano GASPARINI
- Prof, io non avrei ben chiaro cosa dovrei mettere tra le parentesi tonde quando vado a fare il prototipo di una funzione
- Stefano Salvi
- Mirandola: in un ciclo for posso chiamare una funzione in tutte e tre le parti (inizializzazione, condizione ed incremento). Posso inserire una funzione ovunque vada un numero (o una variabile che venga valutata).
- Riccardo MIRANDOLA
- Grazie
- Stefano Salvi
- S.Gasparini: per cortesia, guardati prima l\'esempio che ho messo su Moodle, poi rifammi la domanda, che magari se hai ancora il dubbio discutiamo sulle funzioni nell\'esempio.
- Riccardo MIRANDOLA
- Quando chiamo una funzione è necessario che i parametri attuali siano posti nello stesso ordine in cui sono i parametri formali?
- Andrea POTITO
- Prof io non ho chiaro cosa sono i prototipi
- Stefano Salvi
- Mirandola: esattamente. I valori dei parametri attuali vengono usati per iniziallizzare i parametri formali della funzione, nell\'ordine. In altri liguaggi posso assegnarli per nome, ma in C no.
- Federico DI GIACOMO
- ok grazie
- Riccardo MIRANDOLA
- Grazie
- Stefano Salvi
- Potito: il prototipo (o template) di una funzione è la "forma" della chiamata alla funzione. Serve al compilatore per verificare che il chiamante usi correttamente la funzione e darci errori altrimenti.
- Andrea POTITO
- nell\'esercizio che ha caricato lei su moodle è questo?
- // Preparo i prottotipi delle funzioni void inizializzaVettore (int numeri[]); void azzeraPiuDiLimite (int numeri[]); void stampaVettore(int numeri[]); int randDaA( int da, int a);
- Stefano Salvi
- Potito: questi sono i prototipi dlle funzioni che ho utilizzato nel main (ed una anche nella inizializzaVettore) e che poi più avanti ho definito.
- Sebastiano GASPARINI
- Piu o meno quanti esercizi ci saranno sulle funzioni, se puo dirlo?
- Stefano Salvi
- Da cintratto uno, l\'ultimo, come dallelenco di stamattina. Sei domande, sei argomenti...
- Federico DI GIACOMO
- per richiamare una funzione nel main è necessario che siano riportate prima del main?
- Stefano Salvi
- Contratto, non cintratto...
- Andrea POTITO
- Prof non capisco la differenza fra void e int
- Stefano Salvi
- Di Giacomo: per richiamare una funzione nel main è necessario che il suo prototipo o la sua definizione compaiano prima della main stessa e che comunque la definizione ci sia "nel sorgente" (da prendere alla lettera ora che tuttiìo quello che scriviamo sta in un solo file) o in una libreria caricata (come ad esempio la printf, la rand o altre...)
- Diego LORENZI
-
- Stefano Salvi
- Potito: "void" indica "mancante" o "inesistente". Non posso creare una variabile void (non conterrebbe un valore, quindi...). Se scrivo una funzione void, essa non ritornerà valore e non potrò usarla al posto di un numero in un\'espressione. Se scrivo una funzione int, essa restoituirà un numero inteo e la potrò utilizzare ovunque serva un numero intero.
- Andrea POTITO
- ok, può fare un esempio di funzione void?
- Stefano Salvi
- Nell\'esercizio che ho caricato (e nei prototipi che avete qui in chat) ci sono tre funzioni void, che fanno qualcosa ma non restituiscono un numero un numero ed una int che restituisce un numero casuale, utilizzato in un\'espressione.
- Ok. Che ne dite se chiudiamo la chat? Avete altre domande?
- Riccardo MIRANDOLA
- La ringrazio, buona serata
- Stefano Salvi
- Allora buona cena, buon riposo ed in bocca al lupo.
|