P. 1
Serie d'Algorithme(50 Exercice)

Serie d'Algorithme(50 Exercice)

|Views: 16,574|Likes:
Publié parMolka Metalleuse

More info:

Published by: Molka Metalleuse on Oct 30, 2010
Droits d'auteur :Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/25/2013

pdf

text

original

Série de révision BAC 2008-2009

atis.clicforum.com

Série de révision BAC 2008/2009
atis.clicforum.com

50 exercices Algorithmique & Programm@tion

4ème Sc.Info

Exercice1
La fonction d’Ackermann est définie par :
Ackermann (0, j) = j + 1 Ackermann (i, 0) = Ackermann (i-1, 1) Ackermann (i, j) = Ackermann (i-1, Ackermann (i, j-1))

Analyser et déduire l’algorithme récursif qui permet de renvoyer la valeur de la fonction d'Ackermann pour un couple (i,j) donné.

Exercice2
L’un des plus vieux code secret est le chiffre de César. Il consiste en un décalage circulaire de N positions de l’alphabet utilisé. Exemple: Lettres à coder : A B C D E F G... Y Z

Pour un décalage circulaire de 4 positions : Lettres après codage : E F G H I J K... C D

Le mot “BAC” est codé “FEG”. Travail à faire Proposer un module qui permet d'encoder une chaîne de caractères passée en paramètres suivant le principe des chiffres de César

Exercice 3
Ecrire l'analyse d'une fonction qui permet de calculer et retourner une valeur approchée de près, en utilisant la formule suivante : à 10-4

Collectée par Khaled KACHBOURI – atis.clicforum.com

1

Série de révision BAC 2008-2009

atis.clicforum.com

Exercice4
Soit la fonction suivante :
0) Début Fonction inconnue (j : entier) : entier 1) N j 2) Répéter N N+1, k 2, v vrai Tant que (k <= N div 2) et (v) faire Si (N mod k = 0) alors V Faux Sinon k k+1 FinSi Fin Tant que Jusqu’à (V) 3) inconnue N 4) Fin inconnue

Questions : 1- Exécuter la fonction pour j=7. 2- Quel est le rôle de cette fonction ? 3- Ecrire l’algorithme d’une fonction qui permet de renvoyer une valeur approchée de π à 10-5 près, en utilisant la formule Zêta de Riman : π2/6 = 22/(22-1) x 32/(32-1) x 52/(52-1) x 72/(72-1) x 112/(112-1) … N.B : 2, 3, 5, 7, 11 sont des nombres premiers.

Exercice5
Un nombre d'Armstrong est un entier naturel qui est égal à la somme des cubes de ces chiffres. Ainsi 153 est un nombre d'Armstrong car 13 + 53 + 33 = 1 + 125 + 27 = 153. Proposez un module récursif qui permet de vérifier si un entier N est un nombre d'Armstrong ou non.

Exercice6
Ecrivez l'algorithme de la fonction permettant de calculer exp(x), (x est un réel). On supposera que l'erreur d'évaluation E est un paramètre de la fonction. exp(x) = 1 + x + x2/2! + x3/ 3! + ... + xn/ n! + ...

Collectée par Khaled KACHBOURI – atis.clicforum.com

2

com Exercice7 Un serveur de noms (DNS) permet d’associer une adresse IP à chaque URL.20 site1.Ajouter les informations d’une nouvelle machine : Si des nouvelles machines viennent se connecter au réseau alors le serveur ajoute celles ci à la fin du fichier "hosts.com 1 0 100 20 • Le premier champ est l’adresse IP.146."T" : Pour trier les machines selon l’ordre croissant de la distance par rapport au serveur. Mais si une adresse est facile à manipuler par un ordinateur.0. Travail demandé : Collectée par Khaled KACHBOURI – atis.1 127.50.clicforum. on afficherait son adresse IP. Les opérations effectuées par le serveur de noms sont les suivantes : . Dans la suite.Série de révision BAC 2008-2009 atis.168. Le tri se fait au niveau de la mémoire centrale. On se propose d’écrire un programme qui offre un menu permettant d’exécuter l’une des opérations: . .Chercher l’adresse IP d’une ressource donnée : Si elle existe. les données seront remises au fichier d’origine. le serveur supprimerait les informations relatives à cette machine.255. .com www. . Dans un réseau.com 3 .footsite1.org localhost. Exemple : Chaque machine est définie par 3 champs : 192. • Le deuxième champ est le nom (URL) de la ressource (site web.clicforum."S" : Pour supprimer une machine du réseau. elle est difficile à mémoriser par un humain. . on suppose que le serveur de noms sauvegarde ces informations dans le fichier "hosts.0. on associe une adresse IP unique à chaque machine.213 196.dat"."A" : Pour ajouter une nouvelle machine à la fin du fichier."R" : Pour chercher l’adresse IP d’un nom URL donné. Une fois triées. Pour résoudre un nom en adresse IP. sinon on afficherait le message "la ressource est indisponible".clicforum.localdomain atis.dat" enregistré sous le dossier "C:\config". Le serveur de noms DNS permet de trouver l’adresse IP à partir du nom (URL) de la machine (ou inversement). . .1."Q" : Pour quitter le programme.1 194.168. la méthode la plus simple consiste à mettre tous les noms des machines et leurs adresses associés dans un fichier. image…) • Le troisième champ désigne la distance (nombre de machines) entre le serveur et la machine cible.Supprimer les informations d’une machine : Si une machine se déconnecte du réseau.

