elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  programa para operaciones múltiples no me corre
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: programa para operaciones múltiples no me corre  (Leído 4,251 veces)
halomar

Desconectado Desconectado

Mensajes: 3


Ver Perfil
programa para operaciones múltiples no me corre
« en: 25 Marzo 2011, 05:54 am »

hola colegas me estoy iniciando con esto de la programación en c++ y tengo un libro y me puse a hacer un programa que pidiera dos números y dependiendo de la opción que el usuario escogiera el programa tenia que ejecutarla pero la verdad es que no se donde esta el error por favor les presento mi programa y díganme donde estoy mal el objetivo es hacerlo con la función switch gracias de antemano


#include <iostream.h>
int main ()
{   
   
    char oper;
    int num1, num2;
    int suma, resta, mult, div, resto;
    cout<<"teclee dos numeros\n";
    cout<<"primer numero:";
    cin>>num1;
    cout<<"segundo numero:";
    cin>>num2;
    cout<<"elija una operacion\n";
    cout<<"suma: S " << endl;
    cout<<"resta: R "<< endl;
    cout<<"multiplicacion: M "<<endl;
    cout<<"division: D "<<endl;
    cin>>oper;
   
   
        switch (oper)
         {
           case 'a':
           case 'A':
           cout<<"la suma de los numeros es: "<<suma=num1+num2;
            break;
           
           case 'R':
           case 'r':
           cout<<"la resta de los numeros es: "<<resta=num1-num2;
           break;
           
           case 'M':
           case 'm':
           cout<<"el producto de los numeros es:"<<mult=num1*num2;
           break;.
           
           case 'D':
           case 'd':
           cout<<" la division de los numeros es: "<<div=num1/num2;
           cout<<endl<<"el resto es: "<<resto=num1%num2;
           break;
           default:
           cout<<"la operacion que escogio no es corresta"<<endl;
          }
 system ("pause");
 return 0;
}


En línea

.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: programa para operaciones múltiples no me corre
« Respuesta #1 en: 25 Marzo 2011, 06:10 am »

Lee sobre Precedencia..
http://c.conclase.net/curso/?cap=014

Utiliza etiquetas GeSHi para mostrar tus codigos... Y mejor trabaja con variables tipo flotante... Por lo de la division...

Saludos...


En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: programa para operaciones múltiples no me corre
« Respuesta #2 en: 25 Marzo 2011, 06:26 am »

@halomar supongo que utilizas Turbo C++  por esto:
Código
  1. #include <iostream.h>
Deberias cambiarlo en mi caso te recomendaria Visual C++ 2008-2010, pero existen muchos otros y eso depende de tu gusto.
Para el switch puedes usar tolower o toupper para pasar el caracter a minuscula o mayuscula, o puedes hacerlo manualmente sin usar esas funciones.

