• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Info Per strada con il C++

gedamial

Utente Senior
Autore del topic
9 Giugno 2010
1.937
69
Miglior risposta
0
Salve a tutti!

Eccomi di nuovo qui per postarvi un mio recentissimo progetto (finito poco fa) scritto in C++.
Questa volta ho OSATO assaggiare qualcosa che non avevo mai assaggiato prima: le CLASSI

Questa volta il nostro amico C++ ci invita a prendere qualcosa al bar. Per raggiungere questo bar (situato alla fine della strada) incontriamo - per nostra sfortuna - ben 3 semafori!
Ahimè, non possiamo rimangiarci l'appuntamento e siamo "obbligati" a dover affrontare questi semafori. Il programma fa tutto in automatico.

  • PRIMO SEMAFORO (verde: prosegui | giallo: aspetta | rosso: aspetta)
  • SECONDO SEMAFORO (verde: prosegui | giallo: aspetta | rosso: aspetta)
  • TERZO SEMAFORO (verde: arrivato a destinazione | giallo: aspetta | rosso: aspetta)


IL CODICE SORGENTE
Qui di seguito vi lascio il codice sorgente del programma

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!


Questo è quanto :emoji_slight_smile:

Vi chiedo gentilmente di criticarmi e darmi consigli al fine di migliorare le mie conoscenze e correggere errori di stesura del codice

*N.B: Se usate Visual C++ come IDE, inserite l'header "stdafx.h", altrimenti non vi girerà ;)

Ci vediamo alla prossima! :bye:
 
Ultima modifica:
Allora allora. La classe semaforo così usata ha poco senso, praticamente è una variabile e non puoi farci granché, ma vabbè.
L'attesa invece dovresti farla più lunga per chi trova il giallo, e più corta per chi trova il rosso (per rendere il tutto più simile alla realtà). Poi, inutile è anche il fatto di istanziare tre semafori, perché una volta passati non li usi più (e qui entra il gioco il discorso della memoria, come ci insegna il caro @System32) Gli if-elseif usati così non sono carini da vedere, meglio uno switch se vuoi usare quell'approccio. Le variabili "randomnumber" e "scelta" invece non le vedo usate, forse ti sei dimenticato di cancellarle. ad


:bye:
 
Tu credi che così facendo possa odiarti :emoji_relieved: anzi ti do infinite grazie per questi consigli.

Allora.

La classe semaforo così usata ha poco senso, praticamente è una variabile e non puoi farci granché, ma vabbè.
La prima cosa che mi interessa sono proprio le classi. Quindi mi stai dicendo che l'utilità di una classe è direttamente proporzionata al numero di attributi che essa contiene?

L'attesa invece dovresti farla più lunga per chi trova il giallo, e più corta per chi trova il rosso (per rendere il tutto più simile alla realtà).
Senza offesa, ma non me ne frega niente della realtà :emoji_relieved: a me interessa il codice

Poi, inutile è anche il fatto di istanziare tre semafori, perché una volta passati non li usi più (e qui entra il gioco il discorso della memoria)
Si hai ragione. Più oggetti vengono istanziati, più memoria viene richiesta.

Gli if-elseif usati così non sono carini da vedere, meglio uno switch se vuoi usare quell'approccio.
GIURO! Prima di optare per il costrutto IF ho messo in gioco lo Switch Case. Il mio cervello è andato in tilt per via di dove mettere i break; e dove chiudere i vari switch :S

Le variabili "randomnumber" e "scelta" invece non le vedo usate, forse ti sei dimenticato di cancellarle. :emoji_relieved:
Si. In effetti fanno parte del "dietro le quinte", nel senso che avevo adottato diversi metodi per scrivere il codice e alla fine ho dimenticato di eliminare quelle variabili :emoji_relieved:


Grazie! :emoji_slight_smile:
 
Ultima modifica:
La prima cosa che mi interessa sono proprio le classi. Quindi mi stai dicendo che l'utilità di una classe è direttamente proporzionata al numero di attributi che essa contiene?
No, in una classe ci sono sia attributi che metodi, non importa che sia piena di roba, l'importante è che venga usata nel modo corretto.

Senza offesa, ma non me ne frega niente della realtà :emoji_relieved: a me interessa il codice
Come preferisci. patpat

Si hai ragione. Più oggetti vengono istanziati, più memoria viene richiesta.
Esatto, quindi attenzione. :emoji_relieved:

