sexta-feira, 11 de outubro de 2019

Zero Absoluto - Orientacao Ah Objetos - III - Grafos - ATUALIZANDO...

#include <iostream>
#include <cmath>
#include <stdlib.h>
using namespace std;

struct EstruturaDoVerticeDoGrafo
{
int VerticeI = 0;
int VerticeII = 0;
int VerticeIII = 0;
int VerticeIV = 0;
int VerticeV = 0;
int GrauDesseVertice = 0;
};

struct EstruturaDoVerticeDoGrafoDirigido
{
int VerticeDirigidoI = 0;
int VerticeDirigidoII = 0;
int VerticeDirigidoIII = 0;
int VerticeDirigidoIV = 0;
int VerticeDirigidoV = 0;
int GrauDesseVertice = 0;
};

class Grafos
{
private:

EstruturaDoVerticeDoGrafo VerticeI, VerticeII, VerticeIII, VerticeIV, VerticeV;
EstruturaDoVerticeDoGrafoDirigido VerticeDirigidoI, VerticeDirigidoII, VerticeDirigidoIII, VerticeDirigidoIV, VerticeDirigidoV;
int SeEhPonderado = 0, Opcao = 0, PesoDessaAresta = 0, CalculoDoCaminhoDeEuler = 0;
float GrauTotal = 0, SomaDosVerticesParaGrauMedio = 0, GrauMinimo = 0, GrauMedio = 0, GrauMaximo = 0;

public:

Grafos()
{
}

void metodoCriacaoDoGrafo()
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°CONSTRUCAO DO GRAFO°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
        cout << "Esse Grafo eh podenrado?...\n\n";
        cout << "1 - Nao\n";
        cout << "2 - Sim\n\n";
        cout << "Sua escolha eh... ";
        cin >> SeEhPonderado;
        cout << "\n";

if (SeEhPonderado == 1)
        {

cout << "O Vertice I se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeI.VerticeI = 1;
VerticeI.GrauDesseVertice = VerticeI.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeI.VerticeII = 1;
VerticeII.VerticeI = 1;
VerticeI.GrauDesseVertice = VerticeI.GrauDesseVertice + 1;
VerticeII.GrauDesseVertice = VerticeII.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeI.VerticeIII = 1;
VerticeIII.VerticeI = 1;
VerticeI.GrauDesseVertice = VerticeI.GrauDesseVertice + 1;
VerticeIII.GrauDesseVertice = VerticeIII.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeI.VerticeIV = 1;
VerticeIV.VerticeI = 1;
VerticeI.GrauDesseVertice = VerticeI.GrauDesseVertice + 1;
VerticeIV.GrauDesseVertice = VerticeIV.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeI.VerticeV = 1;
VerticeV.VerticeI = 1;
VerticeI.GrauDesseVertice = VerticeI.GrauDesseVertice + 1;
VerticeV.GrauDesseVertice = VerticeV.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeII.VerticeII = 1;
VerticeII.GrauDesseVertice = VerticeII.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeII.VerticeIII = 1;
VerticeIII.VerticeII = 1;
VerticeII.GrauDesseVertice = VerticeII.GrauDesseVertice + 1;
VerticeIII.GrauDesseVertice = VerticeIII.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeII.VerticeIV = 1;
VerticeIV.VerticeII = 1;
VerticeII.GrauDesseVertice = VerticeII.GrauDesseVertice + 1;
VerticeIV.GrauDesseVertice = VerticeIV.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeII.VerticeV = 1;
VerticeV.VerticeII = 1;
VerticeII.GrauDesseVertice = VerticeII.GrauDesseVertice + 1;
VerticeV.GrauDesseVertice = VerticeV.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeIII.VerticeIII = 1;
VerticeIII.GrauDesseVertice = VerticeIII.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeIII.VerticeIV = 1;
VerticeIV.VerticeIII = 1;
VerticeIII.GrauDesseVertice = VerticeIII.GrauDesseVertice + 1;
VerticeIV.GrauDesseVertice = VerticeIV.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeIII.VerticeV = 1;
VerticeV.VerticeIII = 1;
VerticeIII.GrauDesseVertice = VerticeIII.GrauDesseVertice + 1;
VerticeV.GrauDesseVertice = VerticeV.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeIV.VerticeIV = 1;
VerticeIV.GrauDesseVertice = VerticeIV.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeIV.VerticeV = 1;
VerticeV.VerticeIV = 1;
VerticeIV.GrauDesseVertice = VerticeIV.GrauDesseVertice + 1;
VerticeV.GrauDesseVertice = VerticeV.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeV.VerticeV = 1;
VerticeV.GrauDesseVertice = VerticeV.GrauDesseVertice + 1;
}
}

if (SeEhPonderado == 2)
        {

cout << "O Vertice I se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeI.VerticeI = PesoDessaAresta;
VerticeI.GrauDesseVertice = VerticeI.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeI.VerticeII = PesoDessaAresta;
VerticeII.VerticeI = PesoDessaAresta;
VerticeI.GrauDesseVertice = VerticeI.GrauDesseVertice + 1;
VerticeII.GrauDesseVertice = VerticeII.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeI.VerticeIII = PesoDessaAresta;
VerticeIII.VerticeI = PesoDessaAresta;
VerticeI.GrauDesseVertice = VerticeI.GrauDesseVertice + 1;
VerticeIII.GrauDesseVertice = VerticeIII.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeI.VerticeIV = PesoDessaAresta;
VerticeIV.VerticeI = PesoDessaAresta;
VerticeI.GrauDesseVertice = VerticeI.GrauDesseVertice + 1;
VerticeIV.GrauDesseVertice = VerticeIV.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeI.VerticeV = PesoDessaAresta;
VerticeV.VerticeI = PesoDessaAresta;
VerticeI.GrauDesseVertice = VerticeI.GrauDesseVertice + 1;
VerticeV.GrauDesseVertice = VerticeV.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeII.VerticeII = PesoDessaAresta;
VerticeII.GrauDesseVertice = VerticeII.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeII.VerticeIII = PesoDessaAresta;
VerticeIII.VerticeII = PesoDessaAresta;
VerticeII.GrauDesseVertice = VerticeII.GrauDesseVertice + 1;
VerticeIII.GrauDesseVertice = VerticeIII.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeII.VerticeIV = PesoDessaAresta;
VerticeIV.VerticeII = PesoDessaAresta;
VerticeII.GrauDesseVertice = VerticeII.GrauDesseVertice + 1;
VerticeIV.GrauDesseVertice = VerticeIV.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeII.VerticeV = PesoDessaAresta;
VerticeV.VerticeII = PesoDessaAresta;
VerticeII.GrauDesseVertice = VerticeII.GrauDesseVertice + 1;
VerticeV.GrauDesseVertice = VerticeV.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeIII.VerticeIII = PesoDessaAresta;
VerticeIII.GrauDesseVertice = VerticeIII.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeIII.VerticeIV = PesoDessaAresta;
VerticeIV.VerticeIII = PesoDessaAresta;
VerticeIII.GrauDesseVertice = VerticeIII.GrauDesseVertice + 1;
VerticeIV.GrauDesseVertice = VerticeIV.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeIII.VerticeV = PesoDessaAresta;
VerticeV.VerticeIII = PesoDessaAresta;
VerticeIII.GrauDesseVertice = VerticeIII.GrauDesseVertice + 1;
VerticeV.GrauDesseVertice = VerticeV.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeIV.VerticeIV = PesoDessaAresta;
VerticeIV.GrauDesseVertice = VerticeIV.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeIV.VerticeV = PesoDessaAresta;
VerticeV.VerticeIV = PesoDessaAresta;
VerticeIV.GrauDesseVertice = VerticeIV.GrauDesseVertice + 1;
VerticeV.GrauDesseVertice = VerticeV.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeV.VerticeV = PesoDessaAresta;
VerticeV.GrauDesseVertice = VerticeV.GrauDesseVertice + 1;
}
}
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
}

