Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-01-2013, 06:46   #1
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
[C++] Switch e la sua "espressione"

Premetto che compilo ancora col vecchio Dev.. ormai obsoleto e non piu aggiornato.. col costrutto switch è possibile mettere una stringa nell'espressione?

C'ho provato con string ma allo switch non piace questa variabile.. ho fatto un tentativo da niubbo pure con un vettore di caratteri

Ho provato pure con la cascatina di if else-if, ma non mi attira tanto l'idea...
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 07:10   #2
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Non si possono usare string nello Switch. Solo valori integrali o convertibili ad un tale valore (come i char).
Nel C# invece (e spero anche in altri linguaggi) lo Switch prende anche le stringhe, se ti può interessare.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 07:46   #3
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Interessante. Mhh no, C# non fa per me.. tutti i linguaggi propensi all'OOP piu del C e del C++ non sono quello che cerco.

In C alla fine "tutto" si puo fare, però bisogna fare giri mooolto larghi e bisogna essere molto masochisti :/
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 08:19   #4
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Come vuoi tu o_O
Non ti stavo proponendo di passare al C# cmq, era giusto una informazione.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 08:54   #5
Mettiu_
Member
 
L'Avatar di Mettiu_
 
Iscritto dal: Jul 2011
Messaggi: 250
Quote:
Originariamente inviato da vendettaaaaa Guarda i messaggi
Nel C# invece (e spero anche in altri linguaggi) lo Switch prende anche le stringhe, se ti può interessare.
Si può fare anche in Java, ma solo dalla versione 1.7 in poi (se non erro).
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto.

CONCLUSO POSITIVAMENTE CON: oldfield, furletto, SL45i
Mettiu_ è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 08:56   #6
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Ora non so come sia strutturato completamente il C#, l'ho visto su un po di tutorial su youtube. E' ottimo per chi vuole fare programmi che prendano piede velocemente, però non sono multi piattaforma e sono piuttosto lentini.. vero peccato.

Ma forse un giorno ci passerò anch'io per questi linguaggi.
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:00   #7
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Quote:
Originariamente inviato da Mettiu_ Guarda i messaggi
Si può fare anche in Java, ma solo dalla versione 1.7 in poi (se non erro).
Non proprio, ma java è leggermente avanti..
http://alefranz.net/it/programmers-t...ase-su-string/

EDIT: Ok errato io
https://gist.github.com/1112538
Sintassi ardua da capire, anche se dopo mesi di C qualcosa riesco a comprendere anche in Java

Ultima modifica di stohuman : 18-01-2013 alle 09:04.
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:07   #8
Mettiu_
Member
 
L'Avatar di Mettiu_
 
Iscritto dal: Jul 2011
Messaggi: 250
Quote:
Originariamente inviato da stohuman Guarda i messaggi
Non proprio, ma java è leggermente avanti..
http://alefranz.net/it/programmers-t...ase-su-string/

EDIT: Ok errato io
https://gist.github.com/1112538
Sintassi ardua da capire, anche se dopo mesi di C qualcosa riesco a comprendere anche in Java
Ricordavo bene. Se parliamo di stringhe (cioè fare qualcosa tipo case "pippo"), puoi farlo solo da Java 7 in poi. Compilare per credere...

http://stackoverflow.com/questions/3...trings-in-java

http://www.theserverside.com/tutoria...ional-Switches
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto.

CONCLUSO POSITIVAMENTE CON: oldfield, furletto, SL45i
Mettiu_ è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:14   #9
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Beh si, java è un mostro .. però controllando su internet (tutta roba inglese ovvio... ) forse hanno trovato una soluzione al problema..

http://stackoverflow.com/questions/4...-integers?lq=1
Tradotto:

Convertire la stringa in numero e quindi mettere i soliti...
Codice:
case 1:
case 2:
e..
...ove però int equivale a una stringa.

Anche se gli occhi mi bruciano come l'inferno voglio testare sta cosa.
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:38   #10
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Per convertire una stringa in un int ho usato la cascatina , però è gia piu carino visto cosi.. in piu devo ritrovare quella funzione che collega i caratteri ascii maiuscoli a quelli minuscoli.

