1 Conversion de base
1.1 Binaire vers dcimale
125
980
2 Commandes UNIX
Imaginons que dans le rperoire /tmp/test, on ait les fichiers suivants :
/tmp/test$ ls
a11.txt a1b.doc f11.txt f1.txt fa.txt b.txt
a1a.doc a1c.doc f1.doc f2.txt fb.txt
1. ls *txt
2. ls a*
3. ls ?[1-9]*
4. ls [af][1-9]*doc
1
3 Expression
3.1 Donner le type et la valeur des expressions suivantes :
2 + 3 * 4 : 14 entier
2.0 + 3 * 4 : 14 rel
vrai et (faux ou vrai) : vrai boolen
(2 < 3) et (4 > 5) : faux boolen
abc + def : abcdef chane de caractres
def + abc : defabc chane de caractres
2
Les variables x,y et z sont identiques
(x=y) et (y=z) A
Les valeurs de x,y et z sont identiques mais diffrentes de celle de t
(x=y) et (y=z) et (x6=t)
Les valeurs de x est strictement comprise entre les valeurs de y et t
(x>t et x<y) ou (x>y et x<t)
Les valeurs de x est strictement comprise entre les valeurs de y et t et la valeur de y est infreiure
celle de t
(x>y et x<t)
Parmi les valeurs de x,y et z, deux valeurs au moins sont identiques
(x=y) ou (y=z) ou (x=z) B
Parmi les valeurs de x,y et z, deux valeurs et seulement deux sont identiques
B et non A
Parmi les valeurs de x,y et z, deux valeurs au plus sont identiques
non A
4.2 changer
Ecrire un algorithme qui permet dchanger les valeurs de deux variables entires.
Nom: echanger
Role: permet de permutter les valeurs de 2 variables entires
Entre: a,b : Entier
Sortie: a,b : Entier
Dclaration: temp : Entier
dbut
temp a
ab
b temp
fin
3
4.3 Moyenne de trois notes
crire un algorithme qui partir de trois notes dun tudiant et de trois coefficients calcule la
moyenne.
Nom: calculerMoyenne
Role: calcule la moyenne de 3 notes avec coefficient (<1 et somme=1)
Entre: note1,note2,note3,coef1,coef2,coef3 : Rel
Sortie: moyenne : Entier
Dclaration:
dbut
moyenne note1*coef1+note2*coef2+note3*coef3
fin
4
Nom: estDivisble
Role: permet de savoir si un entier est divisble par un autre entier
Entre: diviseur, dividende : Entier
Sortie: estDivible : Boolen
Dclaration:
dbut
estDivisible diviseur div dividende=0
fin
Nom: estUneDateValide
Role: permet de savoir si une date donne a pu (ou pourra) exist
Entre: jour, mois, annee : Entier
Sortie: estValide : Boolen
Dclaration: anneeBissextile,moisA31Jours, moisA30Jours, moisDeFevrier : Boolen
dbut
anneeBissextile (estDivisible(annee,4) et non estDivisible(annee,100)) ou estDivisble(annee,400)
moisA31Jours (mois=1 ou mois=3 ou mois=5 ou mois=7 ou mois=8 ou mois=10 ou mois=12) et (jour1
et jour 31)
moisA30Jours (mois=4 ou mois=6 ou mois=9 ou mois=11) et (jour1 et jour 30)
moisDeFevrier mois=2 et jour1 et ((jour29 et anneeBissextile) ou (jour28 et non anneeBissextile))
estValide moisA31Jours ou moisA30Jours ou moisDeFevrier
fin
5 Schma de choix
5.1 Tri de trois entiers
crire un algorithme qui prend en entre trois entiers et qui les retourne tris par ordre croissant.
Nom: trier
Role: permet de trier les valeurs de 3 variables entires
Entre: a,b,c : Entier
Sortie: a,b,c : Entier
Dclaration: temp : Entier
dbut
si a>b alors
echanger(a,b)
finsi
si b>c alors
echanger(b,c)
finsi
si a>b alors
echanger(a,b)
finsi
fin
5
Sortie: heure,minute,seconde : Entier
Dclaration: tempsEnSec : Entier
dbut
tempEnSec heure*3600+minute*60+seconde
tempsEnSec tempsEnSec+1
si tempsEnSec 6= 24*3600 alors
heure tempEnSec div 3600
tempsEnSec tempsEnSec mod 3600
minute tempEnSec div 60
seconde tempEnSec mod 60
sinon
heure 0
minute 0
seconde 0
finsi
fin
6
6 Schma itratif
6.1 Partie entire infrieure de la racine carre dun Entier
crire un algorithme qui retourne la partie entire infrieure de la racine carre dun entier donn
n.
Nom: calculerRacineEntiere
Role: permet de calculer la racine entiere dun naturel
Entre: n : Naturel
Sortie: racine : Entier
Dclaration:
dbut
racine 1
tant que racine*racinen faire
racine racine+1
fintantque
fin
6.2 La multiplication
crire un algorithme effectue la multiplication de deux entiers positifs (nots x et y) donns en
utilisant uniquement laddition entire.
Nom: multiplier
Role: permet de calculer x*y avec uniquement loprateur daddition
Entre: x,y : Naturel
Sortie: produit : Entier
Dclaration: i : Naturel
dbut
produit 0
pour i 1 x faire
produit produit+y
finpour
fin
7
6.4 X puissance n
crire un algorithme qui partir dun rel, appel x et dune valeur entire positive appele n,
retourne x la puissance n.
Nom: xPuissanceN
Role: permet de calculer xn
Entre: n : Naturel ; x : Rel
Sortie: p : Rel
Dclaration: i : Naturel
dbut
p1
pour i 1 n faire
p p*x
finpour
fin
8
dbut
reste dividende
quotien
tant que reste diviseur faire
reste reste-diviseur
quotient quotient+1
fintantque
fin
9
finsi
m (a+b)/2
fintantque
fin
7 Procdures / Fonctions
Attention avant dexpliciter les fonctions et procdures demander, donner une analyse descendante
de votre problme.
10
somme 0
pour diviseur 1 n div 2 faire
si nombre mod diviseur = 0 alors
somme somme+diviseur
finsi
finpour
si somme=n alors
parfait Vrai
sinon
parfait Faux
finsi
fin
11
dbut
crire(obtenirRepresentationNAire(n,8))
fin
procdure afficherRepresentationHexadecimale ( E n : Naturel )
dbut
crire(obtenirRepresentationNAire(n,16))
fin
7.3 Dveloppement
1. crire un procdure qui affiche le dveloppement de (a + b) n pour n donn.
2. crire un procdure qui affiche le dveloppement de (a b) n pour n donn.
fonction obtenirMonome (inconnue : Chane de caractres, puissanceDeLInconnue : Naturel) :
Chane de caractres
Dclaration resultat : Chane de caractres
dbut
cas o puissanceDeLInconnue vaut
0resultat "" 1 resultat inconnue resultat inconnue+" "+obtenirRepresentation-
NAire(n,10)
fincas
retourner resultat
fin
fonction obtenirMonomeAB (coef, puissanceDeA, puissanceDeB : Naturel) : Chane de caractres
Dclaration temp : Chane de caractres
dbut
si coef=1 alors
temp ""
sinon
temp obtenirRepresentationNAire(coef,10)
finsi
retourner temp+obtenirMonome("a",puissanceDeA)+obtenirMonome("b",puissanceDeB)
fin
fonction combinaison (n,p : Naturel) : Naturel
dbut
retourner fact(n)/(fact(p)*fact(n-p))
fin
fonction obtenirPlusOuMoins (esposantB : Naturel, avecSigneMoins : Boolen) : Chane de carac-
tres
dbut
si exposantB mod 2 6= 0 et avecSigneMoins alors
retourner "-"
sinon
retourner "+"
finsi
fin
procdure afficherAPlusOuMoinsBExposantN ( E n : Naturel, avecSigneMoins : Boolen )
12
Dclaration i : Naturel, chaine1,chaine2 : Chane de caractres, coef : Naturel
dbut
chaine1 ""
chaine2 ""
pour i 0 n div 2 faire
coef combinaison(n,n-i)
chaine1 chaine1+obtenirPlusOuMoins(i,avecSigneMoins)+obtenirMonomeAB(coef,n-i,j)
chaine2 obtenirPlusOuMoins(n-i,avecSigneMoins)+obtenirMonomeAB(coef,i,n-i)+chaine2
finpour
si n mod 2=0 alors
crire(chaine1+chaine2)
sinon
coef combinaison(n,n-i)
crire(chaine1+obtenirPlusOuMoins(n div 2,avecSigneMoins)+obtenirMonomeAB(coef,n div
2,n div 2)+chaine2)
finsi
fin
procdure afficherAPlusBExposantN ( E n : Naturel )
dbut
afficherAPlusOuMoinsBExposantN(n,Faux)
fin
procdure afficherAPlusBExposantN ( E n : Naturel )
dbut
afficherAPlusOuMoinsBExposantN(n,Vrai)
fin
7.4 Dessin
1. crire une procdure qui affiche laide du signe + un carr de ct n.
procdure afficherCarree ( E n : Naturel )
Dclaration ligne,colonne : Naturel
dbut
pour ligne 1 n faire
pour colonne 1 n faire
si ligne=1 ou ligne=n ou colonne=1 ou colonne=n alors
crire("+")
sinon
crire("-")
finsi
finpour
retournerALaLigne()
finpour
fin
2. crire une procdure qui affiche laide du signe + un triangle de hauteur n.
procdure afficherTriangle ( E n : Naturel )
13
Dclaration ligne,colonne : Naturel
dbut
pour ligne 1 n faire
pour colonne 1 2*n-1 faire
si ligne=n ou (colonne=n-ligne+1 ou colonne=n+ligne-1) alors
crire("+")
sinon
crire("-")
finsi
finpour
retournerALaLigne()
finpour
fin
3. crire une procdure qui affiche laide du signe + un losange de cot n.
procdure afficherLosange ( E n : Naturel )
Dclaration ligne,colonne,colonneGauche,colonneDroite : Naturel
dbut
colonneGauche n
colonneDroite n
pour ligne 1 2*n-1 faire
pour colonne 1 2*n-1 faire
si colonne=colonneGauche ou colonne=colonneDroite alors
crire("+")
sinon
crire("-")
finsi
finpour
retournerALaLigne()
si ligne n alors
colonneGauche colonneGauche-1
colonneDroite colonneDroite+1
sinon
colonneGauche colonneGauche+1
colonneDroite colonneDroite-1
finsi
finpour
fin
14
1. crire une fonction qui compte le nombre doccurence dun caractre
2. crire une fonction qui permet de savoir si une chane de caracres est un palindrome
3. crire une fonction qui permet de savoir si une chane de caractres reprsente un nombre dans
une base donne
4. crire une fonction qui permet de convertir la reprsentation dun nombre, donn sous forme
de chane de caractres dans une base de dpart, dans une base darrive.
fonction chiffreEnNombre (chiffre : Caractre) : Naturel
dbut
si chiffre0 et chiffre9 alors
retourner decodeASCII(chiffre)-decodeASCII(0)
sinon
retourner decodeASCII(chiffre)-decodeASCII(A)+10
finsi
fin
fonction nombreEnChiffre (nb : Naturel) : Caractre
dbut
si nb0 et nb9 alors
retourner encodeASCII(nb+decodeASCII(0))
sinon
retourner encodeASCII(chiffre-10+decodeASCII(A))
finsi
fin
fonction decoder (nb : Chane de caractres, base : Naturel) : Naturel
Dclaration resultat : Naturel
puissance : Naturel
i : Naturel
dbut
resultat 0
puissance 1
pour i longueurChaine(nb) 1 pas de -1 faire
resultat chiffreEnNombre(nIemeCaractere(nb,i))*puissance+resultat
puissance puissance*base
finpour
retourner resultat
fin
fonction encoder (nb : Naturel, base : Naturel) : Chane de caractres
Dclaration resultat : Chane de caractres
puissance : Naturel
i : Naturel
dbut
resultat ""
tant que nbbase faire
resultat nombreEnChiffre(nb mod base)+resultat
nb nb div base
fintantque
15
si nb>0 alors
resultat nombreEnChiffre(nb)+resultat
finsi
retourner resultat
fin
fonction convertirNombre (nbDepart : Chane de caractres, baseDepart : Naturel, baseAr-
rivee : Naturel) : Chane de caractres
dbut
retourner encoder(decoder(nbDepart,baseDepart),baseArrivee)
fin
16