Dev - C++ - Ayuda básica, por favor :c

 
Vista:

Ayuda básica, por favor :c

Publicado por Wicho (1 intervención) el 09/02/2019 00:07:38
Hola y muchas gracias de antemano.

Mi problema es que no sé porque no me imprime los resultados, es en la parte de los ciclos for, ya lo probé pero no sé porque no me funciona. Pensé en ponerle instrucciones break a los ciclos, así me imprimió los resultados pero no eran los correctos, supongo porque para los ciclos antes de terminar. Ayúdenme por favor :´c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <iostream>
int main (void)
{
int n,i;
system ("color F4");
float a, b, fa, fb, Er, Aa, An;
float sumaN, sumaP, xi, seg;
 
printf("\n\t\tMETODO DE SIMPSON 1/3 CON SEGMENTOS MULTIPLES PARA LA FUNCION X^3\n\n");
printf("\n\tIntroduzca el limite inferior:\t");
scanf("%f",&a);
printf("\n\tIntroduzca el limite superior:\t");
scanf("%f",&b);
printf("\n\tIntroduzca el numero de segmentos a dividir el area:\t");
scanf("%i",&n);
 
 
Aa=((pow(b,4))/4)-((pow(a,4))/4);
fa= (pow(a,3));
fb= (pow(b,3));
seg=(b-a)/n;
 
	for(i=1;i<n;i=1+2)
	{
	xi=a+(i*seg);
	sumaN=sumaN+(pow(xi,3));
	}
 
	for(i=2;i<n;i=i+2)
	{
	xi=a+(i*seg);
	sumaP=sumaP+(pow(xi,3));
	}
 
An=(b-a)*(fa+4*(sumaN)+2*(sumaP)+fb)/(3*n);
Er= Aa-An;
 
 	printf("\n\tArea analitica: %f",Aa);
 	printf("\n\tArea numerica: %f",An);
 	printf("\n\tError de aproximacion: %f", Er);
 
getch();
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda básica, por favor :c

Publicado por Alfil (1444 intervenciones) el 09/02/2019 00:47:03
Necesitaría más datos sobre el problema para ver si los ciclos funcionan correctamente, testea los resultados y si necesitas ayuda indícame que debería hacer cada bucle.

El primer bucle inicia en 1 y va sumando de 2 en 2 números (números impares).
El segundo bucle inicia en 2 y suma de 2 en 2 números (números pares).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
 
int main (void) {
 
    int n;
    system( "color F4" );
    float a, b, fa, fb, Er, Aa, An;
    float sumaN, sumaP, xi, seg;
 
    printf("\n\t\tMETODO DE SIMPSON 1/3 CON SEGMENTOS MULTIPLES PARA LA FUNCION X^3\n\n");
    printf("\n\tIntroduzca el limite inferior:\t");
    scanf("%f",&a);
    printf("\n\tIntroduzca el limite superior:\t");
    scanf("%f",&b);
    printf("\n\tIntroduzca el numero de segmentos a dividir el area:\t");
    scanf("%i",&n);
 
 
    Aa = ( ( pow(b, 4) ) / 4 ) - ( ( pow(a,4) ) / 4 );
    fa = ( pow(a, 3) );
    fb = ( pow(b, 3) );
    seg = ( b - a ) / n;
 
    for(int i = 1; i < n; i += 2) {
        xi = a + ( i * seg );
        sumaN = sumaN + ( pow(xi, 3) );
    }
 
    for( int i = 2; i < n; i += 2 ){
        xi = a + ( i * seg );
        sumaP = sumaP + ( pow(xi, 3) );
    }
 
    An = ( b - a) * ( fa + 4 * ( sumaN ) + 2 * ( sumaP ) + fb ) / ( 3 * n );
    Er = Aa - An;
 
    printf( "\n\tArea analitica: %f", Aa );
    printf( "\n\tArea numerica: %f", An );
    printf( "\n\tError de aproximacion: %f", Er );
 
    getch();
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar