giovedì 12 febbraio 2015

Modifica di un file di testo iscritto in C attraverso dalla line di commando DOS

/*Il programma sviluppata in C  Usando la line di comando ( argc e argv)
Il primo parametro argc di tipo int `e il contatore del numero di “argomenti” o “opzioni” passati al programma quando questo viene invocato sia dalla linea di comando che da un altro programma. Questi argomenti sono chiamati argomenti di linea (command line arguments) perch´e sono dati di seguito al nome dell’eseguibile del programma sulla stessa linea di comando. Il secondo parametro argv `e un array di puntatori a stringhe contenenti gli argomenti di linea passati al programma. La prima stringa argv[0] contiene il nome del programma o, se questo non `e disponibile, la stringa vuota.*/
---------------------------------------------------------------------------------------------------------------
Il contiene la stringa --> sotto quando viene esecuito dalla line di comando la stringa dovrebbe essere trasformata quello indica in basso con colori bule .

QUEL RAMO del lago di Como, che volge a mezzogiorno, tra due CATENE non interrotte di MONTI, tutto a seni e a golfi, a seconda dello sporgere E DEL RIENTRARE di quelli, vien, quasi

scambia TESTO.TXT MODIF.TXT ae
 ed il file TESTO.TXT
 contenesse i seguenti dati:
allora il programma dovrebbe produrre il seguente file MODIF.TXT perché dovrebbe sostituire tutte le lettere A (a) con E (e) e tutte le lettere E (e) con A (a):

QUAL REMO dal lego di Como, cha volga e mazzogiorno, tre dua CETANA non intarrotta di MONTI, tutto e sani a e golfi, e saconde dallo sporgara A DAL RIANTRERE di qualli, vian, quesi

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main( int argc, char *argv[] )
{
const int MAX=200; /* Variabile costante di ti po intero dimensione MAX=200 per che indica
il massimo di numero di carattere di usare*/
char frase[200+1];// array di caratteri con dimensione 200+1
char c[200+1];  // secondo array di caratteri dimensione 200+1 che raccoglia il contenuto
//di senconda file chiamata modif

FILE *scambia; // apri il canale di file di scambia
FILE*modif;    // la seconda canale se modif che contine stringa modificata

        if ( argc != 2 && argc != 3 )
{
printf("ERRORE di parametri\n") ;
exit(1) ;
}
 /* apertura del file  in modalita lettura*/
scambia= fopen(argv[1], "r") ;

if (scambia==NULL ) // nel caso dalla mancanza di parametri stampa ERRORI
{
printf("impossibile aprire il file %s\n", argv[1]) ;
exit(1) ;
}
if (argc==2) // Se il argc ugule a 2 procede
{
/*La funzione fgets ha tre argomenti: il primo è un vettore di
caratteri in cui va memorizzata la linea del file di testo;
il secondo è il numero massimo di caratteri che si vogliono
mettere in questa stringa; il terzo è un descrittore di file,
 e indica da quale file si vuole leggere la stringa*/

while ( fgets(frase,MAX,scambia)!= NULL)

{
           
/* ciclo iterazione for per fare scorrere la stringa
usand la funzione La funzione strlen() calcola la lunghezza della stringa frase,
(inteso come il numero di caratteri dell'array puntato da frase*/  
           
        for(int i=0;i<strlen(frase);i++)

{
/* if concatenata per controlli l' indice di for se la stringa
 contine caratteri miuscola e maiuscol(A-a)(e-E) scambiarle tra di loro*/
if(frase[i]=='a')
frase[i]='e';
else if(frase[i]=='A')
frase[i]='E';
else if(frase[i]=='e')
frase[i]='a';
else if(frase[i]=='E')
frase[i]='A';

   }
 printf("%s\n",frase);
// una volta che elaborato la stringa, aper il secondo file per copiarle
     {
             modif=fopen("modif.txt","w"); // apre il secondo file in modalita scrittura
                     fscanf(modif,"%s\t",c); /*Le funzioni fscanf() e fprintf() vengono utilizzate per la
lettura e la scrittura su file. Il loro comportamento
                                              è lo stesso delle funzioni scanf() */
                       fprintf(modif,"%s ",frase);
                          fclose(modif);  // chiusura dal primo file
                           // printf("%s",frase); // stampa la stringa elaborata
                              fclose(scambia); // chiusura dal secondo FILE
  }
          }
                       system("pause");
}
}