void metodoImpressaoDoGrafo()
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°LEITURA DO GRAFO°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";

if (VerticeI.VerticeI != 0)
if (VerticeI.VerticeI == 1)
cout << "O Vertice I tem Aresta com o Vertice I\n";
else
cout << "O Vertice I tem Aresta com o Vertice I com peso " << VerticeI.VerticeI <<"\n";

if (VerticeI.VerticeII != 0)
if (VerticeI.VerticeII == 1)
cout << "O Vertice I tem Aresta com o Vertice II\n";
else
cout << "O Vertice I tem Aresta com o Vertice II com peso " << VerticeI.VerticeII <<"\n";

if (VerticeI.VerticeIII != 0)
if (VerticeI.VerticeIII == 1)
cout << "O Vertice I tem Aresta com o Vertice III\n";
else
cout << "O Vertice I tem Aresta com o Vertice III com peso " << VerticeI.VerticeIII <<"\n";

if (VerticeI.VerticeIV != 0)
if (VerticeI.VerticeIV == 1)
cout << "O Vertice I tem Aresta com o Vertice IV\n";
else
cout << "O Vertice I tem Aresta com o Vertice IV com peso " << VerticeI.VerticeIV <<"\n";

if (VerticeI.VerticeV != 0)
if (VerticeI.VerticeV == 1)
cout << "O Vertice I tem Aresta com o Vertice V\n";
else
cout << "O Vertice I tem Aresta com o Vertice V com peso " << VerticeI.VerticeV <<"\n";

cout << "O Grau do Vertice I eh " << VerticeI.GrauDesseVertice << "\n\n";

if (VerticeII.VerticeII != 0)
if (VerticeII.VerticeII == 1)
cout << "O Vertice II tem Aresta com o Vertice II\n";
else
cout << "O Vertice II tem Aresta com o Vertice II com peso " << VerticeII.VerticeII <<"\n";

if (VerticeII.VerticeIII != 0)
if (VerticeII.VerticeIII == 1)
cout << "O Vertice II tem Aresta com o Vertice III\n";
else
cout << "O Vertice II tem Aresta com o Vertice III com peso " << VerticeII.VerticeIII <<"\n";

if (VerticeII.VerticeIV != 0)
if (VerticeII.VerticeIV == 1)
cout << "O Vertice II tem Aresta com o Vertice IV\n";
else
cout << "O Vertice II tem Aresta com o Vertice IV com peso " << VerticeII.VerticeIV <<"\n";

if (VerticeII.VerticeV != 0)
if (VerticeII.VerticeV == 1)
cout << "O Vertice II tem Aresta com o Vertice V\n";
else
cout << "O Vertice II tem Aresta com o Vertice V com peso " << VerticeII.VerticeV <<"\n";

cout << "O Grau do Vertice II eh " << VerticeII.GrauDesseVertice << "\n\n";

if (VerticeIII.VerticeIII != 0)
if (VerticeIII.VerticeIII == 1)
cout << "O Vertice III tem Aresta com o Vertice III\n";
else
cout << "O Vertice III tem Aresta com o Vertice III com peso " << VerticeIII.VerticeIII <<"\n";

if (VerticeIII.VerticeIV != 0)
if (VerticeIII.VerticeIV == 1)
cout << "O Vertice III tem Aresta com o Vertice IV\n";
else
cout << "O Vertice III tem Aresta com o Vertice IV com peso " << VerticeIII.VerticeIV <<"\n";

if (VerticeIII.VerticeV != 0)
if (VerticeIII.VerticeV == 1)
cout << "O Vertice III tem Aresta com o Vertice V\n";
else
cout << "O Vertice III tem Aresta com o Vertice V com peso " << VerticeIII.VerticeV <<"\n";

cout << "O Grau do Vertice III eh " << VerticeIII.GrauDesseVertice << "\n\n";

if (VerticeIV.VerticeIV != 0)
if (VerticeIV.VerticeIV == 1)
cout << "O Vertice IV tem Aresta com o Vertice IV\n";
else
cout << "O Vertice IV tem Aresta com o Vertice IV com peso " << VerticeIV.VerticeIV <<"\n";

if (VerticeIV.VerticeV != 0)
if (VerticeIV.VerticeV == 1)
cout << "O Vertice IV tem Aresta com o Vertice V\n";
else
cout << "O Vertice IV tem Aresta com o Vertice V com peso " << VerticeIV.VerticeV <<"\n";

cout << "O Grau do Vertice IV eh " << VerticeIV.GrauDesseVertice << "\n\n";

if (VerticeV.VerticeV != 0)
if (VerticeV.VerticeV == 1)
cout << "O Vertice V tem Aresta com o Vertice V\n";
else
cout << "O Vertice V tem Aresta com o Vertice V com peso " << VerticeV.VerticeV <<"\n";

cout << "O Grau do Vertice V eh " << VerticeV.GrauDesseVertice << "\n\n";


