Você está na página 1de 4

Folha Prática – Funções 1

Funções

- Cabeçalho (tipo de retorno, nome e parâmetros) e corpo de uma função.


- Protótipo: declaração da função.
- Chamada da função.
- Implementação da função.
- Comunicação entre funções.

Construir programas em linguagem C para resolver os problemas que se seguem.

1. Verifique se um dado número inteiro positivo é par ou ímpar. Para tal, implemente a
função parOuImpar, cujo protótipo se apresenta a seguir, e que escreve no ecran “O
número é par” ou “O número é ímpar” consoante o inteiro passado como parâmetro
seja par ou ímpar, respectivamente:
void parOuImpar (int);

2. Verifique se um dado número inteiro positivo é par. Para tal, implemente as funções
par, cujo protótipo se apresenta a seguir, e que retorna 1 se o inteiro passado como
parâmetro for par e 0 caso contrário:
int par (int);

3. Verifique se um dado número inteiro positivo é impar. Para tal, implemente as funções
impar, cujo protótipo apresenta-se a seguir, e que retorna 1 se o inteiro passado como
parâmetro for impar e 0 caso contrário:
int impar (int);

4. Determine o maior de dois números inteiros. Para tal, deverá implementar a função
maior, cujo protótipo se apresenta a seguir, e que devolve o maior dos inteiros
passados como parâmetro:
int maior (int, int);

5. Repita o exercício anterior usando a função maiorDeTres que retorna o maior de três
números e cujo protótipo se apresenta a seguir:
int maiorDeTres (int, int, int);

6. Determine a média de dois números inteiros. Para tal, deverá implementar a função
media, cujo protótipo se apresenta a seguir, e que devolve a media dos inteiros
passados como parâmetro:
float media (int, int);

Programação/Introdução à Programação
Folha Prática – Funções 2

7. Determinar o maior e o menor número duma sequência de N (N ≥ 2) números reais


dados pelo utilizador (se N < 2, então N deverá ser pedido novamente até obter um
valor válido). A introdução de números deverá terminar quando forem inseridos N
números. Nessa altura a aplicação deverá mostrar o valor máximo e mínimo de entre
os valores introduzidos. Deverá usar as funções maximo e minimo, cujos protótipos se
apresentam a seguir:
float maximo (float, float);
float minimo (float, float);

8. Determinar a soma e a média duma sequência de N (N ≥ 2) números reais dados pelo


utilizador (se N < 2, então N deverá ser pedido novamente até obter um valor válido).
Deverá usar a função soma, na qual serão introduzidos os N números e calculada a
respectiva soma, e cujo protótipo se apresenta a seguir:
float soma (int);

9. Determinar o maior número duma sequência de N (N ≥ 2) números reais dados pelo


utilizador (se N < 2, então N deverá ser pedido novamente até obter um valor válido).
Deverá usar a função maiorN, na qual serão introduzidos os N números e determinado
o maior deles, e cujo protótipo se apresenta a seguir:
float maiorN (int);
10. Mostrar uma árvore de Natal como a que se segue.
*
***
*****
*******
*********
***********
*************
***
***
***
***
Para tal, deverá implementar a função escreveCaracter, cujo protótipo a seguir se
apresenta e que escreve o caracter passado no primeiro parâmetro tantas vezes
quantas forem passadas no segundo parâmetro:
void escreveCaracter (char, int);
Exemplo: escreveCaracter (‘*’, 13) escreve 13 vezes o caracter ‘*’ no ecran.
Deverá também pedir ao utilizador:
➔ o valor de B que representa o número de asteriscos (*) na base da árvore. O

valor de B deverá ser obrigatoriamente ímpar e maior ou igual 3.


➔ o valor de L e A que representam, respectivamente a largura e a altura do tronco

da árvore. A largura do tronco L deverá ser pelo menos 1 asterisco, deverá ser
obrigatoriamente impar e não poderá ultrapassar metade de B, isto é metade do

Programação/Introdução à Programação
Folha Prática – Funções 3

número de asteriscos da base. A altura do tronco A deverá ser pelo menos 2


asteriscos e também não deverá ultrapassar metade de B. Em caso de valores
inválidos o programa deverá apresentar um erro e voltar a pedi-los.
O exemplo da árvore em baixo tem uma base com B = 13 asteriscos, um tronco com
largura L = 3 asteriscos e altura A = 4 asteriscos.

11. Mostre uma pirâmide de números como a que se segue. Para tal, deverá pedir ao
utilizador o valor de N maior ou igual 2. Para N = 5, a pirâmide é a seguinte:
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
Deverá implementar as funções, com os protótipos que se seguem, para:
➔ mostra o carácter associado ao primeiro parâmetro tantas vezes quantas as do

valor associado ao segundo parâmetro


void mostraCaracter (char, int);
➔ mostra os números inteiros entre os valores associados ao primeiro e ao segundo

parâmetros em ordem crescente:


void mostraNumerosAsc (int, int);
➔ mostra os números inteiros entre os valores associados ao primeiro e ao segundo

parâmetros em ordem decrescente:


void mostraNumerosDesc (int, int);

12. Altere o programa anterior para mostrar uma pirâmide de números invertida. Por
exemplo, para N = 5, a pirâmide é a seguinte:
1 2 3 4 5 4 3 2 1
1 2 3 4 3 2 1
1 2 3 2 1
1 2 1
1
13. Construa duas funções para:
➔ mostrar o carácter associado ao primeiro parâmetro tantas vezes quantas o valor

associado ao segundo parâmetro:


void mostraCaracter (char, int);
➔ receber o número de caracteres que formam a base de um triângulo rectângulo e

mostra o triângulo usando a função mostraCaracter.


void triangulo1 (int);
Por exemplo, se a base é composta por 5 caracteres 'A', o triângulo a ser mostrado
deve ser o seguinte:
A
AA
AAA

Programação/Introdução à Programação
Folha Prática – Funções 4

AAAA
AAAAA
➔ receber o número de caracteres que formam a base de um triângulo rectângulo e

mostrar o triângulo usando a função escreverCaracter.


void triangulo2 (int base);
Por exemplo, se a base é composta por 5 caracteres 'B', então o triângulo a criar deve
ser o seguinte:
BBBBB
BBBB
BBB
BB
B
A função escreverCaracter deve ser usada dentro das funções triangulo1 e triangulo2
para escrever os caracteres ' ' (espaço) e 'T' (letra T maiúscula).
O programa principal deve pedir ao utilizador o tamanho da base e chamar as funções
triangulo1 e triangulo2 para construir os triângulos.
Exemplo:
Introduza o tamanho da base:
6
Triângulos:
A
AA
AAA
AAAA
AAAAA
AAAAAA

BBBBBB
BBBBB
BBBB
BBB
BB
B
14. Altere as funções do problema anterior de forma a mostrar, respectivamente, os
seguintes triângulos e produzir o output que se segue quando o tamanho da base é 6:
AAAAAA
AAAAA
AAAA
AAA
AA
A

B
BB
BBB
BBBB
BBBBB
BBBBBB

Programação/Introdução à Programação

Você também pode gostar