Come programmare con C++, Agobuild e Multimedia Logic

Naviga SWZ: Home Page » Articoli
Articolo del 1526279422
Autore: Fabio Ferraro
Categoria: tech






Esercizio : Realizzare un algoritmo che risolvi e gestisca i circuiti realizzati con le porte logiche tramite il software Multimedia Logic. Nel main risolvere tramite le funzioni generate ogni combinazione logica.



Come programmare con C++, Agobuild e Multimedia Logic - immagine 17
Utilizzando Multimedia Logic disegniamo un circuito logico da risolvere ed eseguendo la simulazione ne comprenderemo il funzionamento.

Come programmare con C++, Agobuild e Multimedia Logic - immagine 18

Modificando le posizioni degli Switch ingressi (da 0 a 1 o viceversa) otterremo le uscite programmate.
Come programmare con C++, Agobuild e Multimedia Logic - immagine 19
questo circuito si risolve con il seguente listato:

Positivo UscitaX=OR(IngressoA,NOT(IngressoB));
cout<<"il risultato totale della funzione A OR (NOT(B)) è: " << UscitaX;
                             
Altro esempio di seguito, di circuito che risolveremo in C++ semplicemente con la seguente riga di codice:         

Come programmare con C++, Agobuild e Multimedia Logic - immagine 20

Positivo UscitaXX=OR(NOT(IngressoA),NOT(IngressoB));
cout<<"il risultato totale della funzione (NOT (A) OR NOT(B)) è: " << UscitaXX;

Come programmare con C++, Agobuild e Multimedia Logic - immagine 21Si possono impostare  più uscite con i LED in modo da rilevare varie uscite transitorie.

Come programmare con C++, Agobuild e Multimedia Logic - immagine 22

Come programmare con C++, Agobuild e Multimedia Logic - immagine 23
// ora il listato completo


using namespace std;

// dichiariamo le constati da usare

const unsigned short int VERO=1;
const unsigned short int FALSO=0;

// definiamo i tipi che ci serveranno

typedef unsigned short int Positivo;
typedef bool logico;

Come programmare con C++, Agobuild e Multimedia Logic - immagine 24



// leggiamo gli ingressi in modo corretto in modo da lavorare o con 0 o con 1

Positivo NOT(Positivo A);
logico eUguale(Positivo A,Positivo B);
Positivo OR(Positivo A,Positivo B);
Positivo AND(Positivo A,Positivo B);
Positivo XOR(Positivo A,Positivo B);
Positivo NAND(Positivo A,Positivo B);
Positivo NOR(Positivo A,Positivo B);
Positivo XNOR(Positivo A,Positivo B);

// OR ed AND a TRE ingressi

Positivo OR(Positivo A,Positivo B,Positivo C);
Positivo AND(Positivo A,Positivo B,Positivo C);

Come programmare con C++, Agobuild e Multimedia Logic - immagine 25


// leggiamo gli ingressi in modo corretto in modo da lavorare o con 0 o con 1

Positivo Corretto_INS(Positivo dato)
{
if(!(dato ==0)) return VERO; // se < DI 0 o > di 0 restituiamo il valore 1 --> VERO
else return FALSO; // diversamente restituiamo FALSO --
};

