Langage C

Notification de cookies

Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Plus d'informations

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 M. ESSADDOUKI

Learning a new programming language is an easy thing, but the most difficult thing is how to design efficient algorithms for real-world problems, so don't be a programmer, be a problems solver.

Cours Similaires :