La compression nous donne : 605130 Et se lit : on a 6 zéros. 3. on appelle combinaison de p éléments de E toute collection non ordonnée de p éléments distincts de E.Quelles sont les structures de données adéquates à la résolution de ce problème.fch" par N entiers binaires (N est un nombre aléatoire compris entre 4 et 100). On a : Ecrire une fonction récursive permettant de calculer les combinaisons Cnp en se servant de la relation suivante : C(0.p)=1 C(p.fch" en utilisant le principe ci-dessus et l'afficher. 5 uns et 3 zéros.com 1. Exercice8 E étant un ensemble à n éléments.clicforum.p-1) Exercice9 On veut compresser un fichier d'entiers binaires (contenant des 0 et des 1).p)=1 C(n.p) = C(n-1.Analyser le problème en le décomposant en modules et en déduire l’algorithme du programme principal.Série de révision BAC 2008-2009 atis. Le principe de compression est le suivant : Si le fichier contient : 00000011111000. Ecrire un programme Pascal qui permet de créer et remplir un fichier nommé "source. On note le nombre de combinaisons de p éléments parmi n.Analyser chacun des modules envisagés précédemment et en déduire les algorithmes correspondants.clicforum. puis compresser ce fichier dans un fichier résultat nommé "compress. Collectée par Khaled KACHBOURI – atis.com 4 .p) + C(n-1. 2.

Si le reste est 0 la clé sera égale à la somme des chiffres de la représentation binaire de la première partie Le nombre intermédiaire N est obtenu en regroupant les deux chiffres de même position de la 2 ème et la 3 ème partie de numéro de l'ISBN suivis des deux chiffres de la position suivante jusqu'à ajouter les deux chiffres de la 8 ème position. Collectée par Khaled KACHBOURI – atis.clicforum.com 5 . .Série de révision BAC 2008-2009 atis.clicforum. la clé est donc 5. la clé sera égale au reste. .Si ce reste est non nul et formé d’un seul chiffre. Exemple2 : Numéro saisie : A12-41213104-92651022 Numéro affecté au livre : A12-41213104-92651022-4 Sur l'exemple2 A12-41213104-92651022. Ce numéro est formé de 20 caractères regroupés en 4 parties : • La première correspond à la zone linguistique qui est un nombre de 3 chiffres hexadécimaux distincts. La dernière partie (chiffre ou lettre) correspond à la clé de contrôle : La clé est le reste de la division d'un nombre intermédiaire N par 11 en utilisant la règle de divisibilité. le calcul intermédiaire donne N : 4912261531100247 et 4912261531100247 a pour reste 5 dans la division par 11.Si ce reste est 10 la clé sera notée X. le calcul intermédiaire donne N:4912261531100242 et 4912261531100242 a pour reste 0 dans la division par 11. et qui commence obligatoirement par une lettre : Exemples : A12 pour Arabe FB2 pour Français • • Les deux autres parties (indiquant l'éditeur et le numéro d'ordre dans la production de l'éditeur) sont formés uniquement par des chiffres : 8 chiffres par partie.com Exercice10 L'ISBN (International Standard Book Number) est un numéro qui ISBN A12-41213104-92651027-5 permet d'identifier le titre d'un livre. . Exemple1 : Numéro saisie : A12-41213104-92651027 Numéro affecté au livre : A12-41213104-92651027-5 Sur l'exemple1 A12-41213104-92651027. d’où on effectue la somme des chiffres de la représentation binaire de A12.

Décomposer ce problème en modules. En déduire les algorithmes et les tableaux des déclarations.dat") 3) Ouvrir (f1) 4) Recréer (f2) 5) Tant que Non Fin_Fichier (f1) Faire Tant que Non Fin_Ligne (f1) Faire Lire (f1. "Fichier1. Analyser chacun des modules. ch) Ecrire (f2.dat") 2) Associer (f2. ch) Fin Tant que Lire_nl (f1) Ecrire_nl (f2) Fin Tant que 6) Fermer (f1) 7) Fermer (f2) 8) Fin Inconnu Collectée par Khaled KACHBOURI – atis.clicforum. déterminer la clé affectée à ce numéro et afficher le numéro final du livre.Série de révision BAC 2008-2009 atis. "Fichier2.com NB : La règle de divisibilité d’un entier N par 11 : S1 = Somme des chiffre d’indices impairs S = ABS(S1-S2) Si S mod 11=0 alors N est divisible par 11 Exp : 50312 mod 11 = abs ((2+3+5)-(1+0)) mod 11 = 9 et S2 = somme des chiffres d’indices pairs Travail à faire : On veut écrire un programme permettant de saisir le numéro ISBN d’un livre.clicforum. Exercice11 Soit l’algorithme suivant : 0) Début Inconnu 1) Associer (f1.com 6 .

Déterminer et afficher une valeur approchée du point fixe avec une précision Epsilon. On dispose de 2 fichiers texte nom1 et nom2 qui contiennent chacun exactement 1 mot par ligne (lettres minuscules sans espacement).Chercher N le nombre d'intervalles nécessaires pour avoir une différence entre S1 et S2 strictement inférieur à 10-6. 3]. Ces fichiers sont triés sur les mots dans l'ordre croissant.3]. Donnez le tableau de codification des objets Exercice 12 Soit le type ligne_t = string. qui contiendra tous les mots de nom1 et nom2. .com 7 .calculer S1 la valeur approchée de l'aire sous la courbe de la fonction f par la méthode des rectangles sur l'intervalle [1.dat" 2. Quel est le rôle de cet algorithme 3. sauf à la fin où il peut y avoir une ligne vide.Série de révision BAC 2008-2009 atis. et sera trié. .clicforum.dat" et "Fichier2.clicforum. Exercice13 Soit la fonction f définie par f(x) = On se propose d'écrire un programme qui permet de : . Collectée par Khaled KACHBOURI – atis. Quel est le type des fichiers "Fichier1.com Travail demandé : 1.calculer S2 la valeur approchée de l'aire sous la courbe de la fonction f par la méthode des trapèzes sur l'intervalle [1. Exemple : nom1 Choisir fait germer la solution nom2 bien des exemples nom3 Choisir bien des exemples fait germer la solution Ecrire une spécification et déduire un algorithme du programme qui permet de fusionner les lignes des deux fichiers existants triés en un seul fichier en respectant l'ordre. On se propose de fusionner ces 2 fichiers en 1 fichier unique nom3.

supprimer et modifier ce répertoire. code postal. Définir une procédure de consultation des renseignements relatifs à une personne donnée. e-mail…). 6. 8. 2) Analyser chacun des modules et déduire les algorithmes correspondants. 9. 3. 7. Enregistrer dans un fichier texte nommé "reussi. Définir une procédure de tri par ordre alphabétique (nom + prénom) des personnes du répertoire. les noms des élèves qui ont une moyenne supérieure ou égale à 10. Proposer une structure de données permettant de stocker les informations concernant une personne. 5. Définir une procédure de modification des renseignements relatifs à une personne donnée dont on connaît la position dans le répertoire. On désire pouvoir créer.com 8 . Collectée par Khaled KACHBOURI – atis. Définir une procédure de saisie de données relatives à une personne. 2. 1.com Question 1) Proposer une analyse modulaire pour ce problème. Définir une procédure permettant de lister toutes les personnes habitant une ville donnée. Définir une procédure de suppression d'une personne donnée dont on connaît dans le répertoire. adresse. Exercice 14 Le but de ce problème est de proposer une solution de gestion d'un ensemble d'informations concernant des personnes (nom. Un élève est caractérisé par un nom et une note Ecrire un programme qui permet de : • • trier ce tableau par ordre croissant des notes en utilisant la méthode du tri rapide. Exercice15 Soit un tableau remplit par n élèves d'une classe. Définir une procédure permettant d'accéder à la liste des personnes et de l'afficher soit dans un fichier texte. puis une structure de données permettant de stocker durablement toutes les informations relatives à toutes les personnes.Série de révision BAC 2008-2009 atis. téléphone. soit à l'écran. ville.txt".clicforum.clicforum. prénom. puis de stockage de ces données. On suppose que l'on connaît la position de la personne dans le répertoire. 4. Définir une procédure de recherche des renseignements concernant une personne à partir du nom et du prénom de la personne. consulter.