GrauMinimo = VerticeI.GrauDesseVertice;

if (VerticeII.GrauDesseVertice < GrauMinimo)
GrauMinimo = VerticeII.GrauDesseVertice;

if (VerticeIII.GrauDesseVertice < GrauMinimo)
GrauMinimo = VerticeIII.GrauDesseVertice;

if (VerticeIV.GrauDesseVertice < GrauMinimo)
GrauMinimo = VerticeIV.GrauDesseVertice;

if (VerticeV.GrauDesseVertice < GrauMinimo)
GrauMinimo = VerticeV.GrauDesseVertice;

cout << "O Grau minimo desse Grafo eh " << GrauMinimo << "\n\n";


if (VerticeI.VerticeI != 0 || VerticeI.VerticeII != 0 || VerticeI.VerticeIII != 0 || VerticeI.VerticeIV != 0 || VerticeI.VerticeV != 0)
SomaDosVerticesParaGrauMedio = SomaDosVerticesParaGrauMedio + 1;

if (VerticeII.VerticeII != 0 || VerticeII.VerticeIII != 0 || VerticeII.VerticeIV != 0 || VerticeII.VerticeV != 0)
SomaDosVerticesParaGrauMedio = SomaDosVerticesParaGrauMedio + 1;

if (VerticeIII.VerticeIII != 0 || VerticeIII.VerticeIV != 0 || VerticeIII.VerticeV != 0)
SomaDosVerticesParaGrauMedio = SomaDosVerticesParaGrauMedio + 1;

if (VerticeIV.VerticeIV != 0 || VerticeIV.VerticeV != 0)
SomaDosVerticesParaGrauMedio = SomaDosVerticesParaGrauMedio + 1;

if (VerticeV.VerticeV != 0)
SomaDosVerticesParaGrauMedio = SomaDosVerticesParaGrauMedio + 1;


GrauTotal = VerticeI.GrauDesseVertice + VerticeII.GrauDesseVertice + VerticeIII.GrauDesseVertice + VerticeIV.GrauDesseVertice + VerticeV.GrauDesseVertice;

GrauMedio = GrauTotal / SomaDosVerticesParaGrauMedio;

cout << "O Grau medio desse Grafo eh " << GrauMedio << "\n\n";


GrauMaximo = VerticeI.GrauDesseVertice;

if (VerticeII.GrauDesseVertice > GrauMaximo)
GrauMaximo = VerticeII.GrauDesseVertice;

if (VerticeIII.GrauDesseVertice > GrauMaximo)
GrauMaximo = VerticeIII.GrauDesseVertice;

if (VerticeIV.GrauDesseVertice > GrauMaximo)
GrauMaximo = VerticeIV.GrauDesseVertice;

if (VerticeV.GrauDesseVertice > GrauMaximo)
GrauMaximo = VerticeV.GrauDesseVertice;

cout << "O Grau maximo desse Grafo eh " << GrauMaximo << "\n\n";


cout << "O Grau total desse Grafo eh " << GrauTotal << "\n\n";

if (VerticeI.GrauDesseVertice != 0)
if (VerticeI.GrauDesseVertice % 2 != 0)
CalculoDoCaminhoDeEuler = CalculoDoCaminhoDeEuler + 1;

if (VerticeII.GrauDesseVertice != 0)
if (VerticeI.GrauDesseVertice % 2 != 0)
CalculoDoCaminhoDeEuler = CalculoDoCaminhoDeEuler + 1;

if (VerticeIII.GrauDesseVertice != 0)
if (VerticeI.GrauDesseVertice % 2 != 0)
CalculoDoCaminhoDeEuler = CalculoDoCaminhoDeEuler + 1;

if (VerticeIV.GrauDesseVertice != 0)
if (VerticeI.GrauDesseVertice % 2 != 0)
CalculoDoCaminhoDeEuler = CalculoDoCaminhoDeEuler + 1;

if (VerticeV.GrauDesseVertice != 0)
if (VerticeI.GrauDesseVertice % 2 != 0)
CalculoDoCaminhoDeEuler = CalculoDoCaminhoDeEuler + 1;

if (CalculoDoCaminhoDeEuler == 0 || CalculoDoCaminhoDeEuler == 2)
cout << "Esse Grafo possue o Caminho De Euler\n\n";
else
cout << "Esse Grafo nao possue o Caminho De Euler\n\n";

cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
}

~Grafos()
{
}
};

class GrafosDirigidos
{
private:

EstruturaDoVerticeDoGrafoDirigido VerticeDirigidoI, VerticeDirigidoII, VerticeDirigidoIII, VerticeDirigidoIV, VerticeDirigidoV;
int SeEhPonderado = 0, Opcao = 0, PesoDessaAresta = 0, CalculoDoCaminhoDeEuler = 0;
float GrauTotal = 0, SomaDosVerticesParaGrauMedio = 0, GrauMinimo = 0, GrauMedio = 0, GrauMaximo = 0;

public:

GrafosDirigidos()
{
}

void metodoCriacaoDoGrafoDirigido()
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°CONSTRUCAO DO DIGRAFO°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
    cout << "Esse DiGrafo eh podenrado?...\n\n";
        cout << "1 - Nao\n";
        cout << "2 - Sim\n\n";
        cout << "Sua escolha eh... ";
        cin >> SeEhPonderado;
        cout << "\n";

if (SeEhPonderado == 1)
        {

cout << "O Vertice I se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoI.VerticeDirigidoI = 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoI.VerticeDirigidoII = 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoI.VerticeDirigidoIII = 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoI.VerticeDirigidoIV = 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoI.VerticeDirigidoV = 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoII.VerticeDirigidoI = 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;

}

cout << "O Vertice II se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoII.VerticeDirigidoII = 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoII.VerticeDirigidoIII = 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoII.VerticeDirigidoIV = 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoII.VerticeDirigidoV = 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoIII.VerticeDirigidoI = 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoIII.VerticeDirigidoII = 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoIII.VerticeDirigidoIII = 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoIII.VerticeDirigidoIV = 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoIII.VerticeDirigidoV = 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoIV.VerticeDirigidoI = 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoIV.VerticeDirigidoII = 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoIV.VerticeDirigidoIII = 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoIV.VerticeDirigidoIV = 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoIV.VerticeDirigidoV = 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoV.VerticeDirigidoI = 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoV.VerticeDirigidoII = 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoV.VerticeDirigidoIII = 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoV.VerticeDirigidoIV = 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
VerticeDirigidoV.VerticeDirigidoV = 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
}
}
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";


