Ayuda programa(Solucionado)

Iniciado por XxRekcahlExX, 9 Agosto 2010, 03:16 AM

0 Miembros y 1 Visitante están viendo este tema.

XxRekcahlExX

Hola

Amigos tengo el siguiente problema:
--------------------------------------------------------------------------------
Realizar un algoritmo que me permita obtener la nomina semanal de un empleado de una empresacuyo pago es por horas de la siguiente manera:

Si trabaja igual o menos de 48 horas se liquida el dia a una tarifa determinada que se induce por el usuario(igual el numero de horas)

si el trabaja mas de 48 horas se liquida por el valor del dia mas el 25% adicional en diagrama de flu e implementandolo en el computador.
--------------------------------------------------------------------------------

Y comenze haciendolo en el dev c++

#include<stdio.h>
#include<iostream>
using namespace std;
#include<conio2.h>
#include<math.h>

int tarifa,horas,nomina,porciento,tarifadeterminada;
main()
{
     cout<<"Ingrese la tarifa que se paga por hora\n";
     cin>>tarifa;
     
     cout<<"Ingrese la cantidad de horas trabajadas\n";
     cin>>horas;
     
     
     
     if(horas<=48){
                  tarifadeterminada=tarifa*horas;
                  cout<<"Su nomina es:   "<<tarifadeterminada;
                  }
                 
                  if(horas>48){
                               tarifadeterminada=tarifa*horas;
                               porciento=tarifadeterminada*25/100;
                               cout<<"Su nomina es:   "<<porciento;
                               }
                               getch();
                               }


Esto el lo poco que llevo... sonara "estupido" pero quisiera que ustedes me digan si voy bien o voy mal, quee me hace falta o si ya termine es que no entiendo bn el problema disculpen mi ignorancia porfavor.

Gracias
emm?

rob1104

#1
Hola, bien te ayudaré en lo que pueda.

Para empezar si no entiendes el problema jamás podrás resolverlo. El desarrollo de un programa no es solo sentarte en frente del IDE y empezar a escribir el código a como va saliendo, no... tienes que analizar el problema, entenderlo, comprenderlo, determinar como lo vas a resolover, hacer un algoritmo, un diagrama de flujo, escribir el codigo, realizar pruebas, y ya al ultimo implementarlo... pero bueno, a casi nadie le importa eso.

Ahora, vamos con el codigo.

Desde mi punto de vista, me parece horrible el mezclar C con C++, y me refiero a los headers, teniendo C++ sus propias funciones es totalmente inutil el utilizar los headers de C (los que terminan en .h).

Usar conio (en este caso conio2 para dev-c++) solo por usar getch() es obsoleto, recomiendo no utilizar ese header ni sus funciones en lo absoluto.

El uso de math.h (o cmath para C++) es innecesario, no utilizas ninguna de sus funciones.

Si deseas calculos mas exactos, recomiendo usar float en vez de int para tus variables, exceptuando la de hora

El estandar ISO C++ requiere que main() sea tipo entero para que devuelva un valor al Sistema Operativo (0 para terminación exitosa, cualquier otro valor para una terminación anormal o inesperada.)

Yo lo haria asi:
Código (cpp) [Seleccionar]
#include<iostream>

using namespace std;

int main()
{
    int horas;
    float tarifa,tarifadeterminada;

    cout<<"Ingrese la tarifa que se paga por hora\n";
    cin>>tarifa;

    cout<<"Ingrese la cantidad de horas trabajadas\n";
    cin>>horas;

    tarifadeterminada = tarifa*horas;

    if(horas>48)
        tarifadeterminada = tarifadeterminada*25/100;

    cout<<"Su nomina es:   "<<tarifadeterminada;
    cin.ignore();
    cin.clear();
    cin.get();
    return 0;
}


Y pues si, al parecer ese código es la solución al enunciado.

Saludos

Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.

XxRekcahlExX

Hola ^^


Tio muchas gracias me haz hecho caer en cuenta en muchas cosas como la de mesclar C Y C++, tambien debo de dejar de usar conio y de agregar librerias que no utilze, jejeje.

Solo tengo una pregunta porque no se puede incluir hora en float?

Muchas gracias, debo estudiar mas.

Grax sos groso
emm?

rob1104

Cita de: XxRekcahlExX en  9 Agosto 2010, 11:52 AM
Solo tengo una pregunta porque no se puede incluir hora en float?
Porque tu enunciado indica que el pago es por horas enteras, el tipo float es para datos con precisión decimal, asi que no tiene caso que horas sea float si solo vas a caputar numeros enteros.

Saludos
Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.

XxRekcahlExX

OK

Muchas gracias ;) sos groso
doy por solucionado ;)

Salu2
emm?