terça-feira, 25 de agosto de 2020

Z3ro @bsoluto - Orientacao Ah Objetos - C++ - Curso Intensivo - EM CONSTRUCAO - ATUALIZADO - V...

- COMENTARIOS

 // Palavra ou palavras

...

/*

Palavra ou palavras

*/

...

...

...

- BIBLIOTECAS BASICAS

#include <stdlib.h>

#include <iostream>

#include <cmath>

using namespace std;

...

...

...

- STRUCTS

struct NomeDaEstrutura-I

     {

          TIPODAVARIAVEL VARIAVEL-I;

          TIPODAVARIAVEL VARIAVEL-II;

          TIPODAVARIAVEL VARIAVEL-N;

     };

...

struct NomeDaEstrutura-II

     {

          TIPODAVARIAVEL VARIAVEL-I;

          TIPODAVARIAVEL VARIAVEL-II;

          TIPODAVARIAVEL VARIAVEL-N;

     };

...

struct NomeDaEstrutura-N

     {

          TIPODAVARIAVEL VARIAVEL-I;

          TIPODAVARIAVEL VARIAVEL-II;

          TIPODAVARIAVEL VARIAVEL-N;

     };

...

...

...

- ENTRADA E SAIDA DE DADOS

...

- PULAR LINHAS

\n

...

I - ENTRADA DE STRING

char VARIAVEL[];

ou

char VARIAVEL[TAMANHO DESEJADO];

cin >> VARIAVEL;

...

II - ENTRADA DE TEXTO

const int VARIAVELTAMANHODODOTEXTO 1000;

char TEXTO [VARIAVELTAMANHODODOTEXTO];

cin.getline (TEXTO, VARIAVELTAMANHODODOTEXTO);

...

III - SAIDA DE STRING OU TEXTO

cout << "PALAVRA ou TEXTO\n";

...

IV - SAIDA DE VARIAVEL

cout << VARIAVEL;

...

V - SAIDA DE PALAVRA OU TEXTO COM VARIAVEIS

cout << "PALAVRA ou TEXTO " << VARIAVEL << " PALAVRA ou TEXTO " << VARIAVEL << "\n\n";

...

...

...

- ESTRUTURAS DE CONTROLE

break; PARE AQUI

continue; VA AH OPCAO SEGUINTE

...

I - DESVIO GOTO - SALTOS

... O goto funciona dentro da mesma funcao e dentro do mesmo metodo, portanto dar saltos entre funcoes, metodos e classes usando o goto eh impossivel... O goto pode direcionar ah um ponto anterior do codigo ou ah um ponto posterior do codigo...

goto NOMEESCOLHIDO;

ESTRUTURAS

NOMEESCOLHIDO:

ou

NOMEESCOLHIDO:

ESTRUTURAS

goto NOMEESCOLHIDO;

...

I - SELECOES IF E IF/ELSE

if (SE ISSO FOR VERDADE, ENTAO FACA O SEGUINTE)

     ESTRUTURA COM UMA LINHA;

{

     ESTRUTURA COM MAIS QUE UMA LINHA;

}

ELSE (SE A SITUACAO ANTERIOR FOR FALSA, ENTAO FACA O SEGUINTE)

     ESTRUTURA COM UMA LINHA;

{

     ESTRUTURA COM MAIS QUE UMA LINHA;

}

...

II - SELECOES SWITCH

switch (SELECIONE O CASO IGUAL AH ESSA VARIAVEL)

{

     case '1':

          ACAO;

          break;

     case '2':

          ACAO;

          break;

     case 'N':

          ACAO;

          break;

}

...

...

...

- EXTRUTURAS DE REPETICAO - LACOS

...

 - REPETICAO DO/WHILE

do - FACA ISSO

     ESTRUTURA COM UMA LINHA;

{

     ESTRUTURA COM MAIS QUE UMA LINHA;

}

while (ENQUANTO ISSO FOR VERDADE);

...

II - REPETICAO WHILE

while (FACA O SEGUINTE ENQUANTO ISSO FOR VERDADE);

     ESTRUTURA COM UMA LINHA;

{

     ESTRUTURA COM MAIS QUE UMA LINHA;

}

...

III - REPETICAO FOR

for (DISSO; AH ISSO; DECREMENTO ou INCREMENTO);

     ESTRUTURA COM UMA LINHA;

