Exercices corrigés - Python et Langage C - TD2

Do you want to read our courses in English? please visit our new website cs-teachers.com Click here

Exercices corrigés - Python et Langage C - TD2

Exercice 1

Ecrire un programme qui demande un nombre de départ, et qui ensuite affiche les dix nombres suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 à 27.


Solution :
                                                #include <stdio.h>
                                                int main(void)
                                                {
                                                    int Nb;
                                                    printf("Saisir un nombre ");
                                                    scanf("%d", &Nb);
                                                    for (int i = Nb+; I <= Nb + 10; i++)
                                                        printf("%d \t", i);
                                                
                                                    return 0;
                                                } 
                                        
                                                Nb=int(input("saisir un nombre - ")) 
                                                for i in range(Nb+1,Nb+11) :
                                                    print(i)
                                        

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant

Saisir un nombre - 3
4    5    6    7    8   9    10    11    12    13  

Exercice 2

Le pgcd de deux nombres par soustractions successives.

  •  pgcd(a,b)=pgcd(a-b,a) si a>b
  •  pgcd(a,b)=pgcd(a,b-a) si b>a
  •  pgcd(a,b)=a si a=b

On suppose que les opérandes sont des entiers positifs, écrire un programme qui permet de calculer le PGCD de deux nombres a et b.


Solution :
                                                #include <stdio.h>
                                                int main(void)
                                                {
                                                    int a, b, m, n, c;
                                                    printf("saisir le premier nombre - ");
                                                    scanf("%d", &a);
                                                    printf("saisir le deuxième nombre - ");
                                                    scanf("%d", &b);
                                                    n = a;
                                                    m = b;
                                                    while (n != m)
                                                    {
                                                        if (n > m)
                                                        {
                                                            c = n;
                                                            n = n - m;
                                                            m = c;
                                                        }
                                                        else if (n < m)
                                                        {
                                                            m = m - n;
                                                        }
                                                    }
                                                    printf("le PGCD de %d et %d est : %d", a, b, n);
                                                    return 0;
                                                }
                                                
                                                
                                        
                                                a=int(input("saisir le premier nombre ")) 
                                                b=int(input("saisir le deuxieme nombre ")) 
                                                n=a
                                                m=b
                                                while n !=m :
                                                    if n>m :
                                                        n,m=(n-m),n
                                                    elif n < m :
                                                        n,m=n,(m-n) 
                                                print("le PGCD de ",a," et ",b," est : ",n)
                                        

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant

saisir le premier nombre - 16
saisir le deuxième nombre - 6
le PGCD de 16 et 6 est : 2

Exercice 3

Ecrire un programme qui saisie N entiers et affiche leur somme et leur moyenne ?


Solution :
                                                #include <stdio.h>
                                                int main(void)
                                                {
                                                    int N, S, val;
                                                    float M;
                                                    printf("Saisir le nombre d'éléments - ");
                                                    scanf("%d", &N);
                                                    S = 0;
                                                    for (int i = 0; i < N; i++)
                                                    {
                                                        printf("saisir une valeur - ");
                                                        scanf("%d", &val);
                                                        S += val;
                                                    }
                                                    M = S / N;
                                                    printf(" la somme est %d et la moyenne est : %f", S, M);
                                                    return 0;
                                                }
                                                
                                                
                                        
                                                N=int(input("saisir un nombre")) 
                                                S=0
                                                for i in range(N) :
                                                    nb=int(input("saisir un nombre"))
                                                    S+=nb 
                                                M=S/N
                                                print(" la somme est ",S," et la moyenne est : ",M )
                                        

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant

Saisir le nombre d'éléments - 3
saisir une valeur - 2
saisir une valeur - 4
saisir une valeur - 6
la somme est 12 et la moyenne est : 4.000000

Exercice 4

Ecrire un programme qui détermine si un entier N est parfait ou non.
Un entier est dit parfait s'il est égal à la somme de ses diviseurs. Exemple 6 = 3 + 2 +1


Solution :
                                                #include <stdio.h>
                                                #include <math.h>
                                                int main(void)
                                                {
                                                    int N, S;
                                                    printf("Saisir un nombre ");
                                                    scanf("%d", &N);
                                                    S = 0;
                                                    int d = ceil(sqrt(N)); // partie entière du racine de N
                                                    for (int i = 1; i < d + 1; i++)
                                                    {
                                                        if ((N % i) == 0)
                                                        {
                                                            S += i;
                                                        }
                                                    }
                                                    if (S == N)
                                                        printf("%d est un nombre parfait", N);
                                                    return 0;
                                                }
                                        
                                                from math import * 
                                                N=int(input("saisir un nombre")) 
                                                S=0
                                                for i in range(2,ceil(sqrt(N))+1) :
                                                    if N%i==0 : 
                                                        S+=i
                                                If S==N :
                                                    print(N," est un nombre parfait")
                                        

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant

Saisir un nombre 6
6 est un nombre parfait

Exercice 5

Ecrire un programme qui permet de calculer le produit de deux entiers en utilisant des additions successives.


Solution :
                                                #include <stdio.h>
                                                int main(void)
                                                {
                                                    int a, b, P;
                                                    printf("saisir le premier nombre - ");
                                                    scanf("%d", &a);
                                                    printf("saisir le deuxième nombre - ");
                                                    scanf("%d", &b);
                                                    P = 0;
                                                    for (int i = 0; i < b; i++)
                                                    {
                                                        P += a;
                                                    }
                                                    printf("le produit de %d et %d est : %d", a, b, P);
                                                    return 0;
                                                }
                                        
                                                a=int(input("saisir le premier nombre ")) 
                                                b=int(input("saisir le deuxieme nombre ")) 
                                                P=0
                                                for i in range(b) :
                                                    P+=a
                                                print("le produit de ",a," et ",b," est : ",P)
                                        

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant

saisir le premier nombre - 4
saisir le deuxième nombre - 3
le produit de 4 et 3 est : 12

Partager ce cours avec tes amis :

Rédigé par ESSADDOUKI Mostafa

The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.

Commentaire(s)