Section : 4ST
Matiére : Algorithme & Programmation
fe
Exercice N°1 :(2
Soit l'algorithme de la fonctionyiné
retourner
Sinon
SI_nmod2=0 ALORS
retourner (Inconnu (N div 2) +
SINON
retourner (Inconnu (N div 2) +"1")
FINS!
"o")
Finsi
Travail demandé =
1) Déterminer le type retourné de la fonction Inconnu.
2) Donner la trace d'exécution de la fonction Inconnu pour N=12:
1\4Exercice N°2 :(3 Pts)
Soit la suite U définie par ;
Uy =x; U,;=y,avecxety tiers positifs
Uy, =UnrtUn2, 9S! ‘ir
Uy = Wa mies
Travail demandé =
1. Calculer les termes U; et
2. Endéduire l'ordre de nce de cette suite.
3. fare regen \dule qui permet de calculer le terme U,,.
Exerci : (3 Pts)
En al é éaire, le premier élément non nul de chaque ligne dans une matrice
1 x=3 et y=2.
échel¥gne®, s’appelle le pivot. Et on appelle une matrice échelonnée si:
x e nombre de 0 au début de chaque ligne est strictement croissant quand on
& passe d'une ligne a la suivante, jusqu’a ce qu'il reste éventuellement plus que
N des 0.
* Tous les éléments d’une colonne sous un élément pivot sont nuls.
Exemple :
eee me os @5 130 -19| |8)5 13 0 19
0000 0(\7 43 Cet 2) jo OM 2
0000000 mse | joo om s
00060
0000000 oe oe o
ae
oH
Matrice non échelonnée ye
Travail demandé = = .
1. Ecrire un algorithme d’un module Pivot (A, i, m) qui permet de retourner
Vindice du premier élément non nul dans une ligne i, si la ligne ne contient
que des 0, |'indice retourné est le nombre de colonnes.
2. En utilisant le module Pivot(A,,m), écrire un algorithme d’un module
Echelon(A,n,m) qui permet de verifier si une matrice A de n lignes et m
colonnes est échelonnée ou non.Exercice N°4 :(4 Pts)
Un nombre $ de SMIH est un nombre composé dont ie des chiffres est laméme
que celle des chiffres de ses facteurs premier; nt les répétitions de facteurs.
Exemple: 636 est un nombre de SMITI orcs sont 2: 2° 3% 53.
La somme des chiffres de 636 est 15 pt c ‘dfs chiffres des facteurs est égale a 15
Nombre composé : Entier naturel! wha luit de deux nombres premiers ou plus
Travail demandé :
1. Ecrire une fonction hiffre (N : Entier) : Entier, qui permet de calculer
lasomme de lun entier N.
2. Ecrire upé. MITH (N = Entier) : chaine, qui permet de verifier si un
Entier she gvronre de SMITH.
NB ; cett Son retourne une chaine vide si N n’est pas SMITH sinon elle
composition en facteur premiers.
One 12 mod 2=0
n Ya traiter Ie condition Sinon)->N=1> "1"
(on va traiter le condition Sinon) >N=0> "1"
OF ion d’arrét)
& Lecture dune chaine Binaire
chee de cette fonction est :"1100"
aire Popération inverse le résultat en base 2 vers 10 est 12 car :
Ne QPS) TFO*2)AI=12
Ex2 : (les algorithmes récurrentes)
Un =Up1+Uy2, siUy pair
fo =x; U,=y,avec x et y deux entiers positifs
Uy = |Un-1 — Un-2| +2, sinon
1) Pour Calculer les termes U3 et U4 avec x=3 et y=2 dot
U0=3
Ul=2
U2=|U0+UI| +2 =|342}4+2=7
U3=|U2+U1| =742=9
‘Ud=|U3+U2| +2 = [94742218
2) Pour déterminer ordre de récurrence de la suite est de 2, car chaque terme de la
suite dépend des deux termes précédents.3) Fonction calcul_Suite(x,y,n :entier) zentier
Début
Si (n=0) Alors @
Retourner (x) A
Sinon Si (n=1) Alors
Retourner(y)
Sinon
Sifcal Ge mod 2-0 Alors
SNe Seta ptcoenieiici
ores 2
in Si
oOo Bini
<
Ex3 : (Algébre linéaire avec les Matrices)
net
oi 2 0 49 0 9 0-9) ls wo ae
oo ez 0%
12 a(t 32
o000 0a J
33 oo0a a
goo0000 60) o008 0
oo0c0 ee
1 +
Matrce non échelonnée |
Fonction Pivot(A :Mat,,mzentier) :entier
Début
Pour j de 0 m-1 Faire
Si(A[ij] <> O)Alors
Retourner( j)
Fin Si
Fin pour
Retourner(m)
Fin2)Fonction Echelon(A :Mat,n,m :entier) :Booléen
Début
Test Vial &
Pour ide 0 a n-t Faire @
PEPivot(A,im)
‘Si (P=m) Alors
Retourner(Test) @
Fin Si
Pour j ire
> m) ou (Pj<=P) Alors
‘Test Faux
Retourner (Test)
Ex : (Nombre de Smith ou Nombre Rigolo)
Un nombre $ de SMIH est un nombre composé dont la somme des chiffres est la méme
que celle des chiffres de ses facteurs premiers, incluant les répétitions de facteurs.
Exemple: 636 est un nombre de SMITH, ces facteurs sont 2 * 2 * 3 * 53.
La somme des chiffres de 636 est 15 et celle des chiffres des facteurs est égale 2 15
Nombre composé : Entier naturel qui est le produit de deux nombres premiers ou plus
1) Fonction SommeChiffre(N :entier) :entier
Début
seo
Ch€conveh(N)
Pour i de 0 a long(Ch)-1 Faire
Si(Chfi] dans [°0”..°9”] Alors
S€S+valeur(Ch{i])
Fin Si
Fin Pour
Retourner(S)
Fin2)Fonction Smith(N :entier) :Chaine &
Début &
Test €Vrai @
Pr€Fact_Premier(N) A
Si (SommeChifire(N) < >
Retourner(***)
Sinon.
Retqur
Fin St
<
So ion Fact_Premier(x :entier) :Chaine
& Or
Ns
Tantque (x <> 1)Faire
eC hiffre(Pr) )Alors
Si(x mod d= 0) Alors
‘ChE Chtconveh(d+" *
x€xdivd
Sinon
dedtt
Fin Si
Fin tq
Retourner( Sous_chaine(Ch,0,long(Ch)-1) )
FinDébut
Ouvrir(“*ListeSmith.txt”,G,"w7Z @
Pour i de D aF Faire A
Si( long( Smith(i) )>0delors
Ch€ com seus
raya
mass
Fin Po AS
pee
KX s algorithmes d’arithmétiques (convertion entre les Bases)
suppose qu’on a un fichier binaire, intitulé «nombre.bat », déja saisie par n
NO scenes Chaque enregistrement est définie par:
+ unnombre x, de type chaine,
* et la base b dans laquelle x est définie.
On veut convertir chaque nombre du fichier « nombre.bat » a la base 10, et de stocker
le résultat dans un fichier texte, sous la forme : (x)b=(nb)10.
3)Procédure Générer(@G :Fichier_texte,D,F 2
Procédure Coder(@F :Fiche,@G :Fichier_texte)
Début
Ouvrir(“nombre.dat”,F,"rb”)
Ouvrir(result.tst”,G,"w”)
‘Tantque (Non(Fin_Fichier(F)) )Faire
Lire(Ge)
Res€"("teaxt”)"+conveh(e.b)+”="+conveh( Cony_base_10(eaye.b) +710"
Eerire_nl(G,Res)
FinTq
Fermer(F)
Fermer(G)
FinFonction Cony_base_10(x :chaine,b :entier) :entier
Début
Dec€0 &
Pour i de 0 a long(x)-1 Faire @
Si (estnum(x[i]) )Alors.
Dec€Dec*b-+valeur([
Sinon
Deena
Fin Si iN
Fin Pour *S
Retourne]
Fin <
stage+Matrice
iple : Si le texte & coder ="La volonté trouve des moyens”.
La longueur de ce texte est égale 4 28. On Tui ajoute 2 espaces pour que sa
Jongueur devienne multiple de 3_ La chaine devient “La volonté trouve des moyens ", Sa
Jongueur devient donc 30. En appliquant les étapes ci-dessus évoquées, on obtient =
t]=
v T
° t
e|_ ie
rlefe
Te Le texte crypté devient donc : “Lvoérvd ysaon oeeme Ittu son”,
atet= En effet :1e mot 1 est : “Lvoérvd ys"
ms le mot 2 est : “aon oeeme”
Fe mot 3 est: Ittuson’”
viele
$Debut
Ouvrir(’FileL.txt”.B"r") & i
‘Ouvrir(*File2.txt”,G,"w") @
Pour ide 14k Faire
Lire(R,Ch)
‘Tamtque(long(Ch)mod aire
che w
+
Procédure Coder(@F :Fichier_Texte@G mae sentier)
Fin tq
cpa
CS
»_nl(G,Res)
& fermer(F)
N Fermer(G)
Fin
Procédure Codagel(M :Mai,ch :chaine,n :entier)
Debut
keo
Pouride 0a n-1 Faire
Pour j de 0.42 Faire
MUi,i]@ch[k]
kek
Fin Pour
‘Fin Pour
FinFonction Codage(M :Mat,n :entier) :Chaine
Début
———— Kor
Pour j de 0 4 n-1 Faire
ResRest MU] G
nea we
a7).
&
Re)
nw