[C++]Guida teorica

parte 2

« Older   Newer »
 
  Share  
.
  1. n1md4
     
    .

    User deleted


    Operazioni basilari di I/O e operatori fondamentali


    Il Secondo Semplice Programma in C++
    Bene, eccoci per la seconda lezione. Adesso impareremo ad utilizzare una variabile, il costrutto fondamentale della programmazione. Cos'é una variabile ? Una variabile è un'area di memoria contrassegnata da un nome e alla quale può essere assegnato un valore che può essere cambiato durante il corso del programma. Nel seguente listato, dichiariamo delle variabili, assegniamo ad esse dei valori, e poi utilizziamo gli operatori fondamentali per interagire

    CODICE:
    SPOILER (click to view)
    /*
    Anche questo programma fa schifo
    */

    #include <iostream>

    void main()
    {
    int length; // qui si dichiara la variabile 'lenght' di tipo int (numero intero)
    int width; // qui si dichiara la variabile 'width' di tipo int (numero intero)
    int area; // qui si dichiara la variabile 'area' di tipo int (numero intero)

    length = 7; //a 'length' asssegno il valore 7
    width = 5; //a 'width' asssegno il valore 5

    area = length * width; // calcola l'area con l'operatore di moltiplicazione

    printf("L'area e': %d", area);
    }



    Questo programma è semplicissimo. Si dichiarano 3 variabili di tipo intero: 'length', 'width' e 'area' e si assegna alla prima il valore 7, alla seconda il valore 5. La terza, 'area', è ottenuta moltiplicando la prima variabile per la seconda. L'operatore di moltiplicazione in C++ è ' * ' , affianco ad esso c'é quello di addizione ' + ', di sottrazione ' - ', e di divisione ' / '. L'ultima riga ha bisogno di una spiegazione. Come abbiamo già visto, printf stampa una scritta a video, ma qui non fa solo quello. Qui tra le parentesi tonde, vi sono 2 parti separate da una virgola, (le parti dentro le parentesi di una funzione separate da virgola sono dette 'argomenti'). Il primo argomento è "L'area e' : %d", questo indica al compilatore di stampare a video le parole "L'area e' : ". Il "%d" non viene stampato a video, perché è un carattere composto jolly, vale a dire che il "%d" è sostituito dal compilatore con il valore dell'argomento successivo nella funzione. Allora qui l'output prodotto sarà "L'area e' : 35". printf comunque non accetta solo "%d" come carattere composto jolly, ma molti altri. Bisogna ricordarsi che dopo il carattere '%', 'd' indica che la variabile è di tipo 'int', numero intero non decimale. Per stampare stringhe, bisogna specificare il tipo stringa con "%­s", per un altro tipo un altro ancora, ecc.. Per ora teniamo solo a mente printf("Numero Intero %d", numint); e printf("Stringa %­s", str); , per ora questi ci bastano.



    Lettura dell'Input dalla tastiera
    Nel programma precedente, le variabili avevano un valore fisso assegnato dal programma stesso. Dall'utente non era richiesta azione creativa. Ora invece vediamo come possiamo far inserire le misure dall'utente.


    CODICE:
    SPOILER (click to view)
    #include <iostream>
    using namespace std; //Il namespace necessario per 'cin'

    void main()
    {

    int length;
    int width;
    int area;

    printf("nInserire l'altezza: ");
    cin >> length; //Legge un numero da tastiera di tipo intero

    printf("nInserire la base: ");
    cin >> width; //Legge un numero da tastiera di tipo intero

    area = length * width;

    printf("L'area e': %d", area);

    }


    Bene, cosa c'é di nuovo? Innanzitutto vediamo che abbiamo aggiunto la riga "using namespace std;" questo indica al compilatore di utilizzare la libreria (namespace) 'std', cioé standard. Questa è indispensabile per utilizzare funzioni come "cin", che significa Console INput, e il suo contrario "cout", Console OUTput. "Cout" ha funzionamento analogo a printf, ma non lo useremo di frequente.. cout << width; Per ora occupiamoci di "cin", come possiamo vedere, "cin" è seguito da un'operatore poco usato: ">>" che indica il verso dell'input. "cout" infatti ha come operatore "<<", il verso contrario. Non credo ci sia bisogno di ulteriori spiegazioni.

    Dati in formato "double" e "float"

    Introduciamo un nuovo tipo di dati, giusto per comodità e per fare qualche programma non del tutto scandaloso: il tipo "double" (e di conseguenza il tipo "float"). Una variabile di tipo "int", può contenere 18, ma non 18.3 , allora come si risolve il problema? Si usa una variabile in virgola mobile, il linguaggio C++ definisce due tipi di numeri in virgola mobile: float e double, che rappresentano rispettivamente valori a precisione semplice e doppia. Dei due, il più utilizzato è double. Per dichiarare una variabile double, si usa la seguente istruzione:

    double ;

    Dove è il nome della variabile, come per esempio "risultato" (senza apici). Poiché la variabile con double è in virgola mobile, può contenere valori come 88.56, 0.034 oppure 107.03 . Chiudiamo questa lezione con un programma di esempio che converte da piedi a metri. Una cosa da tener presente è che printf utilizza "%f" per stampare a video una variabile di tipo decimale come una variabile di tipo "double".


    CODICE:
    SPOILER (click to view)
    /*
    Questo programma orrendo
    esegue una conversione da piedi a metri.

    FtoM.cpp
    */
    #include <iostream>
    using namespace std;

    void main()
    {
    double f; //memorizza la lunghezza in piedi
    double m; //memorizza la lunghezza in metri

    printf("nInserire la lunghezza in piedi: ");
    cin >> f;

    m = f / 3.28; //Converte i piedi in metri

    printf("n%f piedi equivalgono a %f metri.", f, m); //Mostra il risultato

    }


    L'unica cosa da precisare è che printf può anche mostrare più variabili contemporaneamente. Come in questo caso. L'importante è separare tutte le variabili con una virgola e assicurarsi che i caratteri jolly siano esatti per la conversione (%d per interi, %­s per stringhe, %f per decimali, ecc...).

    Ecco un esempio di output:

    image

    Bene, per ora è tutto. So che è noioso e che vi frega poco per ora, ma una parte teorica è indispensabile per capire i programmi più complessi che andremo a fare in seguito.


    fonte: AlexMark
     
    Top
    .
0 replies since 4/9/2009, 10:45   122 views
  Share  
.