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 una nova carpeta per aquest tercer mòdul amb el nom Mòdul_3. Aneu afegint nous arxius per cada nova pràctica o exercici amb els noms que cada vegada es proposi.

Creeu un nou arxiu del tipus C anomenat m3p01.c i escriviu el següent codi:

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

#include <stdio.h>

#include <stdlib.h>

int main(){

    double a,b;
    double suma;
    int n;

    system("clear");

    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 (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);

    return 0;

}

 

Captura de l'execució del programa.

 

 


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 (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);