giovedì 23 ottobre 2014

Esercizio:su Classe Frazione

Creare una Classe Frazione che esegua le operazioni di frazioni,aggiorna, e visualizza

# include<iostream>
using namespace std;

          class calcola {// classe calcola
   
        public://metodi pubblico
     

void input();//metodo per l'input dei dati N e D
void visualizza();//metodo ti tipo void per visualizza
void aggiorna();//metodo per aggiornare

int numeratore;//dichiarazione di una variabile di tipo intera
int denominatore;//dichiarazione di una variabile di tipo intera

    private: //proprietà private

};

void calcola::input() //costruttore senza passaggi
{
    float risultato; //dichiarazione di una variabile di tipo float
         cout<<"inserisci il numeratore"<<endl;
    do
    {    cin>>numeratore;
          if(numeratore==0)//controlla se N ==0
          {
         
          }
            }while(numeratore==0); //finche ==0 chiede l' input
               cout<<"inserisci il denominatore"<<endl;
               do
                {
                  cin>>denominatore;
                    if(denominatore==0) //controlla di D
                 { // se ==0
                     cout<<"il numero inserito e =0"<<endl;
                      cout<<"inserisci di nuovo"<<endl;//chieda un input
          }
                }while(denominatore==0);
                  risultato=(float)numeratore/denominatore;
                  //(float) e il casting = forza il risultato in float
                    cout<<"il risultato della divisione e "<<risultato<<endl<<endl;
                    }
 void calcola::visualizza()//metodo per visualizzare i numeri inseriti inseriti
    {
        if(denominatore!=1)
        //se nel denominatre c'è un valore diverso da uno allora è una frzione e visualizzo n/d
            cout<<"La Frazione Inserita e': "<<denominatore<< "/" <<numeratore<<endl;
        else   //altrimenti visualizzo solo N
            cout<<"La Frazione Inserita e': "<<denominatore<<endl;
    };
  
   void calcola::aggiorna()//metodo per aggiornare
     {
      float risultato;

           cout<<"inserisci il numeratore"<<endl;
     do
      {
          cin>>numeratore;
            if(numeratore==0)
   {
 
   }
     cout<<"il numero inserito e =0"<<endl;
       cout<<"inserisci di nuovo"<<endl;
 
         }while(numeratore==0);
           cout<<"inserisci il denominatore"<<endl;
    do
    {
            cin>>denominatore;
              if(denominatore==0)
                {
                  cout<<"il numero inserito e =0"<<endl;
                      cout<<"inserisci di nuovo"<<endl;
                } 
        }while(denominatore==0);
                risultato=(float)numeratore/denominatore;
                  cout<<"il risultato della divisione e "<<risultato<<endl<<endl;
}
int main()
{
char c; //dichiarazione di un variabile da tipo char
int ripeti=0;// dichirazione di un variabile intero
calcola d1;//Istanza oggetto d1
calcola n1;//Istanza oggetto n1
d1.input();
n1.input();

  cout<<"Numero inseriti: "<<endl;
        d1.visualizza();//metodo per input oggetto d1 
        n1.visualizza();//metodo per input oggetto n1
     do
        {
            cout<<"Per modificare i dati inseriti? [S|N]"<<endl;
            cin>>c;
            /*parte controllo se il carattere Inserito è
            miuscola o minuscola ? o diversa da quella richiesta*/
         }while(((c=='S')&&(c=='s'))&&((c!='n')&&(c!='N')));
        if((c=='s')||(c=='S'))
       
         {
            int d;//dichiarazione di un variabile di tipo intero
                 do{
                cout<<endl<<"Quale frazione vuoi modificare? [1/2]"<<endl;
                 cin>>d;
                if(d==1)// se ==1
                    d1.aggiorna();//aggiorna il den
                else
                    if(d==2)//se ==2
                        n1.aggiorna();//aggiorna il num
                    else
                        cout<<endl<<"Scelta Errata"<<endl;
                   
            }while((d!=1)&&(d!=2));    //se diverso output scelta non valida
                }
           {
           cout<<"vuoi ripetere l'operazione? si/1 no/0"<<endl;
             cin>>ripeti;
 
             } while(ripeti!=0);
 
             return 0;
          }

giovedì 16 ottobre 2014

L' istruzione typedef di un array di puntatore

EXERCISE:

Definire l'istruzione typedef di nome dipendente, creare un array di puntatore di elemente  dipendente con N scelto dall'utente.

Codice eseguibile:

#include <iostream>
using namespace std;
// Mohammad Rahime Esercizio 13/10/2014
typedef struct persona {/* con l' istruzion typedef possiamo gestire insiemi di dati non
omogenei e possiamo difinire anche un nuovo tipo ti dati int float ecc*/
                    char Nome[10];
                    char Cognome[10];
                    float Stipendio;
                       }dipendente;//creo un nuovo tipo di dato "dipendente"

dipendente *punta; // variabile di tipo puntatore dipendente
main()
{  
    int i=0; // indice i=0
    int dim; // dimensione non reale
    cout<<"Quanti dipendente vorresti calcolare?"<<endl;
    cin>>dim; // dimension scelta dal utente
    punta=new dipendente[dim];// crea un array a dimensione scelta dall' utente
   
        for(i=0;i<dim;i++)
         {
// acquisizione dai dati inseriti dal utente
            cout<<"Inserisci il Nome: ";
              cin>>punta[i].Nome;
                cout<<"Inserisci il Cognome: ";
                  cin>>punta[i].Cognome;
                    cout<<"Inserisci lo stupendio: ";
                      cin>>punta[i]. Stipendio;
                      }
                        for(int i=0;i<dim;i++)
                            {
        // per stampa i numeri delle persone che sono stati calcolati
    cout<<endl<<"Numero dalle persone scelta dal utente "<<i<<endl;
      //visualizzazioni dai dati inseriti dal utente
      
         cout<<"Nome:\n " << punta[i].Nome;  
           cout<<endl<<"Nome: " << punta[i].Cognome;  
            cout<<endl<<"Nome: " << punta[i]. Stipendio;  
              cout << endl << endl; //per tornare a capo
          }
            return 0;
               }

Le caratteristiche base dei puntatori

Le caratteristiche alla base dei puntatori,tracciato con " CMAP "