Devo trovare un modo piu carino per convertire le stringhe però, magari con una funzioncina, convertendo e giocando con i cast sui caratteri delle stringhe..

Codice:
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <ctime>
#include <conio2.h>

using namespace std;

void mainmenu(){
     
     cout << "Uno per Funzione 1\nDue per Funzione 2\nExit per uscire dal programma ora.\n\t";
     
     string g;
     int x=0;
     cin >> g;
     
     if (g == "Uno")
       x = 1;
       else
       if (g == "Due")
         x = 2;
         else
         if (g == "Exit")
         x = 0;
         else
         x = -1;
     
     switch (x){
            case 1:
                 cout << "Funzione 1!\n";
                 break;
            case 2:
                 cout << "Funzione 2!\n";
                 break;
            case 0:
                 cout << "Exit, bye!\n";
                 getchar();
                 exit(0);
            default:
                    cout << "Comando non riconosciuto.\n";
                    clrscr();
                    mainmenu();
            }
     
     }

int main(){
    
    mainmenu();
    
    fflush(stdin);
    cout << "Exit, bye!\n";
    getchar();
}
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:38   #11
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da stohuman Guarda i messaggi
Interessante. Mhh no, C# non fa per me.. tutti i linguaggi propensi all'OOP piu del C e del C++ non sono quello che cerco.

In C alla fine "tutto" si puo fare, però bisogna fare giri mooolto larghi e bisogna essere molto masochisti :/
Il C di OOP non ha proprio nulla, a dire il vero.

Il discorso comunque è decisamente diverso, dal mio punto di vista.
Un linguaggio non va scelto in base alla "simpatia" verso la sua sintassi o al fatto che è più o meno performante, quanto al cosa vuoi programmare.
Se programmi su di un iDevice userai l'Objective C, su android il Java, su Windows il C# la fa sempre più da padrona, per i videogame (ma vabbè, qui si comincia ad andare su scenari parecchio avanzati) difficile affidarsi ad altro che non sia il C++ (a parte qualche caso, vedi per esempio i buoni risultati ottenuti con il C# e il framework XNA), e via discorrendo.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:39   #12
idoido
Senior Member
 
Iscritto dal: May 2008
Messaggi: 429
Quote:
Originariamente inviato da Mettiu_ Guarda i messaggi
Ricordavo bene. Se parliamo di stringhe (cioè fare qualcosa tipo case "pippo"), puoi farlo solo da Java 7 in poi. Compilare per credere...

http://stackoverflow.com/questions/3...trings-in-java

http://www.theserverside.com/tutoria...ional-Switches
bene bene, un buon motivo per sfottere Java alla prossima occasione

bellissima la risposta del tipo su stackoverlow:

Switch statements with String cases have been implemented in Java SE 7, at least 16 years after they were first requested.
idoido è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:45   #13
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da stohuman Guarda i messaggi
Per convertire una stringa in un int ho usato la cascatina , però è gia piu carino visto cosi.. in piu devo ritrovare quella funzione che collega i caratteri ascii maiuscoli a quelli minuscoli.

Devo trovare un modo piu carino per convertire le stringhe però, magari con una funzioncina, convertendo e giocando con i cast sui caratteri delle stringhe..
Domanda: ma per quale motivo fare tutto questo? Il case è un bel costrutto, ordinato e conciso, ma se nel C e nel C++ non è previsto l'utilizzo di stringhe non vedo perchè forzare la cosa con sistemi simili che tra l'altro aggiungono solo righe di codice.
In questi casi io andrei di if_else if_else if_ecc... , che risulta comunque estremamente leggibile e funzionale.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 09:54   #14
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
Il C di OOP non ha proprio nulla, a dire il vero.