if (SeEhPonderado == 2)
        {

cout << "O Vertice I se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoI.VerticeDirigidoI = PesoDessaAresta;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoI.VerticeDirigidoII = PesoDessaAresta;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoI.VerticeDirigidoIII = PesoDessaAresta;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoI.VerticeDirigidoIV = PesoDessaAresta;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
}

cout << "O Vertice I se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoI.VerticeDirigidoV = PesoDessaAresta;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoII.VerticeDirigidoI = PesoDessaAresta;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoII.VerticeDirigidoII = PesoDessaAresta;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoII.VerticeDirigidoIII = PesoDessaAresta;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoII.VerticeDirigidoIV = PesoDessaAresta;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
}

cout << "O Vertice II se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoII.VerticeDirigidoV = PesoDessaAresta;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoIII.VerticeDirigidoI = PesoDessaAresta;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoIII.VerticeDirigidoII = PesoDessaAresta;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoIII.VerticeDirigidoIII = PesoDessaAresta;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoIII.VerticeDirigidoIV = PesoDessaAresta;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
}

cout << "O Vertice III se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoIII.VerticeDirigidoV = PesoDessaAresta;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoIV.VerticeDirigidoI = PesoDessaAresta;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoIV.VerticeDirigidoII = PesoDessaAresta;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoIV.VerticeDirigidoIII = PesoDessaAresta;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoIV.VerticeDirigidoIV = PesoDessaAresta;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
}

cout << "O Vertice IV se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoIV.VerticeDirigidoV = PesoDessaAresta;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice I?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoV.VerticeDirigidoI = PesoDessaAresta;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
VerticeDirigidoI.GrauDesseVertice = VerticeDirigidoI.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice II?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoV.VerticeDirigidoII = PesoDessaAresta;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
VerticeDirigidoII.GrauDesseVertice = VerticeDirigidoII.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice III?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoV.VerticeDirigidoIII = PesoDessaAresta;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
VerticeDirigidoIII.GrauDesseVertice = VerticeDirigidoIII.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice IV?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoV.VerticeDirigidoIV = PesoDessaAresta;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
VerticeDirigidoIV.GrauDesseVertice = VerticeDirigidoIV.GrauDesseVertice + 1;
}

cout << "O Vertice V se conecta ah o Vertice V?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
        cout << "\n";

if (Opcao == 2)
{
cout << "Digite o peso dessa Aresta...\n\n";
cout << "Sua escolha eh... ";
cin >> PesoDessaAresta;
cout << "\n";
VerticeDirigidoV.VerticeDirigidoV = PesoDessaAresta;
VerticeDirigidoV.GrauDesseVertice = VerticeDirigidoV.GrauDesseVertice + 1;
}
}
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
}


void metodoImpressaoDoGrafoDirigido()
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°LEITURA DO DIGRAFO°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";

if (VerticeDirigidoI.VerticeDirigidoI != 0)
if (VerticeDirigidoI.VerticeDirigidoI == 1)
cout << "|Vertice I| ----------> |Vertice I|\n";
else
cout << "|Vertice I| ----------> |Vertice I| - |Peso " << VerticeDirigidoI.VerticeDirigidoI <<"|\n";

if (VerticeDirigidoI.VerticeDirigidoII != 0)
if (VerticeDirigidoI.VerticeDirigidoII == 1)
cout << "|Vertice I| ----------> |Vertice II|\n";
else
cout << "|Vertice I| ----------> |Vertice II| - |Peso " << VerticeDirigidoI.VerticeDirigidoII <<"|\n";

if (VerticeDirigidoI.VerticeDirigidoIII != 0)
if (VerticeDirigidoI.VerticeDirigidoIII == 1)
cout << "|Vertice I| ----------> |Vertice III|\n";
else
cout << "|Vertice I| ----------> |Vertice III| - |Peso " << VerticeDirigidoI.VerticeDirigidoIII <<"|\n";

if (VerticeDirigidoI.VerticeDirigidoIV != 0)
if (VerticeDirigidoI.VerticeDirigidoIV == 1)
cout << "|Vertice I| ----------> |Vertice IV|\n";
else
cout << "|Vertice I| ----------> |Vertice IV| - |Peso " << VerticeDirigidoI.VerticeDirigidoIV <<"|\n";

if (VerticeDirigidoI.VerticeDirigidoV != 0)
if (VerticeDirigidoI.VerticeDirigidoV == 1)
cout << "|Vertice I| ----------> |Vertice V|\n";
else
cout << "|Vertice I| ----------> |Vertice V| - |Peso " << VerticeDirigidoI.VerticeDirigidoV <<"|\n";

        cout << "-------------------------------------------------------\n";
cout << "O Grau do Vertice I eh " << VerticeDirigidoI.GrauDesseVertice << "\n";
cout << "-------------------------------------------------------\n\n";

if (VerticeDirigidoII.VerticeDirigidoI != 0)
if (VerticeDirigidoII.VerticeDirigidoI == 1)
cout << "|Vertice II| ----------> |Vertice I|\n";
else
cout << "|Vertice II| ----------> |Vertice I| - |Peso " << VerticeDirigidoII.VerticeDirigidoI <<"|\n";

if (VerticeDirigidoII.VerticeDirigidoII != 0)
if (VerticeDirigidoII.VerticeDirigidoII == 1)
cout << "|Vertice II| ----------> |Vertice II|\n";
else
cout << "|Vertice II| ----------> |Vertice II| - |Peso " << VerticeDirigidoII.VerticeDirigidoII <<"|\n";

if (VerticeDirigidoII.VerticeDirigidoIII != 0)
if (VerticeDirigidoII.VerticeDirigidoIII == 1)
cout << "|Vertice II| ----------> |Vertice III|\n";
else
cout << "|Vertice II| ----------> |Vertice III| - |Peso " << VerticeDirigidoII.VerticeDirigidoIII <<"|\n";

if (VerticeDirigidoII.VerticeDirigidoIV != 0)
if (VerticeDirigidoII.VerticeDirigidoIV == 1)
cout << "|Vertice II| ----------> |Vertice IV|\n";
else
cout << "|Vertice II| ----------> |Vertice IV| - |Peso " << VerticeDirigidoII.VerticeDirigidoIV <<"|\n";

