Autor
|
Tema: consejos sobre programa (Leído 4,421 veces)
|
novatus84
Desconectado
Mensajes: 18
|
buenas tengo realizado este programa: #include <iostream> #include <math.h> using namespace std; int main(){ double a,b,c; cout<<"Ingresa a"<<endl; cin>>a; cout<<"Ingresa b"<<endl; cin>>b; cout<<"Ingresa c"<<endl; cin>>c; double disc=pow(b,2)-4*a*c; if(a!=0){ if(disc<0){ cout<<"Tiene raices imaginarias"; }else{ double x1=(-b+sqrt(disc))/(2*a); double x2=(-b-sqrt(disc))/(2*a); cout<<"X1 = "<<x1<<" X2 = "<<x2; } }else{ cout<<"El coeficiente a debe ser diferente a 0"; } return 0; }
Mis preguntitas son las siguientes: Como hacer un infinite main loop para que al acabar pregunte al usuario si quiere hacer mas ecuaciones o salir? Y como puedo conseguir que el usuario no pueda meter letras para que de un error, gracias de antemano saludos
|
|
« Última modificación: 26 Octubre 2014, 18:54 pm por #!drvy »
|
En línea
|
|
|
|
MeCraniDOS
Desconectado
Mensajes: 337
Sr. Glass
|
Como hacer un infinite main loop para que al acabar pregunte al usuario si quiere hacer mas ecuaciones o salir?
Puedes utilizar la instrucciondo { // Codigo que quieres que se repita } while(/*condicion, Ej: letra == 's' || letra == 'S'*/);
Saludos
|
|
|
En línea
|
"La física es el sistema operativo del Universo" -- Steven R Garman
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
como puedo conseguir que el usuario no pueda meter letras para que de un error En C++ estándar no puedes bloquear la pulsación de teclas, para ello debes utilizar una biblioteca de terceros o el API del SO. En su lugar lo que puedes hacer es leer una linea de texto y validar su contenido, dos temas sobre ello son: duda c++Leer un char como floatUn saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
novatus84
Desconectado
Mensajes: 18
|
Porque me da error el segundo else? no me hace ni el calculo? Gracias por la ayuda. #include <iostream> #include <math.h> using namespace std; int main(){ double a,b,c; char n; do{ cout<<"Ingresa a"<<endl; cin>>a; cout<<"Ingresa b"<<endl; cin>>b; cout<<"Ingresa c"<<endl; cin>>c; double disc=pow(b,2)-4*a*c; if(a!=0){ if(disc<0){ cout<<"Tiene raices imaginarias"; }else{ double x1=(-b+sqrt(disc))/(2*a); double x2=(-b-sqrt(disc))/(2*a); cout<<"X1 = "<<x1<<" X2 = "<<x2; } }else { cout<<"El coeficiente a debe ser diferente a 0"; } cout << "\nquieres hacer otra ecuacion?"; cout << "\nteclea 'y' para 'Si' -- 'n' para 'No': "; cin >> n; cout << "\n"; }while (n == 'y' || n == 'Y'); return 0; }
|
|
« Última modificación: 26 Octubre 2014, 19:08 pm por novatus84 »
|
En línea
|
|
|
|
engel lex
|
usa las etiquetas GeSHi para publicar codigo (por favor modifica los posts y colocalos entre etiquetas c++)
publica el error exacto
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
novatus84
Desconectado
Mensajes: 18
|
Porque me da error el segundo else? no me hace ni el calculo? Gracias por la ayuda. #include <iostream> #include <math.h> using namespace std; int main(){ double a,b,c; char n; do{ cout<<"Ingresa a"<<endl; cin>>a; cout<<"Ingresa b"<<endl; cin>>b; cout<<"Ingresa c"<<endl; cin>>c; double disc=pow(b,2)-4*a*c; if(a!=0){ if(disc<0){ cout<<"Tiene raices imaginarias"; }else{ double x1=(-b+sqrt(disc))/(2*a); double x2=(-b-sqrt(disc))/(2*a); cout<<"X1 = "<<x1<<" X2 = "<<x2; } }else { cout<<"El coeficiente a debe ser diferente a 0"; } cout << "\nquieres hacer otra ecuacion?"; cout << "\nteclea 'y' para 'Si' -- 'n' para 'No': "; cin >> n; cout << "\n"; }while (n == 'y' || n == 'Y'); return 0; }
|
|
|
En línea
|
|
|
|
engel lex
|
Porque me da error el segundo else? no me hace ni el calculo? Gracias por la ayuda.
a mi me corre bien Ingresa a 1 Ingresa b 4 Ingresa c 4 X1 = -2 X2 = -2 quieres hacer otra ecuacion? teclea 'y' para 'Si' -- 'n' para 'No':
Ingresa a 2 Ingresa b 4 Ingresa c 4 Tiene raices imaginarias quieres hacer otra ecuacion? teclea 'y' para 'Si' -- 'n' para 'No': n
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
novatus84
Desconectado
Mensajes: 18
|
Como conseguir que el usuario no introduzca letras (que sea error), que solo pueda introducir números no lo consigo ni con el post de antes.
Muchas gracias
|
|
|
En línea
|
|
|
|
engel lex
|
sorry por no responder jejeje cin tiene la peculiaridad que si lo capturado no coincide con el tipo, se vuelve falso... la puedes usar double a; cout<<"Ingresa a"<<endl; cin>>a; if(!cin){ cout << "no es numero" << endl; }
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
novatus84
Desconectado
Mensajes: 18
|
El problema que tengo ahora es al meter el valor erróneo de a == letra, he puesto un break para acabar el programa, realmente quiero que me vaya al loop de while para volver a empezarlo de nuevo, como lo puedo hacer? lo mismo con b y c. #include <iostream> #include <math.h> using namespace std; int main(){ double a,b,c; char z; do{ cout<<"Please enter value of a"<<endl; cin>>a; if(!cin){ cout << "a is not a number" << endl; break;} cout<<"Please enter value of b"<<endl; cin>>b; if(!cin){ cout << "b is not a number" << endl; break;} cout<<"Please enter value of c"<<endl; cin>>c; if(!cin){ cout << "c is not a number" << endl; break;} double operation=pow(b,2)-4*a*c; if(a!=0){ if(operation<0){ cout<<"The solution has imaginary roots"; }else{ double x1=(-b+sqrt(operation))/(2*a); double x2=(-b-sqrt(operation))/(2*a); cout <<"X1 = " <<x1; cout << "\n"; cout <<"X2 = " <<x2; } }else { cout<<"The value of a can not be 0"; } cout << "\nDo you want to do another equation?"; cout << "\ntouch 'y' For 'YES' ---- 'n' For 'Exit': "; cin >> z; cout << "\n"; }while (z == 'y' || z == 'Y'); return 0; }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
hola consejos sobre avi
Multimedia
|
led2006
|
6
|
2,569
|
18 Julio 2006, 18:31 pm
por Songoku
|
|
|
Características y Consejos sobre la PSP
Juegos y Consolas
|
black_rafar
|
0
|
1,510
|
28 Enero 2008, 13:05 pm
por black_rafar
|
|
|
Recomendaciones sobre Tor y consejos sobre el anonimato.
Seguridad
|
OmarHack
|
2
|
6,589
|
15 Julio 2013, 20:28 pm
por OmarHack
|
|
|
Ayuda/Consejos -> Programa para un particular
Programación General
|
slyfx
|
0
|
1,590
|
13 Noviembre 2013, 09:48 am
por slyfx
|
|
|
[BUSCO CONSEJOS] Leer un controlador usb en mi programa.
Programación General
|
NikNitro!
|
2
|
2,797
|
17 Agosto 2014, 22:08 pm
por NikNitro!
|
|