Ir ao conteúdo

Posts recomendados

Postado

A questão é que eu tenho que montar um pseudocódigo com essa pergunta:

a) Crie uma função que preencha o tabuleiro com o [ X ] em todas as posições.
b) Crie uma função que receba os parâmetros da posição e do caracter a ser prenchido: [ E ] , [   ] ou  [ S ].
c) Crie uma função que exiba o tabuleiro.
d) No corpo principal do algoritmo, deve chamar a função para:
    - Chamar a função que vai prencher o tabuleiro com [ X ].
    - Chamar a função que vai exibir o tabuleiro.
    - Chamar a função que vai preencher todas as posições que não estejam no tabuleiro acima. Lembre, você deverá chamar a função diversas vezes. Neste ponto otimize o seu algoritmo.
    - Chamar a função que vai exibir o tabuleiro.


A letra  a) e c) eu fiz (não sei se ta certa).


Letra a):
 

algoritmo preencherTabela
    procedimento preencher(MatrizA: vetor[1..6,1..6] de caractere)
    var
      i, j: inteiro
    inicio
      para i de 1 ate 6 passo 1 faca
        para j de 1 ate 6 passo 1 faca
        matrizA[i,j]<- "X"
        fim_para
      fim_para
    fim_procedimento

 

 

 

letra c):
 

procedimento escrever(matrizA: vetor[1..6,1..6] de caractere)
var
    x,y: inteiro
inicio
    para x de 1 ate 6 passo 1 faca
        para y de 1 ate 6 passo 1 faca
        escreval("[",x,"][",y,"] = ", matrizA[x,y])
        fim_para
    fim_para
fim_procedimento

 

Se puderem me ajudar na letra B e D, ficarei grato!
 

  • Curtir 1
  • Membro VIP
Postado

@pegasoo, olá.

 

1# SOBRE AS ALÍNEAS JÁ RESPONDIDAS

Sobre:

15 horas atrás, pegasoo disse:

A letra  a) e c) eu fiz (não sei se ta certa).

 

#1.1

Em relação a lógica, me parece que está no caminho certo. Em relação a sintaxe, vai depender da pseudolinguagem que está trabalhando. Se for, por exemplo, para Visualg, precisaria de alguns ajustes. Ex.:

 

Para a a):

procedimento preencherTabuleiro()
var
   i, j: inteiro
inicio
   para i de 1 ate 6 passo 1 faca
      para j de 1 ate 6 passo 1 faca
         matrizA[i, j] <- "X"
      fimPara
   fimPara
fimProcedimento

 

Para a b):

procedimento exibirTabuleiro()
var
   i, j: inteiro
inicio
   para i de 1 ate 6 passo 1 faca
      para j de 1 ate 6 passo 1 faca
         escreval("[",i:1,",",j:1,"] = ", matrizA[i,j]:1)
      fimPara
   fimPara
fimProcedimento

Resumidamente, o Visualg NÃO sabe receber uma vetor por parâmetro, nesse caso, tem que usar um via "variável global. No caso declarando antes, ex:

var
   matrizA: vetor[1..6, 1..6] de caractere

 

 

Acho interessante ir testando o que já fez. No caso, chame essas duas funções lá no programa principal.

inicio
   preencherTabuleiro()
   exibirTabuleiro()
fimAlgoritmo

E veja se está funcionando ou não.

 

 

#1.2

Para a letra c), foi solicitado:

15 horas atrás, pegasoo disse:

c) Crie uma função que exiba o tabuleiro.

 

Da forma que você fez, está apenas exibindo os dados da matriz, mas com uma linha em cima da outra... mas o que este enunciado quer é que "exiba o tabuleiro", ou seja: seria necessário desenhar o tabuleiro, assim como escrevendo os valores de de cada "casa". Ex:

procedimento exibirTabuleiro()
var
   i, j: inteiro
inicio
   para i de 1 ate 6 passo 1 faca
      para j de 1 ate 6 passo 1 faca
         escreva (matrizA[i,j]:2)
      fimPara
      escreval("")
   fimPara

 

Faça o mesmo... teste essa exibição e veja se está exibindo corretamente.

 

obs.: adianto que não está. Nesse exemplo acima está apenas exibindo os valores das casas, faltando ainda a parte de desenhar o tabuleiro! Isso é com você! O enunciado que quer exiba o tabuleiro com os caracteres preenchidos em cada casa.

 

 

2# SOBRE AS ALÍNEAS QUE FALTAM

Sobre:

15 horas atrás, pegasoo disse:

Se puderem me ajudar na letra B e D, ficarei grato!

 

Aí ainda é com você. Vou tentar ajudar:

 

 

2.1#

Sobre:

15 horas atrás, pegasoo disse:

b) Crie uma função que receba os parâmetros da posição e do caracter a ser prenchido: [ E ] , [   ] ou  [ S ].

 

Vai no mesmo esquema... seriam 4 parâmetros: o vetor, as coordenadas onde será inserido o novo caractere e o novo caractere que vai ser inserido. Perceba que nesse enunciado fica até subentendido que o vetor não precisa ser passado por parâmetro... basta os três parâmetros:

 

A assinatura poderia ser algo como:

procedimento inserirTabuleiro(l, c :inteiro; novoCaractere:caractere)

Aí você simplesmente vai atribuir o valor do novo caractere na matriz usando as coordenadas da linha e coluna recebidas. Essa função só precisa de uma linha (além do inicio e fimProcemento, é claro).

 

 

2.2#

Sobre:

16 horas atrás, pegasoo disse:

d) No corpo principal do algoritmo, deve chamar a função para:
    - Chamar a função que vai prencher o tabuleiro com [ X ].
    - Chamar a função que vai exibir o tabuleiro.
    - Chamar a função que vai preencher todas as posições que não estejam no tabuleiro acima. Lembre, você deverá chamar a função diversas vezes. Neste ponto otimize o seu algoritmo.
    - Chamar a função que vai exibir o tabuleiro.

 

Aqui é só chamar as funções. Não tem mistério.

 

***

 

Caso queira baixar o Visualg, recomendo a versão 3.6.0.5. Segue um link:

https://baixe.net/visualg

 

Qualquer dúvida é só postar.

 

No aguardo.

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