if (VerticeDirigidoII.VerticeDirigidoV != 0)
if (VerticeDirigidoII.VerticeDirigidoV == 1)
cout << "|Vertice II| ----------> |Vertice V|\n";
else
cout << "|Vertice II| ----------> |Vertice V| - |Peso " << VerticeDirigidoII.VerticeDirigidoV <<"|\n";

        cout << "-------------------------------------------------------\n";
cout << "O Grau do Vertice II eh " << VerticeDirigidoII.GrauDesseVertice << "\n";
cout << "-------------------------------------------------------\n\n";

if (VerticeDirigidoIII.VerticeDirigidoI != 0)
if (VerticeDirigidoIII.VerticeDirigidoI == 1)
cout << "|Vertice III| ----------> |Vertice I|\n";
else
cout << "|Vertice III| ----------> |Vertice I| - |Peso " << VerticeDirigidoIII.VerticeDirigidoI <<"|\n";

if (VerticeDirigidoIII.VerticeDirigidoII != 0)
if (VerticeDirigidoIII.VerticeDirigidoII == 1)
cout << "|Vertice III| ----------> |Vertice II|\n";
else
cout << "|Vertice III| ----------> |Vertice II| - |Peso " << VerticeDirigidoIII.VerticeDirigidoII <<"|\n";

if (VerticeDirigidoIII.VerticeDirigidoIII != 0)
if (VerticeDirigidoIII.VerticeDirigidoIII == 1)
cout << "|Vertice III| ----------> |Vertice III|\n";
else
cout << "|Vertice III| ----------> |Vertice III| - |Peso " << VerticeDirigidoIII.VerticeDirigidoIII <<"|\n";

if (VerticeDirigidoIII.VerticeDirigidoIV != 0)
if (VerticeDirigidoIII.VerticeDirigidoIV == 1)
cout << "|Vertice III| ----------> |Vertice IV|\n";
else
cout << "|Vertice III| ----------> |Vertice IV| - |Peso " << VerticeDirigidoIII.VerticeDirigidoIV <<"|\n";

if (VerticeDirigidoIII.VerticeDirigidoV != 0)
if (VerticeDirigidoIII.VerticeDirigidoV == 1)
cout << "|Vertice III| ----------> |Vertice V|\n";
else
cout << "|Vertice III| ----------> |Vertice V| - |Peso " << VerticeDirigidoIII.VerticeDirigidoV <<"|\n";

        cout << "-------------------------------------------------------\n";
cout << "O Grau do Vertice III eh " << VerticeDirigidoIII.GrauDesseVertice << "\n";
cout << "-------------------------------------------------------\n\n";

if (VerticeDirigidoIV.VerticeDirigidoI != 0)
if (VerticeDirigidoIV.VerticeDirigidoI == 1)
cout << "|Vertice IV| ----------> |Vertice I|\n";
else
cout << "|Vertice IV| ----------> |Vertice I| - |Peso " << VerticeDirigidoIV.VerticeDirigidoI <<"|\n";

if (VerticeDirigidoIV.VerticeDirigidoII != 0)
if (VerticeDirigidoIV.VerticeDirigidoII == 1)
cout << "|Vertice IV| ----------> |Vertice II|\n";
else
cout << "|Vertice IV| ----------> |Vertice II| - |Peso " << VerticeDirigidoIV.VerticeDirigidoII <<"|\n";

if (VerticeDirigidoIV.VerticeDirigidoIII != 0)
if (VerticeDirigidoIV.VerticeDirigidoIII == 1)
cout << "|Vertice IV| ----------> |Vertice III|\n";
else
cout << "|Vertice IV| ----------> |Vertice III| - |Peso " << VerticeDirigidoIV.VerticeDirigidoIII <<"|\n";

if (VerticeDirigidoIV.VerticeDirigidoIV != 0)
if (VerticeDirigidoIV.VerticeDirigidoIV == 1)
cout << "|Vertice IV| ----------> |Vertice IV|\n";
else
cout << "|Vertice IV| ----------> |Vertice IV| - |Peso " << VerticeDirigidoIV.VerticeDirigidoIV <<"|\n";

if (VerticeDirigidoIV.VerticeDirigidoV != 0)
if (VerticeDirigidoIV.VerticeDirigidoV == 1)
cout << "|Vertice IV| ----------> |Vertice V|\n";
else
cout << "|Vertice IV| ----------> |Vertice V| - |Peso " << VerticeDirigidoIV.VerticeDirigidoV <<"|\n";

        cout << "-------------------------------------------------------\n";
cout << "O Grau do Vertice IV eh " << VerticeDirigidoIV.GrauDesseVertice << "\n";
cout << "-------------------------------------------------------\n\n";

if (VerticeDirigidoV.VerticeDirigidoI != 0)
if (VerticeDirigidoV.VerticeDirigidoI == 1)
cout << "|Vertice V| ----------> |Vertice I|\n";
else
cout << "|Vertice V| ----------> |Vertice I| - |Peso " << VerticeDirigidoV.VerticeDirigidoI <<"|\n";

if (VerticeDirigidoV.VerticeDirigidoII != 0)
if (VerticeDirigidoV.VerticeDirigidoII == 1)
cout << "|Vertice V| ----------> |Vertice II|\n";
else
cout << "|Vertice V| ----------> |Vertice II| - |Peso " << VerticeDirigidoV.VerticeDirigidoII <<"|\n";

if (VerticeDirigidoV.VerticeDirigidoIII != 0)
if (VerticeDirigidoV.VerticeDirigidoIII == 1)
cout << "|Vertice V| ----------> |Vertice III|\n";
else
cout << "|Vertice V| ----------> |Vertice III| - |Peso " << VerticeDirigidoV.VerticeDirigidoIII <<"|\n";

if (VerticeDirigidoV.VerticeDirigidoIV != 0)
if (VerticeDirigidoV.VerticeDirigidoIV == 1)
cout << "|Vertice V| ----------> |Vertice IV|\n";
else
cout << "|Vertice V| ----------> |Vertice IV| - |Peso " << VerticeDirigidoV.VerticeDirigidoIV <<"|\n";

if (VerticeDirigidoV.VerticeDirigidoV != 0)
if (VerticeDirigidoV.VerticeDirigidoV == 1)
cout << "|Vertice V| ----------> |Vertice V|\n";
else
cout << "|Vertice V| ----------> |Vertice V| - |Peso " << VerticeDirigidoV.VerticeDirigidoV <<"|\n";

        cout << "-------------------------------------------------------\n";
