Istituto Tecnico Industriale "Enrico Fermi"

Help On Chat

[Ritorna all'elenco sessioni]

Chat del 14 Dicembre 2023 dalle 17:30:09 alle 18:05:29

Stefano SALVI
Farlo su una riga è una bella sfida. Ci provo.
Zakaria BOUNAFA
grazie
Stefano SALVI
Fatevi più possibile pratica scrivendovi degli esempietti semplici in C, mattendoci dei valoti e stampando i risultati.
Andrea CAMMALLERI
può farci un esempio perfavore?
Stefano SALVI
Buona sera a tutti.
Michele SGARBI
buona sera
Stefano SALVI
Hai qualche dubbio da chiarirti?
Dopo tutta la discuzzione sull\'porario, ora hanno tutti da fare?
Michele SGARBI
si, mi può rispiegare i numeri pseudocasuali? non ho capito bene la funzione "long time"
non riescono a connettersi gli altri tra poco entrano
Andrea CAMMALLERI
buonasera prof scusi per il ritardo non riuscivo a collegarmi
Stefano SALVI
Sgarbi: i numeri \'pseudocasuali\' non sono veramente casuali. Considera che sia una serie lunghissima di numeri che \'sembrano \'casuali. Se però parto dal primo, la serie è sempre uguale. Per avere tutte le volte una serie diversa devo partire da un punto in mezzo, sempre diverso. Allora si usa la srand, che imposta il puinto iniziale. Si passa, come inizio caluale il tempo (il numero di secondi dal 1^ gennaio 1970 - data \'magica\', non chiedermi perché). Questo nuero di secondi veien restituito dalla funzoone \'time\'.
Michele SGARBI
ok, grazie prof
Stefano SALVI
Spero che gli altri non siano bloccati. Potrei se necessario, far ripartire la chat. Che dite?
No, vedo che stanno arrivando. Aventi con le domande, che tanto che entra adesso le può leggere sul sito della chat anche dopo.
(oggi sto scrivendo peggio del solito...)
Zakaria BOUNAFA
buongiorno prof scusi per il ritardo è che non riuscivo a collegarmi
Andrea CAMMALLERI
prof mi potrebbe rispiegare gli array come parametro perfavore?
Stefano SALVI
Cammalleri: 1) non è possibile copiare tutti gli elementi dell\'array in una variabile equivalete (in un parametro di tipo array) della funzione chiamata, perché il C non è in grado di controllare il numero di questoi elementi; 2) in alternativa si passa l\'indirizzo del primo elemento. Avendo questo e conoscendo il tipo, quindi la dimensione di ogni elemento (1, 2, 4, 8 ... byte) si piuò individuare ogni elemento successivo. Bisogna perl ricordarsi che, metre i parametri \'scalari\' (variabili semplici) vengono COPIATI (passati per valore) nei parametiri delle funzioni, per gli array la funzione conosce l\'indirizzo dell\'array originale e lo può modificare (passaggio epr riferimento).
Cammalleri: può bastare?
O ti interessava qualche altro aspetto.
Andrea CAMMALLERI
nono capito grazie mille prof
può farci un esempio prof?
Matteo ZANINI
prof potrebbe rispiegarmi i puntatori perfavore?
Stefano SALVI
void cambiaElemento(int indice, int valore, int array[]) { valore += array[indice]; array[0] = valore; } main() { int arr[] = { 1,2,3,4,5,6 }, val = 5, idx = 3; cambiaElemento(idx, val,arr); printf("Val = %d, arr[%d] = %d\n", cal, idx, arr[idx]); }
Tutto questo stamperà "Val 5, arr[3] = 9"
O meglio, "Val = 5, arr[3] = 9
Zakaria BOUNAFA
pprof potrebbe rispiegare i puntatori per favore?
Stefano SALVI
Zanini: partiamo dalla scanf che li usa. Alla scanf devo passare come parametri non dei valori, ma delle posizioni (un po\' come per gli array). La posizione di una variabile la ottengo con l\'operatore \'&\'. Quindi, dato \'int i\', \'&i\' è l\' "indirizzo della variabile intera i". Come posso scrivere allora il parametro in cui deve andare a finire questo \'indirizzo di..."? Uso il modificatore \'*\' che vuole dire \'variabile che contiene l\'indirizzo di un\'altra variabile di tiipo ...". Potremmo avere allor aun parametro (ma anche una variabile, se ci serve) di tipo \'int *\' per accogliere l\'indirizoz della variabile i, qd esempio "int *ptr". A questo piunto, se vogliamo dare un valore alla i del chiamente bsta che scriviamo "*pte = valore;".
Pazienza, ragazzi, mi avete chiesto un argomento completo e ci vuole tempo a scriverlo. Non sono un dattilografo da 300 battite al minito...
E faccio tanto errori, ad esempio "*pte = valore" era "*ptr = valore" visto che prima l\'avevo chiamato ptr.
È tutto chiaro, a questo punto?
Michele SGARBI
si, grazie prof
Andrea CAMMALLERI
per me tutto chiaro prof grazie mille
Matteo ZANINI
si prof grazie mille
Zakaria BOUNAFA
si grazie prof
Stefano SALVI
Mi pare che questi fossero gli argomenti nuovi da chiarire. Spero che abbiate fatto la pace con le esressioni matematiche e logiche ecc..
Allora per oggi ci possiamo salutare?
A proposito, l\'esempio (non semplice, ma meglio non mi vveniva) sugli array per parametro, è chiaro? O avete dubbi?
Speriamo sia chiaro.
Buona cena, buon ripoo ed in bocca a lupo.

[Ritorna all'elenco sessioni]