// Programma principale
int main()
{

// dichiariamo le variabili di ingresso e uscita che serviranno

Positivo A,B,C;
Positivo IngressoA=1;
Positivo IngressoB=0;
Positivo IngressoC=0;
Positivo IngressoD=0;
Positivo UscitaP;
Positivo UscitaO;

cout<<"Inseriamo i valori degli ingressi A B e C  0 o 1";
cout<<"Inserisci il valore dell´ingresso A: "; cin>>A; A=Corretto_INS(A);
cout<<"Inserisci il valore dell´ingresso B: "; cin>>B; B=Corretto_INS(B);
cout<<"Inserisci il valore dell´ingresso C: "; cin>>C; C=Corretto_INS(C);
cout<<"I dati correnti sono i seguenti......."<< endl;
cout <<"____________________________________________";
/* verifichiamo la corretta dinamica della funzione eUguale tra l´ingresso A e B
in modo da esaminare se le dichiarazioni delle variabili sono corrette */

cout<<"Il valore dell´ingresso A: "; cout<<A; cout<<" ...... "<< endl;
cout<<"Il valore dell´ingresso B: "; cout<<B; cout<<" ...... "<< endl;
cout<<"Il valore dell´ingresso C: "; cout<<C; cout<<" ...... "<< endl;
cout <<"____________________________________";

// Verifichiamo se A e B sono uguali
if (eUguale(A,B)) cout< cout <<"_____________________";

// eseguiamo operazioni ed un ingresso porta NOT

cout << NOT(A) <<" il risultato di NOT(A) " <<endl;
cout << "_________________________________";

// eseguiamo A OR B e lo mandiamo in stampa video e così via a 2 ingressi

cout << OR (A,B) <<"il risultato di A OR B " << endl;
cout << AND (A,B) <<"il risultato di A AND B " <<endl;
cout << NAND (A,B) <<"il risultato di A NAND B "<<endl;
cout << XOR(A,B) <<"il risultato di A XOR B " <<endl;
cout << XNOR(A,B) <<"il risultato di A XNOR B " <<endl;
cout << "__________________________";

// eseguiamo OR e AND a tre ingressi e lo mandiamo in stampa video

cout << OR (A,B,C) <<"il risultato di A OR B OR C" <<endl;
cout << AND (A,B,C) <<" il risultato di A AND B AND C" <<endl;
cout << "____________________________________";

Positivo Y=NOT(OR(A,B));
cout<<"il risultato totale della funzione A OR B tutto negato è: " << Y;

//eseguiamo una porta OR
UscitaP=OR(IngressoA,IngressoB);
cout<<"il risultato totale della funzione A OR B è: " << UscitaP;

// ora operazioni più complesse
UscitaO=XNOR(NOT(IngressoD),OR(IngressoC,UscitaP));
cout<<"il risultato totale UscitaO è: " << UscitaO;

Positivo UscitaX=OR(IngressoA,NOT(IngressoB));
cout<<"il risultato totale della funzione A OR (NOT(B)) è: " << UscitaX;

Positivo UscitaXX=OR(NOT(IngressoA),NOT(IngressoB));
cout<<"il risultato totale della funzione (NOT (A) OR NOT(B)) è: " << UscitaXX;


Positivo D=0;
Positivo Z=OR(AND(OR(A,B),C),NOT(D));
cout<<"il risultato totale della funzione (((A OR B) AND C) OR D NEGATO) è: " << Z;
system ("pause");
return 0;

}

Come programmare con C++, Agobuild e Multimedia Logic - immagine 26


Programmare con C# 7. Guida completa
Amazon.it: - Prezzo scontato, stai risparmiando: 7,49 €
Compra ora
//espletiamo le funzioni e le procedure

Positivo NOT (Positivo A)
{
if(A==1) return VERO;
else return FALSO;
};

logico eUguale(Positivo A,Positivo B)
{
return (A==B);
};

Positivo OR(Positivo A,Positivo B)
{
return (A==1)|| (B==1);
};
Positivo AND (Positivo A,Positivo B)
{
return (A==1) && (B==1);
};
Positivo XOR(Positivo A,Positivo B)
{
return !(A==B);
};
Positivo NAND(Positivo A,Positivo B)
{
return !((A==1) && (B==1));
};

Positivo NOR(Positivo A,Positivo B)
{
return ! ((A==1) || (B==1));
};
Positivo XNOR(Positivo A,Positivo B)
{
return (A==B);
};

// OR ed AND a TRE ingressi

Positivo OR(Positivo A,Positivo B,Positivo C)
{
return (A==1) || (B==1) || (C==1);
};


Positivo AND(Positivo A,Positivo B,Positivo C)
{
return (A==1) && (B==1) && (C==1);
};

Conclusioni

Ora sappiamo muoverci nel campo della logica di programmazione. Realizziamo piccoli codici modificabili in modo da poter raggiungere grandi risultati. La produzione di listati di alta qualità  è anche in questo caso limitata solo dalla propria fantasia.



« Precedente     1  2  3 [4]  ]

Pagine Totali: 4