INF1005 - Lista de Exercı́cios 4 (Funções com Condicionais) 18 de Agosto de 2009 Esta lista apresenta um série de exercı́cios simples que podem ser úteis para os alunos começarem a prática de programação em C. Os exercı́cios trabalhados nesta lista referemse ao conteúdo dos capı́tulos 1 ao 5. O ideal é que estes exercı́cios sejam feitos em um computador, compilando, executando e testando se as soluções estão corretas. 1. Faça uma função que receba 2 números inteiros como parâmetro e os exiba em ordem crescente. 2. Faça uma função que receba dois números inteiros como parâmetro e exiba o maior deles. 3. Faça um programa que leia os seguintes dados de um aluno de uma turma: matrı́cula e as três notas. Este programa deverá exibir a matrı́cula, a média aritmética e a situação do aluno: aprovado (média maior ou igual a 5) ou reprovado (média menor que 5). O seu programa deverá utilizar a seguinte função: a)Para exibir a situação do aluno. Esta função deverá receber como parâmetro a média aritmética do aluno e exibir sua situação: aprovado (média maior ou igual a 5) ou reprovado (média menor que 5). 4. Faça uma função que leia três números inteiros e retorne o maior deles. 5. Faça um programa que leia três números inteiros diferentes e os mostre em ordem decrescente. Faça uma função que receba os três números como parâmetro e exiba-os em ordem decrescente. 6. Faça um programa, utilizando as funções abaixo, que processe um aluno de uma turma. O programa deverá ler, inicialmente, o total de aulas da turma. A seguir, deverá ler as seguintes informações do aluno: matrı́cula, nota da primeira prova, nota da segunda prova, nota do primeiro trabalho, nota do segundo trabalho e total de presença do aluno. Este programa deverá calcular e exibir: matrı́cula, média das provas, média dos trabalhos, média final, situação do aluno e percentual de faltas do aluno. As médias são aritméticas. Faça as seguintes funções: • Para calcular e retornar a média aritmética. Esta função deverá receber os dois valores para o cálculo da média aritmética como parâmetro. • Para calcular e retornar o percentual de faltas do aluno. Esta função deverá receber o total de aulas da turma e o total de presença do aluno como parâmetro. • Para exibir a situação do aluno. Esta função deverá receber como parâmetro a média aritmética do aluno e exibir sua situação: aprovado (média maior ou igual a 5), reprovado (média menor que 3) ou em final (média inferior a 5 e maior ou igual a 3). 7. Faça um programa, utilizando as funções abaixo, que imprima a média ponderada de um aluno e a sua situação (aprovado, reprovado ou em prova final). O programa deverá ler inicialmente o peso da primeira prova, o peso da segunda prova, a nota mı́nima para aprovação e a nota mı́nima para que o aluno possa fazer prova final. A seguir, deverão ser lidos os seguintes dados do aluno: matrı́cula, nota da primeira prova e nota da segunda prova. • Faça uma função que receba duas notas (real) e seus respectivos pesos (inteiro) como parâmetro. A função deve devolver a média ponderada dos valores. Exemplo: 1 notas: 7 e 5 pesos: 2 e 3 → média = (7x2 + 5x3) / 5 • Faça uma função que receba como parâmetro a média ponderada de um aluno (real), a nota mı́nima para aprovação (real) e a nota mı́nima para que o aluno possa fazer prova final (real). A função deve exibir a situação do aluno: aprovado, reprovado ou em prova final. 8. Crie as funções necessárias ao funcionamento correto do programa abaixo. Não é permitido alterar a função main(). #include <stdio.h> int main(void) { int num1,num2,num3; printf("Digite 3 números inteiros:"); scanf("%d%d%d", &num1, &num2, &num3); printf("Média dos lidos = %f", media(num1, num2, num3)); printf("Somas dos lidos = %d", soma(num1,num2, num3)); printf("Maior número lido = %d", maior(num1, num2, num3)); return 0; } 9. Faça o chinês do programa abaixo, com o seguinte dado de entrada: 12. #include <stdio.h> int descobre (int num1, int num2) { if (num1 < num2) return (num1); else return (num2); } int main(void) { int aux, num; aux = 999; scanf("%d", &num); aux = descobre(aux,num); printf ("%d", aux); return 0; } 10. Faça um programa para calcular o pagamento de um funcionário. Este programa deverá ler os seguintes dados do funcionário: matrı́cula, valor da hora de trabalho, quantidade de horas trabalhadas, quantidade de dependentes e tempo de serviço (inteiro – em anos). Este programa deverá exibir a matrı́cula, o salário base, o bônus, o auxı́lio creche, o desconto do INSS, o desconto do imposto de renda, o salário base e o salário lı́quido do funcionário. Faça as seguintes funções: • Para calcular e retornar o salário base. Esta função deverá receber como parâmetro o valor da hora de trabalho e a quantidade horas trabalhadas. • Para calcular e retornar o bônus por tempo de serviço. Esta função deverá receber como parâmetro o tempo de serviço e o salário base. O bônus é de 2% do salário base por ano de serviço. • Para calcular e retornar o auxı́lio creche. Esta função deverá receber como parâmetro a quantidade de dependentes. O auxı́lio creche é de R$21, 00 por dependente. • Para calcular e retornar o desconto do INSS. Esta função deverá receber como parâmetro o salário base. O desconto do INSS é de 11% do salário base, não podendo ultrapassar R$319, 27. 2 • Para calcular e retornar o desconto do imposto de renda. Esta função deverá receber como parâmetro o salário base. O desconto do imposto de renda é calculado da seguinte forma: salário base até 1800, 00 → isento (desconto = 0) 1800, 00 < salário base < 2900, 00 → desconto é de 15% do salário base salário base > 2900, 00 → desconto é de 27, 5% do salário base • Para calcular e exibir o salário lı́quido. Esta função deverá receber o salário base, bônus, auxı́lio creche, desconto do INSS e desconto do IR. 3