Exercícios sobre Funções e Procedimentos
Compilado pelos Professores Sílvia Moraes e Egídio Terra1. 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.
S = 1 + 1/1! + ½! + 1/3! + 1 /N!
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)
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.