{

     ESTRUTURA COM MAIS QUE UMA LINHA;

}

...

...

...

- VETORES

I - VETOR COM UMA DIMENSAO

int VARIAVEL;

...

II - VETOR COM DUAS DIMENSOES

int VARIAVEL [TAMANHO DESEJADO] [TAMANHO DESEJADO];

...

III - VETOR COM TRES DIMENSOES

int VARIAVEL [TAMANHO DESEJADO] [TAMANHO DESEJADO] [TAMANHO DESEJADO];

...

...

...

- CLASSES

class NomeDaClasse - I

{

Construtor Com Nome Da Classe - I()

{

}

     VARIAVEIS;

     VARIAVEIS struct;


     - ENTRADA E SAIDA DE DADOS

     - ESTRUTURAS DE CONTROLE

     - ESTRUTURAS DE REPETICAO - LACOS

     Metodo - I;
     Metodo - II;
     Metodo - N
     
~Destrutor Com Nome Da Classe - I()

{

}

};

...

class NomeDaClasse - II

{

Construtor Com Nome Da Classe - II()

{

}

     VARIAVEIS;

     VARIAVEIS struct;


     - ENTRADA E SAIDA DE DADOS

     - ESTRUTURAS DE CONTROLE

     - ESTRUTURAS DE REPETICAO - LACOS

     Metodo - I;
     Metodo - II;
     Metodo - N
     
~Destrutor Com Nome Da Classe - II()

{

}

};

...

class NomeDaClasse - N

{

Construtor Com Nome Da Classe - N()

{

}

     VARIAVEIS;

     VARIAVEIS struct;


     - ENTRADA E SAIDA DE DADOS

     - ESTRUTURAS DE CONTROLE

     - ESTRUTURAS DE REPETICAO - LACOS

     Metodo - I;
     Metodo - II;
     Metodo - N
     
~Destrutor Com Nome Da Classe - N()

{

}

};

...

...

...

- METODOS

void nomeDoMetodo - I()

{

     VARIAVEIS;

     VARIAVEIS struct;


     - ENTRADA E SAIDA DE DADOS

     - ESTRUTURAS DE CONTROLE

     - ESTRUTURAS DE REPETICAO - LACOS

}

...

void nomeDoMetodo - II()

{

     VARIAVEIS;

     VARIAVEIS struct;


     - ENTRADA E SAIDA DE DADOS

     - ESTRUTURAS DE CONTROLE

     - ESTRUTURAS DE REPETICAO - LACOS

}

...

void nomeDoMetodo - N()

{

     VARIAVEIS;

     VARIAVEIS struct;


     - ENTRADA E SAIDA DE DADOS

     - ESTRUTURAS DE CONTROLE

     - ESTRUTURAS DE REPETICAO - LACOS

}

...

...

...

- FUNCAO PRINCIPAL

int main (void)

{

     VARIAVEIS;

     VARIAVEIS struct;


     - ENTRADA E SAIDA DE DADOS

     - ESTRUTURAS DE CONTROLE

     - ESTRUTURAS DE REPETICAO - LACOS


     - Classe - I

     - Classe - II

     - Classe - N

};

...

...

...

- SOFTWARE EXEMPLO

A ordem das estruturas importa... Tudo que for usado depois precisa esta declaro antes

...

#include <stdlib.h>

#include <iostream>

#include <cmath>


using namespace std;


struct NomeDaEstrutura-I

     {

          TIPODAVARIAVEL VARIAVEL-I;

          TIPODAVARIAVEL VARIAVEL-II;

          TIPODAVARIAVEL VARIAVEL-N;

     };

...

struct NomeDaEstrutura-II

     {

          TIPODAVARIAVEL VARIAVEL-I;

          TIPODAVARIAVEL VARIAVEL-II;

          TIPODAVARIAVEL VARIAVEL-N;

     };

...

struct NomeDaEstrutura-N

     {

          TIPODAVARIAVEL VARIAVEL-I;

          TIPODAVARIAVEL VARIAVEL-II;

          TIPODAVARIAVEL VARIAVEL-N;

     };


class NomeDaClasse-I

{

     VARIAVEIS;

     VARIAVEIS struct;

     Construtor Com Nome Da Classe()

     {

     }

     void nomeDoMetodo-I()

