|
|
|
|
Outline ·
[ Estándar ] ·
Lineal+
Ayuda para un novato
| Nanaki |
Apr 24 2007, 04:47 AM
|
Maestro
    
Grupo: Members
Mensajes: 265
Registrado: 22-July 06
Miembro nº: 174.901

|
Buenas estoy aprendiendo de hace muy poco tiempo el lenguaje c++ peor me eh quedado trabado en este ejercicio:
8. En una empresa, se darán aumentos a los empleados según la categoría de su contrato actual de la siguiente forma:
Clave de categoría Categoría Aumento % S Sindicalizado 20 C Confianza 10 D Directivo 5 E Ejecutivo 0
Elabore un diagrama de flujo que solicite la clave de la categoría y el sueldo actual de un empleado y calcule e imprima el nuevo salario...
y estaba probando con la sintaxis switch:
/*calcular el nuevo sueldo al ingresar codigo s,c,d,e*/ #include<iostream.h> void main() { char codigo; float sueldo,s=0.2,c=0.1,d=0.05,e=0,nuevosueldo; cout<<"\nIngrese su sueldo: "; cin>>sueldo; cout<<"\nIngrese su codigo de categoria: "; cin>>codigo; switch (sueldo,s=0.2,c=0.1,d=0.05,e=0,nuevosueldo,codigo) { case 1: nuevosueldo=sueldo+(sueldo*s); cout<<"\nEl nuevo sueldo es: "; cout<<nuevosueldo; break; case 2: nuevosueldo=sueldo+(sueldo*c); cout<<"\nEl nuevo sueldo es: "; cout<<nuevosueldo; break; case 3: nuevosueldo=sueldo+(sueldo*d); cout<<"\nEl nuevo sueldo es: "; cout<<nuevosueldo; break; case 4: nuevosueldo=sueldo+(sueldo*e); cout<<"\nEl nuevo sueldo es: "; cout<<nuevosueldo; break; default: cout<<"\nEl nuevo sueldo: "; cout<<nuevosueldo; } }
nose si alguiel me puede dar una solucion o soluciones gracias
|
|
|
|
|
| RadicalEd |
Apr 24 2007, 07:23 PM
|
Desocupado Programando

Grupo: Moderadores
Mensajes: 654
Registrado: 7-February 05
Desde: SoloCodigo
Miembro nº: 76.900

|
No se por que capturas tantas cosas en switch lo único que debes capturar es el código, ademas debes saber son los caracteres que se capturan no valores enteros; mira esta forma.
Lo hago en C nunca me ha gustado la sintaxis de C++CODE #include <stdio.h> int main(void) { char codigo; float sueldo,s=0.2,c=0.1,d=0.05,e=0,nuevosueldo; printf("\nIngrese su sueldo: "); scanf("%f",&sueldo); printf("\nIngrese su codigo de categoria: "); scanf("%s",&codigo); switch (codigo) { case 's': nuevosueldo=sueldo+(sueldo*s); printf("\nEl nuevo sueldo es: "); printf("%.2f",nuevosueldo); break; case 'c': nuevosueldo=sueldo+(sueldo*c); printf("\nEl nuevo sueldo es: "); printf("%.2f",nuevosueldo); break; case 'd': nuevosueldo=sueldo+(sueldo*d); printf("\nEl nuevo sueldo es: "); printf("%.2f",nuevosueldo); break; case 'e': nuevosueldo=sueldo+(sueldo*e); printf("\nEl nuevo sueldo es: "); printf("%.2f",nuevosueldo); break; default: printf("\nEl nuevo sueldo: "); printf("%.2f",nuevosueldo); } }
|
|
|
|
|
| Nanaki |
Apr 25 2007, 04:50 AM
|
Maestro
    
Grupo: Members
Mensajes: 265
Registrado: 22-July 06
Miembro nº: 174.901

|
Hola RadicalEd, te agradezco mucho.. por la aclaracion, bueno te contare que lo lleve a mi viejo turbo c++ y bueno salio varios errores, empeze a verlo bien ya que a pesar de enviar errores seguramente por las sintaxis, se llego a resolver el problema, pero ya logre camiar las sitaxis para c++ y corrio bien.. gracias  nanaki QUOTE(RadicalEd @ Apr 24 2007, 07:23 PM) No se por que capturas tantas cosas en switch lo único que debes capturar es el código, ademas debes saber son los caracteres que se capturan no valores enteros; mira esta forma.
Lo hago en C nunca me ha gustado la sintaxis de C++CODE #include <stdio.h> int main(void) { char codigo; float sueldo,s=0.2,c=0.1,d=0.05,e=0,nuevosueldo; printf("\nIngrese su sueldo: "); scanf("%f",&sueldo); printf("\nIngrese su codigo de categoria: "); scanf("%s",&codigo); switch (codigo) { case 's': nuevosueldo=sueldo+(sueldo*s); printf("\nEl nuevo sueldo es: "); printf("%.2f",nuevosueldo); break; case 'c': nuevosueldo=sueldo+(sueldo*c); printf("\nEl nuevo sueldo es: "); printf("%.2f",nuevosueldo); break; case 'd': nuevosueldo=sueldo+(sueldo*d); printf("\nEl nuevo sueldo es: "); printf("%.2f",nuevosueldo); break; case 'e': nuevosueldo=sueldo+(sueldo*e); printf("\nEl nuevo sueldo es: "); printf("%.2f",nuevosueldo); break; default: printf("\nEl nuevo sueldo: "); printf("%.2f",nuevosueldo); } }
|
|
|
|
|
| Nanaki |
Apr 25 2007, 11:07 PM
|
Maestro
    