clicforum. Ecrire un module qui permet de calculer la valeur approchée de sin(x) en utilisant la formule ci-dessus.sin((n-1)x) sin(x) et sin(nx) = sin((n-1)x) cos(x) + cos((n-1)x) sin(x) Collectée par Khaled KACHBOURI – atis. et renvoyant la paire (cos(nx). • • Le schéma de calcul doit être récursif (mais non < diviser pour régner >).clicforum.Série de révision BAC 2008-2009 atis. sin(nx)).com Exercice16 Sachant que Pour x très proche de zéro.b) telle que a = cos x et b = sin x. Autrement dit.com 9 . le deuxième argument de la fonction est une paire (a. Exercice 17 Ecrire un module récursif qui permet de mettre à zéro la diagonale principale d'une matrice carrée de n*n entiers. Exemple : Soit la matrice suivante pour n=3 : 3 4 12 5 2 9 1 8 7 Après exécution du module. On pourra se servir des formules de trigonométrie suivantes : cos(nx) = cos((n-1)x) cos(x) . le contenu de la matrice devient : 0 4 12 5 0 9 1 8 0 Exercice18 Ecrire un module prenant en entrée un entier n et une paire de valeurs réelles qui sont en fait les valeurs du cosinus et du sinus d'un certain angle x. Le calcul s'arrête quand la différence entre deux termes consécutifs devient inférieure ou égale à epsilon (epsilon est une donnée passée en paramètre dans le module).

puis appliquer la formule xi = Avec ² = = b² -4ac après avoir vérifié la non nullité de a. Elle effectue le produit du dividende par le conjugué du diviseur puis la division du résultat par le carré du module du dénominateur. end. Nous définissons le type complexe comme couple de réels représentant la partie réelle et la partie imaginaire : type complexe=record Preel. sinon la fonction arctan fournit un argument modulo p. Collectée par Khaled KACHBOURI – atis. il faut donc ajouter p à ce dernier dans le cas où la partie réelle est négative. 1) Ecrire une procédure qui permet de lire un nombre complexe. 5) Ecrire une procédure permettant l'affichage des nombres complexes. 3) Ecrire une fonction qui calcule le module d'un nombre complexe. en extraire une racine carrée en utilisant le module et l'argument. 2) Ecrire une procédure qui effectue le produit de deux complexes.b] et définie par : f(x) = Calculez une valeur approchée de : en utilisant la méthode des trapèzes Exercice20 Nous allons écrire un programme capable de résoudre une équation du second degré à coefficients complexes.clicforum.com 10 . Pimag : real. Pour cela. 4) Ecrire une fonction qui calcule l'argument d'un nombre complexe par la méthode suivante : Si la partie réelle est nulle. On remarque qu'avec cette méthode la mesure principale de l'argument est située entre -p2 et 3p2. l'argument est p2 ou -p2 selon le signe de la partie imaginaire.clicforum.com Exercice19 Soit f une fonction continue dans un intervalle [a.Série de révision BAC 2008-2009 atis. 6) Ecrire une procédure permettant la division de nombres complexes. compris entre -p2 et p2 . nous allons successivement calculer le discriminant.

j) (A[k]) soit maximale. 8) Ecrire le programme principal de résolution d'une équation de degré deux à coefficients complexes : Lecture des coefficients complexes Calcul du discriminant Calcul d'une racine carrée du discriminant Après avoir vérifié que l'équation est de degré deux. Exercice22 Nous avons un tableau A de n entiers relatifs. (iv) Si le résultat final est nul alors le nombre est divisible par 9.clicforum. on lui soustrait 9. on lui soustrait 9.com 11 . on lui soustrait 9.Série de révision BAC 2008-2009 atis. nous recherchons un couple d'entiers i et j (1< i< j< n) tel que ∑(k=i. donc le nombre 65493 est divisible par 9. On cherche à déterminer si un entier N saisi (N>9) est divisible par 9 ou non en appliquant la méthode suivante : (i) (ii) (iii) On fait la somme du premier et du second chiffre de N.clicforum. 2) A partir de cette question. A 2 5 -8 6 5 -9 3 4 Collectée par Khaled KACHBOURI – atis. Si la somme obtenue est supérieure ou égale à 9. on obtient 0) Le résultat est nul et tous les chiffres de N ont été traités . le nombre N est exprimé dans a base 10. on lui soustrait 9. On ajoute ensuite à cette somme le chiffre suivant et on lui applique la règle (ii) et ainsi de suite jusqu’au dernier chiffre de N. on obtient 2) 2 + 4 = 6 (6 < 9) 6 + 9 = 15 (15 > 9. Elle calcule le numérateur et le dénominateur de la formule qui donne la solution et appelle la procédure de division de nombres complexes. l’algorithme effectuera les opérations suivantes : 6 + 5 = 11 (11 > 9. Exemple : Pour le tableau A suivant. on obtient 6) 6 + 3 = 9 (9 = 9. Nous recherchons un sous tableau de A dont la somme des éléments soit maximale. calculer et afficher les solutions. Exercice21 1) Proposez un algorithme qui lit un nombre binaire positif N et le convertit dans la base 10. Exemple : pour N = 65493. les valeurs cherchées sont i = 4 et j = 5.com 7) Ecrire une procédure qui calcule une solution de l'équation en fonction des nombres complexes a et b et une racine du discriminant. Autrement dit.

Questions : 1) Proposez une analyse et un algorithme du programme principal.dat’’ sur le disque local ‘’C’’.clicforum. grâce aux expressions suivantes : 1) π 4 = 1 ∫ 0 1− x 2 dx 1 1 1 + 23*3 5*3 7 *3 1 . Afficher le tableau trié.com Exercice 23 Dans notre lycée les résultats des élèves de chaque classe sont sauvegardées dans un fichier d’enregistrements. Chaque enregistrement comporte les renseignements sur un élève de la classe : Nom & Prénom (chaine de caractères). utilisez la méthode des rectangles. Le tri dans l’ordre décroissant des moyennes en utilisant la méthode de tri Rapide. • • • La transfère des moyennes des N élèves dans un tableau T.…) 9*3 4 2) π = 12 * (1 - + 3 On se propose d’écrire un programme nommé Approximation.clicforum.Série de révision BAC 2008-2009 atis. la fin de la saisie est possible si nous répondons N (Non) à la question « Continuer (O/N) ? ». 2) Proposez une analyse pour chaque module. Le programme doit afficher un message comme le suivant : pi = « 3. 3) Déduisez les algorithmes correspondants des modules envisagés. qui permet de calculer et d’afficher la valeur la plus précise de π à partir des deux expressions précédentes (c'est-à-dire qui est plus proche à la valeur de PI qui est le nom d’une fonction standard dans pascal qui renvoi la valeur de π ) NB : Pour l’expression 1). Ecrivez un programme nommé CLASSE qui permet : • La saisie et la sauvegarde des renseignements concernant les élèves de votre classe dans un fichier ‘’4SI1. Age (entier non signé) et Moyenne (réel).com 12 . Exercice24 On peut définir π . Afficher π avec 5 chiffres après la virgule.14131 » trouvé par l’expression « 2 » Collectée par Khaled KACHBOURI – atis.

Série de révision BAC 2008-2009 atis. si on appelle cette fonction avec le paramètre effectif n = 192837. En déduire le rôle de cette fonction.clicforum. Exécuter manuellement l’algorithme de la fonction Inconnu. ? 4. 2. puisque : 7² = 49 4² + 9² = 97 9² + 7² =130 1² + 3² + 0² =10 1² + 0² = 1 (on est arrivée à un nombre d'un seul chiffre = 1. L’algorithme de cette fonction est-il récurent ? si oui quel est son ordre. en donnant les valeurs successives des variables S et n.clicforum. 3. Ecrire l’algorithme d’une fonction récursive réalisant le même traitement.com 13 . Ainsi. puis les carrés des chiffres de ce résultat et ainsi de suite jusqu'à l'obtention d'un nombre à un seul chiffre. donne 1 pour résultat.com Exercice25 Un nombre heureux est un nombre entier qui. Exercice26 Soit l’algorithme de la fonction Inconnu suivante : 0) Début Fonction Inconnu (n : entier long) : entier 1) S ← 0 Répéter S ← S + (n Mod 10) n ← n Div 10 Jusqu’a (n = 0) 2) Inconnu ← S 3) Fin Inconnu Questions : 1. Collectée par Khaled KACHBOURI – atis. 7 est heureux. donc 7 est heureux) Ecrire l'analyse d'une fonction qui permet de retourner vrai si le nombre passé en paramètre est heureux. lorsqu'on ajoute les carrés de chacun de ses chiffres.