     {

          VARIAVEIS;

          VARIAVEIS struct;


          - ENTRADA E SAIDA DE DADOS

          - ESTRUTURAS DE CONTROLE

          - ESTRUTURAS DE REPETICAO - LACOS

     }


void nomeDoMetodo-II()

     {

          VARIAVEIS;

          VARIAVEIS struct;


          - ENTRADA E SAIDA DE DADOS

          - ESTRUTURAS DE CONTROLE

          - ESTRUTURAS DE REPETICAO - LACOS

     }

     void nomeDoMetodo-N()

     {

           VARIAVEIS;

           VARIAVEIS struct;


          - ENTRADA E SAIDA DE DADOS

          - ESTRUTURAS DE CONTROLE

          - ESTRUTURAS DE REPETICAO - LACOS

     }

     ~Destrutor Com Nome Da Classe()

     {

     }

};


class NomeDaClasse-II

{

     VARIAVEIS;

     VARIAVEIS struct;

     Construtor Com Nome Da Classe()

     {

     }

     void nomeDoMetodo-I()

     {

          VARIAVEIS;

          VARIAVEIS struct;


          - ENTRADA E SAIDA DE DADOS

          - ESTRUTURAS DE CONTROLE

          - ESTRUTURAS DE REPETICAO - LACOS

     }


void nomeDoMetodo-II()

     {

          VARIAVEIS;

          VARIAVEIS struct;


          - ENTRADA E SAIDA DE DADOS

          - ESTRUTURAS DE CONTROLE

          - ESTRUTURAS DE REPETICAO - LACOS

     }

     void nomeDoMetodo-N()

     {

           VARIAVEIS;

           VARIAVEIS struct;


          - ENTRADA E SAIDA DE DADOS

          - ESTRUTURAS DE CONTROLE

          - ESTRUTURAS DE REPETICAO - LACOS

     }

     ~Destrutor Com Nome Da Classe()

     {

     }

};


class NomeDaClasse-N

{

     VARIAVEIS;

     VARIAVEIS struct;

     Construtor Com Nome Da Classe()

     {

     }

     void nomeDoMetodo-I()

     {

          VARIAVEIS;

          VARIAVEIS struct;


          - ENTRADA E SAIDA DE DADOS

          - ESTRUTURAS DE CONTROLE

          - ESTRUTURAS DE REPETICAO - LACOS

     }


void nomeDoMetodo-II()

     {

          VARIAVEIS;

          VARIAVEIS struct;


          - ENTRADA E SAIDA DE DADOS

          - ESTRUTURAS DE CONTROLE

          - ESTRUTURAS DE REPETICAO - LACOS

     }

     void nomeDoMetodo-N()

     {

           VARIAVEIS;

           VARIAVEIS struct;


          - ENTRADA E SAIDA DE DADOS

          - ESTRUTURAS DE CONTROLE

          - ESTRUTURAS DE REPETICAO - LACOS

     }

     ~Destrutor Com Nome Da Classe()

     {

     }

};


int main (void)

{

     VARIAVEIS;

     VARIAVEIS struct;


     - ENTRADA E SAIDA DE DADOS

     - ESTRUTURAS DE CONTROLE

     - ESTRUTURAS DE REPETICAO - LACOS


     NomeDaClasse-I.nomeDoMetodo-I();
     NomeDaClasse-I.nomeDoMetodo-II();
     NomeDaClasse-I.nomeDoMetodo-N();
     NomeDaClasse-II.nomeDoMetodo-I();
     NomeDaClasse-II.nomeDoMetodo-II();
     NomeDaClasse-II.nomeDoMetodo-N();
     NomeDaClasse-N.nomeDoMetodo-I();
     NomeDaClasse-N.nomeDoMetodo-II();
     NomeDaClasse-N.nomeDoMetodo-N();

};

quinta-feira, 16 de julho de 2020

Ciencia Da Computacao - Mestrado - Doutorado - Eletricidade/Eletronica - Mecatronica - Design - ATUALIZADO...

