Ir ao conteúdo

VisualG Algoritmo para simular um sorteio de 3 números em uma cartela de 30 números


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Crie um algoritmo para simular um sorteio de 3 números em uma cartela de 30 números. Para tanto, monte a cartela usando uma matriz 6x5. Use repetições para alimentar a matriz sem a intervenção do usuário, com números inteiros, sequenciais de 1 a 30. Após a montagem da matriz, imprima a mesma. Leia um vetor de 3 números inteiros informados pelo usuário. Garanta que os números lidos pelo usuário não sejam menores ou iguais a zero e também não se repitam dentro do vetor. Após a leitura do vetor, faça uma busca dos números lidos no vetor na matriz (cartela) montada, imprimindo quais números do vetor foram encontrados na cartela.

 

**Nessa atividade estou com dificuldade para que na alimentação dos números na sequência sem a intervenção do usuário.

 

 

Var
   numero: vetor [1..6,1..5] de inteiro
   l,c: inteiro

Inicio

   para l de 1 ate 6 faca
      para c de 1 ate 5 faca
       numero[l,c]<- numero[l,c]+1
       leia(numero[l,c])
      fimpara
   fimpara
Fimalgoritmo

Se puderem me ajudar, Agradeço!!

  • Curtir 1
  • Obrigado 1
  • Solução
Postado

@jonas steindorff gomes    para inserir dados na matriz sem precisar digitar nada , você pode usar dois loop e um contador assim  :

var
  contador,j,i : inteiro
inicio
para j de 1 ate 6 faca
  para i de 1 ate 5 faca
    contador := contador + 1
    vetor[j,i] := contador
  fimpar
fimpara
fimalgoritmo     

 

  • Curtir 2
  • Membro VIP
Postado
15 horas atrás, jonas steindorff gomes disse:

monte a cartela usando uma matriz 6x5. Use repetições para alimentar a matriz sem a intervenção do usuário, com números inteiros, sequenciais de 1 a 30.

 

Segue um esboço baseado no código do @devair1010:

algoritmo "FCdH
var
   numeros: vetor [1..6, 1..5] de inteiro
   l, c: inteiro
   aux :inteiro

inicio
   aux <- 1
   para l de 1 ate 6 faca
      para c de 1 ate 5 faca
         numeros[l, c] <- aux
         aux <- aux + 1
      fimPara
   fimPara

 

 

15 horas atrás, jonas steindorff gomes disse:

Após a montagem da matriz, imprima a mesma ela.

 

   para l de 1 ate 6 faca
      para c de 1 ate 5 faca
         escreva (numeros[l, c]:3)
     fimPara
     escreval("")
   fimPara

 

  • Curtir 2
Postado

Consegui depois da resposta do professor consegui entender como é o exercício, porém, agora na entrada de dados para realizar a busca não estou conseguindo fazer com que na leitura não se repita os números e nem = 0.

Var
   n: vetor [1..6,1..5] de inteiro
   busc: vetor [1..3] de inteiro
   l, c, cont, i: inteiro

Inicio
   cont<- 1
   para l de 1 ate 6 faca
      para c de 1 ate 5 faca
         n[l,c]<-cont
         se i<30 entao
            cont<- cont+1
         fimse
      fimpara
   fimpara
   escreval("")
   escreval(" Impressão da Tabela")
   para l de 1 ate 6 faca
      para c de 1 ate 5 faca
         escreva(n[l,c]:4)
      fimpara
      escreval()
   fimpara
   escreval("")
   escreval("---------------------------------------------------")
   escreval("")
   para i de 1 ate 3 faca
      escreva("Informe o", i,"º numero a ser buscado na tabela: ")
      leia (busc[i])
      enquanto (busc[i]<=0) ou (busc[2]=busc[1]) ou (busc[3]=busc[2]) ou (busc[3]=busc[1])faca
         escreva("Informe o", i,"º numero a ser buscado na tabela: ")
         leia (busc[i])
      fimenquanto
   fimpara
   para l de 1 ate 6 faca
      para c de 1 ate 5 faca
      // aqui será realizado a busca dos vetores de busca
      fimpara
   fimpara

Fimalgoritmo

 

  • Obrigado 1
Postado

@jonas steindorff gomes     seu código está bom , e para ver se tem número repetido você pode usar um loop repita e dentro dele um  loop para , que percorrerá o vetor comparando cada número digitado pelo usuário ,  e caso tenha então repete tudo de novo , e poderia ser assim  :

var
  ok  : logico
inicio
    .
    .
 //aqui o começo do seu código
    .
    .
  para i de 1 ate 3 faca
    escreva("Informe o", i,"º numero a ser buscado na tabela: ")
    repita
      ok := verdadeiro
      leia (busc[i])
      para l de 1 ate 3 faca
        se ((busc[i]=busc[l]) e (i <> l)) ou (busc[i] < 1) entao
          escreval("repetido, digite novamente !")
          ok := falso
        fimse
      fimpara
    ate ok
   fimpara
   // fazer a busca            
fimalgoritmo            

 

  • Curtir 2

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...