Anda di halaman 1dari 5

Programa ----FIJA DE PROGRA

CODIFICACION HASTA EL ORDENAMIENTO DE N x f(x)

float f(float x){


return exp(0.1*x)*cos(x*x);}//primero definimos la funcion

void Cprogra7fijaDlg::OnBnClickedButton1()
{
int i=1,j=1;// contador usado -------> para N
float x;
CString cad,msj;
UpdateData(true);
//como voy a repetir el proceso se tiene que resetear el programa entonces
la siguiente funcion equivale a un system(clscsr) en c++
m_Mym.ResetContent();
m_discret.ResetContent();
//definimos lo que va a aparecer en la lista de maximos y minimos....para
esto USAR .AddString
msj=" N x f(x)";
//para "msj" aparezca en la lista HACEMOS:
m_Mym.AddString(msj);
msj="================";
m_Mym.AddString(msj);
//definimos los valores maximos y minimos
for(x=m_a;x<=m_b;x+=m_h,i++){//Antes debemos hacer que aparezcan los datos
en el orden que habiamos definido N x f(x)
cad.Format(_T("%d"),i);//va "%2d" dado que i es un valor entero,
esto nos dara por linea 1 2 3 4... ahora definamos x.....PROBAR CON %4
msj=cad;
cad.Format(_T("%5.3f"),x);//formateamos la cadena anterior y le
asignamos un nuevo valor
msj=msj+_T(") ")+cad;/*En esta nueva cadena se almacena la
anterior y la nueva que se esta definiendo mediante el cad.Format------nos dara
por linea 1) 1.000
con 3 decimales dado que".3f" +
cad pero en este caso la cad=x y se definio que x empieza en 1 y varia en 0.3 por
tanto en la linea
se genera 1) 1.000 2) 1.300
........*/

// AHORA DEFINAMOS f(x)


cad.Format(_T("%10.4f"),f(x));/*En esta nueva cadena se almacena la
anterior y la nueva que se esta definiendo mediante el cad.Format, es decir al
msj anterior
que finalizo en la primera linea
asi 1) --15 espacios -- 1.000, a partir de aca se agregan los ties espacios mas
y la f(x) debe
contener 4 decimales por el ".4f"
*/

msj=msj+cad;/*Tambien es lo mismo usar msj=msj +_T(" ") + cad..... es


decir cada vez que se quiera agregar algo al mensaje -->msj se antepone
_T("Lo que se quiere agregar").*/

m_Mym.AddString(msj);/* Equivale a un COUT pero en la lis BOX ya


que agrega esa cadena a la lista de maximos y minimos.
Ahora si compilamos a partir de
este punto nos botara: 1) --15 espacios-- 1.000 --15 espacios-- f(1)
/*Ahora cuando compilamos nos manda el "N x f(x)" al
final, para que apagar el ordenamiento automatico debemos pasar a FALSE la
propiedad del
list BOX llamada SORT*/

//AGREGANDO LOS MAXIMOS Y MINIMOS

}
UpdateData(false);
}

Ahora cuando agregamos valores máximos y minimos

{
return static_cast<HCURSOR>(m_hIcon);
}

float f(float x){


return exp(0.1*x)*cos(x*x);}//primero definimos la funcion

void Cprogra7fijaDlg::OnBnClickedButton1()
{
int i=1,j=1;// contador usado -------> para N
float x;
CString cad,msj;
UpdateData(true);
//como voy a repetir el proceso se tiene que resetear el programa entonces
la siguiente funcion equivale a un system(clscsr) en c++
m_Mym.ResetContent();
m_discret.ResetContent();
//definimos lo que va a aparecer en la lista de maximos y minimos....para
esto USAR .AddString
msj=" N x f(x)";
//para "msj" aparezca en la lista HACEMOS:
m_Mym.AddString(msj);
msj="================";
m_Mym.AddString(msj);
//definimos los valores maximos y minimos
for(x=m_a;x<=m_b;x+=m_h,i++){//Antes debemos hacer que aparezcan los datos
en el orden que habiamos definido N x f(x)
cad.Format(_T("%d"),i);//va "%2d" dado que i es un valor entero,
esto nos dara por linea 1 2 3 4... ahora definamos x.....PROBAR CON %4
msj=cad;
cad.Format(_T("%5.3f"),x);//formateamos la cadena anterior y le
asignamos un nuevo valor
msj=msj+_T(") ")+cad;/*En esta nueva cadena se almacena la
anterior y la nueva que se esta definiendo mediante el cad.Format------nos dara
por linea 1) 1.000
con 3 decimales dado que".3f" +
cad pero en este caso la cad=x y se definio que x empieza en 1 y varia en 0.3 por
tanto en la linea
se genera 1) 1.000 2) 1.300
........*/

if (f(x)>f(x+m_h) && f(x)>f(x-m_h)){

// AHORA DEFINAMOS f(x)


cad.Format(_T("%10.4f"),f(x));/*En esta nueva cadena se almacena la
anterior y la nueva que se esta definiendo mediante el cad.Format, es decir al
msj anterior
que finalizo en la primera linea
asi 1) --15 espacios -- 1.000, a partir de aca se agregan los ties espacios mas
y la f(x) debe
contener 4 decimales por el ".4f"
*/

msj=msj+cad+_T(" MAXIMO ");/*Tambien es lo mismo usar msj=msj +_T("


") + cad..... es decir cada vez que se quiera agregar algo al mensaje -->msj se
antepone
_T("Lo que se quiere agregar").*/

m_Mym.AddString(msj);/* Equivale a un COUT pero en la lis BOX ya


que agrega esa cadena a la lista de maximos y minimos.
Ahora si compilamos a partir de
este punto nos botara: 1) --15 espacios-- 1.000 --15 espacios-- f(1)

/*Ahora cuando compilamos nos manda el "N x f(x)" al


final, para que apagar el ordenamiento automatico debemos pasar a FALSE la
propiedad del
list BOX llamada SORT*/
}

//Repetimos el proceso para hallar el minimo


else if (f(x)<f(x+m_h) && f(x)<f(x-m_h)){
cad.Format(_T("%10.4f"),f(x));
msj=msj+cad+_T(" MINIMO ");
m_Mym.AddString(msj);
}
else{
cad.Format(_T("%10.4f"),f(x));
msj=msj+cad;
m_Mym.AddString(msj);
}
}
UpdateData(false);
}