Alguns Cientistas Da Computacao possuem interesse em Eletricidade/Eletronica ou em Mecatronica... Eles concluem errado ahs vezes por pensarem que deveriam cursarem Mestrado em Engenharia Eletricista ou cursarem Mestrado em Mecatronica ou cursarem Mestrado em Design... Fazer isso nao eh bom, porque disperdicaria o conhecimento do Mestrado em Ciencia Da Computacao, nao aprenderia o desejado todo de Eletricidade/Eletronica ou em Mecatronica e produziria um desperdicio de recursos... Portanto precisamos evitarmos essa estrategia...
... Esses Cientistas Da Computacao precisam cursarem um curso Tecnologo de Eletricidade/Eletronica ou Mecatronica ou Design que dura dois anos e meio normalmente... Ou cursarem Eletricidade/Eletronica ou Mecatronica ou Design enquanto cursam Ciencia Da Computacao... Ou cursarem o Mestrado em Ciencia Da Computacao depois de fazerem esse curso de Eletricidade/Eletronica ou Mecatronica ou Design... Ou cursarem esse Mestrado e um desses tres cursos ah o mesmo tempo... Ou cursarem dois desses cursos ah o mesmo tempo... Tres talvez sejam demais... Recomendo reduzirem a quantidade de disciplinas no caso de cursarem mais que um curso ah o mesmo tempo... Essas estrategias gerariam o aproveitamento maximo disso tudo com eficiencia maxima...
... O Doutorado em Ciencia Da Computacao esta nessa mesma logica caso pulem o Mestrado ou decidam cursarem os cursos citados duranto o curso do Doutorado

domingo, 15 de dezembro de 2019

I.D.E. - Significado....

I.D.E significa Integrated Development Environment... Esse termo em portugues eh A.I.D que significa Ambiente Integrado De Desenvolvimento

sábado, 23 de novembro de 2019

Ciencia Da Computacao - EM CONSTRUCAO...

