Ayuda para un novato

Estado
Cerrado para nuevas respuestas

Nanaki

Nuevo Miembro
Miembro
#1
Buenas estoy aprendiendo de hace muy poco tiempo el lenguaje c++

peor me he 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

Ex-Mod
Miembro
#2
No se por que capturas tantas cosas en switch :confused: 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++


Insertar CODE, HTML o PHP:
#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

Nuevo Miembro
Miembro
#3
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 :oops:

nanaquí

No se por que capturas tantas cosas en switch :confused: 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++


Insertar CODE, HTML o PHP:
#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

Nuevo Miembro
Miembro
#5
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 también 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 pensé que se tratabade algúna 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.

nanaquí

Qué errores?, yo lo compile con Dev-C++ y todo bien.
 

rob1104

Super Moderador
Super Moderador
#6
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
Insertar CODE, HTML o PHP:
return 0;
antes de la ultima llave (}), y para que se puede ver bien en dev-c++ agrega estas 2 lineas justo antes del "return 0;":

Insertar CODE, HTML o PHP:
fflush(stdin);

getchar();
Nota: Eso es solo para el código de C que dejó radicalED :eek:

Saludos
 

Nanaki

Nuevo Miembro
Miembro
#7
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
Insertar CODE, HTML o PHP:
return 0;
antes de la ultima llave (}), y para que se puede ver bien en dev-c++ agrega estas 2 lineas justo antes del "return 0;":

Insertar CODE, HTML o PHP:
fflush(stdin);

getchar();
Nota: Eso es solo para el código de C que dejó radicalED :eek:

Saludos
GRACIAS agregue esas lineas y corre muy bien en dev c++
 

rob1104

Super Moderador
Super Moderador
#8
Jeje, crei que preguntarias que hacen esas 2 lineas :eek: , capaz que pongo una que destruya un sector de tu disco duro o que detenga el ventilador del cpu :eek:, 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

Nuevo Miembro
Miembro
#9
wow lo que se puede hacer con el c++ , jeje entendí tu mensaje, bueno entonces ala proxima pregunto por que esta linea u otra

desde un principio no dude que se tratase de algún codigo destructivo... de todas maneras gracias.

no se si podre seguir molestandote con mis dudas?

que tengas un buen dia :oops:

Jeje, crei que preguntarias que hacen esas 2 lineas  :eek: , capaz que pongo una que destruya un sector de tu disco duro o que detenga el ventilador del cpu :eek:, 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 
 
Estado
Cerrado para nuevas respuestas
Arriba Pie