Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Aprendiendo C: Programa ecuaciones 2º grado

Estas en el tema de Aprendiendo C: Programa ecuaciones 2º grado en el foro de C/C++ en Foros del Web. Hola, estoy aprendiendo C y tengo que hacer un programa para resolver ecuaciones de segundo grado. Lo he repasado mil veces y no sé donde ...
  #1 (permalink)  
Antiguo 15/09/2010, 10:11
Avatar de raulg  
Fecha de Ingreso: enero-2010
Mensajes: 55
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Aprendiendo C: Programa ecuaciones 2º grado

Hola, estoy aprendiendo C y tengo que hacer un programa para resolver ecuaciones de segundo grado. Lo he repasado mil veces y no sé donde está el error que me da el compilador. Dejo el código, a ver si alguien lo ve!

#include <studio.h>
#include <math.h>

void main ()

{
float a,b,c,x1,x2,d,e,f;


printf ("QUE paxa, quieres resolver ecuaciones de 2º grado???/n");

printf ("¿Cuántas x cuadradas hay?/n");
scanf("%f%*c",&a);

printf ("¿Cuántas x hay?/n");
scanf("%f%*c",&b);

printf ("¿Cuál es el termino independiente?/n");
scanf("%f%*c",&c);


if (a<1)

{
printf ("Joder, eso no es una ecuación de segundo grado! TT'/n");
}

else
{
d=sqrt(b*b-4*a*c);

if (d>0)

{
printf ("La ecuación no tiene raices reales./n");
}

else

e=2*a;

if (d=0)

{x1=-b/e;
printf("La única raiz es %f/n",x1);
}

else

{

x2=(-b-d)/e;
x1=(-b+d)/e;


printf ("Existen dos raices distintas: x1=%f y x2=%f/n",x1,x2);


}
}
}
}


Como compilador estoy usando Dev c, aunque también lo he intentado con gcc desde la terminal de ubuntu.

Este es el "resultado de la compilación" que me muestra Dev:

Compilador: Default compiler
Ejecutando gcc.exe...
gcc.exe "C:\Users\Raúlg\Desktop\primero.c" -o "C:\Users\Raúlg\Desktop\primero.exe" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\Users\Raúlg\Desktop\primero.c:1:20: studio.h: No such file or directory
C:\Users\Raúlg\Desktop\primero.c:10:61: warning: trigraph ??/ ignored, use -trigraphs to enable
C:\Users\Raúlg\Desktop\primero.c: In function `main':
C:\Users\Raúlg\Desktop\primero.c:6: warning: return type of 'main' is not `int'

C:\Users\Raúlg\Desktop\primero.c: At top level:
C:\Users\Raúlg\Desktop\primero.c:62: error: syntax error before '}' token

Ejecución Terminada


Pero, claro, el programa no se ejecuta. Alguien sabe qué puede pasar? Gracias!
  #2 (permalink)  
Antiguo 15/09/2010, 10:29
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Aprendiendo C: Programa ecuaciones 2º grado

Primero que todo el archivo "studio.h" no se encuentra. asi qeu revisa tus archivos a ver donde los tiene.

despues en la lineaa¡ 62 tienes un "{" de mas fijate bien cual es.

Ademas fijate que el tipo de main no es void. es int.
  #3 (permalink)  
Antiguo 15/09/2010, 10:34
Avatar de raulg  
Fecha de Ingreso: enero-2010
Mensajes: 55
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Aprendiendo C: Programa ecuaciones 2º grado

Ok, el programa ya funciona. ¿Qué significa que el tipo de main es int?
Y luego, me podéis decir cómo hacer que los resultados permanezcan en pantalla?
  #4 (permalink)  
Antiguo 15/09/2010, 11:41
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: Aprendiendo C: Programa ecuaciones 2º grado

main es una funcion como todas las otras, y devuelve valores. En este caso main devuelve un entero con convencion. asi que la tiene que definir asi:

int main()

Pero claro no es absolutamente necesario, pero es una aclaracion. Fiajte que el compilador devuelve un warning.

El problema de que los resultados permanezcan en pantalla, es un tema de windows. Imagino que estas usando windows. Deberias ejecutar el programa desde la consola misma. O poner una funcion que espere una tecla para continuar. TIpo un scanf para detener la ejecucion. Es solo una idea.

Por ultimo, para no confundir, dec c++ no es mas que unprograma con ciertas herramientas que hacen mas facil programar. No es un compilador. Este trate uno integrado, llamado mingw. Es solo una simple aclaracion. No hace falta que des muchas vueltas sobre esto.
  #5 (permalink)  
Antiguo 16/09/2010, 10:15
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años, 5 meses
Puntos: 61
Respuesta: Aprendiendo C: Programa ecuaciones 2º grado

En C y C++ el tipo de retorno de main debe ser int.

Algunos compiladores aceptan otros tipos de retorno o incluso void, pero eso es un servicio para todo el codigo fuente ya escrito en el pasado. Si vas a escribir codigo nuevo, escribe int main siempre.

Aqui algunas paginas relativas al tema:

http://users.aber.ac.uk/auj/voidmain.shtml
http://faq.cprogramming.com/cgi-bin/...&id=1043284376
http://www.parashift.com/c++-faq-lit....html#faq-29.3
  #6 (permalink)  
Antiguo 18/09/2010, 19:59
 
