Advertisement
informaticage

C++ Intro loops bribro

Dec 21st, 2020
1,217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.90 KB | None | 0 0
  1. /**
  2.  * Validazione dell'input dell'utente
  3.  * Utente inserisce età e vogliamo continuare a chiedere in input l'eta finche l'utente non la mette valida ( ovvero >= 0 )
  4.  */
  5.  
  6. #include <iostream>
  7.  
  8. int main() {
  9.     /*
  10.         char <= short <= int <= long <= (long long)
  11.         unsigned o meno
  12.     */
  13.     using namespace std;
  14.     cout << sizeof(char)      << " "   // 1
  15.         << sizeof(short)      << " "   // 2
  16.         << sizeof(int)        << " "   // 4
  17.         << sizeof(long)       << " "   // 4
  18.         << sizeof(long long)  << endl; // 8
  19.  
  20.     // Mia macchina è a 64 bit
  21.     // Deduco che
  22.     // char ( ascii 8 bit ) => output 1 = 1 byte = 8bit
  23.     // short tende ad essere metà di un int (32bit) / 2 = 16bit
  24.     // int tende ad essere 32 bit se possibile ma non vuole essere grande come tutto il registro del processore
  25.     // Mi aspetto 32 bit su una macchina a 64bit
  26.     // Long è più grande dell'int se l'int non è riuscito ad essere a 32 bit ma in questo
  27.     // caso ci è riuscito quindi mi aspetto che long e int siano della stessa dimensione
  28.     // long long cerca di usare più bit possibile quindi nel mio caso 64
  29.  
  30.     /// Leggo l'input e ripeto la lettura finche l'utente non mi da un positivo accetabile diciamo tra 0 <= input <= 130
  31.  
  32.     int age;
  33.  
  34.     // Segnaposto che si ricorda l'indirizzo di memoria a cui risiede questa riga di codice ( proprio in ram )
  35.     label_inizio_lettura:
  36.     cout << "Sono arrivato a riga inizio lettura" << endl;
  37.  
  38.     cout << "Inserire l'eta' compresa tra 0 e 130: ";
  39.     cin >> age;
  40.    
  41.     // controlla se ho sbagliato ad inserire un età valida
  42.     if (age >= 0 && age <= 130) {
  43.         cout << "Eta' valida" << endl;
  44.     } else {
  45.         cout << "Eta' non valida" << endl;
  46.         goto label_inizio_lettura;
  47.     }
  48.  
  49.     // Il goto salta ad un indirizzo di memoria identificato da un etichetta (label)
  50.     // Non si usa perché rende il codice difficile da leggere e propenso ad errori
  51.     // E perché esistono costrutti iterativi che svolgono il suo lavoro
  52.  
  53.     // Come il while è implementato sotto il cofano
  54.  
  55.     /**
  56.         while ( condizione ) {
  57.             SE vero eseguo e ripeto
  58.         }
  59.         se falso esco e proseguo senza tornare più indietro
  60.     */
  61.     int i = 0;
  62.     INIZIO_WHILE:
  63.     if(age >= 0 && age <= 130) {
  64.         // MIO CODICE
  65.         cout << i++ << endl;
  66.         goto INIZIO_WHILE;
  67.     }
  68.  
  69.     /// Equivalente semanticamente (Comportamento di un linguaggio di programmazione si chiama semantica)
  70.     int i = 0;
  71.     while (age >= 0 && age <= 130)
  72.         cout << i++ << endl;
  73.  
  74.  
  75.     // // Passiamo alla nostra missione di validare l'input dell'utente
  76.  
  77.     int age;
  78.     cout << "Inserisci eta (tra 0 e 130)";
  79.     cin >> age;
  80.     while (age < 0 || age > 130) {
  81.         cout << "Inserisci eta (tra 0 e 130)";
  82.         cin >> age;
  83.     }
  84.  
  85.     cout << "Mi hai detto di avere " << age << " anni" << endl;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement