ex8



/*
8. Faça um programa que leia as seguintes informações dos funcionários de uma empresa: matrícula do funcionário, salário bruto, quantidade de horas extras, quantidade de
horas em atraso, quantidade de dependentes com auxílio creche e tempo de serviço na empresa.
Considerando-se que:
a) o funcionário trabalha 40 horas semanais e o mês tem 4 semanas;
b) o auxílio creche para cada dependente é de R$150,00;
c) o desconto de INSS é 10% do salário bruto;
d) o funcionário tem direito a um bônus de R$50,00 para cada ano de trabalho.

Este programa deverá calacular e mostrar para cada funcionário:
1. valor recebido com horas extras, sabendo-se que a hora extra é 50% maior do que a hora normal trabalhada;
2. o desconto com atraso;
3. o valor total a receber com auxílio creche;
4. o valor do bônus recebido por tempo de serviço;
5. o salário líquido do funcionário.
(Termino da repetição com saída "Deseja Continuar (S/N)?")
*/


#include <stdio.h>


void lerMatricula(int *matricula) {
    printf("n Matricula: "); scanf("%d", &*matricula);
}

void lerDados(float *salario, int *horasExtras, int *horasAtraso, int *dependentes, int *tempoDeServico) {
    printf("\n Salario liquido: "); scanf("%f", &*salario);
    printf("\n Horas Extras realizadas: "); scanf("%d", &*horasExtras);
    printf("\n Horas de atraso: "); scanf("%d", &*horasAtraso);
    printf("\n Quant. Dependentes: "); scanf("%d", &*dependentes);
    printf("\n Tempo de serviço: "); scanf("%d", &*tempoDeServico);
    printf("\n\n");
}

float calculaINSS(float salario) {
    float inssDesconto;
    inssDesconto=salario/10;
    return(inssDesconto);
}

float calculaBonus(int tempoDeServico) {
float bonus;
bonus = tempoDeServico*50.00;
return(bonus);
}

float calculaAuxilioCreche(int dependentes) {
    float valorAuxilio;
    valorAuxilio = 150.00*dependentes;
    return(valorAuxilio);
}

// Para saber quanto vale a trabalho/hora
float valorHoraTrabalhada (float salario) {
    float horaPaga;
    horaPaga = salario / 40;
    return(horaPaga);
}

float salarioOuDescontoExtra(int horasExtras, int horasAtraso, float horaPaga) {
float horaPagaExtra;
int quantHoraExtra;
    quantHoraExtra = horasExtras - horasAtraso;
    if (quantHoraExtra >0 ) {
        horaPagaExtra = horaPaga+(horaPaga/2);
    } else {
        horaPagaExtra = -(horaPaga);
    }
    horaPagaExtra = horaPagaExtra*quantHoraExtra;
    return(horaPagaExtra);
}

float SalarioBruto(float bonus, float creche, float valorExtra, float salario) {
    float b;
    b = bonus + creche + valorExtra + salario;
    return(b);
}

void imprimeResultados(float bonusPorTempo, float valorCreche, float valorExtra, float salarioBruto, float inssDesconto, float horaPaga) {
    printf("\n Bonus por tempo de serviço: R$ %5.2f", bonusPorTempo);
    printf("\n Valor Auxilo creche: R$ %5.2f", valorCreche);
    printf("\n Desconto do INSS: R$ %5.2f", inssDesconto);
    if (valorExtra>0) {
        printf("n Valor recebido por horas extras: R$ %5.2f", valorExtra);
    } else {
        printf("n Valor descontado por atraso: R$ %5.2f", valorExtra);
    }
    printf("\n Valor hora paga: %5.2f ", horaPaga);
    printf("\n SALARIO BRUTO: R$ %5.2f", salarioBruto);
}

int  main() {
    int matricula, horasExtras, horasAtraso, dependentes, tempoDeServico;
    float salario; // variaveis de entrada

    int bonus; //variaveis de saida
    float inssDesconto, bonusPorTempo, valorCreche, valorExtra, valorHoraTrabalho, salarioBruto;

    do {
        lerMatricula(&matricula);
        if (matricula==0)
            break;
        lerDados(&salario, &horasExtras, &horasAtraso, &dependentes, &tempoDeServico);
        bonusPorTempo = calculaBonus(tempoDeServico);
        valorCreche = calculaAuxilioCreche(dependentes);
        valorHoraTrabalho = valorHoraTrabalhada(salario);
        valorExtra = salarioOuDescontoExtra(horasExtras, horasAtraso, valorHoraTrabalho);
        salarioBruto= SalarioBruto(bonusPorTempo, valorCreche, valorExtra, salario);
        inssDesconto = calculaINSS(salarioBruto);
        imprimeResultados(bonusPorTempo, valorCreche, valorExtra, salarioBruto, inssDesconto, valorHoraTrabalho);
        printf("nn");
    } while (matricula !=0);
}
Publicado em C

ex7

/*
7. Crie um programa que leia vários números inteiros e imprima ao final a sua soma.(Termino da repetição com saída "Deseja Continuar (S/N)?")
*/
#include

/* Criando rotina limpaBuffer para usar o getchar() sem problemas */
void limpaBuffer() {
int limpa;
do {
limpa = getchar();
} while ((limpa!='n') && (limpa!=EOF));
}

void main() {

float numero, soma;
int conta=1;
char sn;

do {
printf("n Digite o %dº numero a ser somado: ", conta);
scanf("%f", &numero);
limpaBuffer();
soma = soma+numero;
conta++;

printf("nDeseja encerrar o programa (s/n) ?");
sn = getchar();
//caso digite em maiusculo
if(sn=='S')
sn='s';
} while(sn!='s');

printf("n Programa finalizado");
printf("n a soma dos numeros é igual a %5.2f", soma);
printf("nn");

}

Publicado em C

Do…while, getch, limpando buffer

/*
6. Crie um programa que leia vários números inteiros e imprima ao final a quantidade de números positivos lidos.(Termino da repetição com saída "Deseja Continuar (S/N)?")
*/
#include

void LimpaBuffer(void) {
int valorLido;
do {
valorLido = getchar();
}while ((valorLido != 'n') && (valorLido!=EOF));
}

void main() {
char sn;
int numero, contaPositivo=0;

do {
printf("nDigite um numero (inteiro) qualquer: ");
scanf("%d", &numero);
LimpaBuffer();
printf("n");
if (numero>0)
contaPositivo++;
printf("n Gostaria de encerrar o programa? (S/N)");
sn = getchar();
if (sn=='s')
sn='S';
} while (sn!='S');

printf("O programa encerrou n");
printf("Numeros positivos lidos: %d", contaPositivo);
printf("nn");
}

Publicado em C

Do … while

/*
4. Faça um programa para calcular a área de N quadrados.
(Fórmula a ser usada: Área = Lado x Lado).
*/
#include <stdio.h>
int main() {
    float lado, area;
    int ordem=1, menu=1;

    do {
        printf("\n Digite o valor do lado do quadrado %d: ", ordem);
        scanf("%f", &lado);
        area=lado*lado;
        printf("------------------------------------");
        printf("\n A area do quadrado é de %5.2f \n ", area);
        printf("------------------------------------");
        ordem++;
        printf("\n Digite qualquer numero inteiro (!=0) para calcular num novo quadrado ou 0 (zero) para terminar :");
        scanf("%d", &menu);
        printf("\n");
    } while(menu!=0);
}
Publicado em C

For com uso de funções – ex 3

Resolução do terceiro exercício – Lista 3 (Professor Carlos Leite)

/*
3. Faça um programa para ler base e altura de 5 triângulos e imprimir a sua área.
(Fórmula a ser usada: Área = (base alt)/2;)
*/

#include
float calculaArea (float, float);
void imprimeArea(int, float);

void main() {
int i, n;
float base, altura, area;

// clrscr(); ta dando erro no gcc (ubuntu)
for (i=1; i<6; i++) {
printf("n Digite da base do triangulo numero %d: ", i);
scanf("%f", &base);
printf("n Digite a altura do triangulo numero %d: ", i);
scanf("%f", &altura);
area = calculaArea(base, altura);
imprimeArea(i, area);
}
}

float calculaArea (float base, float altura) {
float a;
a = (base*altura)/2;
return(a);
}

void imprimeArea(int n, float area) {
printf("n ------------------------------------------");
printf(" n A area do triangulo numero %d eh de %5.2f ", n, area);
printf("n ------------------------------------------");
printf("nn");
// getch();
}

Publicado em C

For – ex2

Resolução do segundo exercício – Lista 3 (Professor Carlos Leite)

/*
2. Faça um programa que permita
imprimir os numeros 10,9,.. ,2,1.
*/
#include

void main() {
int i;
printf("***********************");
for (i=10; i>1; i--) {
printf( " n%d ", i);
}
printf("n***********************n");

}

Publicado em C

ex1 – For

Resolução do primeiro exercício da Lista 3 do Prof. Carlos Leite.


/* 1. Faça um programa que permita imprimir
os numeros 1,2, .. ,9,10.
*/
#include

void main() {
int i;
printf("t-----------------n");
printf("t| Exercicio 1 |n");
printf("t-----------------");
for (i=1; i<11; i++) {
printf( " n t|t%dt|", i);
}
printf("nt-----------------n");

}

Publicado em C