Ayuda con tarea de C++

Publicado en 'Programación' por tOnhioi, 9 May 2013.





  1. tOnhioi

    tOnhioi Miembro nuevo

    Registro:
    9 May 2013
    Mensajes:
    1
    Likes:
    0




    Hace más de 1 hora que trato de resolver un ejercicio pero no me sale porfavor algien me ayude.
    "Realice una aplicación en Lenguaje C, que teniendo como datos de entrada un número
    entero positivo. que representa la cantidad de términos que se desea
    sumar, y los valores de a, x e y, permita calcular el resultado de la siguiente sumatoria.:
    Suma = -3x + 6y/2a - 9x/4a^2 + 12y/8a^3 + 15x/16a^4 +....


    --------------------------------------…

    Lo que hize fue lo siguiente pero no está correcto
    int n =1;
    float x =1.0;
    float y =1.0;
    float a =1.0;

    printf("Ingrese el número de terminos");
    scanf("%d",&n);

    _flushall();
    printf("Ingrese el valor de a:");
    scanf("f",&a);
    _flushall();
    printf("Ingrese el valor de x");
    scanf("f",&x);
    _flushall();
    printf("Ingrese el valor de y");
    scanf("%f",&y);

    float suma =0.0;

    for(int i=1; i<=n;i++)
    {
    float coeficiente = (3*i)/(pow(2.0*a,i-1));
    if(i%2 ==0)
    suma = suma+ coeficiente*y;
    else
    suma = suma- coeficiente*x;
    }
    printf("%.2f",(float)suma);
    getch();
    }

    Ejemplo
    Ingrese el número de términos (N): 6
    Ingrese el valor de a: 4.73
    Ingrese el valor de x: 2.8
    Ingrese el valor de y: 1.25
    La sumatoria es: -7.876007993









    ------------------------------------------------------------------------

    Es "C" ME EQUIVOQUÉ EN EL TITULO
     
    Última edición: 9 May 2013


  2. eduar2083

    eduar2083 Miembro frecuente

    Registro:
    26 Jul 2011
    Mensajes:
    224
    Likes:
    46
    Hola.
    En Lenguaje C para leer datos desde la consola debes hacerlo de la siguiente manera:
    Código:
    scanf("%d", &entero); /* para leer un entero */
    scanf("%f", &flotante); /* para leer un flotante de precisión simple */
    scanf("%lf", &real); /* para leer un flotante de precisión doble */
    scanf("%c", &caracter); /* para leer un caracter */
    scanf("%s", cadena); /* para leer un array de caracteres */
    
    Como ves, se debe utilizar el el operador de dirección &.

    Con respecto a tu problema creo que el signo del último término debe ser negativo para que sea una sucesión lógica.
    Estuviste cerca con la solución.
    Código:
    #include <stdio.h>
    #include <math.h>
    
    int main(void)
    {
        double x;
        double y;
        double a;
        int n;
        int i;
        double suma = 0.0f;
    
        printf("Ingrese x: ");
        fflush(stdout);
        scanf("%lf", &x);
    
        printf("Ingrese y: ");
        fflush(stdout);
        scanf("%lf", &y);
    
        printf("Ingrese a: ");
        fflush(stdout);
        scanf("%lf", &a);
    
        printf("Ingrese n (cantidad terminos): ");
        fflush(stdout);
        scanf("%d", &n);
    
        for (i = 0; i < n; ++i) {
            double coeficiente;
    
            if (i % 2 == 0)
                coeficiente = -3 * (i + 1) * x / pow(2 * a, i);
            else
                coeficiente = 3 * (i + 1) * y / pow(2 * a, i);
    
            suma += coeficiente;
    
        }
    
        printf("\nResultado = %f\n", suma);
    
        return 0;
    }
    
    Saludos
     
Etiquetas: