Ir ao conteúdo

Posts recomendados

Postado

1. Monte um algoritmo para contabilizar os acertos de um determinado jogo, levando em conta a explicação a seguir: 
a.) Alimente uma matriz de ordem 10 com números aleatórios entre 1 e 100
b.) Alimente um vetor de 10 posições com números aleatórios entre 1 e 100
c.) Contabilize a pontuação de acertos
 
Ao final, exiba a matriz, o vetor e quantos acertos foram realizados.  

MAT.PNG

  • Curtir 1
Postado

@devair1010 já tentei mas está dando errado, não sei como prosseguir.

tento assim..

var

m: vetor[1..10, 1..10] de inteiro
i,j: inteiro
v: vetor[1..10] de inteiro
c:inteiro
acertos:inteiro


inicio


para i de 1 ate 10 faca
  para j de 1 ate 10 faca
    m[i,j]<- (randi(100))
  fimpara
fimpara
para c de 1 ate 10 faca
  v[c]<-(randi(100))
fimpara

acertos<-0
para c de 1 ate 10 faca
  para i de 1 ate 10 faca
    para j de 1 ate 10 faca
     se (m[i,j] = v[c] então
       acertos<- acertos + 1
       escreval(v[c])
     fimse
    fimpara
  fimpara
fimpara
 escreval(acertos)
 
fimalgoritmo

 

  • Curtir 1
Postado

@ViscMaind    seu código está quase certo você só colocou o loop para verificar o vetor antes dos  da matriz , então seu código com algumas modificações ficaria assim :     e na hora de postar use o botão   <>  que está lá na barra de ferramentas da janela de postar , para seu código ficar mais bem organizado .

Algoritmo "CONTAR ACERTOS MATRIZ"
  var
    matriz : vetor[1..10, 1..10] de inteiro
    i,j    : inteiro
    vector : vetor[1..10] de inteiro
    c      : inteiro
    acertos: inteiro
    a      : caractere
inicio
  para i de 1 ate 10 faca
    para j de 1 ate 10 faca
      matriz[i,j]<- (randi(100))
      a := numpcarac(matriz[i,j])
      se matriz[i,j] < 10 ENTÃO
        a := "0"+a
      fimse
      escreva(a," ")
    fimpara
    escreval
  fimpara
  para c de 1 ate 10 faca
    vector[c]<-(randi(100))
  fimpara
  acertos<-0
  para i de 1 ate 10 faca
    para j de 1 ate 10 faca
      para c de 1 ate 10 faca
        se matriz[i,j] = vector[c] ENTÃO
          acertos<- acertos + 1
          escreva(vector[c],"")
        fimse
      fimpara
    fimpara
  fimpara
  escreval
  escreval("Acertos ---> ",acertos)
fimalgoritmo

 

  • Obrigado 1
  • Membro VIP
Postado

 

Olá a todos.

 

@ViscMaind, segue citação:

 

12 horas atrás, ViscMaind disse:

@devair1010 já tentei mas está dando errado, não sei como prosseguir.

tento assim..

A pergunta central seria: o que está dando errado?. Você precisa entender qual erro está dando, para assim tentar achar uma solução para ele, ou se já sabe, citar para que possamos saber também e poder ajudar.

 

Veja, até o momento não sei o que "está dando errado". Entende? Então, apenas peguei o seu código e compilei... deu erro na linha 26.

     se (m[i,j] = v[c] ENTÃO

 

Era esse erro? nesse caso foi apenas um erro de sintaxe... veja que apenas esqueceu de fechar o se.

     se (m[i,j] = v[c]) ENTÃO

 

No restante o código executou normalmente. Faltando apenas alguns pequenos ajustes.

 

 

 

Alguns pontos:

 

1) FAIXA DE NÚMEROS

O enunciado é claro:

13 horas atrás, ViscMaind disse:

números aleatórios entre 1 e 100

 

Ele exige números de 1 a 100... mas no seu código não está sorteando nessa faixa. Vide como funciona o Randi() (ai você vai entender porquê está fora da faixa) e corrija.

 

 

 

2) LAYOUT DE EXIBIÇÃO

12 horas atrás, ViscMaind disse:

Reposta do algoritmo


O jogador obteve 6 acertos.
Os acertos fortam:
78
50
59
58
10
47

 

O enunciado especifica como deve ser exibido o resultado. No seu código está tudo misturado, e o número de acertos estão vindo depois dos números. Ajuste o código para exibir como está na imagem.

 

Da mesma forma, seria interessante exibir a matriz e o vetor. No código do @devair1010 tem estruturas de como pode ser feito.

 

 

 

3) NÃO VERIFICAÇÃO DE NÚMEROS REPETIDOS*

Na imagem também fica explícito que programa não deve computador números repetidos, veja por exemplo o número 50, ele só aparece como acerto uma vez. obs.: não perca tempo com esse item agora!!! essa etapa pode ser verificado mais pra frente... DEIXE O PROGRAMA ACEITANDO REPETIDOS, após corrigir os outros detalhes, volta para esse item.

 

 

 

4) VERIFICAÇÃO DOS ACERTOS

@devair1010, segue citação:

12 horas atrás, devair1010 disse:

você só colocou o loop para verificar o vetor antes dos  da matriz

 

Creio eu que essa ordem não influencia no resultado e nem na quantidade de loops. A depender poderia mudar quando for para para implementar o item 3 desta resposta.

 

Só para deixar mais claro:

12 horas atrás, devair1010 disse:

  para i de 1 ate 10 faca
    para j de 1 ate 10 faca
      para c de 1 ate 10 faca

Assim... seria algo como: "para cada posição da matriz, comparar com cada posição do vetor.

 

Já no código original:

12 horas atrás, ViscMaind disse:

para c de 1 ate 10 faca
  para i de 1 ate 10 faca
    para j de 1 ate 10 faca

Seria algo como: "para cada posição do vetor, comparar com cada posição da matriz".

 

"Dá no mesmo".

 

 

***

 

No aguardo.

 

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!