Hardware
...
... Os Sistemas Computacionais todos so armazenam informacoes e so processam essas informacoes... Os Sistemas Computacionais processam milhares de informacao ah o mesmo tempo... Os Processadores sao construcoes logicas...
...
Informacoes
- Digital - Binario - Hexa-Decimal
I - Sistemas Digitais - Sistemas que utilizam digitos como informacoes
II - Binario - O termo Binario eh utilizado para definir se carga eletrica ocorre em algum componente Computacional no momento ou ela nao ocorre...
III - Hexa-Decimal - As informacoes dos Sistemas Computacionais sao construidas atraves de digitos Hexa-Decimais...
...
Eletricidade
- Tensao - Corrente - Frequencia
I - A Eletricidade se desloca quase na velocidade da luz
II - Tensao - As Tensoes sao constantes em cada componente Computacional e eh a velocidade da carga eletrica...
III - Corrente - A Corrente eh a largura de banda de algum componente Computacional... A Corrente eh constante e variavel e sua variacao depende da demanda...
IV - Frequencia - A Frequencia eh os Dados em si em alguma Memoria Volatil ou em deslocamento nos barramentos... A Frequencia eh as informacoes em si... A Frequencia e um conjunto de alteracoes na natureza da carga eletrica e cada alteracao dessa eh um valor digital que varia de zero ah quinze, porque eh Hexa-Decimal... A quantidade de dados na frequancia varia conforme a demanda e a Corrente eh quem determina seu valor maximo... Eh como um rio onde a velocidade desse rio eh a Tensao constante, a largura desse rio eh a Corrente variavel e os inumeros baldes de tinta de cores diferentes jogados nesse rio que preenchem esse rio sao os Dados da Frequencia que eh variavel... Os Dados construidos atraves da Frequencia trafegam independetes em qualquer direcao da Corrente Eletrica ah o mesmo tempo assim como as ondas fazem isso entre si e os raios luz fazem isso entre si... As frequancias nao colidem entre si assim como as ondas nao colidem entre si e os raios de luz nao colidem entre si... 1 GHz significa um bilhao de instrucoes por segundo de trafego no barramento em cada direcao... Os Processadores possuem milhares de barramentos interligando seus componentes dentro de si...
...
Memorias
- Memoria Persistente - Memoria Volatil - Memoria Cache
Discos Rigidos e nem outra Memoria Persistente qualquer processa informacao, mas o Processador da Placa Mae dos Discos Rigidos processa informacoes... Os Discos Rigidos sao Memorias Persistentes que guardam informacoes que sao levadas ah o Processador para elas serem usadas pelo Processador... Os Discos Rigidos sao muito grande e procurar informacoes nessa Memoria eh impraticavel... A Memoria Volatil armazena um mapa do Disco Rigido... Quanto mais Memoria Volatil mais esse mapa eh refinado, portanto mais preciso esse mapa eh... Exemplo... Imagine uma Memoria Volatil de 1 GB e uma Memoria Persistente de 10 GBs... Se 1 GB de Memoria Volatil pode ser divida em dez parte, entao ela pode possuir um mapa com dez regioes... Cada regiao dessas sabe o que cada GigaByte dessa Memoria Persistente possui... Portanto o Processador pede ah Memoria Volatil uma informacao que se encontra na Memoria Persistente... A Memoria Volatil sabe em qual regiao da Memoria Persistente essa informacao se encontra... Entao a Memoria Persistente nao precisa procurar essa informacao na Memoria Persistente inteira... Se a Memoria Persistente conter cem arquivos por GigaByte, entao o Processador precisa aguardar a Memoria Persistente encontrar esse arquivo especifico dentre esses cem arquivos... Se a Memoria Volatil tiver 2 GBs, entao ela dividira a Memoria Persistente em vinte partes de quinhentos MegaBytes, portanto a Memoria Persistente precisaria procurar um arquivo dentre cinquenta arquivos, portanto seria um custo menor que a situacao anterior... Porem isso nao eh suficiente e a Memoria Cache completa esse trabalho dividindo dentro de si o mapa da Memoria Volatil executando a mesma tarefa que a Memoria Volatil faz sobre a Memoria Persistente, porem a Memoria Cache faz isso sobre a Memoria Volatil para a procura sobre a Memoria Volatil ser menos custosa... A Memoria Volatil guarda informacoes do sistema tambem com a finalidade de facilitar a comunicacao entre os componentes... Entao se o Processador De Audio precisar de uma informacao especifica que se encontra no Processador Grafico, entao o Processador De Audio perguntara ah Memoria Volatil quem possui essa informacao e a Memoria Volatil dira ah o Processador De Audio que o Processador Grafico eh quem possui essa informacao e esses dois Processadores se comunicarao para resolverem essa questao...
...
Processadores
- Unidade Logica E Aritmetica - Registradores
As Unidades Logica E Aritmetica processam as informacoes armazenadas nos Registradores... A capacidade desse processamento eh determinada pelo Tamanho Da Palavra que os Registradores sao capaz de armazenarem... Processadores possuem os Tamanhos De Palavras de 8 bits, 16 bits, 32 bits e 64 bits... Cada registrador pode armazenar uma palavra... O tamanho do Registrador eh calculado atravez da potencia da base Hexa-Decimal elevada pelo Tamanho Da Palavra... 16^8 - 16^16 - 16^32 - 16^64... As Unidades Logica E Aritmetica processam bilhoes informacoes em um instante, porque a demanda eh grande... Quanto maior o Tamanho Da Palavra mais Registradores e Unidades Logica E Aritmetica o processador possui, porque os processadores sao Construcoes Logicas dependentes do Tamanho Da Palavra... Quanto maior o tamanho da palavra maior eh o tamanho das memorias Registradores... Quanto maior o Tamanho Da Palavra maior eh o poder de processamento do Processador... Um processador Single Core 64 bits que possua 100 milhoes de transistores possui milhares de barramentos, milhares de Memorias Registradores e milhares de Unidades Logica E Aritmetica... Um processador 64 bits que possua um bilhao de transistores possui milhoes de barramentos, milhoes de Memorias Registradores e milhoes de Unidades Logica E Aritmetica... Quanto maior o Tamanho Da Palavra mais complexa e mais poderosa eh a Unidade Logica E Aritmetica e seu Nucleo De Controle De Processos
...
- Barramento - Frequencia - Memorias Registratadores - Processadores ULA - Unidade De Controle
Se ampliarmos um Processador ah o tamanho de uma cidade, entao teriamos as estruturas como casas e predios como as Memorias Registradores , Processadores ULA e a Unidade De Controle e as ruas como os barramentos... As Memorias Registradores armazenam as informacoes, os Processadores ULA tratam as informacoes, a Unidade De Controle administra o tratamento das informacoes e os barramentos transportam as informacoes entre as estruturas... A frequencia eh a velocidade que as informacoes se deslocam nas ruas de uma estrutura ah outra estrutura
...
- Microchips - Comparacao De Desempenho
... Compare a quantidade de transistores nos microchips do mesmo tipo e da mesma marca... A Memoria Cache eh o componente que usa mais transistores... A Memoria Cache faz diferenca em acesso ah registros muito grandes de servidores, contudo nao faz muito diferente em Linux... A Memoria Auxiliar SWAP do Linux eh melhor que a Memoria Cache do Processador, portanto quanto maior a Memoria Auxiliar SWAP for melhor... Linux leves e servidores antigos se dao bem com Memorias Auxiliares SWAP ah partir de 1 GB... Linux pesados - Que precisam de 2 GBs de Memoria RAM - Precisam de 10 GBs de Memoria Auxiliar SWAP... Comparar o tempo de descompactacao de arquivos eh o teste mais facil de desempenho de processadores...
...
- Interface Homem Maquina
Os usuarios vem as Interfaces Homem Maquina apenas... Quanto mais bela, mas simples, mais facil e mais clara - Sofisticada Consequentemente - a Interface Homem Maquina for melhor ela sera independente do estilo
...
- Egenharia De Software

