Exercices corrigés - Python et Langage C - TD3

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

Many people realize their hearts desires late in life. Continue learning, never stop striving and keep your curiosity sharp, and you will never become too old to appreciate life.

0 Commentaire(s)

Pour laisser un commentaire vous devez avoir un compte Inscription, ou Se connecter