Ir ao conteúdo

Posts recomendados

Postado

Pessoal, boa noite.

Tenho esse código em C++ e queria passar para o VisualG, pra estudos, para entender melhor, alguém sabe converter ??

Se alguém transformasse para VisualG eu ficaria grato

Desde já muito obrigado!!

 

#include "Agenda.h"
#include <locale.h>


int main(){
    setlocale(LC_ALL,"Portuguese");
    criarListaDinVazia();
    int opcao, cod;
    char nome[50], email[30];
    do{
        puts(" \n>>>>>> AGENDA <<<<<<");
        puts("(1) CRIAR NOVO CONTATO");
        puts("(2) PROCURAR UM CONTATO");
        puts("(3) DELETAR UM CONTATO");
        puts("(4) LISTA DOS CONTATOS");
        puts("(5) SAIR");
        puts(" ------------------------");
        puts("Informe uma opção:");
        scanf("%d",&opcao);
        switch(opcao){
            case 1:
                inserirElemLista();
                break;
            case 2:
                puts("Informe o código que deseja procurar:");
                scanf("%d",&cod);
                pesquisarItem(cod);
                break;
            case 3:
                puts("Informe o código que deseja Deletar:");
                scanf("%d",&cod);
                removerItem(cod);
                break;
            case 4:
                exibirElemLista();
                break;
            case 6:
                puts("Saindo do menu...!!!");
                break;
            default:
                puts("Opção Inválida!");
        }
    }while(opcao!=5);
}



//Biblioteca

#include <stdio.h>
#include <stdlib.h> // malloc, free, etc.
#include <locale.h>

struct NoListaDin{
    int cod;
    char nome[50];
    int telefone;
    char email[30];
    NoListaDin *prox;
};

NoListaDin *primeiro;
NoListaDin *ultimo;

void criarListaDinVazia(){
    NoListaDin *aux;
    aux = (NoListaDin*) malloc(sizeof(NoListaDin));
    primeiro = aux;
    ultimo = primeiro;
    puts("Nó cabeça criado com sucesso!");
}

void inserirElemLista(){ 
    NoListaDin *aux;
    int codigo,tel;
    aux = (NoListaDin*) malloc(sizeof(NoListaDin));
    printf("Informe um codigo:\n");
    scanf("%d",&codigo);
    aux->cod = codigo;
    printf("Informe o nome do contato:\n");
    fflush(stdin);
    gets(aux->nome);
    printf("Informe um telefone:\n");
    scanf("%d",&tel);
    aux->telefone=tel;
    printf("informe um email do contato:\n");
    fflush(stdin);
    gets(aux->email);
    ultimo->prox = aux;
    ultimo = aux;
    aux->prox = NULL;
    puts("Inserido com sucesso!");
}

void exibirElemLista(){
    NoListaDin *aux;
    aux = primeiro->prox;
    puts("Exibindo o conteúdo da Agenda:");
    while(aux!=NULL){
        printf("\nCódigo %d\n",aux->cod); 
        printf("Nome %s\n",aux->nome); 
        printf("Telefone %d\n",aux->telefone); 
        printf("E-mail %s\n\n\n",aux->email);         
        aux = aux->prox;
    }
}

void pesquisarItem(int cod){
    NoListaDin *aux;
    aux=primeiro->prox;
    int flag=0;
    while(aux!=NULL){
        if(aux->cod==cod){
            printf("\nCódigo %d\n",aux->cod); 
            printf("Nome %s\n",aux->nome); 
            printf("Telefone %d\n",aux->telefone); 
            printf("E-mail %s\n\n",aux->email); 
            flag = 1;
            aux=NULL;
        }
        else{
            aux = aux->prox; // percorre a lista
        }
    }
    if(flag==0){
        printf("O código %d não se encontra na lista!",cod);
    }
}

void removerItem(int cod){
    NoListaDin *aux;
    NoListaDin *sentinela;
    aux = primeiro->prox;
    sentinela = primeiro;
    int flag = 0;
    while(aux!=NULL){
        if(aux->cod == cod){
            printf("Removeu o item %d\n",cod);
            sentinela->prox = aux->prox;
            flag = 1;
            free(aux);
            aux = NULL;
        }
        else{
            aux = aux->prox; // percorre a lista
            sentinela = sentinela->prox;
        }
    }
    if(flag==0){
        printf("O item %d não se encontra na lista!\n",cod);
    }
}

 

  • Curtir 1
Postado

@Danilo Do Carmo    esse código não é da Linguagem C++,  e sim linguagem  C   ,  mesmo  , e é de listas encadeadas , que usam ponteiros de memórias , e mesmo no compilador de c/ c++ ele não está funcionando , pois falta aquele #include "Agenda.h" ,  que foi referenciado , mas não existe , e no entanto  para converter de uma certa Linguagem para outra ,  você substitui os comandos , por exemplo :

esse

printf("qq coisa");

da linguagem C e não C++ ,  pois no C++ seria

cout << "qq coisa" endl;

   ,  e no visualG seria

escreval("qq coisa")

mas no visualG não se pode usar ponteiros como em c / c++ / c# , e seria muito difícil criar uma função em visualG , que fizesse o mesmo  que no c / c++ ,  

  • Curtir 2
Postado

@Danilo Do Carmo Converter C ou C++ para visualg nesse caso e impossível, pelo fato que esse seu algoritmo usa ponteiros e no visualg não existe ponteiros.

 

Mas você pode converter todo o resto do algoritmo que não usa ponteiros, e talvez substituir a parte dos ponteiros por um vetor bem grande.

  • Curtir 2
  • Amei 1
  • Membro VIP
Postado
18 horas atrás, Danilo Do Carmo disse:

Tenho esse código em C++ e queria passar para o VisualG, pra estudos, para entender melhor, alguém sabe converter ??

 

Como citado, ponteiro não está disponível no VisualG. Mas de um modo geral, uma boa alternativa seria recriar um código aos poucos utilizando vetores, mesmo. Daí precisaria envolver toda a lógica relacionada. A lógica para ponteiros é uma, para vetores é outras... mas nada muuuito distante.


Exemplo de base inicial:
 

algoritmo "Minha Agenda"

procedimento inserirElemLista()
inicio
   cod <- cod+1
   escreva ("Nome: ")
   leia(nomes[cod])
fimProcedimento

var
   nomes: vetor[1..10] de caractere
   cod: inteiro
   opcao: caractere

inicio
   repita
      escrevaL(">>>>>> AGENDA <<<<<<")
      escrevaL("(1) CRIAR NOVO CONTATO")
      escrevaL("(2) PROCURAR UM CONTATO")
      escrevaL("(3) DELETAR UM CONTATO")
      escrevaL("(4) LISTA DOS CONTATOS")
      escrevaL("(5) SAIR")
      leia(opcao)

      escolha opcao
      caso "1"
         inserirElemLista()
      fimEscolha
   ate (opcao = 5)
fimAlgoritmo

 

 

  • Curtir 2
  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: Aprenda a Ler Resistores e Capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!