Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Algoritmo documentado como EXEMPLO "Diagonal Principal" não está funcionando. #273

Open
GabrielRCL opened this issue Aug 16, 2024 · 0 comments
Labels

Comments

@GabrielRCL
Copy link

GabrielRCL commented Aug 16, 2024

Descrição do problema

Ao clicar em "Abrir Exemplos" > "Vetores e Matrizes" > Diagonal Principal

o código que é aberto está com um problema na linha 70, a função preenche(caracter &matriz[][]) está recebendo um ponteiro duplo (ponteiro do ponteiro que aponta para o endereço de memoria que se inicia o array/matriz) e por isso não está funcionando corretamente o algoritmo.

para corrigir o problema é só remover o caractere &, para que não haja um ponteiro duplo, pois acredito que a variavel matriz[][] já é um ponteiro que aponta para o endereço de memoria que se inicia o array/matriz, dessa forma: função preenche(caracter matriz[][]) é a linha de comando correta

https://gyazo.com/2785141a02a935a8aac6966328473379

Código

/* CLIQUE NO SINAL DE "+", À ESQUERDA, PARA EXIBIR A DESCRIÇÃO DO EXEMPLO
 *  
 * Copyright (C) 2014 - UNIVALI - Universidade do Vale do Itajaí
 * 
 * Este arquivo de código fonte é livre para utilização, cópia e/ou modificação
 * desde que este cabeçalho, contendo os direitos autorais e a descrição do programa, 
 * seja mantido.
 * 
 * Se tiver dificuldade em compreender este exemplo, acesse as vídeoaulas do Portugol 
 * Studio para auxiliá-lo:
 * 
 * https://www.youtube.com/watch?v=K02TnB3IGnQ&list=PLb9yvNDCid3jQAEbNoPHtPR0SWwmRSM-t
 * 
 * Descrição:
 * 
 * 	Este exemplo ilustra o uso das matrizes na linguagem Portugol criando uma matriz 
 * 	e preenchendo sua diagonal principal.
 * 	
 * 	As matrizes nada mais são do que vetores de duas dimensões (bidimensionais). Em 
 * 	outras  palavras, a matriz é um vetor aonde cada uma de suas posições (colunas) 
 * 	armazena um outro vetor (linhas).
 *
 *   Exemplo de vetor:
 *   
 *   [1, 2, 3]
 *   
 *   Exemplo de matriz:
 *   
 *   [1][2][3]
 *   [4][5][6]
 *   [7][8][9]
 * 	
 * 	Na matemática, a diagonal principal de uma matriz é o conjunto dos elementos em que 
 * 	a linha e a coluna do elemento são iguais. Assim, a diagonal principal parte do canto
 * 	superior esquerdo (posição 0,0) e segue para a direita e para abaixo até encontrar o
 * 	lado direito ou o lado inferior da matriz. No exemplo abaixo, a diagonal principal é
 * 	representada pelo caracter '*':
 * 	
 * 	[*][ ][ ][ ]
 * 	[ ][*][ ][ ]
 * 	[ ][ ][*][ ]
 * 	[ ][ ][ ][*]
 * 	
 * Autores:
 * 
 * 	Giordana Maria da Costa Valle
 * 	Carlos Alexandre Krueger
 * 	
 * Data: 01/06/2013
 */

programa
{
	inclua biblioteca Util --> u
	
	funcao inicio()
	{
		// Define as dimensões (linhas e colunas) da matriz
		const inteiro TAMANHO = 5

		// Cria a matriz
		caracter matriz[TAMANHO][TAMANHO] 

		preenche(matriz)
		exibe(matriz)
	}

	// Preenche a diagonal principal da matriz
	funcao preenche(caracter &matriz[][])
	{
		para (inteiro linha = 0; linha < u.numero_linhas(matriz); linha++)
		{
			para (inteiro coluna = 0; coluna < u.numero_colunas(matriz); coluna++)
			{
				se (linha == coluna)
				{
					matriz[linha][coluna] = '*'
				}
				senao
				{
					matriz[linha][coluna] = ' '
				}
			}
		}		
	}

	// Percorre e exibe a matriz
	funcao exibe(caracter matriz[][])
	{
		para (inteiro linha = 0; linha < u.numero_linhas(matriz); linha++)
		{
			para (inteiro coluna = 0; coluna < u.numero_colunas(matriz); coluna++)
			{
				escreva("[", matriz[linha][coluna], "]")
			}
			
			escreva("\n")
		}
	}
}

Comentários adicionais

na linha 70, troque funcao preenche(caracter &matriz[][]) por funcao preenche(caracter matriz[][]) para corrigir o problema

@GabrielRCL GabrielRCL added the bug label Aug 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant