CORRECTION — EVALUATION EN ALGORITHMIQUE TEST 01/ xx
Examen Algorithmique par MR Joel Yk
Exercice 1 : Définitions
- Algorithme : suite finie et ordonnée d’instructions permettant de résoudre un problème bien précis.
- Algorithmique : discipline qui étudie la conception, l’écriture et l’analyse des algorithmes.
- Tableau : structure de données contenant plusieurs valeurs de même type, accessibles par un ou plusieurs indices.
- Informatique : science du traitement automatique de l’information à l’aide des ordinateurs.
- Variable : zone mémoire nommée dont la valeur peut changer durant l’exécution d’un programme.
Exercice 2 : Questions / Réponses (Justifier)
- « Une constante est une variable dont le contenu ne change pas ? »
Réponse : Vrai (idée correcte). Une constante est une donnée nommée dont la valeur reste fixe pendant l’exécution (ex : Const PI = 3.14).
- « L’indice des éléments dans un tableau commence par 0 en algo ? »
Réponse : Faux (ce n’est pas une règle universelle). En pseudo-code on peut commencer à 1 (ex : Tab[1..N]) ou à 0 selon la convention/le langage.
- « Les entiers sont des nombres à partie fractionnaire égale à zéro ? »
Réponse : faux. Un entier n’a pas de partie décimale (…, -2, -1, 0, 1, 2, …).
- Différence entre boucle Répéter et boucle TantQue ?
Réponse : Répéter…Jusqu’à teste la condition à la fin : le bloc s’exécute au moins une fois.
TantQue…Faire teste la condition au début : le bloc peut s’exécuter zéro fois si la condition est fausse dès le départ.
- Si on déclare 2 variables a = 898 et b, lorsque nous faisons b := a quel est la valeur de a ?
Réponse : a reste 898. L’affectation copie la valeur de a dans b sans modifier a.
Exercice 3 : Nombre parfait
Algorithme NombreParfait;
var nbre,cpt,i: entier;
Début
répéter
ecrire('Entrez un nombre qui sera testé: ');
lire(nbre);
jusqu’à(nbre>=0);
cpt<-0;
pour i de 1 à (nbre div 2)faire
si(nbre mod i =0)alors
cpt<-cpt+i
fsi
fpour
si(cpt=nbre)alors
ecrire('Ce nombre est parfait')
sinon
ecrire('Ce nombre n est pas parfait');
fsi
Fin.
Exercice 4 : Nombre premier
Algorithme NombrePremier;
var nbre,cpt,i:entier;
Début
répéter
ecrire('Entrez un nombre qui sera testé: ');
lire(nbre);
jusqu’à(nbre>=0);
cpt<-0;
pour i de 1 à nbre faire
si(nbre mod i =0)alors
cpt<-cpt+1
fsi
fpour
si(cpt=2)alors
ecrire('Ce nombre est premier')
sinon
ecrire('Ce nombre n est pas premier');
fsi
fin.
Exercice 5 : Compter les occurrences de la chaîne "GEN" dans TabCar
Consigne : saisir une suite de caractères dans un tableau TabCar, terminée par le marqueur espace ' ' (ou fin). Compter le nombre d’occurrences de G puis E puis N consécutifs.
Algorithme Compte_GEN ;
Const
NMAX = 200 ;
Var
TabCar : tableau[1..NMAX] de caractere ;
n, i : entier ;
c : caractere ;
nbGEN : entier ;
Début
n ← 0 ;
Ecrire("Entrer une suite de caracteres (fin par espace) : ") ;
Repeter
Lire(c) ;
Si (c ≠ ' ') Alors
Si (n < NMAX) Alors
n ← n + 1 ;
TabCar[n] ← c ;
Sinon
Ecrire("ERREUR : tableau plein.") ;
c ← ' ' ; /* force l'arrêt */
FinSi
FinSi
Jusqu’a (c = ' ') ;
nbGEN ← 0 ;
Pour i de 1 à n-2 Faire
Si (TabCar[i] = 'G') et (TabCar[i+1] = 'E') et (TabCar[i+2] = 'N') Alors
nbGEN ← nbGEN + 1 ;
FinSi
FinPour
Ecrire("Nombre d'occurrences de 'GEN' = ", nbGEN) ;
Fin.
Exercice 6 : Valeur absolue d’un nombre négatif (sans abs)
Algorithme ValeurAbsolueSansAbs ;
Var
x, absx : entier ;
Début
Repeter
Ecrire("Entrer un nombre NEGATIF : ") ;
Lire(x) ;
Jusqu’a (x < 0) ;
/* sans utiliser abs() */
absx ← 0 - x ;
Ecrire("La valeur absolue est : ", absx) ;
Fin.
Par Joel_Yk | Contact : +237652027193