Autor
|
Tema: programa para operaciones múltiples no me corre (Leído 4,290 veces)
|
halomar
Desconectado
Mensajes: 3
|
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
Mensajes: 388
Cada dia C++!!
|
Lee sobre Precedencia.. http://c.conclase.net/curso/?cap=014Utiliza 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
Mensajes: 502
|
@halomar supongo que utilizas Turbo C++ por esto: #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. switch (oper) { case 'a': case 'A': cout<<"la suma de los numeros es: "<<suma=num1+num2; 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
Mensajes: 199
|
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: #include <iostream> //biblioteca estandar de C++ #include <cstdio> //archivo de cabecera de C --->correcto #include <stdio.h> // ---> incorrecto
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
Mensajes: 19
|
#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
Mensajes: 3
|
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
|
|
|
|
|
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
|
7,157
|
21 Septiembre 2010, 21:48 pm
por invisible_hack
|
|
|
Crear un programa para operaciones con cadenas
Programación C/C++
|
Montse2293
|
6
|
4,476
|
3 Enero 2011, 01:54 am
por Leyer
|
|
|
programa para ejecutar aplicaciones multiples
Software
|
Vjuan_
|
3
|
4,170
|
18 Febrero 2011, 23:21 pm
por Vjuan_
|
|
|
Error: programa no corre en window7 64 bits
.NET (C#, VB.NET, ASP)
|
trobador789
|
8
|
4,545
|
15 Enero 2013, 21:07 pm
por seba123neo
|
|
|
Programa operaciones no muy bien acabado
Programación C/C++
|
novatus84
|
2
|
1,683
|
16 Octubre 2014, 16:24 pm
por novatus84
|
|