Ir ao conteúdo
  • Cadastre-se

Portugol Solicite que o usuário insira as dimensões de uma matriz.


Posts recomendados

Solicite que o usuário insira as dimensões de uma matriz.A seguir, solicite seus valores e imprima.

 

Não estou conseguindo inserir os valores das dimensões na matriz. Estou fazendo da seguinte maneira:
 

programa {
funcao inicio() {

inteiro la, lb, ca, cb

escreva("Insira o número de linhas da primeira matriz:")
leia(la)
escreva("Insira o número de colunas da primeira matriz:")
leia(ca)

escreva("Insira o número de linhas da segunda matriz:")
leia(lb)
escreva("Insira o número de colunas da segunda matriz:")
leia(cb)

inteiro matriza[la][ca], matrizb[lb][cb]
}
}

 

Link para o comentário
Compartilhar em outros sites

12 minutos atrás, Simon Viegas disse:

@Carlossw, Portugol Studio não aceita definição de matrizes (vetores) com variáveis. O próprio programa já informa:

 

image.png

 

Uma opção seria declarar uma matriz grande o suficiente e utilizar apenas o tamanho informado.

 

Eu perguntei sobre esse problema pra ter uma ideia de como elaborar o meu exercício da prova. Nele pede praticamente a mesma coisa, preciso solicitar as dimensões, mas não consigo pensar em uma forma de armazenar elas na matriz

 

exsag.png

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Carlossw, o enunciado é praticamente um algoritmo, ou seja: um algoritmo para criar uma algoritmo específico...

 

Qual a tua dificuldade no momento?

 

Você diz:
 

15 horas atrás, Carlossw disse:

Não estou conseguindo inserir os valores das dimensões na matriz.

 

Para esse ponto, já ficou claro que não é possível criar uma matriz utilizando variáveis para definir o tamanho da matriz?

 

Na nova postagem você já fala de outro problema:

 

14 horas atrás, Carlossw disse:

Eu perguntei sobre esse problema pra ter uma ideia de como elaborar o meu exercício da prova. Nele pede praticamente a mesma coisa, preciso solicitar as dimensões, mas não consigo pensar em uma forma de armazenar elas na matriz

 

"Como armazenar na matriz" já é outro ponto... já entendeu o ponto anterior? Percebe que não vai ter como conseguir armazenar na matriz se nem sequer a matriz está sendo criada? É preciso abstrair e entender as etapas.

 

Então, para iniciar, tente fazer algo mais simples, exemplo:

 

Crie uma matriz 3 x 2 e preencha ela com números inteiros aleatórios. Após exiba a matriz na tela.

 

Qualquer dúvida é só pesquisar na internet. Se persistir, poste o código completo atual e onde está com dúvidas.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Simon Viegas Sim, ficou claro no primeiro ponto. Estava tentando achar uma alternativa para conseguir realizar o problema.

 

Sobre o segundo que você cita, eu apenas falei errado, mas estava tentando dizer a mesma coisa, sobre como eu iria solicitar que o usuário escolhesse as dimensões e o algoritmo continuasse.

 

Felizmente acabei conseguindo com o comando para, da seguinte forma para a matriz A:

 

para (linha = 0; linha < la ; linha++)
{
  para (coluna = 0 ; coluna < ca ; coluna++)
  {
    escreva("Informe o elemento ", linha, ",", coluna, " da primeira matriz: ")
    leia(matriza[linha][coluna])
  }
}

 

Agora estou preso em outra parte na qual preciso multiplicar as duas matrizes, mas não tenho ideia de como eu vou implementar no algoritmo a multiplicação e soma dos termos correspondentes das linhas da matriz A com as colunas da matriz B.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
2 horas atrás, Carlossw disse:

Agora estou preso em outra parte na qual preciso multiplicar as duas matrizes, mas não tenho ideia de como eu vou implementar no algoritmo a multiplicação e soma dos termos correspondentes das linhas da matriz A com as colunas da matriz B.

 

A primeira coisa é entender como funciona uma multiplicação de matrizes.

 

Para facilitar os testes no algoritmo, utilize 2 matrizes quadradas 2x2... e siga lá as regras do processo de multiplicar. 

 

RESUMINDO:

  • leia as duas matrizes;
  • exiba as duas matrizes na tela.

depois:

  • crie a terceira matriz contendo o resultado da multiplicação;
  • exiba a terceira matriz na tela.

Poste o código completo do que já conseguiu fazer e caso tenha dúvidas, em qual parte.

 

Link para o comentário
Compartilhar em outros sites

@Simon Viegas Obrigado pela atenção!

Então, eu consigo compreender a ideia da multiplicação de matrizes: Preciso multiplicar e somar os termos correspondentes das linhas da primeira matriz com as colunas da segunda. Só que eu não consigo pensar em quais comandos utilizar para implementar isso no algoritmo, entende?

Aqui vai o que fiz até agora.

Eu sei que a parte de "//Multiplicando as matrizes e imprimindo" está errada. Mas só foi uma ideia que tive na qual não deu certo.

Se puder me dar uma dica de como seguir para corrigir isso, agradeço muito.

 

programa {
	funcao inicio() {
		inteiro la, lb, ca, cb, linha = 0, coluna = 0
		real matriza[100][100], matrizb[100][100], matrizc[100][100]
		
		escreva("Insira o número de linhas da primeira matriz:")
		leia(la)
		escreva("Insira o número de colunas da primeira matriz:")
		leia(ca)		
		escreva("Insira o número de linhas da segunda matriz:")
		leia(lb)
		escreva("Insira o número de colunas da segunda matriz:")
		leia(cb)
		
		se (ca != lb ou la > 100 ou lb > 100 ou ca > 100 ou cb> 100)
			escreva("Não é possível multiplicar essas matrizes")		
		senao
		{
			para (linha = 0; linha < la ; linha++)
			{
				para (coluna = 0 ; coluna < ca ; coluna++)
				{
					escreva("Informe o elemento ",linha,",", coluna," da primeira matriz: ")
					leia(matriza[linha][coluna])
				}
			}
			
			para (linha = 0; linha < lb ; linha++)
			{
				para (coluna = 0 ; coluna < cb ; coluna++)
				{
					escreva("Informe o elemento ",linha,",",coluna," da segunda matriz: ")
					leia(matrizb[linha][coluna])
				}
			}
				
			//IMPRIMIR NA TELA			
			escreva("Matriz A:","\n")
			para (linha = 0; linha < la ; linha++)
			{
				para (coluna = 0 ; coluna < ca ; coluna++)
				{
					escreva(matriza[linha][coluna]," ")
				}
				escreva("\n")
			}
			
			escreva("Matriz B:","\n")
			para (linha = 0; linha < lb ; linha++)
			{
				para (coluna = 0 ; coluna < cb ; coluna++)
				{
					escreva(matrizb[linha][coluna]," ")
				}
				escreva("\n")
			}
			
			//MULTIPLICANDO E IMPRIMINDO			
			para (linha = 0; linha < lb ; linha++)
			{
				para (coluna = 0 ; coluna < cb ; coluna++)
				{
					matrizc[linha][coluna] = matriza[linha][coluna] * matrizb[linha][coluna]
				}
			}
			
			escreva("A multiplicação das matrizes é:","\n")
			para (linha = 0; linha < la ; linha++)
			{
				para (coluna = 0 ; coluna < cb ; coluna++)
				{
					escreva(matrizc[linha][coluna]," ")
				}
				escreva("\n")
			}
		}
	}
}

 

Link para o comentário
Compartilhar em outros sites

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!