[C con Clase] ayuda
Salvador Pozo
salvador en conclase.net
Lun Sep 17 12:41:16 CEST 2007
El pasado 2007-09-16 20:52:50, luis carlos escribió:
lc> hola a todos
lc> este es mi primer intento de programar una ecuacion cudratica soy nuevo en programacion y quisiera q me ayuden si esta bien mi primer intento
lc> de antemano gracias por la ayuda q puedan bridarme
Hola:
Veo que tienes bastantes errores básicos en tu programa, por lo que debo deducir que, o bien llevas poco tiempo con C++ o no has puesto la atención necesaria.
Te añadiré comentarios a lo largo del programa:
---8<-----
#include <iostream>
/* En C++, los ficheros de cabecera no tienen el .h al final */
#include <cmath>
/* cmath es la versión C++ del fichero de cabecera estándar C "math.h".
es necesario para usar algunas funciones matemáticas */
//#include <conio.h>
/* conio no es estándar, y además, no lo necesitamos en este programa */
using namespace std;
/* En C++ estándar es necesario activar el espacio con nombre std para usar
los objetos e identificadores declarados en los ficheros de cabecera
estandar */
int main() {
/* En C++ es obligatorio indicar el valor de retorno de las funciones.
Además, el valor de retorno de la función main es int */
double A, B, C, Dis, x1, x2, aux;
/* También es obligatorio declarar todas las variables */
cout<<"ingrese A "; cin>> A;
/* El operador es ">>" no "> >". Las variables A, B y C no fueron declaradas */
cout<<"ingrese B "; cin>> B;
cout<<"ingrese C "; cin>> C;
//x1=(-B+sqrt(B*B-4*A*C))/(2*A);
//x2=(-B-sqrt(B*B-4*A*C))/(2*A);
/* Estas dos sentencias no son necesarias, se pueden eliminar.
En cualquier caso, tenían errores:
- El operador ^ no es el de potencia, sino un operador de bits. No existe
ningún operador para potencias, se debe usar la función pow() o en este
caso, B*B
- La función para la raíz cuadrada es sqrt, no sqr, y para poder usarla se
debe incluir el fichero de cabecera cmath.
- Faltan los paréntesis en el denominador. */
if(A != 0) {
/* El operador para desigualdades no es "<>", sino "!=" */
Dis=B*B-4*A*C;
/* Falta el punto y coma final, y declarar la variable Dis.
4AC debe ser 4*A*C.
No usar el operador ^ */
if(Dis >= 0) {
/* El operador es ">=", no "> =" */
if(Dis == 0) {
/* El operador de comparación es "==" no "=". Este último es el operador de
asignación */
cout<<"escribir x= ";
// cin>> x;
/* No creo que sea una entrada, lo quieres hacer es una salida, se debe usar
cout */
x1=x2=-B/(2*A);
/* Falta el punto y coma.
x1 y x2 no fueron declaradas.
Faltan paréntesis en denominador. */
cout << x1 << endl;
/* Mostrar valor de salida */
} else {
/* Falta llave cerrada del if "}" */
cout<<"escribir x1, x2: ";
//cin>> x1;
//cin>> x2;
/* Como antes, cin es para la entrada de datos, no para la salida */
aux=sqrt(B*B-4*A*C);
/* El nombre de la función es "sqrt" y se usa B*B para calcular el cuadrado.
aux no fue declarada */
x1=(-B+aux)/(2*A);
x2=(-B-aux)/(2*A);
/* Faltan los paréntesis en numeradores y denominadores. */
cout << x1 << "," << x2 << endl;
/* Mostrar la salida */
}
} else {
cout<<"raiz compleja";
}
} else {
cout<<"no es una ecuacion de segundo grado";
}
// en este punto sobra la llave cerrada "}"
cin.get();
cin.get();
/* Falta el punto y coma. La función geth() no existe.
En su lugar podemos usar cin.get(), de modo que se detenga el
programa hasta que se pulse una tecla. */
return 0;
/* main siempre devuelve un entero. Un valor 0 indica que no ha habido
errores */
}
Creo que eso es todo.
Hasta pronto.
--
Salvador Pozo (Administrador)
mailto:salvador en conclase.net
Más información sobre la lista de distribución Cconclase