View Full Version : Aiutino con #C
TecnologY
08-11-2012, 23:56
Ciao a tutti!
Qualche anima pia può chiarirmi cosa stanno a significare le virgole attorno alla a tipo in questa espressione?
a = *c - 'a' + 2;
Poi, altra cosa ad esempio in sta funzione:
________________________
void Funz(int v[], int p, int r)
{
int q, i;
if (p + 1 == r)
return;
q = (p + r) / 2;
Funz(v, p, q);
Funz(v, q, r);
AltraFunzione(v,p,q,r);
}
________________________
Cioè si possono mettere funzioni all'interno di funzioni? Preciso che son spezzoni di esercizi e non ho seguito il corso di informatica con la classe in quanto mi preparo su internet.
Secondo me sta roba non ha senso, cosa returna sta funzione se una void per definizione non dovrebbe tornare niente.
Poi le penultime due righe di codice cosa fanno sviluppano di nuovo la funzione dentro se stessa??
Non ci ho capito niente sinceramente è la prima funzione che vedo far ste robe.
Ultima cosa, un array deve essere sempre dichiarato con una dimensione finita? non può averla variabile a piacere, del tipo: inserisco X elementi e se la ricava lui in qualche modo?
Ciao
AllerITA
09-11-2012, 06:58
Se non ricordo male il singolo apice intorno a un carattere potrebbe significare che la costante e' di tipo Char.
Mentre inserire dentro una funzione la stessa funzione e' pratica comune nelle funzioni ricorsive, come si vede nelle visite delle strutture dati ad esempio a lista o ad albero, si intende che la funzione deve essere concepita per la ricorsione.
Al posto della ricorsione si può alle volte sostituire con l'uso del ciclo While o do While.
E' una pratica comune per i programmatori.
Comunque la mia affermazione può essere tranquillamente discussa se ci sono spiegazioni più coerenti.:D
TecnologY
09-11-2012, 07:32
Inranto grazie a te :D , poi se qualcun'altro vuole dire la sua ben venga
AllerITA
09-11-2012, 08:13
Aspetta non mi sono espresso bene gli apici stanno ad indicare che il fattore e' un carattere nel tuo caso e' il carattere a minuscolo, scusami! per non essere stato preciso.
Il linguaggio, tra parentesi quadre, nel titolo dei post.
lorenzo001
09-11-2012, 09:06
Probabilmente dovresti seguire le lezioni invece di fare da solo con qualche guida su Internet.
a = *c - 'a' + 2;
'a'
è una costante di tipo char
Cioè si possono mettere funzioni all'interno di funzioni?
Dove vedi funzioni all'interno di questa funzione? Non ce ne sono ...
sta roba non ha senso,
E invece ha senso
cosa returna sta funzione se una void per definizione non dovrebbe tornare niente.
Infatti il return non restituisce valori ma semplicemente ritorna al chiamante.
Poi le penultime due righe di codice cosa fanno sviluppano di nuovo la funzione dentro se stessa??
Chiamano la funzione all'interno di sé stessa. Si chiama 'ricorsione' e va studiata.
Non ci ho capito niente sinceramente è la prima funzione che vedo far ste robe.
Ecco perché devi studiare in modo corretto.
Ultima cosa, un array deve essere sempre dichiarato con una dimensione finita?
Puoi usare l'allocazione dinamica ma questa è un'altra cosa che va studiata seriamente.
TecnologY
09-11-2012, 14:32
Ok grazie ragazzi ho capito!
lorenzo001
Ricorsione, hai detto bene...
oggi sono andato a lezione e siccome i compagni non sapeva rispondermi ho chiesto al prof (il fatto è che mi scoccia sempre chiedere se non ho seguito le lezioni), fortunatamente per me ha detto che in effetti è una cosa un po' complessa che al momento non ha trattato.. bene.
Per il resto non confondete lo studiare a casa con il legger due pagine in internet.. non l'ho certo affrontata in sto modo la materia, anche se è secondaria nel corso di studi di meccanica so che non è semplice.
Certe domande posson sembrar banali per chi già conosce il #C, ma l'ultima cosa ce voglio è chieder cose che posso facilmente trovare sui libri o impegnandomi un po' ;)
ciao
banryu79
09-11-2012, 15:00
Non c'entra niente ma... to return in italiano si traduce (considerato anche il contesto) con restituire non ritornare.
Una funzione non ritorna un valore e/o non ritorna (il controllo) al chiamante, ma restituisce :doh:
TecnologY
09-11-2012, 15:04
restituire un favore o ritornare un favore sono sinonimi non trovi?:D
per il resto io avevo scritto returna, ovvero una parola inventata solo per far capire che si riferiva a return
comunque in questo contesto il verbo migliore sarebbe la funzione trasforma un valore
ciao
banryu79
09-11-2012, 16:37
No-no, le funzioni non ritornano, le funzioni restituiscono.
Se dico "restituire un favore" è italiano corretto se invece dico "ritornare un favore" non è italiano corretto (ritornare non è transitivo!)
Inoltre:
restituire un favore o ritornare un favore sono sinonimi non trovi?
La sinonimia non è una relazione tra frasi, o verbi, ma tra singole parole.
[Kendall]
09-11-2012, 16:38
restituire un favore o ritornare un favore sono sinonimi non trovi?:D
per il resto io avevo scritto returna, ovvero una parola inventata solo per far capire che si riferiva a return
comunque in questo contesto il verbo migliore sarebbe la funzione trasforma un valore
ciao
In realtà no, in quanto implicherebbe che il valore restituito è automaticamente un parametro in ingresso modificato, cosa che spesso non succede.
TecnologY
09-11-2012, 16:55
banryu79 non impuntiamoci sull'italiano per carità quello penso di conoscerlo bene al contrario del C.
Sì invece ritornare è anche transitivo http://www.treccani.it/vocabolario/ritornare/
non impuntiamoci su sciocchezze, è evidente che siano sinonimi al contrario di quanto sostieni.
[Kendall]
Per fare i precisi in italiano si dovrebbe dire In realtà no, in quanto implicherebbe che il valore restituito è automaticamente un parametro
..sia automaticamente un parametro (se la frase è falsa).. comunque intendiamola come vogliamo il concetto di funzione lo conosciamo tutti e non penso ci sia bisogno di chiarire troppo su una cosa priva di equivoci come questa spero.:)
ciao :)
banryu79
09-11-2012, 17:25
Sì ok, ritornare è anche usato in forma transitiva (nel parlato).
Sarò io ma leggere "la funzione ritorna un valore di tipo int" al posto di "la funzione restituisce un valore di tipo int" oppure "la funzione ha ritornato il controllo al chiamante" invece di "la funzione ha restiuito il controllo al chiamante" mi fa sanguinare gli occhi :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.