La modifica di un file di testo in C

/*Si desidera sviluppare un programma in linguaggio C per la modifica di un file di testo. La modifica consiste nel sostituire – scambiandoli tra loro – due caratteri alfabetici dati. In particolare, tutte le occorrenze del primo carattere dovranno essere sostituite dal secondo e viceversa. La sostituzione deve avvenire mantenendo la forma (maiuscola o minuscola) della lettera originaria. Il programma riceve sulla linea di comando tre parametri: il nome del file di testo da elaborare, il nome di un secondo file di testo nel quale salvare il risultato ed una stringa di 2 caratteri che specifica i caratteri da scambiare.
*/



#include<stdlib.h>
#include<stdio.h>
#include <string.h>


int main() /* Difinizione dal Faile
Un file e un insieme di dati omogenee,memmorizzata in modo permanente su
memoria di massa in modo equenziale */
{
  FILE *scambia; //  puntatore al PRIMO file canale (il FILE originale dove contiena le frase)
  FILE*seco;     // il secondo FILE dove viene salvato le frase una volta modificata
  const int MAX=200;  /* Variabile costante di ti po intero dimensione MAX=200 per che indica
                       il massimo di numero di carattere di usare*/
  char frase[200+1];    // array di caratteri con dimensione 200
  char c[200+1];
     /* secondo array di caratteri dimensione 200+1 che raccoglia
  salva il contenuto di secondo FILE una volta modificata*/




/* apre il file da leggere (L'apertura di un file viene realizzata mediante la
funzione fopen */
  if(!(scambia=fopen("primo.txt","r")))

      {    
         printf("Errore in apertura del file da leggere");
         exit(1);  // nel caso di errori di apertura
            }
/*La funzione fgets ha tre argomenti: il primo è un vettore di
 caratteri in cui va memorizzata la linea del file di testo;
il secondo è il numero massimo di caratteri che si vogliono
mettere in questa stringa; il terzo è un descrittore di file,
 e indica da quale file si vuole leggere la stringa*/      
       while ( fgets(frase,MAX,scambia)!= NULL )

{
/* ciclo iterazione for per fare scorrere la stringa
  usand la funzione La funzione strlen() calcola la lunghezza della stringa frase,
(inteso come il numero di caratteri dell'array puntato da frase*/

    for(int i=0;i<strlen(frase);i++)

    {
/* if concatenata per controlli l' indice di for se la stringa
 contine caratteri miuscola e maiuscol(A-a)(e-E) scambiarle tra di loro*/
  if(frase[i]=='a')
      frase[i]='e';
  else if(frase[i]=='A')
      frase[i]='E';
  else if(frase[i]=='e')
      frase[i]='a';
  else if(frase[i]=='E')
      frase[i]='A';
        }
            seco=fopen("secondo.txt","w"); // apre il secondo file in modalita scrittura
                     fscanf(seco,"%s\t",c); /*Le funzioni fscanf() e fprintf() vengono utilizzate per la
lettura e la scrittura su file. Il loro comportamento
                                              è lo stesso delle funzioni scanf() */
                       fprintf(seco,"%s ",frase);
                          fclose(seco);  // chiusura dal primo file
                            printf("%s",frase); // stampa la stringa elaborata
                              fclose(scambia); // chiusura dal secondo FILE
 
                               }

                                 }

lunedì 24 novembre 2014

Uso dell'operatore new in Java

//Uso dell'operatore new in Java
// Esercizio di Lab 5 
 // Prima parte

 public class New {
   
    // Dati membrao ottenuto dal primo Pradigma OOP
    private int a;
    private int b;
    private int c;
    private int d;
    private String f; // f e ti tipo calsse chiamato stringa
    private double e;
    private boolean g;
    // Elenco Funzione Membro Setter e Getter
public void set_a(int a) // prametro
  {
    this.a=a;   // puntatore this
   
    // procedure
}
public void set_b(int b)
  {
    this.b=b;
}
public void set_c(int c)
   {
    this.c=c;
}

public void set_d(int d)
{
    this.d=d;
  }
 public void set_e(double e)

 {
this. e=e;   
 }
public void set_f(String f )
{
    this.f=f;

}
public void set_g(boolean g)
{
    this.g=g;
}

public double get_e()
{
  return this. e;

  }

public String get_f()
{

 return this. f;

  }
public boolean get_g()
{
 return this. g;

  }

 int get_a()
{

return this. a;

  }   
public int get_b()
{
  return this . b;

  }

public int get_c()
{

 return this. c;

  }
public int get_d()
{
 return this. d;

  }
public static void main(String[] args)
{
    System.out.println("Il programma diterminato");
   
    }
}