cout << "O Grau do Vertice V eh " << VerticeDirigidoV.GrauDesseVertice << "\n\n";
cout << "-------------------------------------------------------\n\n";

GrauTotal = VerticeDirigidoI.GrauDesseVertice + VerticeDirigidoII.GrauDesseVertice + VerticeDirigidoIII.GrauDesseVertice + VerticeDirigidoIV.GrauDesseVertice + VerticeDirigidoV.GrauDesseVertice;


if (VerticeDirigidoI.VerticeDirigidoI != 0 || VerticeDirigidoI.VerticeDirigidoII != 0 || VerticeDirigidoI.VerticeDirigidoIII != 0 || VerticeDirigidoI.VerticeDirigidoIV != 0 || VerticeDirigidoI.VerticeDirigidoV != 0)
SomaDosVerticesParaGrauMedio = SomaDosVerticesParaGrauMedio + 1;

if (VerticeDirigidoII.VerticeDirigidoII != 0 || VerticeDirigidoII.VerticeDirigidoIII != 0 || VerticeDirigidoII.VerticeDirigidoIV != 0 || VerticeDirigidoII.VerticeDirigidoV != 0)
SomaDosVerticesParaGrauMedio = SomaDosVerticesParaGrauMedio + 1;

if (VerticeDirigidoIII.VerticeDirigidoIII != 0 || VerticeDirigidoIII.VerticeDirigidoIV != 0 || VerticeDirigidoIII.VerticeDirigidoV != 0)
SomaDosVerticesParaGrauMedio = SomaDosVerticesParaGrauMedio + 1;

if (VerticeDirigidoIV.VerticeDirigidoIV != 0 || VerticeDirigidoIV.VerticeDirigidoV != 0)
SomaDosVerticesParaGrauMedio = SomaDosVerticesParaGrauMedio + 1;

if (VerticeDirigidoV.VerticeDirigidoV != 0)
SomaDosVerticesParaGrauMedio = SomaDosVerticesParaGrauMedio + 1;



GrauMinimo = VerticeDirigidoI.GrauDesseVertice;

if (VerticeDirigidoII.GrauDesseVertice < GrauMinimo)
GrauMinimo = VerticeDirigidoII.GrauDesseVertice;

if (VerticeDirigidoIII.GrauDesseVertice < GrauMinimo)
GrauMinimo = VerticeDirigidoIII.GrauDesseVertice;

if (VerticeDirigidoIV.GrauDesseVertice < GrauMinimo)
GrauMinimo = VerticeDirigidoIV.GrauDesseVertice;

if (VerticeDirigidoV.GrauDesseVertice < GrauMinimo)
GrauMinimo = VerticeDirigidoV.GrauDesseVertice;

GrauMedio = GrauTotal / SomaDosVerticesParaGrauMedio;

cout << "O Grau minimo desse DiGrafo eh " << GrauMinimo << "\n";
cout << "-------------------------------------------------------\n";

cout << "O Grau medio desse DiGrafo eh " << GrauMedio << "\n";
cout << "-------------------------------------------------------\n";

GrauMaximo = VerticeDirigidoI.GrauDesseVertice;

if (VerticeDirigidoII.GrauDesseVertice > GrauMaximo)
GrauMaximo = VerticeDirigidoII.GrauDesseVertice;

if (VerticeDirigidoIII.GrauDesseVertice > GrauMaximo)
GrauMaximo = VerticeDirigidoIII.GrauDesseVertice;

if (VerticeDirigidoIV.GrauDesseVertice > GrauMaximo)
GrauMaximo = VerticeDirigidoIV.GrauDesseVertice;

if (VerticeDirigidoV.GrauDesseVertice > GrauMaximo)
GrauMaximo = VerticeDirigidoV.GrauDesseVertice;

cout << "O Grau maximo desse DiGrafo eh " << GrauMaximo << "\n";
cout << "-------------------------------------------------------\n";

cout << "O Grau total desse DiGrafo eh " << GrauTotal << "\n";
cout << "-------------------------------------------------------\n";

if (VerticeDirigidoI.GrauDesseVertice != 0)
if (VerticeDirigidoI.GrauDesseVertice % 2 != 0)
CalculoDoCaminhoDeEuler = CalculoDoCaminhoDeEuler + 1;

if (VerticeDirigidoII.GrauDesseVertice != 0)
if (VerticeDirigidoI.GrauDesseVertice % 2 != 0)
CalculoDoCaminhoDeEuler = CalculoDoCaminhoDeEuler + 1;

if (VerticeDirigidoIII.GrauDesseVertice != 0)
if (VerticeDirigidoI.GrauDesseVertice % 2 != 0)
CalculoDoCaminhoDeEuler = CalculoDoCaminhoDeEuler + 1;

if (VerticeDirigidoIV.GrauDesseVertice != 0)
if (VerticeDirigidoI.GrauDesseVertice % 2 != 0)
CalculoDoCaminhoDeEuler = CalculoDoCaminhoDeEuler + 1;

if (VerticeDirigidoV.GrauDesseVertice != 0)
if (VerticeDirigidoI.GrauDesseVertice % 2 != 0)
CalculoDoCaminhoDeEuler = CalculoDoCaminhoDeEuler + 1;

if (CalculoDoCaminhoDeEuler == 0 || CalculoDoCaminhoDeEuler == 2)
cout << "Esse DiGrafo possui o Caminho De Euler\n\n";
else
cout << "Esse DiGrafo nao possui o Caminho De Euler\n\n";

cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
}

~GrafosDirigidos()
{
}
};

int main (void)
{
char Opcao;
Grafos ClasseGrafos;
GrafosDirigidos ClasseGrafosDirigidos;

do
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°PROGRAMA DE CONSTRUIR GRAFOS°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
cout << "1 - Criar Grafo nao Dirigido\n";
cout << "2 - Criar Grafo Dirigido\n";
cout << "3 - Ver as propriedades do Grafo\n";
cout << "4 - Ver as propriedades do Grafo Dirigido\n";
cout << "5 - Limpar esse Terminal\n";
cout << "6 - Sair desse Programa\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";

switch (Opcao)
{
case '1':
ClasseGrafos.metodoCriacaoDoGrafo();
break;
case '2':
ClasseGrafosDirigidos.metodoCriacaoDoGrafoDirigido();
break;
case '3':
ClasseGrafos.metodoImpressaoDoGrafo();
break;
case '4':
ClasseGrafosDirigidos.metodoImpressaoDoGrafoDirigido();
break;
case '5':
system("cls");
break;
}
if ((Opcao != '1') && (Opcao != '2') && (Opcao != '3') && (Opcao != '4') && (Opcao != '5') && (Opcao != '6'))
{
cout << "Voce digitou uma opcao invalita\n\n";
}
}
while (Opcao != '6');
};