en effet on doit extraire tous les termes qui sont séparés par des +. Exemple : Hexadecimal. Enfin.Série de révision BAC 2008-2009 atis.dat 01B 11 A 0F 0F 15 01B 27 11 A 282 Résultat affiché : (0F) 16 = (15)10 ( 01B) 16 = (27) 10 ( 11A) = (282) 10 Collectée par Khaled KACHBOURI – atis.dat » à remplir avec n chaines hexadécimales valides (n entre 2 et 10) puis à partir de ce fichier on remplira un deuxième fichier nommé « conversions.clicforum. on désire afficher le contenu du fichier « conversion. En suite nous devons évaluer chacun des termes extrait qui contient éventuellement que les opérateurs de multiplication. Exemples: • • • Ch = ‘12*5+3*2+6’ la fonction retourne 72. Remarque : utiliser un principe de tri de votre choix.clicforum.dat ».dat conversions.dat » trié dans l’ordre croissant des nombres décimaux comme indiqué dans l’exemple ci-dessous.com 14 . Ch=’14+5’ la fonction retourne 19 Ch=’5’ la fonction retourne 5 Directives : Pour évaluer cette expression on peut suivre le principe suivant : • • La première de chose à faire est la séparation des termes par appels récursifs.dat » contenant autant d’enregistrement que de chaines hexadécimales dans le fichier « hexadecimal. On suppose que l’expression ne contient que des nombres et les deux opérateurs d’addition (+) et de multiplication (*).com Exercice27 On se propose de définir une fonction qui évalue une expression de calcul donnée sous forme d’une chaine. Exercice28 On dispose d’un fichier nommé « hexadecimal. Chaque enregistrement est composé de deux données successives : la chaine hexadécimale pris du premier fichier suivi de son équivalent en décimale.

p :entier) 1. Exercice29 Soit l’algorithme de la fonction suivante : 0. L 1 L1 0 P 1 Pour i de 2 à n faire Si t[i] >= t[i-1] alors L L+1 Sinon Si L>L1 alors L1 L P i-L1 Fin si L Fin si Fin pour 2.com Questions : 1) Analyser le programme en le décomposant en modules. Donner le rôle de cette fonction. Collectée par Khaled KACHBOURI – atis.Série de révision BAC 2008-2009 atis.n :entier .clicforum. Proposer une solution récursive. Fin inconnue 1 T= 1 3 2 4 3 5 4 2 5 4 6 5 7 6 8 1 9 4 10 0 11 1 12 2 Questions a. Déf proc inconnue(t : tab . c. 3) Déduire l’algorithme du programme principal. var L1. 2) Analyser les différents modules envisagés.clicforum.com 15 . b. Exécuter cette fonction et donner la succession des valeurs prises par toutes les variables.

} Exercice31 Soit la formule suivante : En se servant de la formule ci-dessus.clicforum. proposer une fonction qui permet de donner une valeur approchée de en s'arrêtant lorsque le terme devient plus petit qu'une valeur Epsilon Exercice 32 On se propose de remplir une matrice M selon le principe suivant : • • La dernière colonne et la deuxième diagonale de la matrice M sont des « 1 ».com Exercice30 On se propose de définir une procédure qui. à partir d’un caractère numérique donné. Chaque ligne est calculée en fonction de la ligne qui la précède en insérant à son début et à sa fin un chiffre C égal à (la somme de ses chiffres + sa longueur) mod 10). Exemple : Pour le premier caractère ="1" on aura : 1 212 82128 6821286 968212869 … 06820682128602860 {Ce nombre est divisible par 7.com 16 .Quel est l’ordre de récurrence de ce traitement. un élément quelconque de matrice est égal à la somme du dernier élément de la même ligne avec l’élément de dessus et l’élément qui le précède dans la même ligne.clicforum. 3. Le Nième ligne correspond au premier nombre divisible par 7.6] = 1 + 3 + 3 = 7 1. affiche une pyramide composée de N lignes. 2. Exemple : M [5.Ecrire l’analyse et l’algorithme du module qui permet de remplir la matrice sous la forme suivante : Collectée par Khaled KACHBOURI – atis.Série de révision BAC 2008-2009 atis.Compléter la dernière ligne de la matrice M.

qui lit au clavier une suite de noms (1 par ligne).com 17 . s_ext : integer. extérieure} s_loc. qui pour un match m donné..Série de révision BAC 2008-2009 atis. Il dispose des types suivants pour mémoriser le nom des équipes : CONST MaxEquipe = 25 .MaxMatch] of Match_t . var nN : integer). qui ont lieu chaque fois entre une équipe locale et une équipe extérieure : CONST MaxMatch = 1000. renvoie 1. termine par une ligne vide. Collectée par Khaled KACHBOURI – atis.clicforum. extérieure ou que le match est nul. tabNom_t = array[1. extérieure} end . TYPE nom_t = string[63]. 1. TYPE Match_t = record n_loc. On introduit maintenant des types pour numériser les scores des matchs. TabMatch_t = array[1. Les équipes sont désormais numérotées dans leur ordre de saisie. Ecrire la procédure SaisieNoms (var tN : TabNom_t . mémorise ces noms dans tN le nombre résultant dans nN. {numéro équipe locale. {score équipe locale..MaxEquipe] of nom_t. Ecrire la fonction QuiGagne(m : Match_t) : integer.clicforum.com 1 1 1 1 1 1 1 1 3 3 7 3 7 15 3 7 15 31 3 7 15 31 63 1 1 1 1 1 1 1 A compléter Exercice33 Le sélectionneur de l'équipe de Tunisie veut faire des statistiques sur les matchs de 1ère division. n_ext. 2. -1 ou 0 selon que la gagnante est l'équipe locale.

clicforum.clicforum. de façon que chaque caractère soit représenté sur un Octet (8bits). en appelant éventuellement la fonction QuiGagne. 2) Proposez pour chaque module une analyse détaillée.Série de révision BAC 2008-2009 atis.com 3. Chaque ligne de ce fichier contient un mot de passe crypté sous forme d’une séquence binaire. Ecrire la fonction DiffLocalExt(tM : TabMatch_t. qui affiche pour chacun des nM matchs le nom de l'équipe gagnante. 3) Déduisez les algorithmes des modules envisagés. Convertir les chaines hexadécimales obtenues en base 10 (décimale). Ecrire la procédure AffiGagnant(M : TabMatch_t. Ces derniers sont envoyés à un serveur distant et enregistrer automatiquement dans un fichier texte intitulé « password. Exercice34 Pour se connecter à une application de messagerie instantanée sur Internet (exemple MSN).com 18 . qui renvoie pour l'ensemble des nM matchs. les utilisateurs doivent taper leurs adresses e-mail (login) et leurs mots de passe. nM : integer). la différence entre le nombre de matchs gagnés par l'équipe locale et le nombre de matchs gagnés par l'équipe extérieure. nM : integer) : integer. Collectée par Khaled KACHBOURI – atis. Chaque nombre obtenu correspond au code ASCII d’un caractère du mot de passe. tN : TabNom_t. nM : integer. en appelant éventuellement la fonction QuiGagne. 1) Proposez une analyse est un algorithme du programme principal. Pour décrypter un mot de passe il suffit de : • • • Convertir chaque Octet binaire en son équivalent hexadécimal (sans passer par la base 10). 4. Exemple : Soit la ligne du texte suivante: 01000010 01101111 01101110 42 6F 6E D’où le mot est ‘’Bon’’ 66 111 108 ‘’B’’ ‘’o’’ ‘’n’’ On se propose d’écrire un programme qui permet d’afficher les mots de passe du fichier texte.txt » sous la racine du serveur.

