Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema controllo caratteri immessi
Forum - C/C++ - Problema controllo caratteri immessi

Avatar
simone97 (Normal User)
Newbie


Messaggi: 14
Iscritto: 28/03/2010

Segnala al moderatore
Postato alle 13:47
Domenica, 16/05/2010
il sorgente è questo:
Codice sorgente - presumibilmente C

  1. #include <iostream.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <conio.h>
  5.  
  6. float somma (float a, float b, float c){
  7.         float r = a+b;
  8.         float x = r+c;
  9.         return x;
  10. }
  11.  
  12. float differenza(float a, float b){
  13. float r = a-b; return r;
  14. }
  15.  
  16. float prodotto(float a, float b, float c){
  17.  float r = a*b;
  18.  float x = r*c; return x;
  19. }
  20.  
  21. float quoziente(float a, float b){
  22.     float r = a / b; return r;
  23. }
  24.  
  25. double radice(float a){
  26.  double r = sqrt(a); return r;
  27. }
  28.  
  29. float elevamento(float a, int b){
  30.  float r = pow(a,b);
  31.  return r;
  32. }
  33.  
  34.  
  35. int main(){
  36.     system("color a");
  37.     int scelta, op;
  38.     int esponente;
  39.     float base, altezza, perimetro, area, lato, apotema;
  40.     float x, y, z;
  41.     punto:
  42.     cout<<"\a\t\t\t\tMATHS.3000\n\t\t\t\tby Simone De Vita\n"<<endl;
  43.     cout<<"Cosa vuoi fare?"<<endl;
  44.     cout<<"1. Calcolatrice ";
  45.     scelta=(int) _getch();
  46.     if(scelta==1){
  47.             system("cls");
  48.             cout<<"\aQuale operazione vuoi svolgere?"<<endl;
  49.             cout<<"1. Addizione\n2. Sottrazione\n3. Moltiplicazione\n4. Divisione\n5. Radice quadrata\n6. Elevamento a potenze"<<endl;
  50.             op=(int) _getch();
  51.  
  52.         if(op==1){
  53.             system("cls");
  54.             cout<<"\aIntrodurre il primo numero>> ";
  55.             cin>>x;
  56.             cout<<"\n\aIntrodurre il secondo numero>> ";
  57.             cin>>y;
  58.             cout<<"\n\aIntrodurre il terzo numero>> ";
  59.             cin>>z;
  60.             cout<<"\n\a\aIl risultato e'>> "<<somma(x, y, z)<<endl;
  61.             cout<<"\n\aIl programma e' terminato, prema INVIO per continuare"<<endl;
  62.             getchar();
  63.             getchar();
  64.             system("cls");
  65.             goto punto;
  66.     }
  67.         else if(op==2){
  68.                 system("cls");
  69.             cout<<"\aIntrodurre il primo numero>> ";
  70.             cin>>x;
  71.             cout<<"\n\aIntrodurre il secondo numero>> ";
  72.             cin>>y;
  73.             cout<<"\n\a\aIl risultato e'>> "<<differenza(x, y)<<endl;
  74.             cout<<"\n\aIl programma e' terminato, prema INVIO per continuare"<<endl;
  75.             getchar();
  76.             getchar();
  77.             system("cls");
  78.             goto punto;
  79.     }
  80.         else if(op==3){
  81.             system("cls");
  82.             cout<<"\aIntrodurre il primo numero>> ";
  83.             cin>>x;
  84.             cout<<"\n\aIntrodurre il secondo numero>> ";
  85.             cin>>y;
  86.             cout<<"\n\aIntrodurre il terzo numero>> ";
  87.             cin>>z;
  88.             cout<<"\n\a\aIl risultato e'>> "<<prodotto(x, y, z)<<endl;
  89.             cout<<"\n\aIl programma e' terminato, prema INVIO per continuare"<<endl;
  90.             getchar();
  91.             getchar();
  92.             system("cls");
  93.             goto punto;
  94.     }
  95.         else if (op==4){
  96.             system("cls");
  97.             cout<<"\aIntrodurre il primo numero>> ";
  98.             cin>>x;
  99.             cout<<"\n\aIntrodurre il secondo numero>> ";
  100.             cin>>y;
  101.             cout<<"\n\a\aIl risultato e'>> "<<quoziente(x, y)<<endl;
  102.             cout<<"\n\aIl programma e' terminato, prema INVIO per continuare"<<endl;
  103.             getchar();
  104.             getchar();
  105.             system("cls");
  106.             goto punto;
  107.     }
  108.         else if(op==5){
  109.             system("cls");
  110.             cout<<"\aIntrodurre il numero>> ";
  111.             cin>>x;
  112.             cout<<"\n\a\aIl risultato e'>> "<<radice(x)<<endl;
  113.             cout<<"\n\aIl programma e' terminato, prema INVIO per continuare"<<endl;
  114.             getchar();
  115.             getchar();
  116.             system("cls");
  117.             goto punto;
  118.     }
  119.         else if(op==6){
  120.             system("cls");
  121.             cout<<"\aIntrodure la base>> ";
  122.             cin>>base;
  123.             cout<<"\a\nIntrodure l'esponente>> ";
  124.             cin>>esponente;
  125.             cout<<"\n\a\aIl risultato e'>> "<<elevamento(base, esponente)<<endl;
  126.             cout<<"\n\aIl programma e' terminato, prema INVIO per continuare"<<endl;
  127.             getchar();
  128.             getchar();
  129.             system("cls");
  130.             goto punto;
  131. }
  132.     }
  133.     getchar();
  134. }