sábado, 28 de setembro de 2019

Zero Absoluto - Computacao Quantica...

Um Computador comum possue uma Unidade De Armazenamento De Informacao que é o Transistor com funcao de Memoria que pode ter apenas uma Informacao contida nele seja uma Informacao Binaria - 0 ou 1 - seja Hexadecimal - 0 ah F...
... Todos os Transistores com funcao de Memoria sao assim - Memorias dos Pentes de Memoria - Memoria Cache - Memorias Registradoras - Memoria Flash...
... Bem...
... Em um Computador Quantico a coisa é INFINITAMENTE diferente...
... Em um Computador Quantico todas as Unidades De Armazenamento De Informacao com funcao de Memoria podem armazenarem uma, mais que uma ou todas as Informacoes ao mesmo tempo...
... Por isso um e todas s Unidades De Armazenamento Quanticas com funcao de Memoria de um Computador Quantico pode armazenar todas as 16 Informacoes Hexadecimais ao mesmo tempo...
... Entao a capacidade de armazenamento de Informacoes de um Computador Quantico é INFINITAMENTE maior que à de um Computador Comum...
... As Unidades De Memoria Quantica sao compostas por Atomos de Carbono, porque o Atomo de Carbono possui dezesseis Protons e dezesseis Eletrons consequentemente... Cada Atomo de Carbono eh uma Unidade De Memoria Quantica... Uma Atomo eh a unidade minima possivel de Memoria...
... Os Processadores dos Computadores Quanticos processam ah o mesmo tempo as informacoes todas das Unidades De Armazenamento Quanto...
...
... Isso quer dizer que assim como certos Calculos e tarefas que um Linux pode efetuar um Windows nao pode efetuar, certos Calculos e tarefas APENAS um Computador Quantico pode efetuar...
...
... Logicamente Computadores Quanticos so sao feitos baseados na Arquitetura 64 bits...
... Assim como nenhuma QUANTIDADE de Computares com Windows trabalhando junto seria capaz de fazer o quê um computador com Linux pode fazer, o Universo cheio de Computares Comuns com Linux nao seria capaz de fazer o que um Computador Quantico é capaz, porque alem de serem UNIVERSOS INFINITAMENTE diferentes é tambem IMPOSSIVEL compensar a diferenca aumentando a quantidade de Processadores...
...
... Os Computadores Quanticos atuais sao primitivos e estao no mesmo estagio dos primeiros Computadores de valvula apesar de seu desenvolvimento haver tambem levado dezenas de anos... Os Computadores Quanticos evoluirao muito ainda... Os Computadores Quanticos sao tambem Mainframes, portanto sao tambem acessados atraves de terminais remotos...
...
... Um Computador Quantico atual substitui qualquer Super Computador Data Center comum em tarefas de processamento usando menos que 0.00000000001% de seu potencial de processamento... Um Computador Quantico precisa de muito menos recursos que um Super Computador Data Center... Um Computador Quantico eh pequeno em comparacao ah um Super Computador Data Center... Um Computador Quantico consome muito menos energia que um Super Computador Data Center... O investimento de um ambiente para um Computador Quantico eh muito menor e essa economia pode ser revertida em uma extrutura muito menor e muito mais robusta e em um sistema de energia muito mais duradouro e muito mais barato... O sistema de energia do Computador pode ser facilmente initerrupto atraves da producao de energia atraves da luz...
...
... Texto De Capitao Atomo

sábado, 10 de agosto de 2019

A Arte Da Organizacao...

A arte de organizar eh a arte de ter um trabalho pequeno organizando para nao ter um trabalho muito grande procurando depois...

domingo, 28 de julho de 2019

sábado, 20 de julho de 2019

A Arte Da Abstracao...

A Abstracao da Ciencia Da Computacao eh a Arte de excluir do raciocinio tudo o que nao faz parte do problema e incluir ah o raciocinio tudo o que faz parte do problema com a finalidade de gerar uma solucao coerente, eficaz e eficiente relativa ah o problema em questao...

quinta-feira, 27 de junho de 2019

Zero Absoluto - Orientacao Ah Objetos - II - Calculadora Didatica - 3.0 - EM CONSTRUCAO - COM ERRO DE SEMANTICA...

III - Zero Absoluto - Calculadora Didatica - EM CONTRUCAO
- Zero Absoluto - Calculadora Didatica - 64 bits - Codigo Fonte - 3.0 - Download
- Zero Absoluto - Calculadora Didatica - 64 bits - 3.0 - Download
- Codigo Orientado Ah Objeto - C++ - Calculadora
- I - Contruir uma Classe com as operacoes basicas Matematicas em sua ordem de complexidade de construcao
- II - Subtracao - Soma - Multiplicacao - Divisao - Potencia - Raiz Quadrada
- III - Cada operacao Matematica precisa ter seu Metodo proprio
OBSERVACAO - Bibliotecas usadas - iostream, cmath, stdlib.h
...
#include
#include
#include

using namespace std;

float VariavelGlobalQueGuardaOCalculo;

class Calculadora
{
private:

int x2 = 0, y2 = 0, z2 = 0;
float i = 0, j = 0, x = 0, y = 0, z = 0, w = 0, r = 0;
char Opcao;

public:

Calculadora()
{
}

void metodoSubtracao()
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°CALCULO DE SUBTRACAO°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
cout << "Formato -> X - Y = Z\n\n";
cout << "Voce possui um valor guardado?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";

if (Opcao == '2')
x = VariavelGlobalQueGuardaOCalculo;
else
{
cout << "Digite o valor de X... ";
cin >> x;
cout << "\n";
}
cout << "Digite o valor de Y... ";
cin >> y;
cout << "\n";

z = x - y;

cout << x << " - " << y << " = " << z << "\n\n";

do
{
cout << "Voce deseja continuar Subtraindo?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";

if (Opcao == '2')
{
cout << "Formato -> Z - W = ?\n\n";
cout << "Digite o valor de W... ";
cin >> w;
cout << "\n";

r = z - w;

cout << z << " - " << w << " = " << r << "\n\n";
}

if ((Opcao != '1') && (Opcao != '2'))
{
cout << "Voce digitou uma opcao invalita\n\n";
}

if (Opcao != '2')
{
cout << "Voce deseja guardar esse calculo para usar ele em outro cauculo?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";

if (Opcao != '2')
VariavelGlobalQueGuardaOCalculo = r;
}

}while (Opcao != '1');
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
}