Código
  1. switch (oper)
  2.         {
  3.           case 'a':
  4.           case 'A':
  5.           cout<<"la suma de los numeros es: "<<suma=num1+num2;
  6.            break;

Ademas porque usas 'a' o 'A' si en las opciones muestras 'S', tienes que revisar el uso de la sentencia switch que de seguro esta en el libro que usas (si no esta, mejor usa otro libro), al ver como manejas los operadores pienso que deberias volver a leer el libro que usas u otro mejor porque cometes demasiados errores.
Saluos.
En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
4rkn63l

Desconectado Desconectado

Mensajes: 199



Ver Perfil
Re: programa para operaciones múltiples no me corre
« Respuesta #3 en: 25 Marzo 2011, 06:46 am »

El estandar de C++ dice que no se deberian de incluir archivos de cabecera con la extension .h, aun si fuesen archivos de cabecera de C, en vez de agregarles la extension .h, se les antepondra el caracter 'c'...por ejemplo:

Código
  1. #include <iostream> //biblioteca estandar de C++
  2. #include <cstdio> //archivo de cabecera de C  --->correcto
  3. #include <stdio.h> // ---> incorrecto
  4.  

Los otros dos errores que tienes tienen que ver con precedencia de operadores...una pista ----> ( ) jeje.

Y el otro error tiene que ver con los espacios de nombres...busca info sobre el espacio de nombres al que pertenecen los objetos cout,cin y endl.
En línea

Samael.Black

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: programa para operaciones múltiples no me corre
« Respuesta #4 en: 25 Marzo 2011, 08:48 am »

Código:
#include <iostream.h> // Error 1... libreria <iostream> no <iostream.h> 
int main ()
{  
    
    char oper;
    int num1, num2;
    int suma, resta, mult, div, resto;
    //Error 2 no pusistes std:: antes de cada cout, cin y endl
    cout<<"teclee dos numeros\n";
    cout<<"primer numero:";
    cin>>num1;
    cout<<"segundo numero:";
    cin>>num2;
    cout<<"elija una operacion\n";
    cout<<"suma: S " << endl;
    cout<<"resta: R "<< endl;
    cout<<"multiplicacion: M "<<endl;
    cout<<"division: D "<<endl;
    cin>>oper;
    
    /* Error 3 si mal no recuerdo switch no puede comparar cadenas de caracteres
        (no estoy 100% seguro) */
        switch (oper)
         {
           case 'a'://Error 4 para la suma es S o s no a o A
           case 'A':
           cout<<"la suma de los numeros es: "<<suma=num1+num2;
            break;
          
           case 'R':
           case 'r':
           cout<<"la resta de los numeros es: "<<resta=num1-num2;
           break;
          
           case 'M':
           case 'm':
           cout<<"el producto de los numeros es:"<<mult=num1*num2;
           break;.
          
           case 'D':
           case 'd':
           cout<<" la division de los numeros es: "<<div=num1/num2;
           cout<<endl<<"el resto es: "<<resto=num1%num2;
           break;
           default:
           cout<<"la operacion que escogio no es corresta"<<endl;
          }
 system ("pause"); //Error 5 no incluiste la libreria <stdlib.h> para usar system
 return 0;
// Error 6 una divicion puede saltar numeros con coma flotante (float)
}

Esos son los errores que tiene tu código... suerte en solucionarlos...
« Última modificación: 25 Marzo 2011, 09:28 am por Samael.Black » En línea

halomar

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: programa para operaciones múltiples no me corre
« Respuesta #5 en: 25 Marzo 2011, 22:10 pm »

Hola colegas ya encontré donde estaba mi error ademas de las correcciones que ustedes mi hicieron: primero corregí lo de #include <iostream> luego lo de std::out std::cin y std::endl tercero lo de la suma en realidad tenia la s y S pero por querer saber si el error era por lo de la variable tipo char entonces coloque un numero y aislé el resto del código con el símbolo del comentario (/* */)pero como seguía sin correr volví a colocar las letras pero esta ves por error use la a y A ...
 pero como les digo encontré el problema y estaba en <<suma=num1+num2; lo que hice fue <<num1+num2 y lo mismo con el resto de las operaciones y el programa corrió...
nota1: el libro que uso se llama : "resolución de problemas con c++ el objetivo de la programación" segunda edición Walter Savitch
nota2: el compilador que estoy usando se llama Dev-c++ 4.9.9.2
nota3: este no sale como ejemplo este quise hacerlo usando la funcion swith por lo que si hay muchos errores pues creo que son míos la verdad ya vi que no soy muy bueno programando...
nota4:la función switch si me acepto variable char
nota5: seguí el consejo que me dieron de declarar div como float pero cuando el numerador es mayor que el denominador me sale cero... ¿porqué?
 agradezco a todos los que comentaron ya que según veo son muy buenos en esto de la programación
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Capturan a loro que alertaba a narcos'Corre, corre que te coge el gato!!!
Foro Libre
ALEX_21_3 6 6,985 Último mensaje 21 Septiembre 2010, 21:48 pm
por invisible_hack
Crear un programa para operaciones con cadenas
Programación C/C++
Montse2293 6 4,442 Último mensaje 3 Enero 2011, 01:54 am
por Leyer
programa para ejecutar aplicaciones multiples
Software
Vjuan_ 3 4,114 Último mensaje 18 Febrero 2011, 23:21 pm
por Vjuan_
Error: programa no corre en window7 64 bits
.NET (C#, VB.NET, ASP)
trobador789 8 4,486 Último mensaje 15 Enero 2013, 21:07 pm
por seba123neo
Programa operaciones no muy bien acabado
Programación C/C++
novatus84 2 1,655 Último mensaje 16 Octubre 2014, 16:24 pm
por novatus84
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines