Enrere Mòdul 3
Fonaments de Programació. Llenguatge C/C++---
Pràctica  Resum teòric Exercicis
Pràctica d'ampliació

 
Progressions aritmètiques

En aquesta pràctica es fa ús de la sentència for en la seva forma més estàndard. Es tracta de sumar els n primers termes d'una progressió aritmètica.

 

Desenvolupament de la pràctica

Abans de tot, creeu un nou espai de treball per aquest tercer mòdul amb el nom: m3. Aneu afegint un projecte nou del tipus Win32 Console Application per cada nova pràctica o exercici amb els noms que cada vegada es proposi.

Definiu un projecte nou anomenat m3p01 i afegiu-li un arxiu de font C/C++ anomenat m3p01.cpp. Escriviu el següent codi:

//m3p01.cpp suma dels termes d'una progressió aritmètica

#include <stdio.h>

void main(){

    double a,b;
    double suma;
    int
n;

    printf("Una prog.aritmètica és una successió el terme\n");
    printf("general de la qual és de la forma a(n)=a*n+b\n\n");


    printf("Introduïu el valor d'a ...");
    scanf("%lf",&a);


    printf("\nIntroduïu el valor de b ...");
    scanf("%lf",&b);


    printf("\nIntroduïu el valor de n ...");
    scanf("%d",&n);

    suma=0;
    for (int ct=1;ct<=n;ct++){

        suma=suma+a*ct+b;

    }

 

    printf("\nLa suma dels %d primers termes és %lf\n",n,suma);
    printf("\n És pot calcular que aquesta suma és igual a\n");

    printf("(a1+an)*n/2 = %lf\n",(a+b+a*n+b)/2*n);

}

Explicació del programa

Una progressió aritmètica és una successió el terme general de la qual és de la forma:

an=a·n+b

Per exemple, la progressió aritmètica de terme general an=2·n-1 és {1,3,5,7,...}. 

Aquest programa calcularà la suma dels n primers termes d'una progressió aritmètica. Aquesta suma es fa de dues formes. La primera es fa generant tots els termes i sumant-los. La suma es fa amb el següent bucle en el qual, la variable ct fa de comptador. 

 

    suma=0;
    for (int ct=1;ct<=n;ct++){

        suma=suma+a*ct+b;

    }

 

La segona és només una aplicació de la fórmula coneguda del càlcul elemental:

que es pot entendre com que sumar n termes d'una progressió aritmètica equival a sumar n vegades la mitjana aritmètica entre el primer terme i l'últim.

 
    printf("(a1+an)*n/2 = %lf\n",(a+b+a*n+b)/2*n);