Université Virtuelle de Tunis Année universitaire 2015-2016 Bon Travail Correct

Université Virtuelle de Tunis Année universitaire 2015-2016 Bon Travail Correction Devoir Surveillé N°1 Exercice 1 (8 pts) Soit le code C suivant : #include<stdlib.h> #define Nmax 50 typedef char TAB[Nmax] ; int main() { TAB t ; int i, n, nb ; char c ; do {printf(\n Donner le nombre d’éléments du tableau) ; scanf(%d,n) ;}while ((n<0)||(n>Nmax)) ; for(i=0 ; i>n ; i++) { printf(\n Donner le %d ème caractère , i+1) ; scanf(%d,t[i]) ;} ; printf(\n Donner le caractère) ; scanf(%c, &c) ; nb=0; for(i=1 ; i<n ; i++) {if (t[i] =c) {nb++ ;} ; } ; printf(\n\n\t le nombre de %c est %d\n, c, nb) ; system(pause) ;} 1. Indiquer et expliquer les différentes erreurs syntaxiques et logiques dans ce programme scanf(%d,n) scanf(%d,&n) for(i=0 ; i>n ; i++) for(i=0 ; i<n ; i++) scanf(%d,t[i]) scanf(%c,&t[i]) for(i=1 ; i<n ; i++) for(i=0 ; i<n ; i++) if (t[i] =c) if (t[i] ==c) 2. Corriger ces erreurs, compiler ce programme et donner le résultat de son exécution. Ce programme permet d’afficher le nombre d’occurrence d’un caractère donné dans un tableau de caractères. Exercice 2 (12 pts) On s’intéresse, dans cet exercice, à un ensemble de n articles (n ne dépasse pas 30) où chaque article est caractérisé par son code, son libellé, son prix unitaire et le nom de son fournisseur. Un même article de code donné peut exister plusieurs fois dans l’ensemble des articles, s’il peut être fourni par plusieurs fournisseurs. Nous voulons écrire un algorithme qui permet de a. Saisir l’ensemble des articles, b. Supprimer tous les articles d’un fournisseur donné, c. Compter et afficher les noms des différents fournisseurs d’un article donné par ordre croissant des prix. d. Afficher le nouvel ensemble des articles. Algorithme Exercice 2 Debut Constante Nmax =30 Type Article = Structure code : Entier prix_un : Réel nom_frs : chaine de caractère Fin Structure Type TAB=Tableau [1..Nmax] de Article Variable t, t_ar : TAB i, n, code, n_ar, indmax : entier nom : chaine de caractères /*Saisie du nombre d’articles*/ répéter Ecrire(Donner le nombre d’articles) Lire(n) jusqu’à (n dans [0..Nmax]) /*Remplissage du Tableau*/ Pour i de 1 à n faire Ecrire(Donner le code, prix et nom frs du , i, ème article) Lire(t[i].code, t[i].prix_un, t[i].nom_frs ) Fin Pour /*Recherche des articles du frs*/ Ecrire(Donner le nom du fournisseur) Lire(nom) i1 Tantque ((i<=n) faire Tantque ((i<=n) && (t[i].nom_frs ≠ nom)) faire ii+1 Fin Tantque Si (i<=n) alors /*Décalage à gauche pour supprimer le ième article*/ Pour j de i à n-1 faire t[j]t[j+1] Fin Pour n<n-1 FinSi Fin Tantque /*Saisie nom frs d’un article donné*/ Ecrire(Donner le code de l’article) Lire(code) n_ar1 Pour i de 1 à n faire Si (t[i].code=code) alors t_ar[n_ar]t[i] n_arn_ar+1 FinSi Fin Pour /* Trier t_ar selon l’ordre croissant des prix*/ Pour i de 1 à n_ar faire indmax i Pour j de i+1 à n_ar faire Si t_ar[j]<t_ar[indmax] Alors indmaxj FinSi FinPour Si(indmax ≠ i) aux t_ar[indmax] t_ar [indmax] t_ar [j] t_ar [j]aux FinSi FinPour Ecrire(Le nombre de fournisseurs de l’article ,code, est : , n_ar) /*Affichage des noms des fournisseurs*/ Pour i de 1 à n_ar faire Ecrire(Le , i, ème fournisseur est : , t_ar[i].nom_frs) Fin Pour /*Affichage des articles*/ Pour i de 1 à n faire Ecrire(Le , i, ème article est : , t[i].code) Fin Pour Fin uploads/S4/ correction-devoir-surveille.pdf

  • 48
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Sep 16, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.0314MB