Administracao eh uma coisa e gestao eh outra coisa... Gestao sem lideranca nao existe... O gestor eh capaz de ver ah si como um membro da equipe... O gestor eh capaz de ver que a equipe eh um corpo, portanto integrado, portanto precisa de cuidados especiais... O gestor eh capacitado ah esclarecer sua equipe... O gestor eh capacitado ah orientar sua equipe... O gestor eh capacitado ah direcionar sua equipe... O gestor eh capaz de integrar sua equipe... O gestor eh capacitado ah ver as qualidades dos membros de sua equipe... O gestor eh capaz de ajudar sua equipe ah melhorar suas qualidades... O gestor eh capaz de fazer sua equipe ah usar o maximo de seu potencial... O gestor eh capaz de ajudar sua equipe ah fortalecer seus atributos fracos... O gestor eh capaz de fazer sua equipe adquirir qualidades que ela nao possuia antes... O gestor tem a funcao de cuidar de sua equipe e a funcao de impedir que males ocorram ah sua equipe... O gestor eh capaz de identificar os membros de sua equipe que estao mal intencionados relativo ah equipe e mal intencionados relativo ah o trampo e eh capaz de eliminar os elementos mal intensionados…

O uso de nobreaks em modens, roteadores, switches e hubs eh necessário ahs vezes para a perda de comunicação não ocorrer… O uso de baterias auxiliares de moto, carro e caminhão eh necessário ahs vezes
Empresas e setores que usam sistemas WEB apenas devem usarem algum sistema operacional UNIX/Linux em seus computadores...
...
...
...
...
Software
- Poder - Ser capaz de algo...
- Autarquia - Auto suficiente...
- Software - Eh uma Inteligencia Artificial
- Algoritimo De Software - Formula matematica autonoma que resolve algum problema em algum Sistema Computacional...
- Sistemas Computacionais - Entidades Inconscientes... Essas entidades sao poderozissimas, porem elas nao sabem fazerem coisa alguma sozinhas...
- Extrutura - Qualquer coisa composta por mais que um elemento que juntos exercem uma funcao pelo menos...
...
... A formula Y = X + 1 e sua solucao sao execultadas por um ser humano... Uma Entidade Computacional nao sabe fazer isso... A pessoa precisa criar uma Estrutura, um Mecanismo que ensine ah Entidade Computacional ah fazer isso... Essas extruturas possuem o nome Extrutura De Dados... Esses mecanismos possuem o nome Mecanismo De Software...
... A Extrutura De Dados abaixo que eh um Mecanismo De Software repete uma Multiplicacao com a finalidade de compor uma Potencia... Porque... Assim como uma Multiplicacao eh uma Soma sucessiva, uma Potencia eh uma Multiplicacao sucessiva...
...
...
...
void metodoPotencia()
{
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°CALCULO DE POTENCIA°°°°°°°°°°°°°°°°°°\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
cout << "Digite o valor de X... ";
cin >> x;
cout << "\n";
cout << "Digite o valor de Y... ";
cin >> y;
cout << "\n";


z = 1;

do
{
z = z * y;
x--;
}
while (x > 0);

cout << "O resultado dessa potencia eh " << z << "\n\n";
cout << "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n";
}

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');
};