A partir de cette matrice. A partir du fichier FH créer un deuxième fichier FD dont le nom physique est 'C:\Div11. permet de générer un nombre entier aléatoire appartenant à l’intervalle [0. Si N = 12345674 1234567 – 4 = 1234563 123456 – 3 = 123453 12345 – 3 = 12342 1234 – 2 = 1232 123 – 2 = 121 12 – 1 = 11 1 – 1 = 0 qui est divisible par 11 D’où 12345674 est divisible par 11. X-1]. chaque enregistrement renferme les deux champs suivants : Hex : représente la conversion en hexadécimale de chaque ligne de la matrice.clicforum.Série de révision BAC 2008-2009 atis. qui contient toutes les chaînes hexadécimaux dont le nombre de caractère est supérieur à 1 (nb ≥ 1) et dont la conversion en décimal est divisible par 11.com Exercice 35 On vous demande d’écrire un programme qui permet de : Remplir au hasard une matrice carrée d’ordre n par les entiers 0 ou 1. NB : La fonction Random (X). créer un fichier d’enregistrements FH stocké physiquement sous 'c:\Hexa.clicforum.dat'.dat'. (La conversion en hexadécimal se fait directement et sans passer par la base 10) nb : représente le nombre de lettres existant dans la conversion Hexadécimale. NB : vous devez utiliser la méthode suivante pour déterminer la divisibilité par 11 : Soustraire de N amputé de son chiffre des unités le chiffre supprimé et recommencer éventuellement avec le nombre ainsi obtenu jusqu’au moment où l’on peut conclure à la divisibilité.com 19 . Exemple : pour n = 8 M 1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 E7 8F FF 31 10 77 21 FD FH 1 1 2 0 0 0 0 2 E7 8F FD FD Collectée par Khaled KACHBOURI – atis.

231 est divisible par 11 et nb ≥ 1. la valeur « Q ». Un athlète de l'équipe ne participe qu'à une seule course.com . 2. Questions : 1. Hex = E7 nb = 1 Exercice36 Le sélectionneur de l’équipe nationale d’athlétisme veut choisir les meilleurs coureurs pour chaque course. le nom de l'athlète et son record.clicforum.dat" enregistré dans le dossier "d:\courses". Un athlète est caractérisé par son nom. d’où l’écriture de E7 dans le fichier FD. pour déterminer par course. la valeur "T". pour saisir les données relatives à un nouvel athlète. . afin de retenir les athlètes qui participeront aux jeux olympiques de 2008.La première ligne de la matrice est égal à : 1110 0111. pour classer les athlètes par ordre croissant des records pour chacune des courses programmées.clicforum. la course à laquelle il participe et son record. Record = 10. Analyser et déduire l’algorithme du programme principal qui permet de réaliser le traitement décrit précédemment en le décomposant en modules. On se propose d'écrire un programme qui offre au sélectionneur un menu de quatre choix définis selon la valeur d'une lettre saisie.com 20 .(E7) 16 = (231) 10 . Course = 100. • • • • la valeur "S".Série de révision BAC 2008-2009 atis. pour quitter le programme. Exemple : Nom = Mohamed Jouini.(1110 0111)2 . la valeur "A". le meilleur athlète et afficher la course. L'ajout se fera à la fin du fichier.7 (On suppose que tous les records sont exprimés en secondes) Les informations sur les athlètes sont stockées dans un fichier nommé "olymp. Collectée par Khaled KACHBOURI – atis. Le sélectionneur dispose du meilleur temps (record) enregistré par chaque athlète. Analyser chacun des modules envisagés précédemment et en déduire les algorithmes correspondants.

