Ir ao conteúdo
  • Cadastre-se
Vengefull

VisualG Converter código visualg para C++

Recommended Posts

Boa tarde, estou querendo converter todo esse código escrito em Visualg para o C++. Alguém experiente poderia me ajudar? quero deixar da forma que está .

Meu motivo para migrar para o C++ é para apenas estudos e também para aprendizado da linguagem, porém acho que só da para fazer no C++.

Eu quero salvar toda operação quando o programa terminar a execução em modo texto, depois que salvar os números gerado em modo texto ter uma opção para abrir novamente o arquivo txt e ter a opção de fazer o analise de acertos novamente e salvar em txt de novo. Não sei como fazer isso nem ideia salvar texto, abrir texto, fazer analise dos acertos.

 

Código:

Spoiler

algoritmo "Algoritmo exercicio Mega Sena "
var
   vetor_60   :vetor [1..60] de inteiro
   vetor_6_1 :vetor [1..6] de inteiro
   vetor_6_2 :vetor [1..6] de inteiro
   vetor_6_3 :vetor [1..6] de inteiro
   vetor_6_4 :vetor [1..6] de inteiro
   vetor_6_5 :vetor [1..6] de inteiro
   vetor_6_6 :vetor [1..6] de inteiro
   vetor_6_7 :vetor [1..6] de inteiro
   vetor_6_8 :vetor [1..6] de inteiro
   vetor_6_9 :vetor [1..6] de inteiro
   vetor_6_10 :vetor [1..6] de inteiro
   vetor_6    :vetor [1..6] de inteiro




   p,num,contador,k       :inteiro  //auxiliar para posicionar o vetor
   i,j,x,aux      :inteiro  //auxiliar para percorrer o vetor
   OK      :logico   //flag para verificar se a etapa foi realizada com sucesso
   excluir :inteiro  //número a ser excluído do vetor
   aguardar:caracter //variável criada apenas para aguardar um ENTER na interação com o usuário






Inicio
MudaCor("Preto","Frente") --> caracter Azul
MudaCor("Branco","Fundos") --> fundo branco
//gera os 60 números do vetor inicial
escreval("GERANDO OS 60 NÚMEROS INICIAIS...")
para p de 1 ate 60 faca
   vetor_60[p]:=p
fimpara
escreval("Tecle Enter")
leia(aguardar)
escreval("NÚMEROS GERADOS COM SUCESSO!")

//exibe os 60 números gerados
escreval()
escreval("Aqui estão os 60 números iniciais")
p:=1
para i de 1 ate 10 faca //cada linha
   para j de 1 ate 6 faca //cada coluna
      escreva(vetor_60[p]:2," - ")
      p:=p+1
   fimpara
   escreval//para pular para a linha de baixo
fimpara


escreval()
escreval("REMOVENDO 6 NÚMEROS DO VETOR INICIAL...")
para i de 1 ate 6 faca
   repita
      OK:=verdadeiro //inicializa a flag como OK
      escreva("Digite o ",i:2," número de 1 a 60 para deletar: ")

      leia(excluir)
      se (excluir<1) ou (excluir>60) ENTÃO
         escreval("Só pode ser número de 1 a 60")
         OK:=falso //marca como inválido
      senao
         se vetor_60[excluir]=0 ENTÃO //se posição já está removida
            escreval("Esse número ja foi removido, escolha outro")
            OK:=falso //marca como inválido
         senao
            vetor_60[excluir]:=0 //remove o número do vetor
         fimse
      fimse
   ate OK
fimpara
escreval("NÚMEROS REMOVIDOS COM SUCESSO")
escreval()
escreval("Aqui estão os 6 números removidos")
para p de 1 ate 60 faca
   se vetor_60[p]=0 ENTÃO //se tiver zero ENTÃO o número foi removido
      escreva(p:2," - ") //exibe a posição do número (que representa o próprio número)
   fimse
fimpara
escreval()
escreval("Tecle Enter")
leia(aguardar)


escreval()
escreval("Aqui estão os 54 números que sobraram")
p:=1
para i de 1 ate 10 faca
para j de 1 ate 6 faca
      se vetor_60[p] <> 0 ENTÃO
         escreva(vetor_60[p]:2," - ")
      senao
         escreva("  "," - ")
      fimse
      p:=p+1
   fimpara
   escreval()
