Bienvenido: ( Identificarse | Registrarse )      
Foros de Trucos Windows
Closed TopicStart new topicStart Poll

Outline · [ Estándar ] · Lineal+

> Ayuda para un novato

Nanaki
post Apr 24 2007, 04:47 AM
Publicado: #1


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




User is offlineProfile CardPM
Go to the top of the page
+Quote Post
RadicalEd
post Apr 24 2007, 07:23 PM
Publicado: #2


Desocupado Programando
Group Icon

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



No se por que capturas tantas cosas en switch confused.gif 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);
 }
}



User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Nanaki
post Apr 25 2007, 04:50 AM
Publicado: #3


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 smile.gif
nanaki



QUOTE(RadicalEd @ Apr 24 2007, 07:23 PM)
No se por que capturas tantas cosas en switch confused.gif 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);
 }
}

*





User is offlineProfile CardPM
Go to the top of the page
+Quote Post
RadicalEd
post Apr 25 2007, 02:10 PM
Publicado: #4


Desocupado Programando
Group Icon

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



Qué errores?, yo lo compile con Dev-C++ y todo bien.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Nanaki
post Apr 25 2007, 11:07 PM
Publicado: #5


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.
*


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Apr 25 2007, 11:39 PM
Publicado: #6


Gears of War 2 ... a reason to have an Xbox 360...
Group Icon

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 tongue.gif

Saludos
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Nanaki
post Apr 26 2007, 08:28 PM
Publicado: #7


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 tongue.gif

Saludos
*



GRACIAS biggrin.gif agregue esas lineas y corre muy bien en dev c++

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
rob1104
post Apr 26 2007, 11:33 PM
Publicado: #8


Gears of War 2 ... a reason to have an Xbox 360...
Group Icon

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 tongue.gif , capaz que pongo una que destruya un sector de tu disco duro o que detenga el ventilador del cpu tongue.gif, 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 bye1.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Nanaki
post Apr 28 2007, 04:39 AM
Publicado: #9


Maestro
*****

Grupo: Members
Mensajes: 265
Registrado: 22-July 06
Miembro nº: 174.901



wow lo que se puede hacer con el c++ wacko.gif , jeje entendi tu mensaje, bueno entonces ala proxima pregunto por que esta linea u otra new18.gif
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 smile.gif

QUOTE(robbie110487 @ Apr 26 2007, 11:33 PM)
Jeje, crei que preguntarias que hacen esas 2 lineas  tongue.gif , capaz que pongo una que destruya un sector de tu disco duro o que detenga el ventilador del cpu tongue.gif, 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  bye1.gif
*


User is offlineProfile CardPM
Go to the top of the page
+Quote Post

 
Closed TopicTopic OptionsStart new topic

Collapse

> Topicos similares

Lista de programas gratuitos para windows bres 88.246 97 Hoy, 07:31 AM
By: Germanpages64
esa diferencia es para tanto? heynick 3 0 Hoy, 06:53 AM
By: heynick
juegos para celulares EL-VIRUS 4 0 Hoy, 04:48 AM
By: EL-VIRUS
Ayuda, ordenador arranca pero se apaga en cuest ... titometal 14 2 Hoy, 03:08 AM
By: viru
codecs para windows vista asazammyzamora 19 0 Hoy, 02:45 AM
By: asazammyzamora