Grupo: Members
Mensajes: 265
Registrado: 22-July 06
Miembro nº: 174.901

|
Compiling NONAME00.CPP: Warning NONAME00.CPP 36: Function should return a value in function main() (al compilarlo) al ejecutarlo: General Protection Excepcion noname00.cpp 36 noname00(2) 0x239f:0x0176 processor fault yo tb lo probe en dev-c++ pero se cierra al ejecutar todo no deja ver nada... bueno en el turbo c++ salen esos errores luego la pantalla donde se ejecuta el programa se paraliza y no se puewde salir de ella: Aplication is stoped(algo asi) pero entonces pense que se tratabade alguna sintaxis que solo funcione en dev y no en turbo ... :S la cosa es que cambie las sitaxis lo compile en c++ y funciono. te agradezco mas bien ya entiendo un poco mas de esta sintaxis switch. nanaki QUOTE(RadicalEd @ Apr 25 2007, 02:10 PM) Qué errores?, yo lo compile con Dev-C++ y todo bien.
|
|
|
|
|
| rob1104 |
Apr 25 2007, 11:39 PM
|
Gears of War 2 ... a reason to have an Xbox 360...

Grupo: Moderadores
Mensajes: 1.728
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, México
Miembro nº: 93.342

|
RadicalEd se te pasó que una funcion int debe retornar un valor numerico bro, en este caso 0 porque el programa esta bien, solo hay que agregar CODE return 0; antes de la ultima llave (}), y para qeu se puede ver bien en dev-c++ agrega estas 2 lineas justo antes del "return 0;": CODE fflush(stdin); getchar(); Nota: Eso es solo para el código de C que dejó radicalED  Saludos
|
|
|
|
|
| Nanaki |
Apr 26 2007, 08:28 PM
|
Maestro
    
Grupo: Members
Mensajes: 265
Registrado: 22-July 06
Miembro nº: 174.901

|
QUOTE(robbie110487 @ Apr 25 2007, 11:39 PM) RadicalEd se te pasó que una funcion int debe retornar un valor numerico bro, en este caso 0 porque el programa esta bien, solo hay que agregar CODE return 0; antes de la ultima llave (}), y para qeu se puede ver bien en dev-c++ agrega estas 2 lineas justo antes del "return 0;": CODE fflush(stdin); getchar(); Nota: Eso es solo para el código de C que dejó radicalED  Saludos GRACIAS  agregue esas lineas y corre muy bien en dev c++
|
|
|
|
|
| rob1104 |
Apr 26 2007, 11:33 PM
|
Gears of War 2 ... a reason to have an Xbox 360...

Grupo: Moderadores
Mensajes: 1.728
Registrado: 7-March 05
Desde: Matamoros, Tamaulipas, México
Miembro nº: 93.342

|
Jeje, crei que preguntarias que hacen esas 2 lineas  , capaz que pongo una que destruya un sector de tu disco duro o que detenga el ventilador del cpu  , bueno hay va de todas formas: fflush(stdin) <-- limpia el buffer de la entrada por teclado, con eso queda limpio y el getchar esperara a obetener un caracter. getchar() <-- Si el buffer de entrada esta limpio detiene la ejecucion del programa hasta que se presiona una tecla. Saludos
|
|
|
|
|
| Nanaki |
Apr 28 2007, 04:39 AM
|
Maestro
    
Grupo: Members
Mensajes: 265
Registrado: 22-July 06
Miembro nº: 174.901

|
wow lo que se puede hacer con el c++  , jeje entendi tu mensaje, bueno entonces ala proxima pregunto por que esta linea u otra desde un principio no dude que se tratase de algun codigo destructivo... de todas maneras gracias. no se si podre seguir molestandote con mis dudas? que tengas un buen dia  QUOTE(robbie110487 @ Apr 26 2007, 11:33 PM) Jeje, crei que preguntarias que hacen esas 2 lineas  , capaz que pongo una que destruya un sector de tu disco duro o que detenga el ventilador del cpu  , bueno hay va de todas formas: fflush(stdin) <-- limpia el buffer de la entrada por teclado, con eso queda limpio y el getchar esperara a obetener un caracter. getchar() <-- Si el buffer de entrada esta limpio detiene la ejecucion del programa hasta que se presiona una tecla. Saludos 
|
|
|
|
|
Suscribirse a esta discusión
Recibirás una notificación vía correo cuando haya una respuesta y no estés activos en los foros.
Suscribirse a este foro
Recibirás una notificación vía correo cuando haya una nueva discusión y no estés activo en los foros.
Bajar/imprimir
Podrás bajar esta discusión en varios formatos o ver una versión apta para impresora.

Topicos similares

Topicos similares
|