//
//Uso dell'operatore new in Java
public class OperatoreNew
{ // classe
   

public static void main(String[] args)
{
        // TODO Auto-generated method stub
   
        New myobject;
        New myobject2;
        // Ho difinito un dato locale chiamata myobject di tipo calsse new
       
       
         myobject=new New ();
         myobject2=new New ();
                     // costruttore  dell edeficio
                     // allocati dei byte nello HEAP per una
                     // struttura dati complessa rappresentata
                     // dalla classe prima
   
// Perche ho dichiarato myobject di tipo calsse New?
       
          // Perche in questo modo conosce il medesimo progetto che l' operazione
          // New ha impegato per costruire l' edefficio in memoria HEAP
          // il progetto e evidentamente la calsse New
          // myobject e un dato locale !!!
          // Questo significa che si trova nell STACK

 myobject2=new New ();

           // Istanziare una classe sgnifica allocare lo spazio nell HEAP ed
           // accedervi tramite un variabile di riferimento. Questo variabile è
           // anche chiamato OGGETTO.
    myobject.set_a(23);
    myobject.set_b(33);
    myobject.set_c(43);
    myobject.set_d(53);
    myobject.set_e(0.55);
    myobject.set_f("Primo programmo");
    myobject.set_g(true);

        myobject2.set_a(123);
        myobject2.set_b(133);
        myobject2.set_c(143);
        myobject2.set_d(153);
        myobject2.set_e(3.55);
        myobject2.set_f("secondo object");
        myobject2.set_g(false);
   
           System.out.println("Il dato membero a di object vale :"+myobject.get_a());
             System.out.println("Il dato membero b di object vale :"+myobject.get_b());
               System.out.println("Il dato membero c di object vale :"+myobject.get_c());
                  System.out.println("Il dato membero d di object vale :"+myobject.get_d());
                    System.out.println("Il dato membero e di object vale :"+myobject.get_e());
                     System.out.println("Il dato membero f di object vale :"+myobject.get_f());
                       System.out.println("Il dato membero g di object vale :"+myobject.get_g());

           System.out.println("Il dato membero a di object2 vale :"+myobject2.get_a());
             System.out.println("Il dato membero b di objec2t vale :"+myobject2.get_b());
               System.out.println("Il dato membero c di object2 vale :"+myobject2.get_c());
                 System.out.println("Il dato membero d di object2 vale :"+myobject2.get_d());
                  System.out.println("Il dato membero e di object2 vale :"+myobject2.get_e());
                    System.out.println("Il dato membero f di object2 vale :"+myobject2.get_f());
                     System.out.println("Il dato membero g di object2 vale :"+myobject2.get_g());
          }   

// stampa valore intero concatinazione
}

Associazione 1 a molti C++

Associazione 1 a molti C++
#include <iostream>

using namespace std;

class B // dichiarazione seconda classe
{
public:
    void stampa() // metodo per stampa
    {
        cout<<"Benvenuto nella class B"<<endl;
    }
};

class A // dichiarazione prima classe
{
public:
   B* ruoloB; // puntatore alla seconda classe (B)
public:
    A(B* linkato){  //
    ruoloB=linkato;
    }
};

int main()
{
    B b; // creazione di un oggetto di classe B , con nome b
A a(&b); // creazione di un oggetto di classe A , con nome a con parametro l'indirizzo di b
a.ruoloB->stampa(); // stampa attraverso la classe A di "stampa" in classe B
};

martedì 11 novembre 2014

Funzione Virtuale