fimpara
escreval("Tecle Enter")
leia(aguardar)

// sortear 6 aleatorio
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca            // serão 6 números
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 6 faca//
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_6_1[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_6_1[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetor_6_1[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara



// sortear 6 aleatorio
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca            //
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 6 faca//
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_6_2[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_6_2[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetor_6_2[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara



// sortear 6 aleatorio
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca            //
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 6 faca//
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_6_3[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_6_3[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetor_6_3[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara




// sortear 6 aleatorio
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca            //
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 6 faca//
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_6_4[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_6_4[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetor_6_4[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara




// sortear 6 aleatorio
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca            //
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 6 faca//
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_6_5[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_6_5[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetor_6_5[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara



// sortear 6 aleatorio
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca            //
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 6 faca//
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_6_6[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_6_6[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetor_6_6[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara




// sortear 6 aleatorio
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca            //
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 6 faca//
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_6_7[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_6_7[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetor_6_7[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara




// sortear 6 aleatorio
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca            //
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 6 faca//
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_6_8[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_6_8[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetor_6_8[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara



// sortear 6 aleatorio
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca            //
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 6 faca//
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_6_9[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_6_9[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetor_6_9[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara




// sortear 6 aleatorio
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca            //
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 6 faca//
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_6_10[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_6_10[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetor_6_10[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara
escreval

para i de 1 ate 6 faca           //pegando 6 numeros
  repita                          
    ok:=falso                     
    escreva("Digite o",i,"º numero ")
    leia(num)                     // pega um número
    para j de 1 ate 6 faca       
      se vetor_6[j] = num ENTÃO  
        ok:=verdadeiro            
        escreval("Você Já Inseriu Esse Número") 
        interrompa                
      fimse
    fimpara
  ate ok = falso                 
  vetor_6[i] := num               
fimpara

//verificação de acertos entre os vetores
contador:=0                               
para j de 1 ate 6 faca                 
  para k de 1 ate 6 faca                
    se vetor_6_1[j] = vetor_6[k] ENTÃO 
      contador := contador + 1            
      interrompa                          
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos

//verificação de acertos entre os vetores
contador:=0                               
para j de 1 ate 6 faca                 
  para k de 1 ate 6 faca                
    se vetor_6_2[j] = vetor_6[k] ENTÃO 
      contador := contador + 1            
      interrompa                          
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0                               
para j de 1 ate 6 faca                  
  para k de 1 ate 6 faca                 
    se vetor_6_3[j] = vetor_6[k] ENTÃO 
      contador := contador + 1            
      interrompa                          
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos

//verificação de acertos entre os vetores
contador:=0                               
para j de 1 ate 6 faca                  
  para k de 1 ate 6 faca                 
    se vetor_6_4[j] = vetor_6[k] ENTÃO 
      contador := contador + 1            
      interrompa                          
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0                               
para j de 1 ate 6 faca                  
  para k de 1 ate 6 faca                 
    se vetor_6_5[j] = vetor_6[k] ENTÃO 
      contador := contador + 1            
      interrompa                          
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0                              
para j de 1 ate 6 faca                  
  para k de 1 ate 6 faca                  
    se vetor_6_6[j] = vetor_6[k] ENTÃO 
      contador := contador + 1            
      interrompa                          
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0                               
para j de 1 ate 6 faca                  
  para k de 1 ate 6 faca                 
    se vetor_6_7[j] = vetor_6[k] ENTÃO 
      contador := contador + 1            
      interrompa                         
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0                               
para j de 1 ate 6 faca                  
  para k de 1 ate 6 faca                 
    se vetor_6_8[j] = vetor_6[k] ENTÃO 
      contador := contador + 1            
      interrompa                          
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0                               
para j de 1 ate 6 faca                  
  para k de 1 ate 6 faca                
    se vetor_6_9[j] = vetor_6[k] ENTÃO 
      contador := contador + 1            
      interrompa                          
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0                               
para j de 1 ate 6 faca                  
  para k de 1 ate 6 faca                 
    se vetor_6_10[j] = vetor_6[k] ENTÃO 
      contador := contador + 1            
      interrompa                          
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos

fimalgoritmo

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

@Vengefull, antes de converter para outra linguagem, sugiro reorganizar o código. Por exemplo, você não precisa de um vetor para cada conjunto de 6:

48 minutos atrás, Vengefull disse:

   vetor_6_1 :vetor [1..6] de inteiro
   vetor_6_2 :vetor [1..6] de inteiro
   vetor_6_3 :vetor [1..6] de inteiro
   vetor_6_4 :vetor [1..6] de inteiro
   vetor_6_5 :vetor [1..6] de inteiro
   vetor_6_6 :vetor [1..6] de inteiro
   vetor_6_7 :vetor [1..6] de inteiro
   vetor_6_8 :vetor [1..6] de inteiro
   vetor_6_9 :vetor [1..6] de inteiro
   vetor_6_10:vetor [1..6] de inteiro

 

Use uma matriz (vetor de 2 coordenadas / vetor de vetor). A relação poderia ficar algo assim:

   vetor_60 :vetor [1..60] de inteiro
   vetor_6  :vetor [1.. 6] de inteiro
   vetores_6:vetor [1..10,1..6] de inteiro

 

Daí você usa um para dentro do outro para percorrer a matriz. Um indo de 1 a 10 (para cada um dos vetores) e outro de 1 a 6 (para uma das posições de cada vetor).

 

Vai simplificar bastante o código... Esse seu tem muita coisa repetida sem necessidade.

 

 

Posteriormente outros pontos podem ser verificar...

 

 

Qualquer dúvida é só perguntar.

 

No aguardo.

 

 

 

 

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, obrigado pela ajuda e resposta teria alguns exemplos desses dois para um dentro do outro em VisualG e C++ ?

realmente o que  eu tava buscando era isso que você disse limpa bastante o código mais a duvida e como fazer, voltei as aulas

hoje, e quero começar o C/C++ mais trabalhando nessa mesma ideia depois partir para coisa mais grandes como sockets,servidor cliente, entre outras linguagem como Java e C# 

e minha concentração e no que disse aprender a organizar o código para que fique mais limpo e legível aprender

esses macete  me ajude com exemplos desse dois para dentro um do outro em visualG e em C++ 

e se possível exemplos de como guardar em modo texto realmente não tenho cabeça ainda para criar isso 

sou iniciante apenas adaptei algumas funçoes desse codigo para fazer da forma que queria.

obrigado pela ajuda.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

33 minutos atrás, Vengefull disse:

Boa noite, obrigado pela ajuda e resposta teria alguns exemplos desses dois para um dentro do outro em VisualG e C++ ?

realmente o que  eu tava buscando era isso que você disse limpa bastante o código mais a duvida e como fazer, voltei as aulas

hoje, e quero começar o C/C++ mais trabalhando nessa mesma ideia depois partir para coisa mais grandes como sockets,servidor cliente, entre outras linguagem como Java e C# 

e minha concentração e no que disse aprender a organizar o código para que fique mais limpo e legível aprender

esses macete  me ajude com exemplos desse dois para dentro um do outro em visualG e em C++ 

e se possível exemplos de como guardar em modo texto realmente não tenho cabeça ainda para criar isso 

sou iniciante apenas adaptei algumas funçoes desse codigo para fazer da forma que queria.

obrigado pela ajuda.

 

 

Calma lá!. Não dá para aprender Visualg e C++ ao mesmo tempo. Uma coisa de cada vez. Como você já tem uma base no Visualg, fique nele e assimile mais sobre "técnicas de programação". Essas técnicas são universais!!!

 

Você não vai "perder tempo", apenas vai utilizar uma plataforma já "conhecida" e também que foi proposta para ser "mais amigável" (no mínimo no sentido de ser em Português).

 

 

 

Então, em relação ao exemplo, veja:

 

Para acessar cada vetor, você está usando, por exemplo:

8 horas atrás, Vengefull disse:

se vetor_6_1[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado

se vetor_6_2[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado

 

 

Passaria a usar algo como:

se vetores_6[1,j] = vetor_60[p] ENTÃO //se no vetor já haver o numero gerado
se vetores_6[2,j] = vetor_60[p] ENTÃO //se no vetor já haver o numero gerado

 

Percebe? a primeira coordenada é o número do vetor, a segunda será da posição nesse vetor. Em vez de ter X vetores diferentes, você terá apenas um vetor de vetores (matriz). É exatamente a mesma coisa que um vetor de variáveis... (apenas que essas "variáveis" são vetores :))

 

Então, desse jeito apenas estará substituindo os vetores individuais por uma matriz, ou seja, continuaria repetindo os trechos que tratam desses vetores, correto?  Para simplificar o trecho, usaria outro para para controlar essa posição. Ex.:

//sortear 6 aleatorio
para numJogo de 1 ate 10 faca


   se vetores_6[numJogo,j] = vetor_60[p] ENTÃO //se no vetor já haver o numero gerado


fimPara

Aí só precisará ter um parte... pois a cada loop vai para o "próximo vetor'..

 

 

***

 

Qualquer dúvida é só perguntar.

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde tentei fazer não consegui e me perdi totalmente na lógica por que mudou totalmente o código olha como ficou

da erro de fimalgoritmo sendo que no final esta colocado coloquei as variáveis e nada 

 

Código:

Spoiler

algoritmo "Algoritmo exercicio Mega Sena "
var
  vetor_60 :vetor [1..60] de inteiro
  vetor_6   :vetor [1..6]  de inteiro
  vetores_6:vetor [1..10,1..6] de inteiro



   p,num,contador,k       :inteiro  //auxiliar para posicionar o vetor
   i,j,x,aux      :inteiro  //auxiliar para percorrer o vetor
   OK      :logico   //flag para verificar se a etapa foi realizada com sucesso
   excluir :inteiro  //número a ser excluído do vetor
   aguardar:caracter //variável criada apenas para aguardar um ENTER na interação com o usuário






Inicio
MudaCor("Preto","Frente") --> caracter Azul
MudaCor("Branco","Fundos") --> fundo branco
//gera os 60 números do vetor inicial
escreval("GERANDO OS 60 NÚMEROS INICIAIS...")
para p de 1 ate 60 faca
   vetor_60[p]:=p
fimpara
escreval("Tecle Enter")
leia(aguardar)
escreval("NÚMEROS GERADOS COM SUCESSO!")

//exibe os 60 números gerados
escreval()
escreval("Aqui estão os 60 números iniciais")
p:=1
para i de 1 ate 10 faca //cada linha
   para j de 1 ate 6 faca //cada coluna
      escreva(vetor_60[p]:2," - ")
      p:=p+1
   fimpara
   escreval//para pular para a linha de baixo
fimpara


escreval()
escreval("REMOVENDO 6 NÚMEROS DO VETOR INICIAL...")
para i de 1 ate 6 faca
   repita
      OK:=verdadeiro //inicializa a flag como OK
      escreva("Digite o ",i:2," número de 1 a 60 para deletar: ")

      leia(excluir)
      se (excluir<1) ou (excluir>60) ENTÃO
         escreval("Só pode ser número de 1 a 60")
         OK:=falso //marca como inválido
      senao
         se vetor_60[excluir]=0 ENTÃO //se posição já está removida
            escreval("Esse número ja foi removido, escolha outro")
            OK:=falso //marca como inválido
         senao
            vetor_60[excluir]:=0 //remove o número do vetor
         fimse
      fimse
   ate OK
fimpara
escreval("NÚMEROS REMOVIDOS COM SUCESSO")
escreval()
escreval("Aqui estão os 6 números removidos")
para p de 1 ate 60 faca
   se vetor_60[p]=0 ENTÃO //se tiver zero ENTÃO o número foi removido
      escreva(p:2," - ") //exibe a posição do número (que representa o próprio número)
   fimse
fimpara
escreval()
escreval("Tecle Enter")
leia(aguardar)


escreval()
escreval("Aqui estão os 54 números que sobraram")
p:=1
para i de 1 ate 10 faca
para j de 1 ate 6 faca
      se vetor_60[p] <> 0 ENTÃO
         escreva(vetor_60[p]:2," - ")
      senao
         escreva("  "," - ")
      fimse
      p:=p+1
   fimpara
   escreval()
fimpara
escreval("Tecle Enter")
leia(aguardar)


// sortear 6 aleatorio
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca            // serão 6 números
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 6 faca//
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetores_6[1,j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
	se vetores_6[2,j] = vetor_60[p] ENTÃO
	se vetores_6[3,j] = vetor_60[p] ENTÃO
	se vetores_6[4,j] = vetor_60[p] ENTÃO
	se vetores_6[5,j] = vetor_60[p] ENTÃO
	se vetores_6[6,j] = vetor_60[p] ENTÃO
	se vetores_6[7,j] = vetor_60[p] ENTÃO
	se vetores_6[8,j] = vetor_60[p] ENTÃO
	se vetores_6[9,j] = vetor_60[p] ENTÃO
	se vetores_6[10,j] = vetor_60[p] ENTÃO
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse?
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_6_1[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetor_6_1[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara








para i de 1 ate 6 faca           //pegando 6 numeros
  repita
    ok:=falso
    escreva("Digite o",i,"º numero ")
    leia(num)                     // pega um número
    para j de 1 ate 6 faca
      se vetor_6[j] = num ENTÃO
        ok:=verdadeiro
        escreval("Você Já Inseriu Esse Número")
        interrompa
      fimse
    fimpara
  ate ok = falso
  vetor_6[i] := num
fimpara

//verificação de acertos entre os vetores
contador:=0
para j de 1 ate 6 faca
  para k de 1 ate 6 faca
    se vetor_6_1[j] = vetor_6[k] ENTÃO
      contador := contador + 1
      interrompa
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos

//verificação de acertos entre os vetores
contador:=0
para j de 1 ate 6 faca
  para k de 1 ate 6 faca
    se vetor_6_2[j] = vetor_6[k] ENTÃO
      contador := contador + 1
      interrompa
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0
para j de 1 ate 6 faca
  para k de 1 ate 6 faca
    se vetor_6_3[j] = vetor_6[k] ENTÃO
      contador := contador + 1
      interrompa
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos

//verificação de acertos entre os vetores
contador:=0
para j de 1 ate 6 faca
  para k de 1 ate 6 faca
    se vetor_6_4[j] = vetor_6[k] ENTÃO
      contador := contador + 1
      interrompa
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0
para j de 1 ate 6 faca
  para k de 1 ate 6 faca
    se vetor_6_5[j] = vetor_6[k] ENTÃO
      contador := contador + 1
      interrompa
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0
para j de 1 ate 6 faca
  para k de 1 ate 6 faca
    se vetor_6_6[j] = vetor_6[k] ENTÃO
      contador := contador + 1
      interrompa
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0
para j de 1 ate 6 faca
  para k de 1 ate 6 faca
    se vetor_6_7[j] = vetor_6[k] ENTÃO
      contador := contador + 1
      interrompa
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0
para j de 1 ate 6 faca
  para k de 1 ate 6 faca
    se vetor_6_8[j] = vetor_6[k] ENTÃO
      contador := contador + 1
      interrompa
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0
para j de 1 ate 6 faca
  para k de 1 ate 6 faca
    se vetor_6_9[j] = vetor_6[k] ENTÃO
      contador := contador + 1
      interrompa
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos


//verificação de acertos entre os vetores
contador:=0
para j de 1 ate 6 faca
  para k de 1 ate 6 faca
    se vetor_6_10[j] = vetor_6[k] ENTÃO
      contador := contador + 1
      interrompa
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos
fimalgoritmo

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

1#

4 horas atrás, Vengefull disse:

Boa tarde tentei fazer não consegui e me perdi totalmente na lógica por que mudou totalmente o código olha como ficou

da erro de fimalgoritmo sendo que no final esta colocado coloquei as variáveis e nada 

Inicialmente a lógica é exatamente a mesma. Apenas iria mudar como citado:

 

23 horas atrás, Simon Viegas disse:

Para acessar cada vetor, você está usando, por exemplo:

Em 20/10/2018 às 10:37, Vengefull disse:


se vetor_6_1[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado


se vetor_6_2[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado

 

 

Passaria a usar algo como:


se vetores_6[1,j] = vetor_60[p] ENTÃO //se no vetor já haver o numero gerado

se vetores_6[2,j] = vetor_60[p] ENTÃO //se no vetor já haver o numero gerado

 

No resto nada mudaria!

 

Ex.:

//sortear 6 aleatórios
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca //serão 6 números
  repita //repite se precisar
    ok:=VERDADEIRO
    p:=Randi(60)+1 //gera um número aleatorio
    se vetor_60[p]=0 ENTAO //se numero foi deletado
      ok:=FALSO
    fimSe
    para j de 1 ate 6 faca
      se ok=VERDADEIRO ENTÃO //se o número não houver sido deletado
        se vetores_6[1,j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso//b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimSe
      fimSe
    fimPara
    se ok = verdadeiro ENTÃO
      vetores_6[1,i]:=vetor_60[p] //armazena o numero gerado
    fimSe
  ate ok
fimPara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")

 

Alguma dúvida até aqui?

 

 

 

1.2#

Complementando:

 

Antes você tinha:

   vetor_6_1 :vetor [1..6] de inteiro
   vetor_6_2 :vetor [1..6] de inteiro
   vetor_6_3 :vetor [1..6] de inteiro
   vetor_6_4 :vetor [1..6] de inteiro
   vetor_6_5 :vetor [1..6] de inteiro
   vetor_6_6 :vetor [1..6] de inteiro
   vetor_6_7 :vetor [1..6] de inteiro
   vetor_6_8 :vetor [1..6] de inteiro
   vetor_6_9 :vetor [1..6] de inteiro
   vetor_6_10 :vetor [1..6] de inteiro

Com a mudança teria:

  vetores_6:vetor [1..10,1..6] de inteiro

Ou seja "trocou 10 variáveis (que por uma acaso são vetores) por apenas um vetor de 10 posições".  É análogo ao que acontece com:

 vetor_60 :vetor [1..60] de inteiro

Que está usando "um vetor de 60 posições, em vez de ter uma sequência 60 variáveis". Entende? porque você não usou numero1, numero2, numero3... etc?  É a mesma coisa...

 

Então, com o vetor você consegue ter essa mesma sequência, só que utilizando um índice para cada um... daí podendo utilizar um laço de repetição (para) para acessar cada uma das posições.

 

 

 

2#

Pronto. A sugestão a seguinte:

- Coloque para gerar apenas um vetor, que no caso seria o vetores_6[1, ]. E posta o código aqui.

- Posteriormente vai fazer gerar 2 vetor2, mas em vez de copiar tudo e só mudar de de 1 para 2, vai usar uma variável para controlar esse índice, como vetores_6[numVetor, ].

 

 

 

***

 

No aguardo.

 

 

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde, muito obrigado pela ajuda e resposta eu tentei fazer algo como me disse porém ele só funciona com apenas o vetores_6[1,j] agora se tentar colocar os outros vetores que no caso seria 2,3,4,5 não funciona da erro de logica

eu tentei fazer o mesmo para imprimir e nada to fazendo tudo errado olha  as duas versões que fiz a que funciona e a que não funciona.

estou confuso me ajude por favor

o que funcionou ao testar seu código com seu exemplo

algoritmo "Algoritmo exercicio Mega Sena "
var
  vetor_60 :vetor [1..60] de inteiro
  vetor_6   :vetor [1..6]  de inteiro
  vetores_6:vetor [1..10,1..6] de inteiro



   p,num,contador,k       :inteiro  //auxiliar para posicionar o vetor
   i,j,x,aux      :inteiro  //auxiliar para percorrer o vetor
   OK      :logico   //flag para verificar se a etapa foi realizada com sucesso
   excluir :inteiro  //número a ser excluído do vetor
   aguardar:caracter //variável criada apenas para aguardar um ENTER na interação com o usuário






Inicio
MudaCor("Preto","Frente") --> caracter Azul
MudaCor("Branco","Fundos") --> fundo branco
//gera os 60 números do vetor inicial
escreval("GERANDO OS 60 NÚMEROS INICIAIS...")
para p de 1 ate 60 faca
   vetor_60[p]:=p
fimpara
escreval("Tecle Enter")
leia(aguardar)
escreval("NÚMEROS GERADOS COM SUCESSO!")

//exibe os 60 números gerados
escreval()
escreval("Aqui estão os 60 números iniciais")
p:=1
para i de 1 ate 10 faca //cada linha
   para j de 1 ate 6 faca //cada coluna
      escreva(vetor_60[p]:2," - ")
      p:=p+1
   fimpara
   escreval//para pular para a linha de baixo
fimpara

escreval
//sortear 6 aleatórios
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca //serão 6 números
  repita //repite se precisar
    ok:=VERDADEIRO
    p:=Randi(60)+1 //gera um número aleatorio
    se vetor_60[p]=0 ENTAO //se numero foi deletado
      ok:=FALSO
    fimSe
    para j de 1 ate 6 faca
      se ok=VERDADEIRO ENTÃO //se o número não houver sido deletado
        se vetores_6[1,j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso//b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimSe
      fimSe
    fimPara
    se ok = verdadeiro ENTÃO
      vetores_6[1,i]:=vetor_60[p] //armazena o numero gerado
    fimSe
  ate ok
fimPara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
escreval
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetores_6[1,p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara
fimalgoritmo

 

e esse outro código foi tentando colocar para os 10 vetores que da erro

 

 

algoritmo "Algoritmo exercicio Mega Sena "
var
  vetor_60 :vetor [1..60] de inteiro
  vetor_6   :vetor [1..6]  de inteiro
  vetores_6:vetor [1..10,1..6] de inteiro



   p,num,contador,k       :inteiro  //auxiliar para posicionar o vetor
   i,j,x,aux      :inteiro  //auxiliar para percorrer o vetor
   OK      :logico   //flag para verificar se a etapa foi realizada com sucesso
   excluir :inteiro  //número a ser excluído do vetor
   aguardar:caracter //variável criada apenas para aguardar um ENTER na interação com o usuário






Inicio
MudaCor("Preto","Frente") --> caracter Azul
MudaCor("Branco","Fundos") --> fundo branco
//gera os 60 números do vetor inicial
escreval("GERANDO OS 60 NÚMEROS INICIAIS...")
para p de 1 ate 60 faca
   vetor_60[p]:=p
fimpara
escreval("Tecle Enter")
leia(aguardar)
escreval("NÚMEROS GERADOS COM SUCESSO!")

//exibe os 60 números gerados
escreval()
escreval("Aqui estão os 60 números iniciais")
p:=1
para i de 1 ate 10 faca //cada linha
   para j de 1 ate 6 faca //cada coluna
      escreva(vetor_60[p]:2," - ")
      p:=p+1
   fimpara
   escreval//para pular para a linha de baixo
fimpara



//sortear 6 aleatórios
escreval("Vamos Escolher Aleatoriamente Os Primeiros 6 Números Dos 60")
para i de 1 ate 6 faca //serão 6 números
  repita //repite se precisar
    ok:=VERDADEIRO
    p:=Randi(60)+1 //gera um número aleatorio
    se vetor_60[p]=0 ENTAO //se numero foi deletado
      ok:=FALSO
    fimSe
    para j de 1 ate 6 faca
      se ok=VERDADEIRO ENTÃO //se o número não houver sido deletado
        se vetores_6[1,2,3,4,5,6,7,8,9,10,j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso//b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimSe
      fimSe
    fimPara
    se ok = verdadeiro ENTÃO
      vetores_6[1,2,3,4,5,6,7,8,9,10,i]:=vetor_60[p] //armazena o numero gerado
    fimSe
  ate ok
fimPara
escreval("Os Primeiros 6 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 6 Números Gerados Aleatórios")
p:=1
para i de 1 ate 1 faca
para j de 1 ate 6 faca
    escreva(vetores_6[1,2,3,4,5,6,7,8,9,10,p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara







para i de 1 ate 6 faca           //pegando 6 numeros
  repita
    ok:=falso
    escreva("Digite o",i,"º numero ")
    leia(num)                     // pega um número
    para j de 1 ate 6 faca
      se vetores_6[1,2,3,4,5,6,7,8,9,10,j] = num ENTÃO
        ok:=verdadeiro
        escreval("Você Já Inseriu Esse Número")
        interrompa
      fimse
    fimpara
  ate ok = falso
  vetores_6[1,2,3,4,5,6,7,8,9,10,i] := num
fimpara

//verificação de acertos entre os vetores
contador:=0
para j de 1 ate 6 faca
  para k de 1 ate 6 faca
    se vetores_6[1,2,3,4,5,6,7,8,9,10,j] = vetor_6[k] ENTÃO
      contador := contador + 1
      interrompa
    fimse
  fimpara
fimpara
escreval("Caro usuário Você Acertou ",contador," Números . . . !")// mostra quantos acertos
fimalgoritmo

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×