Vous êtes sur la page 1sur 5

© Enseignant : BEN ISSA Maher

Tableaux (1D et 2D) et Tri

 Les Tableaux
Le type tableau, c’est quoi ?
Un tableau est une structure de donnée pour ranger des objets de même type
désignés par un identificateur unique.
Le tableau à une dimension :
Exemples :
T: 5 40 -13 11 0 T: -1,5 6.7 14.33 11.9 12.25
0 1 2 3 4 0 1 2 3 4
Tableau de 5 entiers Tableau de 5 Réels

T: "Z" "@" "b" "#" "h" T : "ali" "K@~2#" "MaS12" "$ChL#" "E"
0 1 2 3 4 0 1 2 3 4
Tableau de 5 Caractères Tableau de 5 chaînes de caractères
Déclaration :
 Syntaxe :
T.D.N.T (Tableau de Déclaration de Nouveaux Types)
TYPE
Nom_type = Tableau de Nmax Type_Eléments
T.D.O
Objet Type
Nom_tab Nom_type
 Exemples :
T.D.N.T
TYPE
Tab1 = Tableau de 100 Entiers
Tab2 = Tableau de 20 Réels
Vect = Tableau de 50 Chaînes
T.D.O
Objet Type
T Tab1
A, B Tab2
Nom Vect
Manipulation des tableaux :
 Accès à un élément du tableau A ← T[i]
 Modification d’un élément T[i] ← a
 Lecture d’un élément Lire(T[i])
 Affichage d’un élément Écrire(T[i])

Informatique 3ème Scientifiques


© Enseignant : BEN ISSA Maher

Objectifs :
Déclaration d’un tableau à une et deux dimensions
Accès aux éléments d’un tableau
Affichage et manipulation d’éléments d’un tableau
Tri d’un tableau
Application 1 :
La « multiplication Russe » est une méthode particulière permettant la
multiplication de deux entiers A et B en utilisant seulement la multiplication par 2, la
division par 2 et l’addition.
Exemple : Pour A =17 et B = 19, le produit de A par B se fait comme suit :
A B
17 19
Le premier nombre est divisé par 2 et le deuxième est multiplié par 2 : on aura :
8 38
Le processus se répète jusqu’à avoir dans la première colonne 1 :
17 19
8 38
4 76
2 152
1 304
Le résultat est la somme des nombres de la deuxième colonne qui sont en face des
nombres impairs de la première colonne (donc les nombres de la deuxième colonne qui
sont en face des nombres pairs de la première colonne seront ignorés).
17 19
8 38 ignoré
4 76 ignoré
2 152 ignoré
1 304
17 * 19 = 19 + 304 = 323
On veut écrire un programme qui lit deux entiers positifs non nuls et inférieur à 100,
calcule et affiche le produit de deux entiers par la méthode Russe.
Remarque : On doit définir deux tableaux D et M :
 Dans le tableau D, on va ranger l’entier A ainsi que tous les résultats des divisions
successives de A par 2.
 Dans le tableau M, on va ranger l’entier B ainsi que tous les résultats des
multiplications successives de B par 2.
Questions :
1- Développer une solution algorithmique modulaire qui permet de saisir deux
nombres positifs non nuls et inférieur à 100 calcule et affiche le produit de
deux entiers par la méthode Russe.
2- Implémenter la solution en utilisant le langage Python.

Informatique 3ème Scientifiques


© Enseignant : BEN ISSA Maher

Algorithme du Programme principal


Algorithme Multiplication_Russe T.D.O.Globaux
Début Objet Type
a  Saisie ( ) a, b Entier
b  Saisie ( ) Saisie Fonction
Ecrire (a, " * ", b," = ", russe(a, b)) russe Fonction
Fin
Algorithme de la fonction Saisie Deuxième solution :
Fonction Saisie ( ) : Entier Fonction Saisie ( ) : Entier
Début Début
Répéter Tantque (Vrai) faire
Ecrire (‘’ Taper un entier : ‘’) Ecrire (‘’ Taper un entier : ‘’)
Lire (x) Lire (x)
Jusqu’à ((x > 0) et (x < 100)) Si (x > 0) et (x < 100) alors
Fin Quitter
T.D.O.Locaux Fin Tantque
Objet Type Fin
x Entier

Algorithme de la fonction russe


Fonction russe (a:entier, b :entier) : entier
Début
m[0] a
d[0] b T.D.N.T
n0 Type
Tantque (d[n] != 1 ) Faire Tab = Tableau de 50 entiers
d[n+1] d[n] DIV 2
T.D.O.Locaux
m[n+1] m[n] *2
Objet Type
nn+1
n, i, p Entier
Fin Tantque
m Tab
p0
d Tab
Pour i de 0 à n+1 faire
Si (d[i] mod 2 = 1) alors
p  p + m[i]
FinSi
FinPour
Retourner p
Fin

Informatique 3ème Scientifiques


© Enseignant : BEN ISSA Maher

Solution en langage pyton

#-----------------Fonction saisie---------------------------------------------
def saisie ( ):
while (True) :
n = int(input("Taper un entier positif non nul: "))
if ((n>0) and (n<100)) :
break
return n

#------------------#Fonction russe--------------------------------------------

def russe (a,b) :


d=[]
m=[]
n = 0
d.append(a)
m.append(b)

while (d[n] != 1) :
d.insert(n+1,d[n]//2)
m.insert(n+1,m[n]*2)
n+= 1
p=0
for i in range(n+1) :
if (d[i]%2==1) :
p = p + m[i]
return p

#---------------- programme principal ----------------------------------------

a = saisie()
b = saisie()
print(a,' * ',b,' = ',russe(a,b))

#----------------------Output-------------------------------------------------

Taper un entier positif non nul: 17


Taper un entier positif non nul: 18
D= [17, 8, 4, 2, 1]
M= [18, 36, 72, 144, 288]
17 * 18 = 306

Informatique 3ème Scientifiques


© Enseignant : BEN ISSA Maher

Les Tableaux
Le type tableau, c’est quoi ?
Un tableau est une structure de donnée pour ranger des …………………… de même
………………… désignés par un …………………………………… unique.
Le tableau à une dimension :
Exemples :
T: 5 40 -13 11 0 T: -1,5 6.7 14.33 11.9 12.25
0 1 2 3 4 0 1 2 3 4
Tableau de ……………………………… Tableau de ………………………………

T: "Z" "@" "b" "#" "h" T : "ali" "K@~2#" "MaS12" "$ChL#" "E"
0 1 2 3 4 0 1 2 3 4
Tableau de ……………………………… Tableau de ………………………………
Déclaration :
 Syntaxe :
T.D.N.T (……………………………………………………………………………………)
TYPE
Nom_type = Tableau de …………………… Type_Eléments
T.D.O
Objet Type
Nom_tab ……………………………
 Exemples :
T.D.N.T
TYPE
Tab1 = Tableau de 100 Entiers
Tab2 = Tableau de 20 Réels
Vect = Tableau de 50 Chaînes
T.D.O
Objet Type
T Tab1
A, B Tab2
Nom Vect
Manipulation des tableaux :
 Accès à un élément du tableau ………………………………
 Modification d’un élément ………………………………
 Lecture d’un élément ………………………………
 Affichage d’un élément ………………………………

Informatique 3ème Scientifiques