void metodoSoma()
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°CALCULO DE SOMA°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
cout << "Formato -> X + Y = Z\n\n";
cout << "Voce possui um valor guardado?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";
if (Opcao == '2')
x = VariavelGlobalQueGuardaOCalculo;
else
{
cout << "Digite o valor de X... ";
cin >> x;
cout << "\n";
}
cout << "Digite o valor de Y... ";
cin >> y;
cout << "\n";

z = x + y;

cout << x << " + " << y << " = " << z << "\n\n";

do
{
cout << "Voce deseja continuar Somando?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";

if (Opcao == '2')
{
cout << "Formato -> Z + W = ?\n\n";
cout << "Digite o valor de W... ";
cin >> w;
cout << "\n";

r = z + w;

cout << z << " + " << w << " = " << r << "\n\n";
}


if ((Opcao != '1') && (Opcao != '2'))
{
cout << "Voce digitou uma opcao invalita\n\n";
}

if (Opcao != '2')
{
cout << "Voce deseja guardar esse calculo para usar ele em outro cauculo?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";

if (Opcao != '2')
VariavelGlobalQueGuardaOCalculo = r;
}

}while (Opcao != '1');
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
}

void metodoMultiplicacao()
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°CALCULO DE MULTIPLICACAO°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
cout << "Formato -> X * Y = Z\n\n";
cout << "Voce possui um valor guardado?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";
if (Opcao == '2')
x = VariavelGlobalQueGuardaOCalculo;
else
{
cout << "Digite o valor de X... ";
cin >> x;
cout << "\n";
}
cout << "Digite o valor de Y... ";
cin >> y;
cout << "\n";

z = x * y;

cout << x << " * " << y << " = " << z << "\n\n";

do
{
cout << "Voce deseja continuar Multiplicando?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";

if (Opcao == '2')
{
cout << "Formato -> Z * W = ?\n\n";
cout << "Digite o valor de W... ";
cin >> w;
cout << "\n";

r = z * w;

cout << z << " * " << w << " = " << r << "\n\n";
}

if ((Opcao != '1') && (Opcao != '2'))
{
cout << "Voce digitou uma opcao invalita\n\n";
}

if (Opcao != '2')
{
cout << "Voce deseja guardar esse calculo para usar ele em outro cauculo?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";

if (Opcao != '2')
VariavelGlobalQueGuardaOCalculo = r;
}

}while (Opcao != '1');
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
}

void metodoDivisao()
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°CALCULO DE DIVISAO°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
cout << "Voce possui um valor guardado?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";
if (Opcao == '2')
x = VariavelGlobalQueGuardaOCalculo;
else
{
cout << "Digite o valor de X... ";
cin >> x;
cout << "\n";
}
cout << "Digite o valor de Y... ";
cin >> y;
y2 = y;
cout << "\n";

z = x / y;
z2 = x2 % y2;

cout << x << " / " << y << " = " << z << " Com Resto = " << z2 << "\n\n";

cout << "Voce deseja guardar esse calculo para usar ele em outro cauculo?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";

if (Opcao != '2')
VariavelGlobalQueGuardaOCalculo = z;

cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
}

void metodoPotencia()
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°CALCULO DE POTENCIA°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
cout << "Formato -> X Elevado Ah Y = Z\n\n";
cout << "Voce possui um valor guardado?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";
if (Opcao == '2')
x = VariavelGlobalQueGuardaOCalculo;
else
{
cout << "Digite o valor de X... ";
cin >> x;
cout << "\n";
}
cout << "Digite o valor de Y... ";
cin >> y;
cout << "\n";

z = pow(x,y);

cout << x << " Elevado Ah " << y << " = " << z << "\n\n";

cout << "Voce deseja guardar esse calculo para usar ele em outro cauculo?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";

if (Opcao != '2')
VariavelGlobalQueGuardaOCalculo = z;

cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
}

void metodoRaizQuadrada()
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°CALCULO DE RAIZ QUADRADA°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
cout << "Formato -> Raiz Quadrada De X = Z\n\n";
cout << "Voce possui um valor guardado?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";
if (Opcao == '2')
x = VariavelGlobalQueGuardaOCalculo;
else
{
cout << "Digite o valor de X... ";
cin >> x;
cout << "\n";
}
cout << "\n";

z = sqrt(x);

cout << "A Raiz Quadrada De "<< x << " Eh = " << z << "\n\n";

cout << "Voce deseja guardar esse calculo para usar ele em outro cauculo?...\n\n";
cout << "1 - Nao\n";
cout << "2 - Sim\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";

if (Opcao != '2')
VariavelGlobalQueGuardaOCalculo = z;

cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
}

~Calculadora()
{
}
};

int main (void)
{
char Opcao;
Calculadora ClasseOperacoesMatematicas;

do
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°PROGRAMA DE OPERACOES MATEMATICAS°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
cout << "1 - Subtracao\n";
cout << "2 - Soma\n";
cout << "3 - Multiplicacao\n";
cout << "4 - Divisao\n";
cout << "5 - Potencia\n";
cout << "6 - Raiz Quadrada\n";
cout << "7 - Limpar esse Terminal\n";
cout << "8 - Sair desse Programa\n\n";
cout << "Sua escolha eh... ";
cin >> Opcao;
cout << "\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";

switch (Opcao)
{
case '1':
ClasseOperacoesMatematicas.metodoSubtracao();
break;
case '2':
ClasseOperacoesMatematicas.metodoSoma();
break;
case '3':
ClasseOperacoesMatematicas.metodoMultiplicacao();
break;
case '4':
ClasseOperacoesMatematicas.metodoDivisao();
break;
case '5':
ClasseOperacoesMatematicas.metodoPotencia();
break;
case '6':
ClasseOperacoesMatematicas.metodoRaizQuadrada();
break;
case '7':
system("cls");
break;
}
if ((Opcao != '1') && (Opcao != '2') && (Opcao != '3') && (Opcao != '4') && (Opcao != '5') && (Opcao != '6') && (Opcao != '7') && (Opcao != '8'))
{
cout << "Voce digitou uma opcao invalita\n\n";
}
}
while (Opcao != '8');
};