Il discorso comunque è decisamente diverso, dal mio punto di vista.
Un linguaggio non va scelto in base alla "simpatia" verso la sua sintassi o al fatto che è più o meno performante, quanto al cosa vuoi programmare.
Se programmi su di un iDevice userai l'Objective C, su android il Java, su Windows il C# la fa sempre più da padrona, per i videogame (ma vabbè, qui si comincia ad andare su scenari parecchio avanzati) difficile affidarsi ad altro che non sia il C++ (a parte qualche caso, vedi per esempio i buoni risultati ottenuti con il C# e il framework XNA), e via discorrendo.
Lo so. Io programmo in C++ non perche mi sta simpatico... spesso e senza volerlo mi arrabbio col compilatore.
Che non abbia niente di OOP non è proprio vero, certo non mi puo venire in mente di farmi un team di 3 persone e fare photoshop o GIMP completamente in C++... difatti come dici tu, si sceglie il linguaggio in base a quello su cui si vuole programmare.
Io non credo proprio di mettermi a fare le cosi dette "App", o programmini con GUI gia pronte.

La gran parte del codice che scriverò voglio che vada sulla maggior parte dei sistemi, quindi cerco di tenermi lontano dalle chiamate e dai linguaggi troppo attaccati ai sistemi stessi, quindi anche i framework o le directX se riguarda videogameing..

Ho iniziato col C e ci continuo ora
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 10:00   #15
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
Domanda: ma per quale motivo fare tutto questo? Il case è un bel costrutto, ordinato e conciso, ma se nel C e nel C++ non è previsto l'utilizzo di stringhe non vedo perchè forzare la cosa con sistemi simili che tra l'altro aggiungono solo righe di codice.
In questi casi io andrei di if_else if_else if_ecc... , che risulta comunque estremamente leggibile e funzionale.
L'ho detto, non mi trovo bene con gli if else in cascata, cerco di evitarli se posso.
Personalmente poi anziche scrivere sempre un numero anziche la scelta vera e propria stufa un po', sto solo facendo dei test, non dico che ora tutti devono fare come dico io.

Oltre tutto con i processori di oggi, qualche riga di codice in piu non è cosi pesante. Basta non esagerare nei punti critici, una cascata di if else e un costrutto sicuramente non faranno laggare un semplice menù.
stohuman è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 10:11   #16
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da stohuman Guarda i messaggi
Lo so. Io programmo in C++ non perche mi sta simpatico... spesso e senza volerlo mi arrabbio col compilatore.
Che non abbia niente di OOP non è proprio vero, certo non mi puo venire in mente di farmi un team di 3 persone e fare photoshop o GIMP completamente in C++... difatti come dici tu, si sceglie il linguaggio in base a quello su cui si vuole programmare.
Io non credo proprio di mettermi a fare le cosi dette "App", o programmini con GUI gia pronte.
Io però mi riferivo al C, non al C++ (che invece implementa il paradigma OOP, seppure con un livello di astrazione inferiore ad altri linguaggi OOP puri).
Riguardo alle interfacce, infine, ormai qualsiasi programma con interfaccia utente si basa su librerie grafiche già fatte (più o meno complete).
Restando in ambito C++, librerie come QT, GTK e similari sono proprio questo.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2013, 10:19   #17
stohuman
Bannato
 
Iscritto dal: Dec 2012
Messaggi: 41
Diciamo che io sono per il 70% C++ e 30% C std, anche se il primo inizio è stato con il C, poi i vari tutorial alla cazzo di cane mi hanno fatto fare confusione e mi sono tirato fuori da solo studiandomi meglio le sintassi e quello che cambia tra i due linguaggi.

L'interfaccia grafica non è il mio obiettivo, per ora sto ai livelli del terminale.
Ma se dovessi scrivere un programma con una GUI lo farei ugualmente in C++, no sacrifice no victory.
stohuman è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
La 'casetta in Canadà' di Mark Zu...
Una batteria che dura più di 5000...
Addio smemorati: WhatsApp testa una nuov...
Italia finalmente all'avanguardia con il...
Gratis e scritto con l'IA, il convertito...
Cooler Master V8 ACE 3DHP: disponibile i...
L'IA minaccia migliaia di posti nei call...
Assetto Corsa EVO introduce il foveated ...
Il modello base di NVIDIA Shield TV potr...
Meta sta sviluppando occhiali smart capa...
Ecco degli avviatori batteria auto super...
Fujifilm firma il suo obiettivo pi&ugrav...
Le nuove auto in UE devono accorgersi se...
Speciale pulizia: robot e scope elettric...
Dreame A2 3000 crolla di 800€: il robot ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:22.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v