1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
Welcome to our Education website, plz like our page facebook to support us. Thank You and wish you good navigation

Examen Fin Module Langage C 2017 Session Janvier

abdelouafiJan 31, 2017

    1. abdelouafi

      abdelouafi Administrator Staff Member

      Messages:
      165
      Likes Received:
      7
      Trophy Points:
      18
      Joined
      Sep 13, 2016
      examen-fin-module-2017.png
      I-Partie Théorique: (10 Points)

      A- En C on utilise souvent les fonctions et les procédures :

      A-1- Donnez la différence entre fonction et procédure en C ? (2pt)

      A-2- Déclarer une fonction somme de type int qui admet deux paramètres entiers ? (2pt)

      A-3- Expliquez l'avantage d'utiliser les fonctions dans un programme? (2pt)


      B- Pointeur

      B-1- Donnez une petite définition d'un pointeur? déclarer un pointeur de type réel? (2pt)

      B-2- Expliquez l'utilité d'un pointeur dans un programme en C? Citez un exemple en langage C (2pt)

      II-Partie Pratique : (30 Points)

      A- Exercice 1: Recherche Dichotomique

      Donnez un algorithme qui permet de trier un tableau, puis de rechercher une valeur saisie par clavier. si cette valeur existe l'algorithme affiche le message "Oui existe", sinon il affiche "n'existe pas".

      A-1- Utilisez la recherche dichotomique pour trouver la valeur recherchée?

      A-2- Traduire l'algorithme en langage C?

      A-3- Déclarez un pointeur sur un fichier "text.txt"?

      A-4- Développez une fonction en C qui permet d'enregistrer dans ce fichier texte les éléments triés du tableau précédent?

      A-5- Ajouter une fonction qui affiche le contenu du fichier?


      B- Exercice 2: Structure

      Une société de fabrication de voitures désire enregistrer les informations de chaque voiture. matricule, couleur et modèle.

      A-1- Définir une structure nommée Voiture contenant ces trois informations?

      A-2- Donnez une fonction permettant de stocker ces informations dans un fichier texte?
       
      Loading...
      I-Partie Théorique: (10 Points)

      A- En C on utilise souvent les fonctions et les procédures :

      A-1- Donnez la différence entre fonction et procédure en C ?


      une fonction retourne une valeur tandis que la procédure ne retourne aucune valeur.

      A-2- Déclarer une fonction somme de type int qui admet deux paramètres entiers ?

      Code:
      int somme(int a, int b){
      
      return a+b;
      
      }
      A-3- Expliquez l'avantage d'utiliser les fonctions dans un programme?

      Pour optimiser le code source. avec une fonction on peut regrouper un bout de code sous un même nom (le nom de la fonction) que l'on peut appeler à n'importe quel endroit de notre programme.


      B- Pointeur

      B-1- Donnez une petite définition d'un pointeur? déclarer un pointeur de type réel?


      Un pointeur est en programmation une variable contenant une adresse mémoire.

      déclaration d'un pointeur de type entier: int *p1; ou FILE *f1=NULL;

      B-2- Expliquez l'utilité d'un pointeur dans un programme en C? Citez un exemple en langage C

      l'utilisation de pointeur permet de rendre le programme plus rapide puisque on manipule les adresses mémoires au lieu d'utiliser les variables.

      Exemple d'utilisation: permutation de deux variables.

      II-Partie Pratique : (30 Points)

      A- Exercice 1: Recherche Dichotomique

      Donnez un algorithme qui permet de trier un tableau, puis de rechercher une valeur saisie par clavier. si cette valeur existe l'algorithme affiche le message "Oui existe", sinon il affiche "n'existe pas".

      A-1- Utilisez la recherche dichotomique pour trouver la valeur recherchée?

      Code:
      Algorithme trietableau;
      
      
        variables i,j,x,m,n: entier;
      
        tableau T[4]:entier;
      
      
      debut
      
        n=4; // la taille du tableau
      
        //la saisie des valeurs du tableau
      
        Pour i=0 à 4 faire
      
        debut
      
        afficher("donnez l'élément numéro %d:  ", i);
      
        lire(T[i]);
      
        fin;
      
        //Trie du tableau
      
        Pour i=0 à 4 faire
      
        debut
      
        Pour j=i+1 à 4 faire
      
        debut
      
        si (T[j]<T[i]) alors
      
        debut
      
         aide=T[j];
      
        T[j]=T[i];
      
        T[i]=aide;
      
        fin;
      
        fin;
      
        fin;
      
        afficher("le tableau trie est:");
      
        Pour i=0 à 4 faire
      
        afficher(T[i]);
      
      
      
        //La recherche dischotomique
      
        afficher("donnez le x à trouver :");
      
        Lire(x);
      
        i=1; j=n; m=(i+j)/2;
      
        tant que ((x!=T[m]) && (i<=j))
      
        debut
      
        si (x<T[m]) alors j=m-1;
      
        sinon i=m+1;
      
        m=(i+j)/2;
      
        fin
      
      
        si (x==T[m]) alors
      
        afficher("oui existe ");
      
        sinon afficher("non n'existe pas ");
      
      FIN.
      A-2- Traduire l'algorithme en langage C?

      Code:
      #include<stdio.h>
      
      
      main(){
      
        int T[4],i,j,x,m;
      
        int n=4; // la taille du tableau
      
        //la saisie des valeurs du tableau
      
        for(int i=0; i<4;i++)
      
        {
      
        printf("donnez l'élément numéro %d:  ", i);
      
        scanf("%d",&T[i]);
      
        }
      
        //Trie du tableau
      
        for(i=0;i<4;i++){
      
        for(j=i+1;j<4;j++){
      
        if (T[j]<T[i]){
      
        int aide=T[j];
      
        T[j]=T[i];
      
        T[i]=aide;
      
        }
      
        }
      
        }
      
        printf("le tableau trie est:\n");
      
        for(int i=0; i<4;i++)
      
        {
      
        printf("%d  ", T[i]);
      
        }
      
      
        //La recherche dischotomique
      
        printf("\ndonnez le x à trouver :"); scanf("%d",&x);
      
        i=1; j=n; m=(i+j)/2;
      
        while ((x!=T[m]) && (i<=j))
      
        {
      
        if (x<T[m]) j=m-1;
      
        else i=m+1;
      
        m=(i+j)/2;
      
        }
      
      
        if (x==T[m]) printf("oui existe \n");
      
        else printf("non n'existe pas \n");
      
      }
      A-3- Déclarez un pointeur sur un fichier "text.txt"?

      Code:
      FILE *p1=NULL;
      
      p1=fopen("text.txt","r");
      A-4- Développez une fonction en C qui permet d'enregistrer dans ce fichier texte les éléments triés du tableau précédent?

      Code:
      void ajouter(FILE *p1)
      
        {
      
        int T[4];
      
        for(int i=0; i<4;i++)
      
        {
      
        fprintf(p1,"%d  ", T[i]); 
      
        }
      
        }
      A-5- Ajouter une fonction qui affiche le contenu du fichier?

      Code:
      void afficher(FILE *p1)
      
      {
      
        int i;
      
        printf("\nLes elements du fichier sont: \t");
      
        while (!feof(p1))
      
        {
      
        fscanf(p1, "%d\n", &i);
      
        printf("%d\t", i);
      
      
        }
      
      }
      B- Exercice 2: Structure

      Une société de fabrication de voitures désire enregistrer les informations de chaque voiture. matricule, couleur et modèle.

      A-1- Définir une structure nommée Voiture contenant ces trois informations?

      Code:
      typedef struct
      
      {
      
        char matricule[15];
      
        char couleur[15];
      
        char modele[25];
      
      } Voiture;
      A-2- Donnez une fonction permettant de stocker ces informations dans un fichier texte?


      Code:
      void ajoutervoiture (FILE *rep) {
      
        voiture  v1;
      
        printf ("Matricule : \n");
      
        scanf ("%s", v1.matricule);
      
        printf ("Couleur : \n");
      
        scanf ("%s", v1.couleur);
      
        printf ("Modèle : \n");
      
        scanf ("%s", v1.modele);
      
        fwrite (&v1, sizeof(v1), 1, rep);
      
      }

Share This Page

Share