Exercícios sobre Funções e Procedimentos

Compilado pelos Professores Sílvia Moraes e Egídio Terra

1. Faça uma função que recebe por parâmetro o raio de uma esfera e calcula o seu volume (v = 4/3.P .R3).

2. Escreva um procedimento que recebe as 3 notas de um aluno por parâmetro e uma letra. Se a letra for A o procedimento calcula a média aritmética das notas do aluno, se for P, a sua média ponderada (pesos: 5, 3 e 2) e se for H, a sua média harmônica. A média calculada também deve retornar por parâmetro.

3. Faça uma função que recebe por parâmetro um valor inteiro e positivo e retorna o valor lógico Verdadeiro caso o valor seja primo e Falso em caso contrário.

4. Faça um procedimento que recebe por parâmetro os valores necessário para o cálculo da fórmula de báskara e retorna, também por parâmetro, as suas raízes, caso seja possível calcular.

5. Faça uma função que recebe por parâmetro o tempo de duração de uma fábrica expressa em segundos e retorna também por parâmetro esse tempo em horas, minutos e segundos.

6. Faça uma função que recebe a idade de uma pessoa em anos, meses e dias e retorna essa idade expressa em dias.

7. Faça uma função que verifique se um valor é perfeito ou não. Um valor é dito perfeito quando ele é igual a soma dos seus divisores excetuando ele próprio. (Ex: 6 é perfeito, 6 = 1 + 2 + 3, que são seus divisores). A função deve retornar um valor booleano.

8. Faça um procedimento que recebe a idade de um nadador por parâmetro e retorna , também por parâmetro, a categoria desse nadador de acordo com a tabela abaixo:  

Idade Categoria
5 a 7 anos Infantil A
8 a 10 anos Infantil B
11-13 anos Juvenil A
14-17 anos Juvenil B
Maiores de 18 anos (inclusive) Adulto

9. Faça uma função que recebe um valor inteiro e verifica se o valor é positivo ou negativo. A função deve retornar um valor booleano.

10. Faça uma função que recebe um valor inteiro e verifica se o valor é par ou ímpar. A função deve retornar um valor booleano.

11. Faça uma função que recebe a média final de um aluno por parãmetro e retorna o seu conceito, conforme a tabela abaixo:

Nota

Conceito

de 0,0 a 4,9

D

de 5,0 a 6,9

C

de 7,0 a 8,9

B

de 9,0 a 10,0

A

12. Faça uma função que recebe, por parâmetro, a altura (alt) e o sexo de uma pessoa e retorna o seu peso ideal. Para homens, calcular o peso ideal usando a fórmula peso ideal = 72.7 x alt - 58 e, para mulheres, peso ideal = 62.1 x alt - 44.7.

13. Faça um procedimento que recebe 3 valores inteiros por parâmetro e retorna-os ordenados em ordem crescente.

14. Faça um procedimento que recebe, por parâmetro, a hora de inicio e a hora de término de um jogo, ambas subdivididas em 2 valores distintos: horas e minutos. O procedimento deve retornar, também por parâmetro, a duração do jogo em horas e minutos, considerando que o tempo máximo de duração de um jogo é de 24 horas e que o jogo pode começar em um dia e terminar no outro.

15. Escreva um procedimento que recebes 3 valores reais X, Y e Z e que verifique se esses valores podem ser os comprimentos dos lados de um triângulo e, neste caso, retornar qual o tipo de triângulo formado. Para que X, Y e Z formem um triângulo é necessário que a seguinte propriedade seja satisfeita: o comprimento de cada lado de um triângulo é menor do que a soma do comprimento dos outros dois lados. O procedimento deve identificar o tipo de triângulo formado observando as seguintes definições:

16. A prefeitura de uma cidade fez uma pesquisa entre os seus habitantes, coletando dados sobre o salário e número de filhos. Faça um procedimento que leia esses dados para um número não determinado de pessoas e retorne a média de salário da população, a média do número de filhos, o maior salário e o percentual de pessoas com salário até R$350,00.

17. Faça uma função que leia um número não determinado de valores positivos e retorna a média aritmética dos mesmos.

18. Faça uma função que receba um valor inteiro e positivo e calcula o seu fatorial.

19. Faça um procedimento que lê 50 valores inteiros e retorna o maior e o menor deles.

20. Faça um procedimento que recebe, por parâmetro, um valor N e calcula e escreve a taboada de 1 até N. Mostre a tabuada na forma:
1 x N = N

2 x N = 2N

...

N x N = N2

21. Faça uma função que recebe, por parâmetro, um valor inteiro e positivo e retorna o número de divisores desse valor.

22. Escreva uma função que recebe, por parâmetro, um valor inteiro e positivo e retorna o somatório desse valor.