Funzioni virtuali
Le funzioni virtuali sono funzioni associate al tipo attuale di oggetto disponibile permettendo la chiamata in tempo di esecuzione e costituiscono il meccanismo utilizzato dal C++ per ottenere il polimorfismo. Per dichiarare una funzione come virtuale si mette la parola chiave virtual prima del nome nella dichiarazione della classe base (o anche di ogni figlia, ma non è necessario):
virtual  type Nome_Funzione ( elenco parametri );

Un esempio di codice :

#include <iostream>
using namespace std;
class Padre
{
public:
      virtual void Stampa();
      {
        cout<<"Io sono il Padre"<<endl;

      };


};
class Figlio:public Padre
  {

   void Stampa();
   {
         cout<<"Io sono il Figlio"<<endl;

        };
         };
int main()
{
      Padre*p; // dichiarazione di un puntatore di tipo padre
         p=newPadre; //associa il puntatore ad un area di memoria di tipo padre
          p->Stampa();
           (*p)Stampa();
       //sara utilizzato quello della classe padre
     p=new Figlio; //

        p->Stampa();
           return 0;
             }
// end of main

lunedì 3 novembre 2014

Classe Calcolatrice

Programmo sviluppato con la collaborazione della Classe
  Nel dettaglio sviluppo del metodo "+=" e "-=":

#include <iostream>

using namespace std;

class Frazione{   //classe Frazione
    public:   //metodi pubblici
        Frazione();   //costruttore senza passaggio di parametri
        Frazione(int a,int b);   //costruttore con passaggio di due parametri di tipo intero per valore
        Frazione(int c);   //costruttore con passaggio di un parametro di tipo intero per valore
        void inserimento();   //metodo per l'inserimento dei dati num e den
        void visualizza();   //metodo per la visualizzazione dei dati inseriti
        void aggiorna();   //metodo per aggiornare i dati inseriti
            Frazione operator +(Frazione a);
            Frazione operator -(Frazione a);
            Frazione operator *(Frazione a);
            Frazione operator /(Frazione a);
            void operator += (Frazione a);
    void operator -= (Frazione a);

    bool operator >(Frazione); //prototipo
   bool operator <(Frazione); //prototipo
   bool operator !=(Frazione a);
        int num;   //dichiarazione di una variabile di tipo intera
        int den;   //dichiarazione di una variabile di tipo intera

    };

Frazione::Frazione()   //costruttore senza passaggio di parametri
    {
    num=1;
    den=1;
    };

Frazione::Frazione(int a, int b)   //costruttore con passaggio di parametri dove passo i valori dal main alle variabili a e b per valore
    {
    num=a;   //associo il contenuto puntato da a alla variabile num
    den=b;   //associo il contenuto puntato da b alla variabile den
    };

Frazione::Frazione(int c)   //costruttore con passaggio di parametri dove passo i valori dal main alla variabile c per valore
    {
    num=c;
    den=1;   //trattandosi di un intero dichiaro il denominatore uguale a 1
    };


void Frazione::inserimento()   //metodo per l'inserimento dei dati
    {
        cout<<"Inserisci il numeratore: "<<endl;
        cin>>num;
        do
        {
            cout<<"Inserisci il denominatore: "<<endl;
            cin>>den;
            if(den==0)   //se il denominatore e' uguale a 0 non accetto i dati inseriti e richiedo di ripetere l'inserimento
                cout<<"Il denominatore deve essere diverso da '0'"<<endl;
        }while(den==0);
    };

void Frazione::aggiorna()   //metodo per l'inserimento dei dati
    {
        cout<<"Inserisci il numeratore: "<<endl;
        cin>>num;
        do
        {
            cout<<"Inserisci il denominatore: "<<endl;
            cin>>den;
            if(den==0)   //se il denominatore e' uguale a 0 non accetto i dati inseriti e richiedo di ripetere l'inserimento
                cout<<"Il denominatore deve essere diverso da '0'"<<endl;
        }while(den==0);
    };

void Frazione::visualizza()   //metodo per visualizzare i dati inseriti
    {
        if(den!=1)   //se a denominatre c'è un valore diverso da uno allora è una frzione e visualizzo num/den
            cout<<"La frazione inserita e': "<<num<< "/" <<den<<endl;
        else   //altrimenti è un intero e visualizzo solo num
            cout<<"La frazione inserita e': "<<num<<endl;
    };

