Prof. José Eduardo Baggio - DELC - UFSM
Neste módulos iremos aprender como trabalhar com funções na linguagem C.
Espero que após assistirem as aulas, façam toda a lista de exercícios.
Material Didático:
SLIDES em PowerPoint - SLIDES em PDF.
Lista de exercícios em DOCx. - Lista de exercícios em PDF
1. Escreva uma função que receba um valor inteiro como parâmetro e imprima este valor. Assista ao VÍDEO.
2. Escreva uma função que leia um valor inteiro e retorne este valor.
3. Construa uma função que receba dois valores reais como parâmetro e retorne 1 se os números são iguais ou 0 se os números são diferentes.
4. Faça uma função que lê 50 valores inteiros e retorna o maior deles.
5. Criar uma função que recebe 3 valores inteiros por parâmetro e retorna-os ordenados em ordem crescente.
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 receba duas notas e imprima a média destes valores.
8. Faça uma função que recebe um valor inteiro e verifica se o valor é par ou ímpar. A função deve retornar 1 se o valor for par e 0 se for ímpar.
9. Faça uma função que recebe, por parâmetro, um valor inteiro e positivo e retorna o número de divisores desse valor.
10. Leia um vetor de 10 posições e um determinado valor X. Passe o vetor e este número para uma função, que deve verificar quantas vezes este valor X aparece no vetor. Retornar o resultado para a função main, exibindo o mesmo.
11. Faça uma função que recebe, por parâmetro, a altura (alt) e o sexo (“M” para masculino e “F” para feminino) 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.
12. Faça uma função que recebe por parâmetro o raio de uma esfera e calcula o seu volume (v = 4/3 x π x R3). Retorne para a função principal (main) o volume.
13. Escrever um programa que lê dois valores, x e y, e chama uma função para calcular xy (assuma x e y inteiros não negativos). A função deve retornar o valor resultante para a função main, para então ser exibido. Não utilize a função pronta pow!
14. Criar uma função que recebe um valor inteiro e verifica se o valor é par ou ímpar. A função deve retornar um valor booleano.
15. Escrever um algoritmo que leia um valor inteiro e chama uma função para calcular a soma de todos os dígitos da representação decimal deste número. Por exemplo, a soma dos dígitos de 432 é 9 (4 + 3 + 2). Lembre-se: para 432 / 10, quociente 43 e resto 2. A função deve retornar o valor resultante para a função principal, para então ser exibido.
16. Desenvolva uma função que leia uma matriz de caracteres e verifique se dentre os caracteres da matriz lida estão todas as vogais.
17. Escreva um algoritmo leia 2 números inteiros e a operação a ser executada com esses dois inteiros: (1) soma, (2) subtração, (3) multiplicação e (4) divisão. Cada uma das operações deve ser implementada numa função separada e toda a comunicação com o utilizador deve ser feita na função principal.
18. Faça uma função que leia um número não determinado de valores positivos (o usuário deve digitar zero para encerrar a digitação) e retorna a média aritmética dos mesmos, exibindo este resultado na função principal (main).
19. 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 1 se o número for perfeito e 0 se não for perfeito.
20. Escreva um programa que leia um valor n e chame uma função que calcule e retorne o n-ésimo elemento de uma série de números em que cada elemento é dado pelo último elemento somado ao valor da iteração. Para exemplificar, consideremos que o valor digitado foi 5, a série é construída assim :
· O primeiro elemento é 1 (por definição: 0 do valor anterior + 1 por ser a primeira iteração/soma);
· O próximo elemento é 3 (1 do valor anterior + 2 por ser a segunda iteração/soma);
· O próximo elemento é 6 (3 do valor anterior + 3 por ser a terceira iteração/soma);
· O próximo elemento é 10 (6 do valor anterior + 4 por ser a quarta iteração/soma);
· O próximo e último elemento é 15 (10 do valor anterior + 5 por ser a quinta iteração/soma).
21. Escreva um algoritmo que chama uma função que, recebendo um número inteiro não negativo como PARÂMETRO, retorne o mesmo invertido. Ex: recebido como parâmetro o valor 234, deve retornar o inteiro 432.
22. Escreva um algoritmo no qual seja chamada uma função que receba como parâmetro um ano e retorne 1 se o ano for bissexto, e 0 caso contrário. São bissextos todos os anos não seculares divisíveis por 4 (mas não por 100) e os anos divisíveis por 400.
23. Escrever um algoritmo que leia um valor em reais e chame uma função que calcule o menor número possível de notas de R$100,00, R$50,00, R$20,00, R$10,00, R$5,00, R$2,00 e R$1,00 em que o valor lido pode ser decomposto. Ignore os centavos. O algoritmo deve mostrar, na função main, o valor lido e a relação de notas necessárias.
24. Existem números de 4 dígitos (entre 1000 e 9999) que obedecem à seguinte característica: se dividirmos o número em dois números de dois dígitos, um composto pela dezena e pela unidade, e outro pelo milhar e pela centena, somarmos estes dois novos números gerando um terceiro, o quadrado deste terceiro número é exatamente o número original de quatro dígitos. Por exemplo: 2025 -> dividindo: 20 e 25 -> somando temos 45 -> 45 ² = 2025. Escreva um algoritmo que leia um número inteiro de quatro dígitos e passe este número para uma função que verifique se apresenta ou não a característica, retornando 0 ou 1. Exiba, na função main, o resultado desta verificação, informando se o número digitado obedece à característica apresentada.
25. Escrever um algoritmo que chama uma função que retorna a soma dos números inteiros que existem entre os números n1 e n2 (inclusive ambos) passados como parâmetros. A função deve funcionar inclusive se o valor de n2 for menor que n1. Ler n1 e n2 na função main e retornar para a main o valor resultante. Ex:
· n=somaintervalo(3, 6); /* n recebe 18 (3 + 4 + 5 + 6) */
· n=somaintervalo(5,5); /* n recebe 10 (5 + 5) /*
· n=somaintervalo(-2,3); /* n recebe 3 (-2 + -1 + 0 + 1 + 2 + 3) */
· n=somaintervalo(4, 0); /* n recebe 10 (4 + 3 + 2 + 1 + 0) */