Escreva uma função que recebe como parâmetros um vetor de inteiros , onúmero de elementos dele e ponteiros para variáveis nas quais devem ser armazenados os valores e do vetor. Sua assinatura deve ser:
Passo 1
Aí beleza?! Vamos pra questão.
Essa é uma questão de função com passagem de parâmetros por ponteiro. A questão descreveu que quer uma função para encontrar os pontos máximos e mínimos de um vetor. O detalhe é que não vamos usar retorno, ao invés disso vamos receber o endereço de memória de duas variáveis que irão armazenar os máximo e mínimo.
Mas antes, vamos começar escrevendo o cabeçalho da questão.
Passo 2
Beleza. Vamos desenvolver a função , que de cara vamos escrever que nem a questão já deu pra gente.
O primeiro parâmetro é que é uma passagem por ponteiro pra um inteiro. Mas você lembra que um vetor sem chaves é um ponteiro para a primeira posição?! Então, é a mesma coisa que , é um parâmetro que recebe um ponteiro de um vetor.
O segundo parâmetro é um inteiro passado por valor que vai receber o tamanho do vetor.
O terceiro e quarto parâmetros são dois inteiros recebidos por passagem por ponteiro. Aqui vamos passar o endereço de memória de dois inteiros para guardar o resultado de máximo e mínimo do vetor.
Então vamos desenvolver o conteúdo da função:
Primeiro, vamos acessar o conteúdo apontado por e e setar esses valores para a primeira posição do vetor. Isso é importante, pois a gente não sabe quais valores estão contidos nos endereços, então, inicializando o conteúdo dos endereços com vamos ter certeza que poderemos trabalhar com eles.
Seguindo em frente, agora temos que calcular qual é o valor máximo e mínimo existente no vetor. Pra isso vamos usar um loop que inicia em zero e avança de um em um até atingir o tamanho do vetor.
Em cada iteração vamos comparar o valor atual do vetor , com o conteúdo dos endereços de memória apontados por e
Se o conteúdo de for menor que o valor atual sendo testado, então vamos atualizar o conteúdo de com o valor atual.
Se o conteúdo de for maior que o valor atual sendo testado, então vamos atualizar o conteúdo de com o valor atual.
No código fica assim:
E prontinho! A função está concluída.
Passo 3
Agora vamos criar uma para testar o nosso código.
Primeiro, vamos criar um vetor chamado preenchido com alguns valores que eu escolhi de forma aleatória.
Depois temos que criar uma variável inteira que contém o tamanho do vetor, que nesse exemplo é .
E também vamos precisar de duas variáveis e que vão ser as variáveis que vão guardar os resultados da função .
Em seguida, vamos executar a função . O detalhe é que a gente tem que lembrar é que o , e devem ser passados através de endereços de memória, pois a função está utilizando passagem por ponteiro.
Para passar o endereço de um vetor é só escrever o nome do vetor sem os colchetes. E para passar o endereço das variáveis inteiras e a gente usa o operador de endereço .
Beleza. Então, depois de executar a função, a gente tem que ver o resultado! Pra isso, a gente vai imprimir as variáveis e usando o .
Rodando o programa a gente vai ter:
E é isso! Faça testes com vetores com valores e tamanhos diferentes, pra ter certeza que deu tudo certo! Até mais, pessoal!