il problema è che quando lo eseguo e scrivo 1 non prosegue! e se premo INVIO termina :(

EDIT by HeDo: Titolo non corretto, non hai letto il regolamento, la prossima volta locko direttamente

Ultima modifica effettuata da HeDo il 16/05/2010 alle 17:24
PM Quote
Avatar
delta (Normal User)
Pro


Messaggi: 96
Iscritto: 01/09/2009

Segnala al moderatore
Postato alle 15:18
Domenica, 16/05/2010
non funziona perchè getch() acquisisce il carattere ASCII del valori digitato sulla tastiera. prova a cambiare

op == 1

con

op== 49 //oppure char(1)

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 16:30
Domenica, 16/05/2010
Testo quotato

Postato originariamente da delta:

non funziona perchè getch() acquisisce il carattere ASCII del valori digitato sulla tastiera. prova a cambiare

op == 1

con

op== 49 //oppure char(1)



gli abbiamo già risposto in chat poco fa, tra me, manvb e davide :D diciamo che è stato faticoso ma alla fine ce l'abbiamo fatta... per non parlare dei goto al posto del while e della catena di else if al posto dello switch-case...

PM Quote
Avatar
delta (Normal User)
Pro


Messaggi: 96
Iscritto: 01/09/2009

Segnala al moderatore
Postato alle 16:39
Domenica, 16/05/2010
vabbè... non sapendolo ho risposto comunque...

PM Quote
Avatar
simone97 (Normal User)
Newbie


Messaggi: 14
Iscritto: 28/03/2010

Segnala al moderatore
Postato alle 16:47
Domenica, 16/05/2010
kane gli if else li ho tolti, ma il goto mi piace :D
cmq grazie xD

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 16:52
Domenica, 16/05/2010
Testo quotato

Postato originariamente da simone97:

kane gli if else li ho tolti, ma il goto mi piace :D
cmq grazie xD



:rotfl:

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6378
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 17:40
Domenica, 16/05/2010
Testo quotato

Postato originariamente da simone97:

ma il goto mi piace :D



Beh ... adesso che ne hai usati tanti e ti sei divertito, toglili tutti ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:40
Domenica, 16/05/2010
Testo quotato

Postato originariamente da TheKaneB:
gli abbiamo già risposto in chat poco fa, tra me, manvb e davide :D diciamo che è stato faticoso ma alla fine ce l'abbiamo fatta...



Diciamo che man ce l'ha fatta, tu che quasi ti suicidavi per le domande che ti faceva (coma la storia '0'==0 asd) e io che sono rimasto inorridito per le funzioni create che non servono a un ciaffo e tutte quelle variaibli messe lì "per bellezza" xD

PM Quote