Piccolo aiutino c++??
bella bros
vorrei fare un programma che ha una lista di argomenti e digitando il numero trova l'argomento e visualizza quell'argomento.
facendo il 3 superiore ci hanno innsegnato le basi fino ad adesso. io ho fatto il programma con gli IF ma se nella lista gli argomenti sono tanti qusto comporta un macello di if
c'è un comando per fare una spece di motore di ricerca?? cioè io inserisco sempre il numero ma traminte quel comando facilmente va all'argomento assegnalto al numero senza che io debba fare molti if
chi mi può aiutare??
Indros
Facendola barbara (per un terzo superiore insomma ) fatti un vettore di strutture (codice, argomento), e fai la ricerca sul vettore.
Se non hai idea di cosa ho scritto mi sa che l'unica alternativa un po' più leggibile è lo switch-case.
Indros
UncleAnkle
@Sharko40
Uhm, è un problema... Negli operatori "case" C++ non ammette l'uso di stringhe ma solo di integer. Stesso discorso per i vettori, gli indici possono essere solo integer (qui il problema può essere aggirato con altri trucchetti, ma meglio non spiegarli ora per non confonderti le idee ).
La soluzione quindi potrebbe essere quella di convertire la stringa in integer, ad esempio usando la funzione hash.Questa funzione converte la stringa in un numero in rapporto 1 a 1, vale a dire che ogni stringa avrà un valore numerico univoco.
Es banale: "ciao" corrisponderà sempre a "1234" e "1234" corrisponderà solo a "ciao".
cin>>stringainput;
long int valore_hash = hash(stringainput);
switch(valore_hash){
case '18391':
break;
case '528873'
break;
}
E così via.
L'unico problema è che prima di fare questo ti devi calcolare i valori hash delle stringhe che ti interessano, e poi inserirle a mano nei case
UncleAnkle
FedeX_15
Credo che lo switch case sia la soluzione migliore, a meno che non vuoi creare un database e lavorare con quello, ma non saprei aiutari
FedeX_15
UncleAnkle
Ehilà! Dunque la soluzione migliore, come detto nei post precedenti, sarebbe usare un array, cioè una lista di elementi.
Ipotizzando che questi "elementi" siano stringhe:
string vettore;
Al posto di n dovrai inserire il numero di elementi che vuoi memorizzare. In questo modo vai a definire una lista di n elementi nella quale puoi memorizzare le stringhe che preferisci.
Esempio pratico: memoriziamo le prime 5 lettere dell'alfabeto
string vettore; // In questo modo definisco un array di tipo stringa lungo 5
vettore = "a"; // NB! Nei vettori il primo elemento è sempre lo 0, non l'1
vettore = "b";
vettore = "c";
vettore = "d";
vettore = "e";
Quando vorrai stampare la lettera c, ti basterà accedere alla relativa posizione nel vettore:
cout<<vettore;
Ma penso che a breve approfondirete anche quello, vedrai tutti i lati (anche quelli oscuri!) della gestione dati tramite array
UncleAnkle
TheTrash
Si potesti farlo, ma dovresti conoscere le stringhe e lo stringcompare, ma poi usare lo switch case sarebbe inutile... E converrebbe usare un vettore di record... Cose che non credo tu conosca.... Ma se aspetti qualche buon mese potrai fare tutto senza problemi!
TheTrash
Sharko40
grazie bros! domani riprendo il programma e cerco di farlo
Sharko40
Sharko40
@UncleAnkle
grazie. la mia classe rispatto alle altre è un po indietro negli argomenti.. ho dovuto "studiarmi" lo switch case e cosa sono gli array da solo per fare questo programma..
vabbè per ora uso gli switch case..
ma un domanda.
io praticamente dò come input un numero e con gli switch case dò come out put lo svolgimento dell'argomento a cui è assegnato il numero. io al posto del numero posso inserire la parola del titolo dell'argomento tramete i vettori??
Sharko40
TheTrash
Premetto che non conosco lo c++ ma lo c.
A mio parere potresti fare uno switch-case con tutti i numeri degli argomenti e dare in output una stringa con l' argomento.
switch(n) \\ per n intendo il numero dell' argomento
{
case 1: \\ nel caso inserisco 1
cout<<"argomento 1";
break;
case 2: \\ nel caso inserisco 2
cout<<"argomento 2";
break;
... \\ a continuare per tutti gli argomenti che vuoi
}
spero ti sia stato utile.
TheTrash
Sharko40
@TheTrash
si infatto io ho fatto il programma così. l'utente inserisce il numero corrispondente all'argomento xò volevo sapere se al posto del numero potevo in serire il titolo/parola dell'argomento.
grazie lo stesso ^^
Sharko40
TheTrash
Ognuno è utile nel suo piccolo!
TheTrash
Piccolo aiutino c++??