Assegnare ad una variabile più parole

di il
8 risposte

Assegnare ad una variabile più parole

Buon giorno, vorrei creare, giusto per esercitarmi ed assimilare nuovi concetti, un CONVERTITORE DI DENARO, partendo dalla nostra valuta, cioè gli euro, in varie altre valute (es. dollari, yen, etc..; parto dal presupposto che sto iniziando ora a programmare e come sintassi del C++ conosco soltanto IF-ELSE, dunque l'obbiettivo è fare il codice solo con if-else.
L'idea è:
1 - far mettere all'utente la nazione di destinazione
2 - far inserire all'utente la cifra che si desidera convertire
3 - la macchina dopo aver riconosciuto la "nazione" e la "cifra", converte nella valuta di tale nazione
se per esempio l'utente scrive "USA" e poi "100", il programma stamperà la scritta "da questa cifra otterrai 110 dollari americani"

pensavo quindi di creare una: string nazione; e giocare su if-else in base alla parola scritta dall'utente
ma per far questo il programma deve essere in grado di riconoscere che se:
euro = 1
dollari = 1.1
quindi se l'utente scrive nello spazio dedicato alla "variabile nazione" ad esempio, "USA", il programma deve essere in grado di associare a tale parola e solo a tale parola, il corrispettivo "dollari=1.1", questo posso farlo, ma...

Come faccio ad associare più parole che il programma possa riconoscere, alla "variabile nazione"?
(per esempio: "USA" , cina, giappone, canada , etc..)
e se per esempio un utente scrive "********!" il programma si blocchi e gli risponda "attenzione! la parola digitata non è corretta o presente nell'elenco delle nazioni disponibili per la conversione"

8 Risposte

  • Re: Assegnare ad una variabile più parole

    Basta usare degli if/else in cui confronti stringhe, per poi moltiplicare l'importo per il corretto tasso di cambio.

    Volevo chiederti quale fosse di preciso la difficoltà che hai incontrato, ma visto il nick eviterei!
  • Re: Assegnare ad una variabile più parole

    Il nick l'ho segnalato ...
  • Re: Assegnare ad una variabile più parole

    oregon ha scritto:


    Il nick l'ho segnalato ...
  • Re: Assegnare ad una variabile più parole

    La prima volta che entrai (qualche giorno fa) su "ilprogrammatore.net" per risolvere un dubbio, leggendo la domanda postata da un altro giovane utente, notai una valanga di risposte ironiche e saccenti, per altro, concentrandosi sull'accanirsi sul postatore della domanda, nessuno alla fine aveva dato una risposta effettivamente soddisfacente al povero malcapitato... in pratica qui arriva qualche ultra 50enne complessato a rispondere con un aria di superiorità, ma senza riuscire effettivamente a risolvere il dubbio... ragion per cui, per la prima volta nella mia vita, non sono riuscito a iscrivermi prendendo sul serio il sito, ed ecco l'origine del nickname! per fortuna l'opprimente e insostenibile problema è stato risolto agilmente, mi è stato assegnato un altro nickname, breve e semplice da ricordare, che a me va benissimo.

    Detto questo.. il fatto è che ho iniziato lo studio della programmazione (non solo c++ ma in generale) da una decina di giorni e persino le cose più banali e semplici sono per me nuove, ora come ora non ricordo quale fosse il mio dubbio dal momento che, non solo l'ho risolto qualche minuto dopo aver postato la domanda, ma oramai ho studiato numerosi altri argomenti e composto svariati altri esercizi ...ci tengo a precisare che in effetti la domanda era posta in modo poco chiaro... forse si riferiva al problema che, una normale variabile "string" non ti permette di scrivere più di una parola come comando, ad esempio se qualcuno avesse voluto scrivere "gran bretagna" anzi che "inghilterra" o "stati uniti d'america" anzi che "usa", sarebbe stato un problema per la prima versione del fantomatico convertitore.

    in pratica la risposta che andavo cercando era: come funziona il "getline", che permette di leggere/stampare l'intera riga, senza stopparsi al primo "carattere bianco" che incontra sul cammino, ma già lo sapete.. quindi:

    ho riscritto il programma innanzi tutto associando alla variabile "nazione", un getline e un toupper in modo che l'utente possa scrivere quello che vuole, basta che ci sia una parola chiave, poi rilevata dalla funzione .find, procedendo in fine con una cascata di if - else che diano messaggi di errori appropriati se qualcosa non va, fra richiesta di inserimento della nazione o della cifra che si desidera convertire.
    ora il programma è a prova di bomba ed alla fine stampa il cambio corretto, con tanto di nome della valuta associato alla nazione corrispondente e un bel "buona viaggio!" finale tanto per incitarli un pochino.

    in ogni caso vi ringrazio del supporto e vi auguro un buon proseguimento
  • Re: Assegnare ad una variabile più parole

    Anzi, rileggendo la richiesta direi che quello che mi sfuggiva era il simbolo ==, col quale avrei potuto associare la variabile "nazione" a parole specifiche come "usa", del resto era il primo, massimo secondo giorno in cui ho messo mano al C++ e programmazione in generale e sapete come sono le fonti di studio.. prima partono con lunghissime introduzioni sull'origine della programmazione, sui vari livelli intermedi fra hardware a linguaggio effettivamente utilizzato dal programmatore, senza tralasciare di certo cose come il codice binario o la matematica esadecimale, quindi il primo giorno parte tutto con l'into, senza aver effettivamente aperto il caro code blocks.
  • Re: Assegnare ad una variabile più parole

    Altro spunto interessante:
    ancor prima di iniziare a programmare ne parlavo con amici che hanno definito la programmazione un "notevole sforzo di capacità logiche", al che mi rivolsi a 'grandi scuole' dopo aver visto un annuncio, andai a fare un colloquio e quando mi dissero "inizierai a programmare solo al 3°anno di corso", al che la guardai un po'sorpreso e le dissi "caspita, speravo di iniziare fin da subito"; a quel punto lei, con aria irritata mi guardò, come se avessi provato ad ucciderla e mi disse "ma cosa credi?! programmare non è facile! forse alla fine dei 5 anni sarai in grado di fare qualche funzione per conto tuo, ma non credo!" , al che mi alzai dalla scrivania sede del colloquio e le dissi , "arrivederci".. consapevole di star perdendo tempo.
    Comprai così un libro di testo (pagato non poco), il 2°libro più premiato d'italia, tale libro mi consigliava vivamente di raggiungere l'obbiettivo del C++ partendo dal C e come primo programmino mi facevano utilizzare il Dev-C++.
    Allora mi informai un secondino su internet, qualche minuto dopo mi resi conto che il libro mi aveva appena detto due cose (sono esempi da comparare alla situazione):
    - per imparare l'inglese è meglio prima che impari il cinese
    - per guidare un treno freccia rossa , puoi utilizzare qui vecchi treni a carbone del 1800 per fare pratica
    quindi, presi il libro e pensai: "ora gli do fuoco a sta merda e poi lo butto via", ma dopo qualche secondo rinsavii e decisi semplicemente di buttarlo via, tralasciando la parte da piromane.
    Esperienza di informatica delle medie: alcuni disegni con "Paint" (oggi sono un 3d designer capace di fare tutto con programmi come blender o 3d studio max, ma non certo per la scuola media)
    Esperienza di informatica delle superiori(quel poco delle superiori che ho fatto): nessuna

    Con tutti questi approcci, con tutti questi esempi, con tutti questi trascorsi, non mi sorprendo del motivo per cui ho dovuto apprendere il PC completamente da solo, senza alcun valido aiuto e soprattutto, ho finalmente capito come mai noi italiani non valiamo assolutamente un cazzo agli occhi di un qual si voglia compatriota "umano" che viva fuori dai nostri vecchi e obsoleti confini; ed ecco come mai, se per caso esistesse un abile programmatore o abile 3d designer qui, sicuramente si trasferirebbe in battito di ciglia all'estero.

    cosa ne penso:
    - la programmazione non è difficile da imparare, si impara in un attimo, conoscere decentemente programmi come blender è molto, molto più difficile e lungo come processo.
    - la difficoltà della programmazione, quella famosa frase "programmare è un notevole sforzo mentale", deriva dal fatto che, se devo programmare un AI che simuli un reale essere umano, con tutte le sue complessità, oppure costruire un programma funzionale per una delle massime aziende mondiali o se devo lavorare per la NASA, allora si che diventa uno sforzo mentalmente degno di nota, ma non se devo semplicemente, piacevolmente, programmare.
    - se si continua ad utilizzare questo approccio da "è troppo difficile", oppure "chiudiamo le porte in faccia al giovane", rimarremo sempre uno stato di serie B, ma prima o poi ci fanno retrocedere nuovamente e passeremo alla serie C e via dicendo in un ciclo "while" perenemente "true" in cui veniamo dipinti come dei clown e ci sparano dietro frasi come "programmare all'italiana", facendosi su due risate nel mentre.
    - che la prossima volta che sento qualcuno consigliare di utilizzare il Dev-C o se sento qualcuno parlare ancora di studio di C (a meno che non sia completamente obbligato a farlo per necessità pratiche), mi incazzo!
  • Re: Assegnare ad una variabile più parole

    c001 ha scritto:


    La prima volta che entrai (qualche giorno fa) su "ilprogrammatore.net"
    Ilprogrammatore.net non esiste...
  • Re: Assegnare ad una variabile più parole

    @c001
    Concordo con i tuoi amici che hanno definito la programmazione un "notevole sforzo di capacità logiche", anche se ovviamente bisogna sempre vedere cosa si intende con programmare... ritengo per esempio che ci sia più sforzo mentale in alcuni esercizi scolastici che nel lavoro svolto quotidianamente dai tanti operai della tastiera.
    Anche sulla distinzione che fai tra C e C++ mi sa che sei troppo drastico, alla fine il C++ è un sovrainsieme del C in quanto può essere utilizzato sia per la programmazione procedurale che ad oggetti. Inoltre se con C ti riferisci a tutta la parte relativa ai puntatori e alla gestione della memoria, saltandola secondo me ti perdi dei concetti molto utili e anche gran parte del "divertimento"!
    Infine non cadere nella trappola di quel pessimismo provincialotto ********* e altrove invece funziona tutto alla grande.
Devi accedere o registrarti per scrivere nel forum
8 risposte