Série d`exercices (n° 2) Algorithme et Langage C

publicité
TDI 1ère Année
Algorithme et Langage C
26/09/2011
Série d’exercices (n° 2)
Algorithme et Langage C
Exercice 1 : Que fait l'algorithme suivant ? Cet algorithme contient trois erreurs, corriger-les et renommer les variables
bidon1 et bidon2 avec des noms de variables plus significatifs. Cet algorithme n’est pas valable pour toutes les valeurs,
pouvez-vous l’améliorer ?
Var
Bidon1 : Tableau (10) Entier
Bidon2 : Tableau (10) Entier
i : entier
Début
POUR i :=1 à 10 FAIRE
Afficher ("Saisir une valeur entière :")
Lire (Bidon1 (i)))
Bidon2 (i) := 1/Bidon1 (i)
FINPOUR POUR i := 1 à 10 FAIRE
Afficher ("Valeur de la ", i, "ième position de bidon2 :", Bidon2 (j))
FINPOUR
FIN
Exercice 2 : Terminer l'algorithme ci-dessous de manière à ce qu'il :
1.
Calcule et affiche la moyenne des notes de la classe obtenues dans un tableau Note contenant 20 réels.
2.
Détermine et affiche la meilleure et la plus mauvaise note.
3.
Var Note : Tableau (20) Réel
i : entier
Début
POUR i :=1 à 20 FAIRE
Afficher ("Saisir la ", i, "ième note :")
Lire( Note (i))
FINPOUR
Fin
Exercice 3 :
Début
N=3
Variables i, s, t(n) : entier
Pour i=1 à n
Lire t(i)
Finpour
Tantque i<>n faire
Ecrire (« Saisir un entier »)
Lire t(i)
i=i+1
fintantque
s=0
pour i=1 à n
s=s+1
Ecrire s
Finpour
Fin
Le programme devrait permettre de saisir des nombres entiers dans un tableau de dimension n, et de faire ensuite la
somme de ces entiers et l’afficher à l’écran.
Détecter les erreurs qui empêchent ce programme de tourner.
Exercice 4 : Ecrire un programme qui demande à l’utilisateur de taper 10 entiers compris entre 0 et 20 qui seront
stockés dans un tableau et qui affiche le nombre de fois qu’on a tapé un 0, le nombre de 1, le nombre de 2, … , le
nombre de 20.
Exercice 5 : Considérons un tableau numérique « T » de N éléments, et un deuxième tableau numérique « V » de M
éléments. Concevoir un programme qui permet de poser les éléments des deux tableaux dans un troisième tableau
numérique « R » de telle façon à l’avoir trié en ordre croissant.
Exercice 6: Ecrire un programme de faire le tri dans l’ordre croissant et décroissant et décroissant d’une matrice de
taille N x M.
Exercice 7 : Écrire un algorithme permettant d’initialiser un tableau d’entiers de taille N (N est connu et fixé) des trois
façons suivantes, successivement.
Abdellah HARCHI
Page 1 sur 4
Algorithme et Langage C
TDI 1ère Année
26/09/2011
Exercice 8 : Les points cols d'un tableau à deux dimensions sont les éléments du tableau qui sont maximum sur leur
ligne et minimum sur leur colonne; ou minimum sur leur ligne et maximum sur leur colonne.
Ecrire la procédure qui:
1. Reçoit une ligne et retourne la valeur du maximum et la case où elle existe.
2. Reçoit le numéro de colonne du maximum retrouvé, et retourne un booléen "vrai" dans le cas où il est minimum sur
sa colonne et "faux" dans le cas contraire.
3. Reçoit une ligne et retourne la valeur du minimum et la case où elle existe.
4. Reçoit le nombre de colonne du minimum retrouvé, et retourne un booléen "vrai" dans le cas où il est maximum sur
sa colonne et "faux" dans le cas contraire.
5. Ecrire le programme principal qui recherche dans un tableau à deux dimensions les points cols en utilisant les
procédures précédentes.
Exercice 9 : Chaque élève d'une classe s'est vu attribuer dix notes correspondant à dix matières (une note fictive égale
à -1 correspond à une absence lors de l'épreuve de contrôle). A chacune de ces matières correspond un coefficient.
On suppose que le nombre d'élèves ne dépasse pas 50.
- Pour tous les calculs de moyenne, on ne tient pas compte des absences.
- On ne calcule la moyenne effective d'un élève que s'il a été présent au moins à un contrôle.
- On note par -1 la moyenne d'un élève absent à tous les contrôles.
Nous allons utiliser un tableau NOTE de 50 lignes et 50 colonnes. Chaque ligne correspond à un élève, et chaque
colonne à une matière. Le tableau MOY de 50 lignes permet de stocker la moyenne de chaque élève. On utilise un
tableau COEF de 10 lignes, dans lequel on stocke le coefficient de chaque matière.
L'ordre dans COEF correspond à l'ordre des colonnes de NOTE: par exemple si la première colonne de NOTE correspond
aux notes de mathématique, on doit trouver en COEF(1) le coefficient mathématique.
Ecrire un algorithme qui permettrait de calculer:
1. La moyenne de chaque élève.
2. La moyenne générale de la classe
3. Pour chaque matière, la moyenne de la classe et le pourcentage d'absentéisme.
Exercice 10 : Soit un tableau T de 10 entiers.
1Ecrire l’algorithme qui permet de remplir les k premières cases du tableau (k <= 10)
2Ecrire l’algorithme qui permet d’insérer un zéro à la première case du tableau après avoir décalé les
éléments du tableau T d'une case.
3Ecrire l’algorithme qui permet d’insérer p (p >= 1) zéros en tête du tableau T.
Exercice 11 : Une société commercialise 50 produits dans 3 magasins différents.
On désire faire les statistiques de ventes annuelles. Pour cela, on utilise trois tableaux : V1(i), V2(i) et V3(i)
représentant respectivement la quantité vendue dans l’année du i ieme produit dans les magasins 1, 2 et 3.
L’étude consiste à établir les algorithmes suivants :
1) Procédure de saisie au clavier de toutes les données (remplissage des tableaux de quantités vendues V1,
V2 et V3.
2) Procédure de calcul de la quantité totale vendue tout produit, tout magasin réunis.
3) Procédure de calcul de la quantité totale vendue par produit, tout magasin réunis. Stocker ces résultats
dans un tableau M.
4) Procédure de calcul de la quantité totale vendue par magasin, tout produit réunis. Stocker ces résultats
dans un tableau P.
5) Procédure de calcul pour chaque produit la moyenne vendue. Stocker ces résultats dans un tableau Y.
6) Procédure d’édition des résultats suivants, pour chaque produit : Numéro produit, quantité totale vendue
et moyenne vendue.
7) Procédure d’archivage des résultats dans un fichier « PRODUITS » et qui va contenir pour tous les
produits : les numéros, les quantités totales vendues.
Exercice 12 : Statistiques AVION
Déclarer 4 Tableaux en mémoire avec la structure Suivante :
Avion
CodeAVION
Vitesse Croisiere
BOING747
B0
800
AIRBUSA380
AB
950
LEARJET45
LJ
700
DC10
DC
900
ANTONOV32
AN
560
CONCORDE
CO
1400
Rayon d'action
10000
12000
4500
8000
2500
16000
1) Demander Le Code avion
Rechercher en table et afficher "erreur" si non trouvé
Afficher son nom, sa vitesse, son Rayon d'action
2) afficher la moyenne des rayons d'action
3) afficher l'avion qui vole le plus vite
Exercice: Les tris
Dans tous les exercices qui suivent on étudie différents algorithmes permettant de trier un tableau de 10 entiers.
Afin d'expliquer les algorithmes, on prendra en exemple le tableau suivant :
52 10 1 25 62 3 8 55 3 23
Abdellah HARCHI
Page 2 sur 4
Algorithme et Langage C
TDI 1ère Année
26/09/2011
Exercice 13 : Le tri par sélection
Le premier algorithme auquel on pense pour effectuer ce tri est celui-ci :
on cherche le plus petit élément du tableau et on le place en 1er , puis on cherche le plus petit dans ce qui reste et on le
met en second , etc. ..
52 10 1 25 62 3 8 55 3 23
1 52 10 25 62 3 8 55 3 23
1 3 52 1 0 25 62 8 55 3 23
1 3 3 52 10 25 62 8 55 23
1 3 3 8 52 10 25 62 55 23
1 3 3 8 10 52 25 62 55 23
1 3 3 8 10 23 52 25 62 55
1 3 3 8 10 23 25 52 62 55
1 3 3 8 10 23 25 52 62 55
1 3 3 8 10 23 25 52 55 62
Exercice 14 : Le tri bulle
Le tri bulle est un tri plus astucieux. son principe est de faire remonter petit à petit un élément trop grand vers le haut
du tableau en comparant les éléments deux à deux. Si l'élément de gauche est supérieur à son voisin de droite on les
inverse et on continue avec le suivant. Lorsque l'on est en haut du tableau on repart au début et on s'arrête lorsque tous
les éléments sont bien placés.
52 10 1 25 62 3 8 55 3 23
10 52 1 25 62 3 8 55 3 23
10 1 52 25 62 3 8 55 3 23
10 1 25 52 62 3 8 55 3 23
10 1 25 52 62 3 8 55 3 23
10 1 25 52 3 62 8 55 3 23
10 1 25 52 3 8 62 55 3 23
10 1 25 52 3 8 55 62 3 23
10 1 25 52 3 8 55 3 62 23
10 1 25 52 3 8 55 3 23 62
On a parcouru tous le tableau, on recommence, jusqu'à ce que tout soit bien placé.
Ecrire l'algorithme qui réalise ce tri.
Exercice 15 : Le tri par permutation
Le tri par permutation est le tri du jeu de cartes.
On parcourt le tableau jusqu'à ce que l'on trouve un élément plus petit que le précédent, donc mal placé. On prend cet
élément et on le range à sa place dans le tableau puis on continue la lecture. On s'arrête à la fin du tableau.
52 10 1 25 62 3 8 55 3 23
10 52 1 25 62 3 8 55 3 23
1 10 52 25 62 3 8 55 3 23
1 3 10 25 52 62 8 55 3 23
1 3 8 10 25 52 62 55 3 23
1 3 8 10 25 52 55 62 3 23
1 3 3 8 10 25 52 55 62 23
1 3 3 8 10 23 25 52 55 62
Exercice 16 : Le tri par comptage
Le tri par comptage consiste pour chaque élément du tableau à compter combien d'éléments sont plus petits que lui,
grâce à ce chiffre on connaît sa position dans le tableau résultat.
52 1 0 1 25 62 3 8 55 3 23
Nombre 7 4 0 6 9 1 3 8 1 5
Position 8 5 1 7 10 2 4 9 3 6
1 3 3 8 10 23 25 52 55 62
Exercice 17 : Le tri alphabétique
Le programme consiste à saisir des mots (au maximum 10) de 20 caractères maximum et de les insérer dans un tableau
dans l'ordre alphabétique. Puis d'afficher ensuite ce tableau.
Le tableau résultat est du type TABLEAU CAR [10,20].
Exercice 18 : Le jeu du pendu
Ecrire le programme du jeu du pendu.
Le principe est le suivant :
Un premier joueur choisit un mot de moins de 10 lettres.
Le programme affiche _ _ _ _ _ _ _ avec un _ par lettre.
Le deuxième joueur propose des lettres jusqu'à ce qu'il ait trouvé le mot ou qu'il soit pendu (11 erreurs commises).
A chaque proposition le programme réaffiche le mot avec les lettres découvertes ainsi que les lettres déjà annoncées et
le nombre d'erreurs.
Exercice 19 : Le crible d'Erathostène
Cet algorithme permet d'afficher progressivement la liste des nombres premiers inférieurs à une valeur donnée: MAX.
Pour ce faire on construit un tableau de MAX éléments, vide au départ, que l'on parcourt.
Abdellah HARCHI
Page 3 sur 4
TDI 1ère Année
Algorithme et Langage C
26/09/2011
Chaque fois que la case est vide cela signifie que l'indice du tableau est un nombre premier, on l'affiche puis on remplit
avec une valeur quelconque toutes les cases du tableau indicées par un multiple de l'indice courant.
Exemple pour MAX = 1 0
tableau = 0 0 0 0 0 0 0 0 0 0
indice :
1
1 est un nombre premier (je ne marque rien !)
2
2 est un nombre premier ==> je marque
3
3 est un nombre premier ==> je marque
4
4 n'est pas un nombre premier
5
5 est un nombre premier ==>je marque etc. ...
tableau = 0 1 0 1 0 1 0 1 0 1
tableau = 0 1 1 1 0 1 0 1 1 1
Exercice 20 : La recherche dichotomique
Cet algorithme permet de ranger un élément à sa place ou de le trouver dans une liste de manière très rapide.
On possède une liste de N entiers triés, on cherche la place d'un nombre X.
On compare X à l'élément du milieu de tableau, si il est inférieur on réduit le tableau à sa partie gauche, si il est
supérieur on réduit le tableau à sa partie droite.
On réitère l'opération jusqu'à ce que le tableau ait moins de 2 éléments.
1 3 3 5 6 8 12 25 26 42 53 55 ,
6ème élément 8 ==> on insère
3ème élément 3 ==> on insère
2ème élément 6 ==> on insère
==> 7 est entre 6 et 8
on veut y insérer le chiffre 7
7 dans 1 3 3 5 6 8
7 dans 5 6 8
7 dans 6 8
Exercice 21 : Fusion de deux tableaux triés.
On considère deux tableaux triès T1 et T2 de dimensions respectives n et m que l’on dooit unir dans un seul tableau T3
trié.
Exemple :
T1 :
1
T2 :
1
T3 :
1
Ecrire l’algorithme
3
2
2
qui fait ce
Abdellah HARCHI
5
4
3
tri.
8
7
4
10
9
5
Page 4 sur 4
10
7
13
8
15
9
10
13
15
Téléchargement