Ahora cuando agregamos valores máximos y minimos y también la discretizacion

float f(float x){


return exp(0.1*x)*cos(x*x);}//primero definimos la funcion

void Cprogra7fijaDlg::OnBnClickedButton1()
{
int i=1,j=1;// contador usado -------> para N
float x;
CString cad,msj;
UpdateData(true);
//como voy a repetir el proceso se tiene que resetear el programa entonces
la siguiente funcion equivale a un system(clscsr) en c++
m_Mym.ResetContent();
m_discret.ResetContent();
//definimos lo que va a aparecer en la lista de maximos y minimos....para
esto USAR .AddString
msj=" N x f(x)";
//para "msj" aparezca en la lista HACEMOS:
m_Mym.AddString(msj);
msj="================";
m_Mym.AddString(msj);
//definimos los valores maximos y minimos
for(x=m_a;x<=m_b;x+=m_h,i++){//Antes debemos hacer que aparezcan los datos
en el orden que habiamos definido N x f(x)
cad.Format(_T("%d"),i);//va "%2d" dado que i es un valor entero,
esto nos dara por linea 1 2 3 4... ahora definamos x.....PROBAR CON %4
msj=cad;
cad.Format(_T("%5.3f"),x);//formateamos la cadena anterior y le
asignamos un nuevo valor
msj=msj+_T(") ")+cad;/*En esta nueva cadena se almacena la
anterior y la nueva que se esta definiendo mediante el cad.Format------nos dara
por linea 1) 1.000
con 3 decimales dado que".3f" +
cad pero en este caso la cad=x y se definio que x empieza en 1 y varia en 0.3 por
tanto en la linea
se genera 1) 1.000 2) 1.300
........*/

if (f(x)>f(x+m_h) && f(x)>f(x-m_h)){

// AHORA DEFINAMOS f(x)


cad.Format(_T("%10.4f"),f(x));/*En esta nueva cadena se almacena la
anterior y la nueva que se esta definiendo mediante el cad.Format, es decir al
msj anterior
que finalizo en la primera linea
asi 1) --15 espacios -- 1.000, a partir de aca se agregan los ties espacios mas
y la f(x) debe
contener 4 decimales por el ".4f"
*/

msj=msj+cad+_T(" MAXIMO ");/*Tambien es lo mismo usar msj=msj +_T("


") + cad..... es decir cada vez que se quiera agregar algo al mensaje -->msj se
antepone
_T("Lo que se quiere agregar").*/

m_Mym.AddString(msj);/* Equivale a un COUT pero en la lis BOX ya


que agrega esa cadena a la lista de maximos y minimos.
Ahora si compilamos a partir de
este punto nos botara: 1) --15 espacios-- 1.000 --15 espacios-- f(1)

/*Ahora cuando compilamos nos manda el "N x f(x)" al


final, para que apagar el ordenamiento automatico debemos pasar a FALSE la
propiedad del
list BOX llamada SORT*/
}

//Repetimos el proceso para hallar el minimo


else if (f(x)<f(x+m_h) && f(x)<f(x-m_h)){
cad.Format(_T("%10.4f"),f(x));// formatea el valor de la
cadena y le da uno nuevo
msj=msj+cad+_T(" MINIMO ");
m_Mym.AddString(msj);
}
else{
cad.Format(_T("%10.4f"),f(x));
msj=msj+cad;
m_Mym.AddString(msj);
}
//Ahora trabajamos en la lista m_discret-----lista de discretizacion es
decir muestra las raices
if (f(x)*f(x+m_h)<=0){// La raiz se define como : x+h/2
cad.Format(_T("%d) Raiz= %.3f"),j,x+m_h/2);/* Si se quiere
agregar una cadena con varias variables en este caso dos j y la raiz que es
x+h/2, se considera el tipo
de dato que es
dicha variable----entonces: %(#espacios en blanco)d--seguido se escribe el j
porque es un numero entero

luego va ")" luego la palabra "Raiz=" y seguido(".3f) el f indica que


el tipo de dato es float por eso seguido va el

x+ h/2*/
m_discret.AddString(cad);
j++;
}
}
UpdateData(false);
}

Anda mungkin juga menyukai