adplus-dvertising

Exercices corrigés - Python et Langage C - TD3

Exercices corrigés - Python et Langage C - TD3

Exercice 1

Ecrire un programme qui permet de saisir un entier N et d'afficher s'il est premier ou non. Un nombre est dit premier s'il est divisible uniquement par 1 et par lui-même.


Solution :
                                                #include <stdio.h>
                                                #include <math.h>
                                                int main(void)
                                                {
                                                    int N, vfin;
                                                    int etat;
                                                    printf("saisir un nombre - ");
                                                    scanf("%d", &N);
                                                    etat = 1; // 1 True ; 0 False
                                                    vfin = ceil(sqrt(N)) + 1;
                                                    for (int i = 2; i < vfin; i++)
                                                    {
                                                        if (N % i == 0) // si N est divisible par i
                                                        {
                                                            etat = 0;
                                                            break;
                                                        }
                                                    }
                                                    if (etat == 1)
                                                    {
                                                        printf("%d est un nombre premier", N);
                                                    }
                                                    else
                                                    {
                                                        printf("%d n'est pas premier", N);
                                                    }
                                                
                                                    return 0;
                                                }
                                                
                                        
                                                from math import * 
                                                N=int(input("saisir un nombre - ")) 
                                                etat=True
                                                for i in range(2,ceil(sqrt(N))+1) :
                                                    if N%i==0 : 
                                                        etat=False
                                                        break 
                                                if etat==True :
                                                    print(N," est un nombre premier") 
                                                else :
                                                    print(N," n est pas premier")
                                        

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

saisir un nombre - 7 7 est un nombre premier

Exercice 2

Ecrire programme permettant de lire un nombre entier N puis calcule son factoriel.

  •  N !=1*2*3*....*(n-1)*N
  •  0 !=1

En utilisant les boucles suivantes

  1. while
  2. for

Solution :
                                                // boucle for
                                                #include <stdio.h>
                                                int main(void)
                                                {
                                                    int N, fact;
                                                    printf("saisir un nombre - ");
                                                    scanf("%d", &N);
                                                    fact = 1;
                                                    for (int i = 2; i < N + 1; i++)
                                                    {
                                                        fact *= i;
                                                    }
                                                    printf("le factoriel de %d est %d ", N, fact);
                                                
                                                    return 0;
                                                }
                                        
                                                // boucle while
                                                #include <stdio.h>
                                                int main(void)
                                                {
                                                    int N, i, fact;
                                                    printf("saisir un nombre - ");
                                                    scanf("%d", &N);
                                                    fact = 1;
                                                    i = 2;
                                                    while (i <= N)
                                                    {
                                                        fact *= i;
                                                        i++;
                                                    }
                                                    printf("le factoriel de %d est %d ", N, fact);
                                                
                                                    return 0;
                                                }
                                        
                                                # boucle for
                                                a=int(input("saisir un nombre ")) 
                                                F=1
                                                for i in range(2,a+1) :
                                                    F*=i
                                                print("le factoriel de ",a," est ",F)

                                                # boucle while
                                                a=int(input("saisir un nombre ")) 
                                                F=1
                                                Cpt=2
                                                while Cpt<=a:
                                                    F*=Cpt
                                                    Cpt+=1
                                                print("le factoriel de ",a," est ",F)
                                        

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

saisir un nombre - 5
le factoriel de 5 est 120

Exercice 3

Ecrire un programme qui permet de calculer la moyenne de notes fournies au clavier avec un dialogue de ce type :

  • note 1 : 12
  • note 2 : 15.25
  • note 3 : 13.5
  • note 4 : 8.75
  • note 5 : -1
  • moyenne de ces 4 notes : 12.37

Le nombre des notes n"est pas connu a priori et l"utilisateur peut en fournir autant qu"il le désire. Pour signaler qu"il a terminé, on convient qu"il fournira une note fictive négative. Celle-ci ne devra naturellement pas être prise en compte dans le calcul de la moyenne.


Solution :
                                                #include <stdio.h> 
                                                int main(void)
                                                {
                                                    int nb = 0;
                                                    float S, M, note;
                                                
                                                    printf("Note 1 : ");
                                                    scanf("%f", ¬e);
                                                    while (note >= 0)
                                                    {
                                                        nb += 1;
                                                        S += note;
                                                        printf("Note %d : ", nb + 1);
                                                        scanf("%f", ¬e);
                                                    }
                                                    if (nb > 0)
                                                    {
                                                        printf("moyenne de ces %d notes : %f", nb, S / nb);
                                                    }
                                                
                                                    return 0;
                                                }
                                        
                                                print("Note 1 - ", end=" ") 
                                                note=float(input()) 
                                                nb=0
                                                S=0
                                                while note>=0 
                                                    nb+=1
                                                    S=note
                                                    print("Note ",(nb+1), end=" ") 
                                                    note=float(input())
                                                if nb>0:
                                                    print("moyenne de ",nb," notes est ",S/nb)
                                        

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

Note 1 : 13
Note 2 : 8
Note 3 : 12
Note 4 : 10
Note 5 : -1
moyenne de ces 4 notes : 10.750000

Exercice 4

Ecrire un programme qui demande à l'utilisateur un nombre compris entre 1 et 3 jusqu'à ce que la réponse convienne.


Solution :
                                                #include <stdio.h>
                                                int main(void)
                                                {
                                                    int Nb;
                                                    printf("Saisir un nombre - ");
                                                    scanf("%d", &Nb);
                                                    while (Nb < 1 || Nb > 3)
                                                    {
                                                        printf("Saisir un nombre - ");
                                                        scanf("%d", &Nb);
                                                    }
                                                    printf("bravo ");
                                                
                                                    return 0;
                                                }
                                                
                                        
                                                Nb=int(input("saisir un nombre"))
                                                while Nb<1 or Nb>3:
                                                   Nb=int(input("saisir un nombre"))
                                                print("bravo ")
                                        

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


Exercice 5

Ecrire un programme qui demande un nombre compris entre 10 et 20, jusqu'à ce que la réponse convienne. En cas de réponse supérieure à 20, on fera apparaître un message : "Plus petit ! ", et inversement, " Plus grand !" si le nombre est inférieur à 10.


Solution :
                                                #include <stdio.h>
                                                int main(void)
                                                {
                                                    int Nb;
                                                    printf("Saisir un nombre - ");
                                                    scanf("%d", &Nb);
                                                    while (Nb < 10 || Nb > 20)
                                                    {
                                                        if (Nb < 10)
                                                            printf("plus grand");
                                                        else
                                                            printf("plus petit");
                                                
                                                        printf(" - Saisir un nombre - ");
                                                        scanf("%d", &Nb);
                                                    }
                                                    printf("bravo ");
                                                
                                                    return 0;
                                                }
                                        
                                                Nb=int(input("saisir un nombre"))
                                                while Nb<10 or Nb>20:
                                                   if Nb<10:
                                                      Nb=int(input("plus grand"))
                                                   else:
                                                      Nb=int(input("plus petit"))
                                                print("bravo ")
                                        

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

Saisir un nombre - 2
plus grand - Saisir un nombre - 30
plus petit - Saisir un nombre - 21
plus petit - Saisir un nombre - 9
plus grand - Saisir un nombre - 10
bravo

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.