UNIVALI-LITE / Portugol-Studio

Ambiente de Programação didático para a linguagem Portugol 2.0
http://univali-lite.github.io/Portugol-Studio/
GNU Lesser General Public License v3.0
692 stars 218 forks source link

Sugestão de novas funções para a biblioteca Util e manipulação de vetores/matrizes #716

Open Mateus-Hirt opened 5 years ago

Mateus-Hirt commented 5 years ago
Função Parâmetros Retorno Descrição
adicionar_elemento_vetor(* vetor, * valor) * vetor: o vetor em questão; * valor: o valor do elemento a ser adicionado - Adiciona um novo elemento no final do vetor especificado
adicionar_elemento_matriz(* matriz, * valor) * matriz: a matriz em questão; * valor: o valor do elemento a ser adicionado - Adiciona um novo elemento no final da matriz especificada
remover_ultima_posicao_vetor(* vetor) * vetor: o vetor em questão - Remove a última posição do vetor especificado
remover_ultima_posicao_matriz(* matriz) * matriz: a matriz em questão - Remove a última posição da matriz especificada
remover_elemento_vetor(* vetor, inteiro elemento) * vetor: o vetor em questão; inteiro elemento: a posição do elemento a ser removido - Remove um determinado elemento de um vetor
remover_elemento_matriz(* matriz, inteiro elemento) * matriz: a matriz em questão; inteiro elemento: a posição do elemento a ser removido - Remove um determinado elemento de uma matriz
organizar_vetor_em_ordem_alfabetica(cadeia vetor) cadeia vetor: o vetor a ser organizado O vetor organizado em ordem alfabética Organiza o vetor em ordem alfabética
organizar_vetor_em_ordem_numerica(inteiro vetor, logico crescente) inteiro vetor: o vetor a ser organizado; logico crescente: se verdadeiro, organiza o vetor em ordem crescente, se falso, organiza o vetor em ordem decrescente O vetor organizado em ordem numérica Organiza o vetor em ordem numérica crescente ou decrescente
substituir_um_elemento_vetor(* vetor, inteiro elemento, * valor) * vetor: o vetor em questão; inteiro elemento: a posição do elemento a ser substituído; * valor: o novo valor do elemento O vetor com o elemento substituído Substitui o valor de um elemento de um vetor

Algumas dessas funções têm vetores/matrizes como retorno, tendo a necessidade de vetores/matrizes poderem receber o valor de outros vetores/matrizes.

Ex 1: inteiro vetor_1[3] = {5, 10, 15} inteiro vetor_2[] = vetor_1 // O vetor_2 recebeu os valores do vetor 1. Logo, vetor_2[] = {5, 10, 15}

Ex 2: inteiro vetor[3] = {5, 10, 15} inteiro matriz[3][3] = {vetor, {1, 2, 3}, {4, 5, 6}} // A matriz recebe o vetor como um de seus elementos. Logo, matriz[3][3] = {{5, 10, 15}, {1, 2, 3}, {4, 5, 6}}


Também seria interessante a possibilidade de escrever um vetor ou uma matriz no console - sem precisar de laços para tal.

Ex: inteiro vetor[3] = {5, 10, 15} escreva("O valor do vetor é: " + vetor) // O valor do vetor é: {5, 10, 15}

noschang commented 5 years ago

@Mateus-Hirt, suas sugestões são muito interessantes. Acredito que algumas delas já podemos até implementar, outras precisamos discutir com mais calma.

Veja que o Portugol Studio tem o objetivo de ser o mais didático possível, por isso, algumas funcionalidades não são acrescentadas porque consideramos que podem prejudicar o aprendizado de programação.

Por exemplo, as funções para ordenar o vetor, são bem úteis, mas é interessante que os usuários sejam obrigados a implementar essas funções por conta própria, pois assim aprendem esse conceito.

Já a funcionalidade de imprimir o vetor é super legal e pode facilitar bastante sem prejudicar o aprendizado.

Vamos abrir esse assunto pra discussão e analisar com carinho. Muito obrigado!