23. Escreva uma função que recebe por parâmetro um valor inteiro e positivo N e retorna o valor de S.

S = 1 + ½ + 1/3 + ¼ + 1/5 + 1/N.

24. Escreva uma função que recebe por parâmetro um valor inteiro e positivo N e retorna o valor de S.

25. Escreva uma função que recebe por parâmetro um valor inteiro e positivo N e retorna o valor de S.

S = 2/4 + 5/5 + 10/6 + 17/7 + 26/8 + ... +(n2+1)/(n+3)

26. Escreva uma função que calcule o valor do co-seno de x através de 20 termos da série seguinte:

co-seno(x) = 1 - x2 + x4 - x6 + ....

2! 4! 6!

27. Escreva uma função que recebe, por parâmetro, dois valores X e Z e calcula e retorna Xz . (sem utilizar funções ou operadores de potência prontos)


Vetores e Matrizes c/ Procedimentos e Funções

1. Foi realizada uma pesquisa de algumas características físicas de 50 habitantes de uma certa região. De cada habitante foram coletados os seguintes dados: sexo, cor dos olhos (azuis, verdes ou castanhos), cor dos cabelos (louros, pretos ou castanhos) e idade. Faça um procedimento que leia esses dados em um vetor de registro. O vetor de registro deve ser enviado por referência.

2. Faça um procedimento que receba o vetor de registro definido no exercício anterior (28), por parâmetro, e retorna também por parâmetro: a maior idade entre os habitantes e a quantidade de individuos do sexo feminino cuja idade está entre 18 e 35 (inclusive) e que tenham olhos verdes e cabelos louros.

3. Foi realizada uma pesquisa entre 500 habitantes de uma certa região. De cada habitante foram coletados os dados: idade, sexo, salário e número de filhos. Faça um procedimento que leia esses dados em um vetor de registro. O vetor de registro deve ser enviado por referência.

4. Faça um procedimento que receba o vetor de registro definido no exercício anterior (30), por parâmetro, e retorna também por parâmetro: a média de salário entre os habitantes, a menor e a maior idade do grupo e a quantidade de mulheres com 3 filhos que recebe até R$500,00.

5. Faça um procedimento que retorna, por parâmetro, um vetor A(5) com os 5 primeiros números perfeitos.

6. Faça um procedimento que recebe 2 vetores A e B de tamanho 10 de inteiros, por parâmetro. Ao final do procedimento B deve conter o fatorial de cada elemento de A. O vetor B deve retornar alterado. 

A

4

1

0

3

....

B

24

1

1

6

...

7. Faça um procedimento que recebe, por parâmetro, 2 vetores de 10 elementos inteiros e que calcule e retorne, também por parâmetro, o vetor união dos dois primeiros.

8. Faça um procedimento que recebe um vetor X de 30 elementos inteiros, por parâmetro, e retorna, também por parâmetro, dois vetores A e B. O vetor A deve conter os elementos pares de X e o vetor B, os elementos ímpares.

9.Faça uma função que recebe um vetor X(15) de inteiros , por parâmetro, e retorna a quantidade de valores pares em X.

10. Faça uma função que recebe um vetor X(20) de reais , por parâmetro, e retorna a soma dos elementos de X.

11.Faça um procedimento que recebe 2 vetores A e B de tamanho 15 de inteiros, por parâmetro. O vetor B deve conter o somatório de cada elemento de A. 

A

4

1

0

5

....

B

10

1

0

15

...

12. Faça um procedimento que recebe, por parâmetro, um vetor A(50) de reais e retorna-o ordenado em ordem crescente.

13. Faça um procedimento que recebe, por parâmetro, um vetor A(25) de inteiros e substitui todos os valores negativos de A por zero. O vetor A deve retornar alterado.

14. Faça um procedimento que gera os 10 primeiros primos acima de 100 e retorna-os em um vetor X(10), por parâmetro.

15. Faça um procedimento que recebe 2 vetores A e B de tamanho 10 de inteiros, por parâmetro. O procedimento deve retornar um vetor C, por parâmetro, que contém os elementos de A e B em ordem decrescente.

16. Faça um procedimento que recebe, por parâmetro, 2 vetores de 10 elementos inteiros e que calcule e retorne, também por parâmetro, o vetor intersecção dos dois primeiros.

17. Faça um procedimento que recebe, por parâmetro, 2 vetores de 10 elementos inteiros e que calcule e retorne, também por parâmetro, o vetor diferença dos dois primeiros.

18. Faça um procedimento que recebe, por parâmetro, 2 vetores de 20 elementos inteiros e que calcule e retorne, também por parâmetro, o vetor soma dos dois primeiros.

19. Faça um procedimento que recebe, por parâmetro, 2 vetores de 15 elementos inteiros e que calcule e retorne, também por parâmetro, o vetor produto dos dois primeiros.