GIURO! Prima di optare per il costrutto IF ho messo in gioco lo Switch Case. Il mio cervello è andato in tilt per via di dove mettere i break; e dove chiudere i vari switch :S
I break stanno prima di un nuovo case:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Prego :emoji_slight_smile:
 
No no no così non va...cos'è quella classe ? Il ragionamento, e la teoria, nel caso in cui avessi voluto programmare male, ti avrebbe portato ad utilizzare una struttura non una classe. In sostanza : l'idea del programma è carina ma la sua scrittura a livello di codice è pessima...andrebbe scritto in un altro modo, per fartelo capire dovrei scriverlo io il programma ma non posso mettermi a riscrivere tutti i programmi delle persone per far capire loro come andrebbero fatte le cose. Non hai ascoltato il mio consiglio sul fatto di lasciar perdere le classi e difatti hai scritto un programma con i piedi.
 
  • Like
Reactions: 1 person
No no no così non va...cos'è quella classe ? Il ragionamento, e la teoria, nel caso in cui avessi voluto programmare male, ti avrebbe portato ad utilizzare una struttura non una classe. In sostanza : l'idea del programma è carina ma la sua scrittura a livello di codice è pessima...andrebbe scritto in un altro modo, per fartelo capire dovrei scriverlo io il programma ma non posso mettermi a riscrivere tutti i programmi delle persone per far capire loro come andrebbero fatte le cose. Non hai ascoltato il mio consiglio sul fatto di lasciar perdere le classi e difatti hai scritto un programma con i piedi.

Avrei dovuto usare una struttura o semplicemente tre variabili differenti? .-.
 
Bastava una variabile sola, dal momento che non torni indietro con i semafori ma vai solo avanti. :emoji_relieved:
Per questo ti ho detto che era inadeguata.

CA...VOLO HAI RAGIONE! Il valore della variabile viene solo sostituito quindi non era necess... -.- diamine
 
Avresti dovuto ascoltare il mio consiglio.

Mi fai morire :emoji_relieved:

Capisco il tuo consiglio e lo apprezzo molto, a partire dal fatto che il 90% di quel che so è grazie a questo stramaledetto forum :coniglio:

Ma... come spiegartelo. Io voglio andare avanti avanti avanti avanti, imparare nuove cose. Imparare le BASI di tutto per poi approfondire col tempo. Ovvero: quello che non conosco ancora lo voglio imparare, quello che già conosco lo voglio approfondire. In parole povere: voglio prima imparare tutto.

"No, devi prima focalizzarti su quello che già sai. Non puoi andare avanti a vanvera. Vai piano e con calma. Tutto a tempo debito"

-Probabile risposta di System32
 
Non capisco il senso del semaforo giallo. Teoricamente parlando, a seconda del momento in cui scatta, hai ancora la possibilità di passare. Però qui viene gestito come un semplice semaforo rosso, con lo stesso tempo d'attesa, quindi dove sta la differenza?
 
Non capisco il senso del semaforo giallo. Teoricamente parlando, a seconda del momento in cui scatta, hai ancora la possibilità di passare. Però qui viene gestito come un semplice semaforo rosso, con lo stesso tempo d'attesa, quindi dove sta la differenza?

In effetti non c'è differenza.
 
Mi fai morire :emoji_relieved:

Capisco il tuo consiglio e lo apprezzo molto, a partire dal fatto che il 90% di quel che so è grazie a questo stramaledetto forum :coniglio:

Ma... come spiegartelo. Io voglio andare avanti avanti avanti avanti, imparare nuove cose. Imparare le BASI di tutto per poi approfondire col tempo. Ovvero: quello che non conosco ancora lo voglio imparare, quello che già conosco lo voglio approfondire. In parole povere: voglio prima imparare tutto.

"No, devi prima focalizzarti su quello che già sai. Non puoi andare avanti a vanvera. Vai piano e con calma. Tutto a tempo debito"

-Probabile risposta di System32

La mia risposta a questa tua voglia di imparare tutto è sempre la stessa : faresti bene ad ascoltare il mio consiglio. Se poi non vuoi continua a scrivere programmi del genere, la mia cazziata - ovvero rimprovero - e le mie critiche non mancheranno.
 
La mia risposta a questa tua voglia di imparare tutto è sempre la stessa : faresti bene ad ascoltare il mio consiglio. Se poi non vuoi continua a scrivere programmi del genere, la mia cazziata - ovvero rimprovero - e le mie critiche non mancheranno.

Le vostre cazziate (so cosa significa :emoji_relieved:) sono la base delle cose che faccio :emoji_slight_smile: