Académique Documents
Professionnel Documents
Culture Documents
I. Enregistrement et fichier
1
Révision Algo théorique BAC Info
2
Révision Algo théorique BAC Info
3
Révision Algo théorique BAC Info
4
Révision Algo théorique BAC Info
Exercice n°1.
Exercice n°2.
5
Révision Algo théorique BAC Info
Exercice n°3.
Exercice n°4.
6
Révision Algo théorique BAC Info
Exercice n°5.
Répondre par V(VRAI) ou F(FAUX) :
1. Soit f un fichier de chaine, Lire (f, V) :
Permet de lire tous le Permet de lire une ligne V doit être de type chaine
contenu de f dans V dans V
3. Soit E une variable de type maison (un enregistrement), soit F un fichier de maison :
On peut transférer le On peut lire le contenu de On peut supprimer une
contenu de F dans un fichier E dans F ligne de F champ par
texte champ
4. Soit ‘’F’’ un fichier qui sera remplit par 100 chaines, pour déclarer F on peut utiliser:
Uniquement le type Fichier Uniquement le type Fichier Fichier de chaine ou fichier
de chaine texte texte
5. Pour modifier le contenu d’un fichier texte déjà remplit on peut l’ouvrir par le mode :
‘’w’’ ‘’a’’ ‘’r’’
8. Un fichier binaire est déjà vide, on peut l’ouvrir en écriture avec le mode:
‘’w’’ ‘’ab’’ ‘’wb’’
7
Révision Algo théorique BAC Info
8
Révision Algo théorique BAC Info
Exercice n°9.
9
Révision Algo théorique BAC Info
Exercice n°10.
10
Révision Algo théorique BAC Info
11
Révision Algo théorique BAC Info
Exercice n°11.
Exercice n°12.
12
Révision Algo théorique BAC Info
Exercice n°13.
Exercice n°14.
13
Révision Algo théorique BAC Info
Exercice n°15.
14
Révision Algo théorique BAC Info
Matrice résultat:
7 19 13 -4
-12 31 44 0
33 -9 5 22
10 8 -3 57
Exercice n°17.
Soit l’algorithme et le Tableau de Déclaration des Nouveaux Types suivants :
15
Révision Algo théorique BAC Info
Exercice n°18.
Pour chacune des propositions ci-dessous, mettre dans la case correspondante la lettre V si la
réponse est correcte ou la lettre F dans le cas contraire.
a. La suite d’instructions permettant de vérifier dans la variable test l’existence d’un entier
x dans un tableau de N entiers :
Test ← Faux
i← -1
j←N i←0
Tant que non test et i < j Tant que i < N et T[i] ≠ x
Pour i de 0 à N-1 faire
Faire Faire
test ← x = T[i]
i ← i+1 i ← i+1
Fin Pour
j ← j-1 Fin Tant que
test ← T[i] = x ou T[j] test ← i < N
=x
Fin Tant que
0 5 9 6 7 8 9
1 2 3 8 9 3 1
2 10 3 9 1 2 5
3(D) 1 9 14 25 6 7
4 9 10 11 25 6 7
5 3 7 8 1 5 20
16
Révision Algo théorique BAC Info
Exercice n°19.
Exercice n°20.
17
Révision Algo théorique BAC Info
Exercice n°21.
On propose ci-dessous l’algorithme de la procédure suivante :
0) Procédure inconnu (Var T : Tab ; n : entier)
1) Pour i de 1 à n-1 Faire
Pour j de 1 à n-i Faire
Si (T [ j ] < T [ j+1]) Alors
Proc Permut (T [ j ] , T [ j+1])
Fin si
Fin Pour
Fin Pour
2) Fin inconnu
Remarque : Le module Permut (a, b) permute le contenu de deux entiers a et b.
Questions :
Soit n = 6
T 15 7 45 19 0 13
1- Exécuter manuellement la procédure inconnu en utilisant l’exemple précédant.
T
18
Révision Algo théorique BAC Info
19
Révision Algo théorique BAC Info
20
Révision Algo théorique BAC Info
Exercice n°23.
Exercice n°24.
Soit la fonction suivante :
21
Révision Algo théorique BAC Info
Exercice n°25.
Soit l’algorithme de la fonction récursive "Quoi" suivante :
Fonction Quoi (ch1, ch2 : Chaîne) : Booléen
Début
Si ch1 = "" Alors Quoi Vrai
Sinon Si Pos (ch1[1], ch2) = 0 Alors Quoi Faux
Sinon
Efface (ch1, 1, 1)
Quoi FN Quoi (ch1, ch2)
Fin Si
Fin
Questions :
1) Donner deux valeurs des chaînes ch1 et ch2 pour que la fonction "Quoi" retourne la valeur Vrai
2) Donner deux valeurs des chaines ch1 et ch2 pour que la fonction "Quoi" retourne la valeur faux
Exercice n°26.
Exercice n°27.
22
Révision Algo théorique BAC Info
Exercice n°28.
On veut écrire des sous-programmes récursifs qui traitent des tableaux d’entiers de tailles inférieures
à 100.
Exercice n°29.
Ecrire une fonction récursive nommée anag qui détermine si deux chaînes sont anagrammes.
Deux chaînes ch1, ch2 sont dites anagrammes, si les lettres qui composent la 1 er chaîne existent tous
dans la 2ème chaîne.
Exercice n°30.
On appellera totalgramme une chaîne dont chacun de ses mots commence et se termine par la
même lettre.
Ecrire une analyse et un algorithme d’un module récursif intitulé totalgramme qui permet de vérifier
si une chaîne de caractères est totalgramme
Exemple : La chaîne "ALLALA EMPRUNTE TEMPORAIREMENT À DAOUD SES SOULIERS " est
totalgramme
NOTE : On suppose que deux mots consécutifs sont séparés par un seul espace
Exercice n°31.
Exercice n°32.
Écrire une analyse récursive ConvChEnt d’une fonction qui convertit une chaîne formée de chiffres en
sa valeur entière, sans utiliser la procédure prédéfinie Val. On suppose que la chaîne est formée
uniquement de chiffre et qu’elle peut être vide.
ConvChEnt ("123") renvoie l’entier 123
ConvChEnt ("") renvoie l’entier 0
NB :
➢ Pour réaliser cette fonction vous pouvez utiliser la fonction prédéfinie ORD.
23
Révision Algo théorique BAC Info
Exercice n°34.
Exercice n°35.
24
Révision Algo théorique BAC Info
Exercice n°37.
Exercice n°38.
Exercice n°39.
Soit la suite suivante définie par :
U0 = 1
(−2) n
Un =
2 * U n −1
Travail demandé :
1. Donner la valeur de U1 et de U2.
2. Quel est l’ordre de récurrence de cette suite. justifier votre réponse.
3. Ecrire une analyse d’un module permettant de déterminer pour un entier n le terme Un
25
Révision Algo théorique BAC Info
Exercice n°40.
Exercice n°41.
Exercice n°42.
Exercice n°43.
26
Révision Algo théorique BAC Info
Exercice n°44.
Exercice n°45.
Ecrire un algorithme qui permet de déterminer une valeur approchée de la constante Pi à
10-5 près, à partir de l’égalité suivante, obtenue selon l’une des formules de Ramanujan :
Exercice n°46.
Exercice n°47.
27
Révision Algo théorique BAC Info
Exercice n°48.
On vous rappel que un nombre premier est un entier naturel qui admet exactement deux diviseurs
distincts entiers et positifs (qui sont alors 1 et lui-même).
Un quadruplet de premiers est un couple constitué de 4 nombres jumeaux premiers successifs,
séparés d'une distance de 4 de la forme suivante : ( p , p + 2 , p + 6 , p + 8 )
Exemple :
Les quadruplets de premiers jumeaux sont :
(5, 7, 11, 13), (11, 13, 17, 19), (101, 103, 107, 109)…………
En 1919 Vigo Brun (1885–1978) à prouvé que la somme de la série des inverses des nombres
premiers jumeaux converge vers une constante (B) dite constante de Brun :
Travail demandé :
Exercice n°49.
Soient les deux propriétés arithmétiques suivantes :
1ère propriété :
Un entier sans facteur carré est un entier qui n'est divisible par aucun carré parfait, excepté 1.
Par exemple :
▪ 10 est "sans facteur carré" car il n'est divisible par aucun carré parfait.
▪ 18 n'est pas "sans facteur carré" car il est divisible par 9 qui est un carré parfait (3 2).
NB : Un nombre entier est dit un "carré parfait" s’il est le carré d'un autre nombre entier.
Exemple : 16 est un carré parfait car 16=4².
2ème propriété :
Un nombre refactorisable est un entier strictement positif qui est divisible par le nombre total
de ses diviseurs.
Par exemple :
▪ 10 n’est pas refactorisable car il n’est pas divisible par le nombre total de ses diviseurs (4).
En effet, les diviseurs de 10 sont 1, 2, 5 et 10.
▪ 18 est un nombre refactorisable car il est divisible par le nombre total de ses diviseurs (6).
En effet, les diviseurs de 18 sont 1, 2, 3, 6, 9 et 18.
On se propose d’écrire un programme permettant :
▪ de saisir un entier N (avec 3 < N < 100) qui représente la taille du fichier F.
▪ de créer et de remplir un fichier F sauvegardé sur la racine du disque D:\ par N entiers
strictement positifs.
▪ d’éclater le fichier F en 2 fichiers F1 et F2 de même type, de la manière suivante :
- F1 contient les éléments de F qui sont "sans facteur carré".
- F2 contient les éléments de F qui sont "refactorisables".
▪ d’afficher les contenus des fichiers F1 et F2.
28
Révision Algo théorique BAC Info
Exercice n°51.
Le système quaternaire est un système de numération à base 4 dont les valeurs sont {0, 1, 2, 3}.
Une nouvelle représentation des chiffres quaternaires a été inventée, portant le nom de Base
Shadok comme indiqué dans le tableau suivant :
Chiffre en base 4 0 1 2 3
Equivalent en base Shadok Ga Bu Zo Meu
Exemple : 109(10) = BuZoMeuBu(shadok)
En effet :
109 4
1 27 4
3 6 4
1231(4) = BuZoMeuBu(shadok)
2 1 4
1 0
Ecrire un algorithme d’un module qui permet de retourner la conversion d'un nombre décimal
N en son équivalent en Shadok. NB : N est saisi dans le programme appelant.
29
Révision Algo théorique BAC Info
Exercice n°52.
Exercice n°53.
Pour se connecter a une application de messagerie instantanée sur Internet (exemple MSN), les
utilisateurs doivent taper leurs adresses e-mail (login) et leurs mots de passe. Ces derniers sont
envoyés a un serveur distant et enregistrer automatiquement dans un fichier texte intitule
« password.txt » sous la racine du serveur.
Chaque ligne de ce fichier contient un mot de passe crypte sous forme d’une séquence binaire, de
façon que chaque caractère soit représenté sur un Octet (8bits).
· Convertir chaque Octet binaire en son équivalent hexadécimal (sans passer par la base 10).
· Chaque nombre obtenu correspond au code ASCII d’un caractère du mot de passe.
Ecrire un programme qui permet d’afficher les mots de passe du fichier texte.
30
Révision Algo théorique BAC Info
Exercice n°54.
Exercice n°55.
Exercice n°56.
31
Révision Algo théorique BAC Info
VII. Approximation
Exercice n°57.
Il existe une méthode pour calculer une valeur
approchée de π en utilisant la fonction
Sin(x).Cette méthode utilise le faite que π est
une solution de la fonction Sin(x).De plus, cette
solution se trouve entre 2 et 4.
- Diviser l’intervalle [2..4] en n sous intervalles avec n entier donné compris entre 10 et 100
- Sauvegarder tous les abscisses ( xi ) 1≤i≤n dans un vecteur de n d’enregistrements au 1er champ,
l’abscisse x commence par 2.
- Déterminer l’image de chaque abscisse par la fonction Sin(x) et la sauvegarder dans le 2 ème
champ.
- Incrémenter x par le pas p avec p=largeur du sous intervalle.
- Finalement la valeur approchée de π est égale à l’abscisse qui correspond à la valeur minimale
de la valeur absolue de son image dans le vecteur d’enregistrement
Travail demandé :
-Ecrire un algorithme d’une fonction Calcul_pi(n,T) qui permet de retourner une valeur approchée
de π .
Exercice n°58.
32
Révision Algo théorique BAC Info
Exercice n°59.
Exercice n°60.
33
Révision Algo théorique BAC Info
Probleme n°1.
34
Révision Algo théorique BAC Info
Probleme n°2.
Le système d'exploitation Linux permet de définir des droits d'accès différents sur un même fichier selon
la catégorie de l'utilisateur. A chaque catégorie d'utilisateurs : user(u), group(g) ou other(o), on associe
un triplet de droits : lecture (r), écriture (w) et exécution (x).
En effet, dans l'exemple suivant, la représentation des droits d'accès à un fichier est illustrée comme suit
:
Etant donnés un fichier texte intitulé droits.txt, dont chaque ligne contient les droits d’accès suivi par
le nom d'un fichier séparés par un espace et un fichier texte intitulé chmod.txt, dont chaque ligne
contient la commande chmod suivi d’un espace suivi de l’expression suivi d’un espace suivi du nom du
fichier. On se propose d'écrire un programme permettant :
• d'appliquer les commandes se trouvant dans le fichier chmod.txt sur les droits d’accès
enregistrés dans le fichier droits.txt et stocker les nouveaux droits dans un nouveau fichier texte
intitulé resultat.txt.
• de trier le fichier resultat.txt dans l’ordre alphabétique croissant des noms des fichiers.
• d'afficher le contenu du fichier resultat.txt.
NB : Les fichiers droits.txt, chmod.txt et resultat.txt se trouvent sur la racine du disque C:
Exemple :
35
Révision Algo théorique BAC Info
Probleme n°3.
36
Révision Algo théorique BAC Info
Probleme n°4.
Soient les deux propriétés arithmétiques suivantes :
1ère propriété :
Un entier sans facteur carré est un entier qui n'est divisible par aucun carré parfait,
excepté 1.
Par exemple :
▪ 10 est "sans facteur carré" car il n'est divisible par aucun carré parfait.
▪ 18 n'est pas "sans facteur carré" car il est divisible par 9 qui est un carré parfait
(32).
NB : Un nombre entier est dit un "carré parfait" s’il est le carré d'un autre nombre entier.
Exemple : 16 est un carré parfait car 16=4².
2ème propriété :
Un nombre refactorisable est un entier strictement positif qui est divisible par
le nombre total de ses diviseurs.
Par exemple :
▪ 10 n’est pas refactorisable car il n’est pas divisible par le nombre total de ses
diviseurs (4).
En effet, les diviseurs de 10 sont 1, 2, 5 et 10.
▪ 18 est un nombre refactorisable car il est divisible par le nombre total de ses
diviseurs (6).
En effet, les diviseurs de 18 sont 1, 2, 3, 6, 9 et 18.
TRAVAIL DEMANDÉ
1. Analyser le problème en le décomposant en modules.
2. Ecrire les algorithmes des différents modules proposés.
37
Révision Algo théorique BAC Info
38
Révision Algo théorique BAC Info
Probleme n°6.
Une calculatrice, ou calculette, est une machine conçue pour simplifier, et fiabiliser, des
opérations de calculs.
Dans les années 1970, elles se miniaturisent pour devenir portables grâce à l'affichage à sept segments
Les afficheurs 7 segments sont un type d'afficheur très présent sur les calculatrices et les montres à
affichage numérique : les chiffres s'écrivent en allumant ou en éteignant des segments. Quand les 7
segments sont allumés, on obtient le chiffre 8.
Un segment allumé est représente par le caractère 1
Un segment éteint est représente par le caractère 0
Voici quelques exemples représentés avec l'affichage à 7 segments :
39
Révision Algo théorique BAC Info
Probleme n°7.
Considérons un fichier typé « Nombre.dat », contenant X enregistrements « Nombre » dont
la structure est la suivante :
a b n
(Entier) (Entier) (Entier)
-Enregistrer les résultats dans un fichier texte nommé « puissance.txt » de telle façon que
chaque ligne soit de la forme suivante :
(a+b) exposant n= « valeur calculée »
Exemple :
Soit le fichier « Nombre.dat » suivant :
3 3 2 2 5 4 4 7 3 4 7 3
Enreg0 Enreg1 Enreg2 Enreg3
Pour le fichier «Nombre.dat » cité ci-dessus, le fichier « puissance.txt » aura le contenu suivant :
40
Révision Algo théorique BAC Info
Probleme n°8.
On se propose d’écrire un programme qui permet de corriger les fautes d’orthographe d’un fichier
texte «C:\bac2009\docum.txt » puis de l’afficher. Ce fichier renferme plusieurs lignes dont chacune
renferme une phrase ; sachant que chaque phrase est une suite des mots et deux mots successifs sont
séparés par un seul espace.
On consulte le fichier texte à corriger puis on vérifie l’existence de chacun de ses mots dans le
dictionnaire. Si un mot n’existe pas alors un menu sera affiché présentant les choix suivants :
1- Ignorer l’erreur : dans ce cas le mot sera conservé tel qu’il est
2- Ajouter au dictionnaire : dans ce cas le mot sera ajouté à la fin du dictionnaire.
3- Suggestion : le programme détermine et affiche une liste de 5 mots au maximum qui ont un
degré de ressemblance au mot à corriger > à 75%. si la liste de suggestion est vide alors le
programme affichera le message « aucune suggestion » sinon l’utilisateur donne l’indice du
mot à utiliser à partir de la liste des mots suggérés pour corriger le fichier texte.
On définit le degré de ressemblance entre deux mots par :
Avec :
Exemple 1: Exemple 2 :
Mot1=’Ecol’ Mot1=’abbcda’
Mot2=’Ecole’ Mot2=’acbdx’
NCCBP=4 NCCBP=2
NCCMP=0 NCCMP=2
L1=4 L1=6
L2=5 L2=5
DR=(4²+0)/(4*5)*100=16/20*100=80 % DR=(2²+2)/(6*5)*100=6/30*100=20 %
N.B. : On ne peut pas modifier une ligne dans un fichier texte ; on peut utiliser un fichier texte
intermédiaire.
Travail demandé :
41
Révision Algo théorique BAC Info
Probleme n°9.
Un serveur de noms (DNS) permet d’associer une adresse IP a chaque URL. Dans un réseau, on
associe une adresse IP unique à chaque machine. Mais si une adresse est facile à manipuler par un
ordinateur, elle est difficile à mémoriser par un humain. Le serveur de noms DNS permet de trouver
l’adresse IP a partir du nom (URL) de la machine (ou inversement). Pour résoudre un nom en adresse
IP, la méthode la plus simple consiste à mettre tous les noms des machines et leurs adresses
associent dans un fichier.
192.168.1.1 site1.org 1
127.0.0.1 localhost.localdomain 0
196.168.50.20 www.footsite1.com 20
· Le troisième champ désigne la distance (nombre de machines) entre le serveur et la machine cible.
Dans la suite, on suppose que le serveur de noms sauvegarde ces informations dans le fichier
"hosts.dat" enregistre sous le dossier "C:\config".
▪ Chercher l’adresse IP d’une ressource donnée : Si elle existe, on afficherait son adresse IP, sinon on
afficherait le message "la ressource est indisponible".
▪ Ajouter les informations d’une nouvelle machine : Si des nouvelles machines viennent se
connecter au réseau alors le serveur ajoute celles ci a la fin du fichier "hosts.dat".
▪ Supprimer les informations d’une machine : Si une machine se déconnecte du réseau, le serveur
supprimerait les informations relatives a cette machine.
On se propose d’écrire un programme qui offre un menu permettant d’exécuter l’une des opérations:
42
Révision Algo théorique BAC Info
Probleme n°10.
Un nombre binaire est un nombre formé uniquement par des chiffres binaires 0 et 1. Ce nombre peut
être signé ou non signé, nous allons adopter par la suite une notation sur 8 bits qui représente les
nombres binaires signés c’est-à-dire que ces nombres peuvent être positifs ou négatifs. Le bit 7 de
poids le plus fort (bit le plus à gauche) sert pour le signe :
➢ Bit 7 = 0 : nombre positif
➢ Bit 7 = 1 : nombre négatif
Exemple :
00010011 est un nombre positif, 10111001 est un nombre négatif
On désire faire des opérations de calcul sur des nombres binaires signés codés sur 8 bits.
➢ Addition de deux nombres binaires positifs (on ne traite pas les cas de débordement)
➢ Valeur absolue d’un nombre binaire (positif ou négatif)
Sachant que :
L’addition des nombres binaires se fait de la même façon qu’avec les nombres décimaux, c’est-à-dire
que l’addition se fait bit par bit en commençant par la droite et en appliquant la méthode des
retenues.
Exemple :
➢ Si le nombre est positif (Bit de signe = 0) alors la valeur absolue est égale à la valeur des 7bits.
Exemple : Valeur absolue de 00100011 est 100011
➢ Si le nombre est négatif (Bit de signe = 1) alors la valeur absolue est calculée de la manière
suivante en utilisant la méthode du complément à deux : On inverse tous les bits du nombre
(les 0 deviennent des 1, les 1 deviennent des 0) et on ajoute 1 au résultat (les dépassements
sont ignorés).
Exemple : Menu
Valeur absolue du nombre binaire 11111100 (-4 en décimal) 1. Addition
On inverse les bits on obtient : 00000011 2. Valeur absolue
On ajoute 1 on obtient le résultat 00000100 qui correspond à +4 3. Affichage
en décimal
4. Quitter
Les résultats des opérations sont stockés dans un fichier texte nommé
"resultat.txt" enregistré dans "d:\OPERATIONS". Chaque résultat est enregistré dans une ligne.
On propose d’écrire un programme qui offre un menu de 4 choix :
43
Révision Algo théorique BAC Info
Probleme n°11.
44