Hola, aquí está el código efeiron, me olvidé de ponerlo, lo siento xD
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <graphics.h>
#include <math.h>
/* Les funcions del meu programa */
void Menu(void);
/* Men£ presentaci¢ del programa */
void CalculArrels(void);
/* C...lcul anal¡tic de les arrels */
void RepresentacioGrafica(void);
/* Representaci¢ gr...fica de les arrels */
void main(void)
{
/* Declaraci¢ de les variables utilitzades al programa principal */
int opcio=0;
/* Instruccions del programa principal */
clrscr();
Menu();
printf("\n\n\t Quina opci¢ esculls? ");
scanf("%d", &opcio);
switch (opcio){
case 1: CalculArrels(); break;
case 2: RepresentacioGrafica(); break;
case 3: break;
default: exit(1);
};
getch();
}
/* Aqu¡ s'acaba el programa principal. Ara definim les subrutines */
void Menu(void)
{
/* Variables de la funci¢ Menu */
/* Instruccions de la funci¢ Menu */
printf("\n\n\t An...lisi d'un polinomi de segon grau.\n");
printf("\n\n\t 1. C...lcul de les arrels del polinomi de segon grau.");
printf("\n\n\t 2. Representaci¢ gr...fica del polinomi de segon grau.");
printf("\n\n\t 3. Sortir.");
}
void CalculArrels(void)
{
/* Variables de la funci¢ CalculaArrels */
double coef_a=0, coef_b=0, coef_c=0;
double solu_1=0, solu_2=0, part_re=0, part_im=0;
double discriminant=0;
/* Instruccions */
clrscr();
printf("\n\n\t Lectura de les dades.\n");
printf("\n\t Coeficient a:= ");
scanf("%lf",&coef_a);
printf("\n\t Coeficient b:= ");
scanf("%lf",&coef_b);
printf("\n\t Coeficient c:= ");
scanf("%lf",&coef_c);
discriminant=coef_b*coef_b-4*coef_a*coef_c;
if (discriminant > 0){
solu_1=.5*(-coef_b+sqrt(discriminant));
solu_2=.5*(-coef_b-sqrt(discriminant));
printf("\n\n\t Polinomi amb dues arrels reals:\n");
printf("\n\t\t X_1:= %lf\n", solu_1);
printf("\n\t\t X_2:= %lf\n", solu_2);
}
if (discriminant == 0){
solu_1=-.5*coef_b/coef_a;
printf("\n\n\t Polinomi amb una arrel doble:\n");
printf("\n\t X_1= %lf\n", solu_1);
}
if (discriminant < 0){
part_re=-.5*coef_b/coef_a;
part_im=.5*sqrt(-discriminant)/coef_a;
printf("\n\n\t Polinomi amb dues arrels complexes conjugades:\n");
printf("\n\t\t X_1:= %lf + %lf i \n", part_re, part_im);
printf("\n\t\t X_2:= %lf - %lf i \n", part_re, part_im);
}
}
void RepresentacioGrafica(void)
{
/* Definici¢ de les variables */
int control=VGA, mode=VGAHI;
initgraph( &control, &mode, "c:\\tc");
setcolor(YELLOW); /* o podem escriure setcolor(14); */
rectangle (40,30,300,450);
rectangle (60,50,280,430);
setcolor(RED);
line(70,240,260,240);
line(165,80,165,400);
setcolor(BLUE);
putpixel(440,30,MAGENTA);
outtextxy(450,70,"Informaci¢");
getch();
closegraph();
Me falta código en la parte de RepresentacioGrafica, lo que me gustaría hacer es que, en el espacio que tengo predeterminado (el primer rectangle, ya que es el más grande), realizar esta secuencia de bucles de puntos que has comentado Gh057, pero es que no se como sería la verdad..
Es decir, lo que yo quiero hacer es, introducir por ejemplo un valor de una equación, que sea por ejemplo y=2x^2+3x-5 (ojo, resolver esta ecuación ya esta en la parte de CalculArrels), pues que, con una sucessión de puntos, me dibuje como sería esa equación en los ejes que ya tengo hechos (Los dos Line)
Gracias por las respuestas.
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <graphics.h>
#include <math.h>
/* Les funcions del meu programa */
void Menu(void);
/* Men£ presentaci¢ del programa */
void CalculArrels(void);
/* C...lcul anal¡tic de les arrels */
void RepresentacioGrafica(void);
/* Representaci¢ gr...fica de les arrels */
void main(void)
{
/* Declaraci¢ de les variables utilitzades al programa principal */
int opcio=0;
/* Instruccions del programa principal */
clrscr();
Menu();
printf("\n\n\t Quina opci¢ esculls? ");
scanf("%d", &opcio);
switch (opcio){
case 1: CalculArrels(); break;
case 2: RepresentacioGrafica(); break;
case 3: break;
default: exit(1);
};
getch();
}
/* Aqu¡ s'acaba el programa principal. Ara definim les subrutines */
void Menu(void)
{
/* Variables de la funci¢ Menu */
/* Instruccions de la funci¢ Menu */
printf("\n\n\t An...lisi d'un polinomi de segon grau.\n");
printf("\n\n\t 1. C...lcul de les arrels del polinomi de segon grau.");
printf("\n\n\t 2. Representaci¢ gr...fica del polinomi de segon grau.");
printf("\n\n\t 3. Sortir.");
}
void CalculArrels(void)
{
/* Variables de la funci¢ CalculaArrels */
double coef_a=0, coef_b=0, coef_c=0;
double solu_1=0, solu_2=0, part_re=0, part_im=0;
double discriminant=0;
/* Instruccions */
clrscr();
printf("\n\n\t Lectura de les dades.\n");
printf("\n\t Coeficient a:= ");
scanf("%lf",&coef_a);
printf("\n\t Coeficient b:= ");
scanf("%lf",&coef_b);
printf("\n\t Coeficient c:= ");
scanf("%lf",&coef_c);
discriminant=coef_b*coef_b-4*coef_a*coef_c;
if (discriminant > 0){
solu_1=.5*(-coef_b+sqrt(discriminant));
solu_2=.5*(-coef_b-sqrt(discriminant));
printf("\n\n\t Polinomi amb dues arrels reals:\n");
printf("\n\t\t X_1:= %lf\n", solu_1);
printf("\n\t\t X_2:= %lf\n", solu_2);
}
if (discriminant == 0){
solu_1=-.5*coef_b/coef_a;
printf("\n\n\t Polinomi amb una arrel doble:\n");
printf("\n\t X_1= %lf\n", solu_1);
}
if (discriminant < 0){
part_re=-.5*coef_b/coef_a;
part_im=.5*sqrt(-discriminant)/coef_a;
printf("\n\n\t Polinomi amb dues arrels complexes conjugades:\n");
printf("\n\t\t X_1:= %lf + %lf i \n", part_re, part_im);
printf("\n\t\t X_2:= %lf - %lf i \n", part_re, part_im);
}
}
void RepresentacioGrafica(void)
{
/* Definici¢ de les variables */
int control=VGA, mode=VGAHI;
initgraph( &control, &mode, "c:\\tc");
setcolor(YELLOW); /* o podem escriure setcolor(14); */
rectangle (40,30,300,450);
rectangle (60,50,280,430);
setcolor(RED);
line(70,240,260,240);
line(165,80,165,400);
setcolor(BLUE);
putpixel(440,30,MAGENTA);
outtextxy(450,70,"Informaci¢");
getch();
closegraph();
Me falta código en la parte de RepresentacioGrafica, lo que me gustaría hacer es que, en el espacio que tengo predeterminado (el primer rectangle, ya que es el más grande), realizar esta secuencia de bucles de puntos que has comentado Gh057, pero es que no se como sería la verdad..
Es decir, lo que yo quiero hacer es, introducir por ejemplo un valor de una equación, que sea por ejemplo y=2x^2+3x-5 (ojo, resolver esta ecuación ya esta en la parte de CalculArrels), pues que, con una sucessión de puntos, me dibuje como sería esa equación en los ejes que ya tengo hechos (Los dos Line)
Gracias por las respuestas.