20. Faça um procedimento que receba, por parâmetro, um vetor K(15) e retorna, também por parâmetro, um vetor P contendo apenas os valores primos de K.

21. Faça um procedimento que receba um vetor A(100) de inteiros e retorna esse mesmo vetor compactado, ou seja, sem os seus valores nulos(zero) e negativos.

22. Faça um procedimento que receba, por parâmetro um vetor B(50) de reais e calcula o maior valor do vetor. A seguir, o procedimento deve dividir todos os elementos de B pelo maior encontrado. O vetor deve retornar alterado.

23. Uma locadora de vídeos tem guardada, em um vetor A de 500 posições, a quantidade de filmes retirados por seus clientes durante o ano de 1997. Agora, esta locadora está fazendo uma promoção e, para cada 15 filmes retirados, o cliente tem direito a uma locação grátis. Faça um procedimento que receba o vetor A por parâmetro e retorna, também por parâmetro, um vetor contendo a quantidade de locações gratuitas a que cada cliente tem direito.

24. Faça uma função que recebe, por parâmetro, uma matriz A(5,5) e retorna a soma dos seus elementos.

25. Faça uma função que recebe, por parâmetro, uma matriz A(6,6) e retorna a soma dos elementos da sua diagonal principal e da sua diagonal secundária.

26. Faça uma função que recebe, por parâmetro, uma matriz A(7,6) e retorna a soma dos elementos da linha 5 e da coluna 3.

27. Faça uma função que recebe, por parâmetro, uma matriz A(6,6) e retorna o menor elemento da sua diagonal secundária.

28. Faça um procedimento que recebe, por parâmetro, uma matriz A(8,8) e calcula o maior elemento da sua diagonal principal. A seguir, o procedimento deve dividir todos os elementos de A pelo maior encontrado. O procedimento deve retornar a matriz alterada.

29. Faça um procedimento que receba, por parâmetro, duas matrizes A(4,6) e B(6,4) e retorna uma matriz C, também por parâmetro, que seja o produto matricial de M por N.

30. Faça um procedimento que receba, por parâmetro, duas matrizes A(4,6) e B(6,4) e retorna uma matriz C, também por parâmetro, que seja a soma de M com N.

31. Faça um procedimento que receba, por parâmetro, duas matrizes A(4,6) e B(6,4) e retorna uma matriz C, também por parâmetro, que seja a diferença de M com N.

32. Faça um procedimento que recebe, por parâmetro, uma matriz M(6,6) e um valor A . O procedimento deve multiplicar cada elemento de M por A e armazenar em um vetor V(36). O vetor V deve retornar por parâmetro.

33. Faça um procedimento que receba uma matriz A(10,10), por parâmetro, e realize as seguintes trocas:

O procedimento deve retornar a matriz alterada.

34. Faça uma função que receba, por parâmetro, uma matriz B(9,9) de reais e retorna a soma dos elementos das linhas pares de B.

35. Faça um procedimento que receba, por parâmetro, uma matriz A(12,12) e retorna, também por parâmetro, um vetor com a soma de cada uma das linhas de A .

36. Faça um procedimento que receba, por parâmetro, uma matriz A(6,6) e multiplica cada linha pelo elemento da diagonal principal daquela linha. O procedimento deve retornar a matriz alterada.

37. Na teoria dos sistemas, define-se como elemento minimax de uma matriz o menor elemento de uma linha onde se encontra o maior elemento da matriz. Faça uma função que recebe, por parâmetro, uma matriz A(10,10) e retorna o seu elemento minimax, juntamente com a sua posição.

38. Faça um procedimento que receba, por parâmetro, uma matriz 61x10. O procedimento deve somar individualmente as colunas da matriz e armazenar o resultado na 61a linha da matriz. O procedimento deve retornar a matriz alterada.

39. Faça uma função que receba, por parâmetro, uma matriz A(12,12) e retorne a média aritmética dos elementos abaixo da diagonal principal.

40. Faça uma função que receba, por parâmetro, uma matriz A(10,10)e retorne a soma dos elementos acima da diagonal principal.

41. Faça uma função que receba, por parâmetro, uma matriz A(7,7)e retorne o menor valor dos elementos abaixo da diagonal secundária.

42. Faça uma função que receba, por parâmetro, uma matriz A(8,8) e retorne o menor valor dos elementos acima da diagonal secundária.

43. Faça uma função que receba, por parâmetro, uma matriz A(12,12) e retorna a média aritmética dos elementos abaixo da diagonal principal e da diagonal secundária.

44. Faça uma função que receba, por parâmetro, uma matriz A(12,12) e retorna o produto dos elementos acima da diagonal principal e da diagonal secundária.