Frazione Frazione :: operator +(Frazione a)
      {
 Frazione b;
             b.den= this->den*a.den;
             b.num= (this->den*a.num)+(this->num*a.den);
             //b.Semplifica();
           return b;

 };
  Frazione Frazione :: operator -(Frazione a)
  {
  Frazione b;
             b.den= this->den*a.den;
             b.num= (this->den*a.num)-(this->num*a.den);
             //b.Semplifica();
           return b;
  };
  Frazione Frazione :: operator / (Frazione a)
  {
  Frazione b;

                b.den=this->den*a.num;
                b.num=this->num*a.den;
               // b.Semplifica();
                return b;
  };
      Frazione Frazione :: operator * (Frazione a)
      {
      Frazione b;

                b.den=this->den*a.den;
                b.num=this->num*a.num;
                //b.Semplifica();
                return b;

      };
void Frazione :: operator += (Frazione a)   //metodo per la somma tra frazioni con passaggio di oggetto a parametri (passeremo le due frazioni da sommare)
    {
        *this=a+*this;
    };
void Frazione :: operator -= (Frazione a)   //metodo per la somma tra frazioni con passaggio di oggetto a parametri (passeremo le due frazioni da sommare)
    {
        *this=a-*this;
        if(num==0)   //if per la visualizzazione del solo numeratore in caso di risultato uguale a 0
            {
                num=0;
                den=1;
            }
};

bool Frazione::operator >(Frazione a){

  bool ris=false;

  Frazione appoggio; //istanzio l'oggetto appoggio di classe frazione
  int fraz1=this->num*a.den;   // numeratore fraz1 * den fraz2
  int fraz2=this->den*a.num;   //numeratore fraz2 * den fraz1

  if(fraz1>fraz2)
      ris=true;

   return ris;

};
    bool Frazione::operator <(Frazione a){



    bool ris=false;

    Frazione appoggio;
    int fraz1=this->num*a.den;
    int fraz2=this->den*a.num;

     if(fraz1<fraz2)
      ris=true;

          return ris;


    };

bool Frazione::operator !=(Frazione a)
{
    bool x;
    if((a.num==num)&&(a.den==den))
    {
        x=0;
    }
    else
    {
        x=1;
    }
    return x;
}

main()
{
    int *scelta;
    int *modfraz;
    char mod;
    char *input;
    Frazione obj1;   //istanza oggetto obj1
    Frazione obj2;   //istanza oggetto obj2
    Frazione ris;
    cout<<"CALCOLATRICE PER FRAZIONI:"<<endl;
    scelta=new int;


        cout<<"Quale operazione vuoi eseguire? "<<endl;
        cout<<"1)Somma\n2)Sottrazione\n3)Moltiplicazione\n4)Divisione\n5)'+='\n6)'-='\n7)'>' o '<'\n8)'=' o '!='"<<endl;
        cout<<"Scegli 1-2-3-4-5-6-7-8: ";
        cin>>*scelta;
        cout<<endl;
        obj1.inserimento();   //metodo per inserimento in oggetto obj1
        obj2.inserimento();   //metodo per inserimento in oggetto obj2
        cout<<"Dati inseriti: "<<endl;
        obj1.visualizza();   //metodo per visualizzare dati inseriti in obj1
        obj2.visualizza();   //metodo per visualizzare dati inseriti in obj2
        Frazione risultato;   //istanza oggetto risultato

        input=new char;
        do
        {
            cout<<"Vuoi modificare i dati inseriti? (s/n)";
            cin>>*input;
        }while(((*input=='S')&&(*input=='s'))&&((*input!='n')&&(*input!='N')));
        if((*input=='s')||(*input=='S'))
        {
            modfraz=new int;
            do{
                cout<<endl<<"Quale frazione vuoi modificare? (1/2)";
                cin>>*modfraz;
                if(*modfraz==1)
                    obj1.aggiorna();
                else
                    if(*modfraz==2)
                        obj2.aggiorna();
                    else
                        cout<<endl<<"Scelta non valida"<<endl;
            }while((*modfraz!=1)&&(*modfraz!=2));
            delete modfraz;
        }
        else
            if((*input!='n')&&(*input!='N'))
                cout<<"Scelta non valida"<<endl;
        delete input;

        switch (*scelta)
            {
                case 1: ris=obj1+obj2;   //metodo per somma
                        ris.visualizza();
                        break;
                case 2: ris=obj1-obj2;   //metodo per somma
                        ris.visualizza();
                        break;
                case 3: ris=obj1*obj2;   //metodo per somma
                        ris.visualizza();
                        break;
                case 4: ris=obj1/obj2;   //metodo per somma
                        ris.visualizza();
                        break;
                case 5: obj1+=obj2;   //metodo per somma
                        obj1.visualizza();
                        break;
                case 6: obj1-=obj2;   //metodo per somma
                        obj1.visualizza();
                        break;

                case 7: bool ris;
                        if(ris=obj1>obj2)cout<<endl<<"La prima frazione e' maggiore della seconda"<<endl;
                        if(ris=obj1<obj2)cout<<endl<<"La prima frazione e' minore della seconda"<<endl;
                        break;
                case 8: bool x;
                        ris=obj1!=obj2;
                        if(x==0)
                            cout<<"Le due Frazioni sono uguali"<<endl;
                        else
                            cout<<"Le due frazioni sono diverse"<<endl;
                        break;
                }
        delete scelta;
}

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 "

