Exercícios Resolvidos de Ponteiros e funções

Ver Teoria

Enunciado

Escreva uma função que calcule a área de um quadrilátero. Receba a base e a altura do quadrilátero do usuário.

a) Usando um ponteiro imprima o endereço de memória da função

b) Utilize um ponteiro para executar a função.

Passo 1

Vamos que vamos, galera!

A foco da questão é fazer a gente trabalhar os conceitos básicos de ponteiro de função. Então vamos usar o seguinte roteiro:

  1. Criar uma função
  2. Criar um ponteiro para uma função
  3. Receber valores do usuário
  4. Imprimir o endereço da função
  5. Executar a função através do ponteiro

Mas antes disso tudo, vamos escrever o cabeçalho da função:

Passo 2

A questão pede pra gente criar uma função que calcule a área de um quadrilátero. Então vamos desenvolver uma função chamada a r e a do tipo f l o a t . A função recebe dois valores a r e a e a l t u r a do tipo f l o a t .

A única ação desta função é retornar o produto das duas variáveis:

Essa será a função que usaremos ao longo do código.

Passo 3

Em seguida a questão nos pede para criar um ponteiro para esta função. Lembre-se que para criar o ponteiro para uma função usamos a forma geral:

t i p o   * n o m e P o n t e i r o t i p o s = & n o m e F u n c a o

No nosso caso vamos criar um ponteiro chamado p n t _ a r e a , então para criar o nosso ponteiro vamos utilizar:

f l o a t   * p n t _ a r e a f l o a t ,   f l o a t = & a r e a

No código fica desta forma:

Passo 4

Ok, agora que temos o nosso ponteiro, vamos mudar o foco rapidamente.

Para utilizar a função, precisamos receber do usuário o valor da base e da altura do quadrilátero. Para isso vamos criar duas variáveis do tipo f l o a t chamadas b para a base e h para a altura.

Em seguida utilizamos o comando c o u t para solicitar os valores para o usuário, e com o c i n armazenamos os valores nas variáveis correspondentes.

Passo 5

Com a função definida, o ponteiro criado, e os valores recebidos, finalmente podemos responder aos itens da questão:

a) Usando um ponteiro imprima o endereço de memória da função

A gente já tem o ponteiro p n t _ a r e a que aponta para a função a r e a . Como o ponteiro já está criado, para imprimir endereço de memória de uma função basta usar a expressão a seguir:

c o u t ≪ v o i d * n o m e P o n t e i r o

No nosso código, essa expressão fica:

Passo 6

E agora vamos resolver o segundo item da questão:

b) Utilize um ponteiro para executar a função.

Quando temos um ponteiro que aponta para uma função, este ponteiro funciona como um “apelido” da função. Isso quer dizer que é só a gente utilizar o ponteiro como se fosse a função.

Então se a gente escrever o nome do ponteiro e em seguida passar os parâmetros entre parêntesis, vamos conseguir executar a função. No código fica desta forma:

E prontinho. Questão concluída.

Resposta