Exercice37 Les anciens égyptiens ne connaissaient.1/3 = 7/60 Etape 5 : 60/7 = 8 avec un certain reste. 1 [ en une somme d'inverses d'entiers strictement croissants. donc notre première fraction unitaire est 1/2. Etape 6: 7/60 1/9 = 1/180 qui est elle-même une fraction unitaire.Analyser et déduire l’algorithme du programme principal qui permet de réaliser le traitement décrit précédemment en le décomposant en modules. Principe (appliqué sur un exemple): Convertir 19/20 en une fraction égyptienne. donc notre troisième fraction unitaire est 1/9.Analyser chacun des modules envisagés précédemment et en déduire les algorithmes correspondants. notre résultat est : Collectée par Khaled KACHBOURI – atis. Il s'agit de décomposer un rationnel de ] 0 . Etape 2 : 19/20 .Série de révision BAC 2008-2009 atis. Exemples : 5/8 = 1/2 + 1/8 7/11 = 1/2 + 1/11 + 1/22 Ecrire un module qui permet de décomposer un nombre rational de la forme n/d en une somme de nombres rationnels unitaires de la forme 1/m en utilisant le principe des fractions égyptiennes.Quelles sont les structures de données adéquates à ce problème ? Justifier le choix de chaque structure proposée.clicforum.1/2 = 9/20. donc notre deuxième fraction unitaire est 1/3.com 21 . 3.clicforum. Donc. 2. Etape 3 : 20/9 = 2 avec un certain reste. que les inverses d'entiers. Etape 4 : 9/20 . comme rationnels. • • • • • • Etape 1 : 20/19 = 1 avec un certain reste.com Questions : 1.

Collectée par Khaled KACHBOURI – atis.Série de révision BAC 2008-2009 atis.. Exemple : La matrice suivante est un carré magique d’ordre 3..clicforum. dont chaque terme est obtenu en calculant la somme des n derniers nombres de la suite. chaque colonne et des deux diagonales est identiques. Le dernier terme calculé est une valeur approchée de √x à 10^-4 près Exercice39 Un carré magique d’ordre n est une matrice carrée (n * n) telle que la somme des entiers de chaque ligne.com 22 . Exercice41 On appelle nombre de Keith un nombre K de n chiffres (n >=2) ayant la propriété suivante : En partant des n chiffres d’un nombre K. ce nombre est dit de Keith.com Exercice38 Ecrire un programme qui permet de calculer puis d'afficher la racine carrée d'un réel positif x en utilisant la suite suivante: U0 = (1+x)/2 Un+1 = (Un+ x/Un)/2 Il s'agit de calculer les premiers termes de cette suite jusqu'à ce que la différence entre deux termes successifs devient inférieur ou égale à 10^-4. Exercice40 Soit la suite de racines carrées suivante : 1 + 2 + 3 + 4 + . on compose une sorte de suite récurrente d’ordre n. 8 1 6 3 5 7 4 9 2 Ecrire un module (procédure ou fonction) qui permet de déterminer si une matrice est un carré magique ou non.clicforum. + N R= Proposez dans un contexte récursif une fonction intitulée RACINE qui permet de donner une valeur estimée de R. Si cette suite fournit à un moment le nombre k de départ.

3.rz" par des entiers strictement positifs. 404.rz" . 1365.clicforum. 742. Analyser les modules envisagés en déduire les algorithmes correspondants.com 23 . 19. 2. . Collectée par Khaled KACHBOURI – atis. . 5.Utiliser ce fichier pour : Extraire les nombres fibonacciens dont la représentation hexadécimale est composée seulement de chiffres et les mettre dans le fichier "fichier2. il suffit de répondre à la question "Continuez (O/N) ? " par le caractère N. 1. Il s’agit ici d’une suite récurrente d’ordre 2 donné par la relation suivante : • Pour n= 3. Il s’agit ici d’une suite récurrente d’ordre 3 donné par la relation suivante : Exercice42 Appelons "nombre fibonaccien" chaque terme de la suite de Fibonacci.. 8. 66. 9. 2. 29. les termes de a suite sont donc les suivant : 1.…. 4. 13.clicforum.com On propose d’écrire un programme Pascal qui permet d’afficher tous les nombres de Keith compris entre 10 et 10 000. soit k = 742. On rappelle que la suite de Fibonacci est définie par : U0 = 1. Un = Un-2 + Un-1 Travail demandé : Analyser le problème en le décomposant en modules. …. 34. Les nombres fibonaccien sont : 1. 13. les termes de a suite sont donc les suivant : 7. 21. 219. soit k = 19. 119. 10.. Pour finir la saisie. On souhaite écrire un programme qui permet de : .rz" Extraire le reste des nombres fibonacciens et les mettre dans le fichier "fichier3.Afficher les éléments de chaque fichier. U1 = 1. Exemple : • Pour n = 2.…. 19.Effacer les nombres non fibonacciens du fichier cité ci-dessus.Remplir le fichier "fichier1.Série de révision BAC 2008-2009 atis.

de déterminer et d'afficher sa valeur en Binaire. l'une des méthodes de la conversion d'un entier décimal (X) en son équivalent binaire (base 2). On refait les deux étapes précédentes avec le quotient de la division.clicforum. selon le format suivant : le nombre décimal X vaut ….com 24 . Sens de lecture des restes Question : Ecrire un programme Pascal permettant de saisir un entier naturel X ≤ 100. On divise (division entière) le nombre X par 2 2. Exemple : Si X = 13 alors La division entière de 13 par 2 donne un quotient = 6 et un reste = 1 La division entière de 6 par 2 donne un quotient = 3 et un reste = 0 La division entière de 3 par 2 donne un quotient = 1 et un reste = 1 La division entière de 1 par 2 donne un quotient = 0 et un reste = 1 Donc le nombre décimal 13 vaut 1101 en Binaire. Le regroupement des restes en sens inverse de leurs apparitions donne la valeur du nombre X en binaire. Exercice44 Soit la suite U définie par : U0= 1 et Un = le nombre des chiffres consécutifs du terme Un-1 en commençant de gauche à droite suivi du chiffre lui-même Exemple U0 = 1 U1 : dans U0 on a une seule fois le chiffre 1 d’où U1 = 11 Collectée par Khaled KACHBOURI – atis.B : La solution doit comporter au moins une procédure et une fonction récursive.com Exercice43 On propose par la suite.clicforum.Série de révision BAC 2008-2009 atis. 4. en binaire.. N. On sauvegarde le reste de la division 3. 1. jusqu'à avoir un quotient nul.

clicforum. Donner la valeur de U8 et de U9 2. Quel est l’ordre de récurrence de cette suite 3. une fois le chiffre 2 et deux fois le chiffre 1 d’où U4= 111221 U5 : dans U4 on a trois fois le chiffre 1 .com 25 .Série de révision BAC 2008-2009 atis.2*2| =68 |6-2*8|= 10 |1-2*0|= 1 d’où 7241 n’est pas divisible par 7 Pour n = 30086 |3008 – 2*6| = 2996 |299. deux fois le chiffre 2 et une fois le chiffre1 U5= 312211 U6=13112221 U7=1113213211 Travail demandé : 1.clicforum.2*6| =287 |28-2*7|= 14 |1-2*4|= 7 d’où 30086 est divisible par 7 Pour n = 147 |14-2*7|= 0 d’où 147 est divisible par 7 Travail demandé : Ecrire la spécification et l’algorithme d’un module récursif permettant de vérifier si un entier n est divisible par 7 Collectée par Khaled KACHBOURI – atis.com U2 : dans U1 on a deux fois le chiffre 1 d’où U2 = 21 U3 : dans U2 on a une seule fois le chiffre 2 et une seule fois le chiffre 1 d’où U3 = 1211 U4 : dans U3 on a une seule fois le chiffre 1 . Ecrire la spécification d’un module permettant de déterminer pour un entier n le terme Un Exercice45 Un nombre abcd est divisible par 7 si |abc-2*d| est divisible è son tour par 7 Exemple : Pour n =7241 |724 – 2*1| = 722 on doit tester si 722 est divisible par 7 |72.

qui évalue pour un réel x donné. 1. en donnant les valeurs successives des variables i et S.3x2 + x -5/3 Donner tous les éléments du tableau C correspondant à ce polynôme. 0) Début Fonction Calcul (n : octet . Fich_ent = File Of Integer.clicforum. b) Ecrire une fonction récursive réalisant le même calcul. Exercice47 Soient les déclarations Pascal suivantes : Type Sexe=(masculin. x=2 et C 3 0 8 1 0 2 1 3 1 4 Exécuter manuellement l’algorithme de la fonction Calcul. On considère la fonction «calcul » ci-dessous.com Exercice46 Un polynôme en x et de degré n s'écrit sous la forme : P(x) = cnxn + cn-1xn-1 + … + c1x + c0 Il est représenté par un tableau C de coefficients défini par C[i] = ci pour tout i de 0 à n. 2.Série de révision BAC 2008-2009 atis. C : tableau) : réel 1) [S ← C[n]] Pour i de n-1 à 0 (pas=-1) Faire S ← S * x + C[i] Fin Pour 2) Calcul ← S 3) Fin Calcul a) On appelle cette fonction avec les paramètres effectifs suivants : n = 4. feminin) . Fich_pers = File Of Info.clicforum. S:Sexe. Var Collectée par Khaled KACHBOURI – atis. Age : byte .com 26 . la valeur du polynôme P de degré n dont les coefficients sont stockés dans le tableau C. Soit le polynôme P(x) = 5x4 . x : réel . Info = Record Nom :string[30] . End.

com F1 : Fich_pers. F2 : Fich_ent.com 27 .3). Exercice48 Ecrire l’analyse puis l’algorithme d’un module récursif qui permet d’afficher les caractères d’une chaîne sous la forme indiquée dans l’exemple suivant : Exemple : Soit la chaîne "TURBO" TURBO TURB TUR TU T Exercice49 Une institution éducative veut mettre à jour son archive enregistré dans un fichier texte "Arch2008.Txt" et contenant par ligne les informations d’un élève sous la forme suivante : MatriculeNomAgeRésultatClasse (il n’y a aucun espace entre les différentes informations) Où Matricule : Chaîne de 6 chiffres Nom : Chaîne formé de caractères alphabétiques majuscules Age : Entier de deux chiffres Résultat : Un caractère qui peut être "A" pour Admis "R" pour redouble et "E" pour exclu Collectée par Khaled KACHBOURI – atis. I : Info . F : Text.clicforum. Ch : String.I) . F).I.clicforum. Write(ch. Readln (F1. Soit les instructions pascal suivantes . Write(F1. Justifier à chaque fois votre réponse.Série de révision BAC 2008-2009 atis.Age) . mettre la lettre V dans les cases correspondantes aux instructions correctes et la lettre F dans le reste des cases. Write(F2.

dat" Effacer les élèves admis au Baccalauréat et ceux exclus Mettre à jour l’âge de chaque élève(en ajoutant 1) ainsi que sa classe s’il est admis Transférer les informations mises à jour dans un fichier texte enregistré dans le même emplacement sous le nom "Arch2009" NB : L’effacement des élèves et la mise à jour seront au niveau du fichier d’enregistrement L’effacement d’un élève se fait de façon que tous les élèves qui le suivent se décalent vers sa position.clicforum.Série de révision BAC 2008-2009 atis. Exercice50 Bonne chance BAC SI 2009 Merci à tous mes collègues Notre forum … Notre famille … Innovateurs … Collaborateurs … Collectée par Khaled KACHBOURI – atis. Travail à faire : Définir les structures des données adéquates pour ce problème Analyser ce problème en utilisant la méthode d’analyse modulaire Déduire les différents algorithmes des modules envisagés précédemment.com Classe : un entier entre 1 et 4 Exemple : 004750MALEKALI17A4 196704ALOUIASMA16R3 On vous demande de : Extraire à partir du fichier texte les informations des élèves et les stocker dans un fichier d’enregistrements qui sera enregistré sous le nom "Eleves.com 28 .clicforum.

You're Reading a Free Preview

Télécharger
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->