lunedì 16 dicembre 2013

Vettore ,for

# include<stdio.h>
# include<stdlib.h>
//# include<time.h>
// Mohammad rahime


main()
{
  int vett[10];
  int i=0;
  float media=0;
 



      for(i=0;i<10;++i)
      {
          printf("Inserice dice numero per calolare le media\n");
         
          scanf("%d",&vett[i]);
         
           printf("\n",&vett[i]);/*per stampare il contenuto di vettore prima che venga assengato
           all variabile media */
         
          media+=vett[i];
      }
     
          media=media/10;

{

         printf("la media e >>> %.2f \n",media);
    

         system("pause");
 }
}

Calcolo della serie di Fibonacci

# include<stdio.h>
# include<stdlib.h>
// Rahime Mohammad
main()
{
    int numero;
    int precedente=1;
    int attuale=1;
    int successivo;

    printf("Inserisci un numero della serie di fibonacci\n");
    scanf("%d",&numero);
    // controllo se l' utente inserisce lo zero
       if(numero==0){ /* se il numero auguale a zero non ha nussun precedente*/
      
      
       successivo=1;
       printf("il successivo e %d\n",successivo);
       printf("il predente non esiste\n");
}
       else
  {
 

    while((attuale!=numero)&(attuale<numero))/* calcolo della serie di Fibonacci partento da uno
    finche non si arriva ad un numero maggiore di quello inserito*/
    {
    successivo=attuale+precedente;
    precedente=attuale;
    attuale=successivo;
       
   
    if(attuale==numero){ /* quando il numero immesso e augule a quello trovato
    il programmo restituisce il precedente e il successivo*/
       
       
        successivo=attuale+precedente;
        printf("il precedente e %d\n",precedente);
        printf("il successivo e %d\n",successivo);
}
}
  if(attuale>numero)/* se il numero inserito è minore e non uguale a quelli
  trovati significa che non fa parte della serie di Fibonacci*/
     printf("Il numero inserito non fa parte della numero serie di Fibonacci\n");
        system("pause");

}
       
       
}

Calcolo di pari, dispari, zeri, fissato dal Utente

// Rahime Mohamamad
# include<stdio.h>
# include<stdlib.h>


main()
{

 int volta=0;// il numero dalle volta
 int numero;
 int pari=0;
 int dispari=0;
 int zero=0;
 int ris=0;


               system("color 2F");
                 printf("Quanti calcoli vorresti fare ? \n");
                   scanf("%d",&volta);
             while(volta>0)// volta >0 inserisce il numero
             {

                printf("Inserisci il numero\n");
                   scanf("%d",&numero);
           
            if((numero%2)==0){ // s il numero diviso 2 come il resto da zero e pari
   
                   pari++; // aumenta contatore il pari
           }
           else
                  dispari++;// altrimenti aumenta il contatore dispari
           {
            if(numero==0){// se il numero auguale zero
                      zero++;// aumenta il contatore zeri
           }
                   ris=ris+numero;// somma il numero e lo assegna al variabile ris
  
                    volta--;   // decremente il contatatore volta
   }

       system("CLS");/*cancella output percedente e stampa il risulatato percedent
       piu il sucessivo*/
       printf("I numeri pari sono%d\n",pari);
        printf("I numeri dispari sono %d\n",dispari);
        printf("I numeri zeri sono %d\n",zero);
          printf("Il risultato sono %d\n",ris);
         
  }
     
         system("pause");
   }