Fecha de Ingreso: abril-2010
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Aprendiendo C: Programa ecuaciones 2º grado

uh bueno lo primero la biblioteca no es #include<studio.h> (al menos que tu la hayas creado pero no creo verdad ) debes utilizar #include<stdio.h>.
y al declarar la funcion inicial es int main() no void main().
Y te esta sobrando una llave de cierre jeje.
Código:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    float a,b,c,x1,x2,des;
    printf("Cual es el valor de a: ");
    scanf("%f",&a);
    printf("Cual es el valor de b: ");
    scanf("%f",&b);
    printf("Cual es el valor de c: ");
    scanf("%f",&c); 
    des=pow(b,2)-(4*a*c);
    
    if (des==0)
    {
       x1=(-b)/(2*a);
       printf("El valor de x es x=%.4f\n",x1);   
    }
    else
        if(des<0)
           printf("No tiene solucion\n");
        else
        {
            x1=((-b)+sqrt(des))/(2*a);
            x2=((-b)-sqrt(des))/(2*a);
            printf("Los valores de x son \nx1= %.4f\nx2= %.4f\n",x1,x2);
            }
    system("pause");
    return 0;
}
te dejo este código y para hacer que los resultados permanezcan en pantalla se usa la biblioteca stdlib y la funcion system("pause");
  #7 (permalink)  
Antiguo 18/09/2010, 21:24
Avatar de raulg  
Fecha de Ingreso: enero-2010
Mensajes: 55
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Aprendiendo C: Programa ecuaciones 2º grado

muchas gracias!
  #8 (permalink)  
Antiguo 18/09/2010, 23:18
 
Fecha de Ingreso: abril-2010
Mensajes: 14
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Aprendiendo C: Programa ecuaciones 2º grado

Cita:
Iniciado por raulg Ver Mensaje
muchas gracias!
De nada aqui estamos para ayudar jeje =D
  #9 (permalink)  
Antiguo 16/01/2012, 18:30
 
Fecha de Ingreso: noviembre-2010
Ubicación: mexico df
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Respuesta: Aprendiendo C: Programa ecuaciones 2º grado

Hola estaba viendo el programa soy nuevo en Dev C++

el planteamiento es

El problema a resolver es el siguiente: ELABORAR UN PROGRAMA PARA RESOLVER UNA ECUACIÓN DE SEGUNDO GRADO.


DATOS DE ENTRADA: COEFICIENTES DE LA ECUACION, A, B Y C.



LA ECUACIÓN ES DE LA FORMA: Ax2 + Bx + C = 0



PROCESO:

APLICAR LA FORMULA GENERAL PARA RESOLVER ECUACIONES DE SEGUNDO GRADO





SALIDA

LOS VALORES DE LAS RAICES REALES DE LA ECUACION: X1 Y X2 EN CASO DE QUE LAS RAICES SEAN IMAGINARIAS (B2 - 4ac < 0) MANDAR UN MENSAJE QUE DIGA LAS RAICES SON IMAGINARIAS.

Ahora b ien la pregunta es si hay algun manual o tutorial donde pueda explicar como se construye el programa?

Gracias
  #10 (permalink)  
Antiguo 16/01/2012, 18:34
 
Fecha de Ingreso: noviembre-2010
Ubicación: mexico df
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Respuesta: Aprendiendo C: Programa ecuaciones 2º grado

Hola estaba viendo el programa soy nuevo en Dev C++

el planteamiento es

El problema a resolver es el siguiente: ELABORAR UN PROGRAMA PARA RESOLVER UNA ECUACIÓN DE SEGUNDO GRADO.


DATOS DE ENTRADA: COEFICIENTES DE LA ECUACION, A, B Y C.



LA ECUACIÓN ES DE LA FORMA: Ax2 + Bx + C = 0



PROCESO:

APLICAR LA FORMULA GENERAL PARA RESOLVER ECUACIONES DE SEGUNDO GRADO


-b+- raiz de b^2-4ac sobre 2a


SALIDA

LOS VALORES DE LAS RAICES REALES DE LA ECUACION: X1 Y X2 EN CASO DE QUE LAS RAICES SEAN IMAGINARIAS (B2 - 4ac < 0) MANDAR UN MENSAJE QUE DIGA LAS RAICES SON IMAGINARIAS.

Ahora b ien la pregunta es si hay algun manual o tutorial donde pueda explicar como se construye el programa?

Gracias
  #11 (permalink)  
Antiguo 16/01/2012, 20:12
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 10 meses
Puntos: 94
Respuesta: Aprendiendo C: Programa ecuaciones 2º grado

Hola paynani! no creo que haya un manual que te ayude justo con ese programa, lo que si todos los libros te dan la parte teorica como para que puedas resolver tus programas, a partir de ahi con un poco de practica y horas frente a la pc queda en vos como lo resolves. Te recomiendo que empieces haciendo un pseudocodigo en una hoja fijandote paso x paso que necesitas y recien pasar al codigo.

Saludos
  #12 (permalink)  
Antiguo 17/01/2012, 14:00
 
Fecha de Ingreso: noviembre-2010
Ubicación: mexico df
Mensajes: 3
Antigüedad: 14 años
Puntos: 0
Respuesta: Aprendiendo C: Programa ecuaciones 2º grado

Gracias por la pronta respuesta

Creo poder hacer el seudocodigo

Gracias amigos del foro

Etiquetas: ecuaciones, grado, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:28.