View Full Version : Informatica/programmazione
NelloDominat
17th April 2009, 09:55
riferimento:
http://www.reddit.com/goto?id=8d586
D: Quale espressione per l'incremento e' comunemente utilizzato dai programmatori e Web developers?
1) Variabile++
2) Variabile = variabile+1
Mi potete dare anche una spiegazione?
poiche' mi ricordavo forsse la 1) ma per alcuni test universitari in US compare quello che vedete. Grazie
Mosaik
17th April 2009, 10:04
E' tutta una questione di abitudine ma diciamo che "variabile = variabile + 1" è piu' standard forse ... o meglio sei sicuro che in qualsiasi linguaggio tu stia scrivendo funziona...
Variabile++ ad esempio in ASP o VB (Pre .net ovviamente) non funzionano :)
Rayvaughan
17th April 2009, 10:04
lol che domanda vaga... comunemente in tutti i linguaggi c oriented (li fa riferimento anche a web dev, quindi c'includiamo anche il java) la sintassi più usata perchè si fa prima ed è più compatta è variabile++....
aveva più senso una domanda del tipo "qual'è la differenza tra var++ e ++var"
Hador
17th April 2009, 10:07
ma che cazzo di domanda è, uno usa quel che gli pare.
per fare buona programmazione è "meglio" usare la due (come è meglio non mettere su una riga più dichiarazioni di variabili ad esempio) ma per motivazioni di stile non di altro.
c'è da dire che v++ nn ha lo stesso significato di ++v in alcuni linguaggi e quindi puoi far casino.
Mez
17th April 2009, 10:17
$var++
Bakaras
17th April 2009, 10:22
chiede:
"which is the one most commonly used "
considerato che var++ non funzia in tutti i linguaggi, mi sembra ovvia la risposta.
Tanek
17th April 2009, 10:25
Si ok Baka, ma resta una domanda del cazzo, no? :P
Non so in che tipo di esame fosse, ma è a mio avviso palesemente stupida :)
Rayvaughan
17th April 2009, 10:26
dalla domanda sembrerebbe un esame ecdl :sneer:
oh ma che è sto smile nuovo... cioè old!:oldmetal:
Bakaras
17th April 2009, 11:35
Si ok Baka, ma resta una domanda del cazzo, no? :P
Non so in che tipo di esame fosse, ma è a mio avviso palesemente stupida :)
E' una domanda del cazzo perchè non è previsto che tu conosca le abitudini dei programmatori di tutto il globo per poter stilare una statistica :)
btw ti assicuro che in tanti anni ne ho viste di peggiori :)
Jeff
17th April 2009, 11:36
Si, domanda del cacchio... io uso var++ nei cicli o simili e sulle variabili temporanee, mentre la seconda e' piu' elegante... ma ovviamente il linguaggio deve permettertelo!
Ercos
17th April 2009, 12:13
var++ ftw :nod:
Tanek
17th April 2009, 12:18
Si, domanda del cacchio... io uso var++ nei cicli o simili e sulle variabili temporanee, mentre la seconda e' piu' elegante... ma ovviamente il linguaggio deve permettertelo!
Jeff, il tuo quote sugli ingegneri in firma mi sembra troppo ironico :confused:
:sneer:
Hador
17th April 2009, 12:23
http://www.youtube.com/watch?v=AxorQwSecc8
:nod:
Ercos
17th April 2009, 12:40
http://www.youtube.com/watch?v=AxorQwSecc8
:nod:
:rotfl:
Verci
17th April 2009, 12:57
:sneer:
no aspetta... sono pure io un ingegnere... :gha:
Marphil
17th April 2009, 13:53
:sneer:
mahoney
17th April 2009, 14:11
è una questione di prestazioni e consumi; es: se aggiungo una birra in piu nel mio carrello della spesa eseguo un birra++, questo perchè ho altre cose da fare nell'arco della giornata ed inoltre ho il terrore della fila alla cassa, dall'altra parte la cassiera eseguirà un birra = birra +1 in quanto devo essere sicura dello scarico a magazzino, quest'ultima preferisce la sicurezza alle prestazioni.
Resta il fatto che la scelta è solo una questione di prestazioni, ogni singolo source deve contenere una buone dose di commenti(//), i quali lo rendono leggibile.
Tanek
17th April 2009, 14:22
Si, ma attenzione, la domanda parlava di istruzione "più comunemente usata", non più performante, il che mi avrebbe portato a segnare la risposta "C) Fatti uno studio statistico se vuoi saperlo, io sono un ingegnere, non ti rispondo a caso" :nod:
Dilbert owna :bow:
mahoney
17th April 2009, 14:40
Si, ma attenzione, la domanda parlava di istruzione "più comunemente usata", non più performante, il che mi avrebbe portato a segnare la risposta "C) Fatti uno studio statistico se vuoi saperlo, io sono un ingegnere, non ti rispondo a caso" :nod:
Dilbert owna :bow:
ok la 2 in quanto usata sia da php che asp, sia da c++ che basic.
Hador
17th April 2009, 14:58
mi sfugge come sia più performante, è solo una questione di forma - ordine del codice.
Axet
17th April 2009, 15:01
mi sfugge come sia più performante, è solo una questione di forma - ordine del codice.
*
Rayvaughan
17th April 2009, 15:03
infatti, in linguaggio macchina è la stessa identica istruzione:rain:
marlborojack
17th April 2009, 15:03
riferimento:
http://www.reddit.com/goto?id=8d586
D: Quale espressione per l'incremento e' comunemente utilizzato dai programmatori e Web developers?
1) Variabile++
2) Variabile = variabile+1
Mi potete dare anche una spiegazione?
poiche' mi ricordavo forsse la 1) ma per alcuni test universitari in US compare quello che vedete. Grazie
Tecnicamente, la differenza è la stessa tra queste due righe
++val corrisponde a val = val + 1;
val++ corrisponde a tmp = val; val = val + 1; return tmp;
Il POST-incremento, e bada bene solo quello, crea una variabile di copia perchè deve ritornare il vecchio valore della variabile, che non è più disponibile dopo l'incremento. Il postincremento quindi fa un'operazione di copia che, se non è esplicitamente richiesta, non è da utilizzare, da qui la risposta val = val+1.
Detto questo però, molti compilatori moderni, come ad esempio il gcc, possono capire dal contesto quando sia effettivamente necessario un postdecremento ed eventualmente sostituire il codice. Ecco ad esempio l'assembler delle due operazioni di pre e post incremento su MinGW-GCC 3.4.4:
x=++y;
0x004012e6 <pre+6>: lea 0xc(%ebp),%eax
0x004012e9 <pre+9>: incl (%eax)
0x004012eb <pre+11>: mov 0xc(%ebp),%eax
0x004012ee <pre+14>: mov %eax,0x8(%ebp)
x=y++;
0x00401316 <post+6>: mov 0xc(%ebp),%edx
0x00401319 <post+9>: lea 0xc(%ebp),%eax
0x0040131c <post+12>: incl (%eax)
0x0040131e <post+14>: mov %edx,0x8(%ebp)
Questo chiaramente solo per i tipi base.
:banana:
EDIT: Al mio esame di Fondamenti di Informatica si veniva bocciati dicendo che le due cose sono identiche
Tanek
17th April 2009, 15:09
ok la 2 in quanto usata sia da php che asp, sia da c++ che basic.
Beh ma la seconda è usata ovunque, quello che voglio dire io è che se ci sono 5 milioni di programmatori che usano la prima perchè sono comodi così e 1 milione di programmatori che usano la seconda perchè sono comodi così, indipendentemente da quali linguaggi usano e indipendentemente da quale sia più performante, la risposta alla domanda "Quale espressione per l'incremento e' comunemente utilizzato dai programmatori e Web developers?" è ovviamente la prima, ma deriva da uno studio statistico che la persona che deve rispondere alla domanda dubito che abbia a disposizione (e credo che non lo abbia nemmeno quello che ha fatto la domanda).
Ok sono pignolo e stracciacazzi, però a me ste domande così stupide fanno infervorare :nod: in che modo una domanda del genere può darti informazioni sulle capacità dell'esaminato?
marlborojack
17th April 2009, 15:11
Beh ma la seconda è usata ovunque, quello che voglio dire io è che se ci sono 5 milioni di programmatori che usano la prima perchè sono comodi così e 1 milione di programmatori che usano la seconda perchè sono comodi così, indipendentemente da quali linguaggi usano e indipendentemente da quale sia più performante, la risposta alla domanda "Quale espressione per l'incremento e' comunemente utilizzato dai programmatori e Web developers?" è ovviamente la prima, ma deriva da uno studio statistico che la persona che deve rispondere alla domanda dubito che abbia a disposizione (e credo che non lo abbia nemmeno quello che ha fatto la domanda).
Ok sono pignolo e stracciacazzi, però a me ste domande così stupide fanno infervorare :nod: in che modo una domanda del genere può darti informazioni sulle capacità dell'esaminato?
Questo conferma che nessuno legge i miei post a meno che non mi metta a flammare mc o la gilda :nod:
Tanek
17th April 2009, 15:23
Questo conferma che nessuno legge i miei post a meno che non mi metta a flammare mc o la gilda :nod:
No, questo conferma che ho letto ora il tuo reply perchè, dato che ovviamente sto lavorando e c'ho messo un po' a scrivere il mio, poi quando l'ho postato è apparso dopo il tuo, nonostante io non l'avessi letto :nod:
Aggiungo anche che questo conferma che tu non hai letto il mio reply, perchè non sto parlando affatto di performance ma del significato della domanda fatta. :)
Hador
17th April 2009, 15:26
..cut..al mio esame di fondamenti di informatica studi i fondamenti dell'informatica non i compilatori :sneer:
capito, hai ragione, la "colpa" è di come ci insegnano a programmare, se mi azzardo a fare un system.out.println(x++) per risparmiare una riga di codice mi tirano la testa contro il muro, il ++ lo ho sempre usato in sostituzione dell'assegnamento e bona sinceramente avevo trascurato la differenza tra pre e post (e meno male che lo avevo scritto sopra pure :sneer: ).
tanek, nel momento in cui consideri il post incremento come un caso particolare dell'incremento allora vai a dire che l'incremento classico è il più comune. Di fatto però il ++ viene di solito usato come semplice abbreviazione di caratteri e qui è statistica.
marlborojack
17th April 2009, 15:27
No, questo conferma che ho letto ora il tuo reply perchè, dato che ovviamente sto lavorando e c'ho messo un po' a scrivere il mio, poi quando l'ho postato è apparso dopo il tuo, nonostante io non l'avessi letto :nod:
Aggiungo anche che questo conferma che tu non hai letto il mio reply, perchè non sto parlando affatto di performance ma del significato della domanda fatta. :)
Confermo, la domanda è decisamente espressa male, ma la risposta giusta c'è, ovvero chi sa la differenza (ed è roba di fondamenti di informatica) usa adeguatamente le due espressioni, ergo var=var+1 in un'ipotesi MOLTO ottimistica è anche la più usata.
Hador
17th April 2009, 15:28
ribadisco come fondamenti di informatica io studi tutt'altra roba è_é
Hardcore
18th April 2009, 23:54
ma si fa in fondamenti A la differenza tra ++val e val++ -.-°
Tanek
19th April 2009, 02:41
ma si fa in fondamenti A la differenza tra ++val e val++ -.-°
Veramente si stava parlando della differenza tra val = val + 1 e val++ ...
Mi dispiace ma non ci siamo, torni al prossimo appello, arrivederci.
( :sneer: )
ps: se avessi continuato ad insegnare mi sa che sarei diventato sempre più stronzo :metal:
Hardcore
19th April 2009, 10:10
Veramente si stava parlando della differenza tra val = val + 1 e val++ ...
Mi dispiace ma non ci siamo, torni al prossimo appello, arrivederci.
( :sneer: )
ps: se avessi continuato ad insegnare mi sa che sarei diventato sempre più stronzo :metal:
si e si spiega come funziona appunto il val++ rispetto a un val=val + 1 ...
Prof lei non si ricorda cosa insegna :nod:
Axet
19th April 2009, 11:00
lol@come la gente qua sta parlando contemporaneamente di due cose diverse senza rendersene conto.
black
25th April 2009, 09:14
var++ dovrebbe essere eseguita in un tempo minore rispetto a var= var +1
edit: ops, ho letto ora che era gia stata data anche la spiegazione di tutto cio..... in pratica risparmi circa un ciclo di clock rispetto a var=var+1
che coi calcolatori moderni è un grandissimo balzo prestazionale :|
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.