Lancio di 2 dadi

# include<stdio.h>
# include<stdlib.h>
# include<time.h>
// lancio di due dadi
// Mohammad Rahime

  int main()
  {
      int conta=0;
      int lancio1=0;
      int lancio2=0;
      int val=0;
      int scelta=1;
     
   do
      {
                  system("color 2B");
                 
                  system("CLS");
                  printf("\nLancia il primo dado valore compreso tra uno e sei !!>>>>");
                    scanf("%d",&lancio1);
                      printf("\nLancio il secondo dado valore compreso  tra uno sei !!>>>");
     
                           scanf("%d",&lancio2);
                         
                                val=lancio1+lancio2;
                                val++;
                               
                 if((val<=12)&&(val>0))
                
      
       {
      
                srand(time(0));
                  conta=rand()%12;
                  conta++;
                       
               
      //    val=lancio1=lancio2;
         
    /*  printf("fai una scelta !!\n");
         scanf("%d",&lancio1);
        printf("Inserisce il numero\n");
         scanf("%d",&lancio2);*/
           //printf(" la somma di due lancio %d\n",val,conta);
        }
       
                printf("scelta%d !!\n\n",conta);
       
       if((lancio1+lancio2)==conta){
                         
               printf("hai vinto\n");
              
               //printf(" Lancio 1  %d\n",lancio1);  
                // printf(" Lancio 2 %d\n",lancio2);
                // printf(" Lancio %d %d\n",val);       
    }
       
  else   
       
{        

               printf("hai perso\n");
              
                printf(" la somma di due lancio%d\n\n",conta);
                    printf(" per rifare l' operazione primi 1 per uscire 0\n");
                          scanf("%d",&scelta);
}
        }while(scelta==1);



         system("Pause");
}

Calcolo fattoriale

// Rahime Mohammad
#include<stdio.h>
#include<stdlib.h>
// mohammad rahime
main()
{
    int numero,conta,fattoriale=0;
   
    fattoriale=1;// per calcolare numero positivi

   // formule per calcolare fattoriale N!=1 N!=N(N-1)
    printf("inserisce un numero\n");
    scanf("%d",&numero);
   
         if(numero>0)// controllo di valore inserito
             
                  for(conta=numero;conta>1;conta--){
                  //4!4*3*2*1=24
                 
                      fattoriale=fattoriale*conta;/* multi il valore nel contatore
                      per fattoriale,e lo assegna al al fattorilae */
                  }
                  printf("Il fattoriale di:%d\ne %d\n",numero,fattoriale);
                  // stampa a video il numero inserito e il fattoriale di essi
                  system("pause");
              }

Generare 10N random e calcolare le medie

# include<stdio.h>
# include<stdlib.h>
# include<time.h>
// Mohammad Rahime
   main()
   {
       int vett[10];
       int  i=0;
       float  media=0;
      
       srand(time(0));
       i=rand()%10;
      
      
      
       for(i=0;i<10;++i)
       {
          
      
           media+=vett[i];
       //printf("La media e %f\n",media);
       }
       media=media/10;
      
       printf("La media e %2.f\n",media);
      
       system("pause");
   }

lunedì 25 novembre 2013

Anni Bisestili C

Trasformare seguenti diagramma di flusso per calcolare gli anni bisestili.

Il codice scritto in linguaggio C .

/* Drittiva di pre processore/ questo programma vi calcola se
un anno e bisestile, no !! Rahime*/
# include <stdio.h>
# include <stdlib.h>



main()
{
       int anno;
       int  scelta=1; /*variabile di tipo intero per dare la possibilta di rifare
                             piu volta il programma*/
   
   
   
   
                  while(scelta==1) // cicolo per controllo se scelta auguale 1 !
    {
   

                  system("COLOR 2e"); // system color per cambiare i colore dal ico
                         printf("Iseririce l' anno >>>>>\n");
                             scanf("%d",&anno);
   
   
          if((anno % 100)== 0)
 {      // selezion if se l' diviso 100 come il resto da zero
   
   
           if((anno%400)==0)
 {        // selezion if se l' diviso 400 come il resto da zero
      
          
                   printf("L anno e bisestile>>>>\n");
 }
            
       else
       {
      

                   printf("L'anno non e bisestile>>>>\n");
  }
}
    else
    {

                 if((anno%4)==0){ // selezion if se l' diviso 4 come il resto zero
       
   
                    printf("L' anno e bisestile>>>>\n");
}

       else
   

                                 printf("L' anno non e bisestile>>>>\n");
                                     //while(scelta==0)
 
 
}
               printf(" se vuoi continuare primi 1 altrimenti 0 Esc >>>>\n");
               scanf("%d",&scelta);

}
              system("pause");

}

martedì 19 novembre 2013

Inserendo 10 numero vi calcola quanti sono pari ,dispari,zero

// Inserendo 10 numero vi calcola quanti sono pari ,dispari,zeri
// Direttive di preprocessore

# include<stdio.h>
# include<stdlib.h>

 int pari=0;;
 int dispari=0;;
 int nume;
 int zero=0;
 int conto=10;
 int risultato=0;

 main()
{
                 while(conto>0){  // controllo contatore
                    printf("inserice il numero -----!\n");
                    scanf("%d",&nume);
       
               
                  if(nume==0){ // verifica se numero augule zero
                      zero++;
                      printf(" I numeri zero >>>> %d \n\n",zero);
               
          }
                //else
               
                 risultato=nume%2; // verifica se il numero %2 come il resto pari
            if(risultato==0){
                pari++;
                 printf("il numero pari >>> %d \n\n",pari);
          }
             else
         {
       
                      dispari++;
                      printf(" il numero dispari >>>%d \n\n",dispari);
               
         }
                      conto--; // decrementa il contatore
           
       }
         
                    system("pause");
}

lunedì 18 novembre 2013

Calcolo se un è pari o dispari ,positivo o negativo.

//Calcolo se un è pari o dispari ,positivo o negativo.

# include <stdio.h>
# include <stdlib.h>


int main()
{
    int pari=0;
    int dispari=0;
    int num;
    int conta=0;

   
    printf("Inserisce il valore \n");
    scanf("%d",&num);
   
    while(conta<=0)
{
        conta++;
}
 
         if(num %2==0) /*operazione modulo per calcolare se un numero /2 come il resto da 

pari , dispari */
 
          printf("il numero e pari \n");
     else
          printf("il numero e dispari\n");
 
          if(num<0)
          printf(" Il numero e negativo\n");
     else
          printf("Il numero e positivo\n");
         
{
    printf("grazie per avere usati il mio programma\n");
system("pause");

}
}

domenica 17 novembre 2013

Calcolo equazione di secondo grado

# include<stdio.h>
# include<stdlib.h>
# include<math.h>
main()
{

int  a;
int  b;
int  c;
int  x1;
int  x2;
int delta;


printf("Inserisci il valore di a: ");
scanf("%d",&a);
printf("Inserire il valore di b: ");
scanf("%d",&b);
printf("Inserire il valore di c: ");
scanf("%d",&c);

delta=pow(b,2)-(4*a*c); // calcola di delta con funzione pow che calcola radice:
if(delta==0)
{
x1=(-b+sqrt(delta))/(2*a);
printf("Il valore di  x1 x2 valori sono uguali!!\n");
printf("x1 e x2 valgono: %d\n",x1);
}
if(delta>0)
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("Il valore di >>x1 e': %d\n",x1);
printf("Il valore di >>x2 e': %d\n",x2);
}
if(delta<0)
{
    printf("L'equazione non ammette soluzioni perche delta e minore di zero !!!!\n");   
}

system("PAUSE");
}

Verifica dal classe

# include <stdio.h>
# include <stdlib.h>

   int sommaprodutto(int a, int b);

   int main() 
   
{
 int numero1;
 int numero2;
 int risultatofunzioni;
 risultatofunzioni=sommaprodutto(5,7);
 printf("Il risultao della funzione augule %d",risultatofunzioni);
}
int sommaprodutto (int a, int b)
{
int c;
int d;

c=a+b;
d=a*b;
printf("somma augule %d produtto augule %d\n",c,d);


return --a;