Vous êtes sur la page 1sur 7

Département de Mathématique

&
Informatique

Module : ALGORITHME II

SMI/S3
2022/2023
Correction TD2-part1

Pr. Chemlal Yman

Exercice 0:
Version 1 :

Procédure saisi_tableau (N : entier, S ; tab : tableau des entiers)


Var :
N : entier
Debut
Pour i0 à N
Lire (tab[i])
FinPour
Fin
Version 2 :

Procédure saisi_tableau ()
Var :
tab [N]: entier
N : entier
Debut
Lire (N)
Pour i0 à N
Lire (tab[i])
FinPour
Fin

Procédure affiche_tableau (tab : tableau des entiers)


Var :
N : entier
Debut
N longueur(tab)
Redim (tab)
Debut
Pour i0 à N
Ecrire (tab[i])
FinPour
Fin

1
Algorithme exercice0
Var :
n : entier
t[n] : entiers
Debut
Lire (n)
Redim t[n]
saisi_tableau (n,t)
affiche_tableau(t)
Fin

Exercice 1
Procédure valeur_positive_negative (m: tableau des entiers, S; P :
entier, S; N : entier)
Var :
i,l : entier
Debut
i0
TANTQUE (i<l) FAIRE
SI m[i] < 0 ALORS
NN +1
Sinon Si T[i] > 0
PP +1
FINSI
ii + 1
FINTANTQUE
Fin
----------------------------------------------------------

Algorithme exercice1
Var :
Pos, Neg : entier
n : entier
t[n] : entiers
Debut
Lire (n)
Redim t[n]
saisi_tableau (n,t)
affiche_tableau(t)
valeur_positive_negative (t, Pos, Neg )
Ecrire (« le nombre des éléments positifs est : », Pos, « le nombre
des éléments négatifs est : », Neg)
Fin
complexité = O(n)

Exercice 2 :
FONCTION max_tableau(T: tableau des entiers): entier
VAR
i, N :ENTIER
Maximum :entier
DEBUT
Maximum T[0]
Nlongueur (T)
POUR i DE 1 A N-1 FAIRE

2
SI (T[i] > Maximum) ALORS
Maximum  T[i]
FINSI
FINPOUR
Retourne (Maximum)
FIN
-------------------------------------------------------------------

FONCTION min_tableau(T: tableau des entiers): entier


VAR i, N :entier
Minimum :entier
DEBUT
Nlongueur (T)
Minimum T[0]
POUR i DE 1 A N-1 FAIRE
SI (T[i] < Minimum) ALORS
Minimum  T[i]
FINSI
FINPOUR
Retourner(Minimum)
FIN
Procèdure min_max_tableau(T: tableau des entiers, S ; Minimum : entier, S ;
Maximum : entier, S ; Indice_min : entier, S ; Indice_max : entier)
VAR
I,N :ENTIER
DEBUT
Minimum T[0]
Maximum T[0]
POUR i DE 1 A N-1 FAIRE
SI (T[i] < Minimum) ALORS
Minimum  T[i]
Indice_mini
FINSI
FINPOUR
POUR i DE 1 A N-1 FAIRE
SI (T[i] > Maximum) ALORS
Maximum  T[i]
Indice_min i
FINSI
FINPOUR
FIN

Algorithme exercice2
Var :
Min, Max, Indice_minimum, Indice_maximum: entier
n : entier
t[n] : entiers
Debut
Lire (n)
Redim t[n]
saisi_tableau (n, t)
affiche_tableau(t)
min_max_tableau(t, Min, Max, Indice_minimum, Indice_maximum)
Ecrire (« le minimum des éléments du tableau est : », Min, « son indice est : »,
Indice_minimum)

3
Ecrire (« le maximum des éléments du tableau est : », Max, « son indice est : »,
Indice_maximum)
Fin
complexité = O(n)

Exercice 3 :

procédure element_plus_proche (T: tableau des entiers,


element : reel, S ; Element_proche :
reel, S ; Indice_proche : entier)
var :
i, n : entier
def : reel
DEBUT
n longueur (T)
Def abs( T[0]-element)
Element_proche T[0]
Indice_proche  0
POUR i DE 1 A N-1 FAIRE
SI Def > abs(T[i] - element) ALORS
Def abs(T[i] - element)
Element_proche T[i]
Indice_proche  i
FINSI
FINPOUR
FIN

Algorithme exercice3
Var :
t [n] : entier
element_saisi, element_plus_proche, val_def :reel
n, i , indice_element_proche :entier

DEBUT
ECRIRE (" Entrer le nombre d'élément du tableau")
LIRE(n)
Redim t[n]
saisi_tableau (n, t)
affiche_tableau(t)
ECRIRE (" Entrer un élément")
LIRE (element_saisi)
element_plus_proche (t, element_saisi, element_plus_proche,
indice_element_proche)

ECRIRE( "L'élément le plus proche est :", element_plus_proche," son indice est ",
indice_element_proche)
FIN

4
Exercice 4
Procédure saisi_caracteres (N : entier, S ; tab : tableau de caracters)
Debut
Pour i0 à N
Lire (tab[i])
FinPour
Fin

Procédure affiche_tableau_caracteres(Tab: tableau des caracteres)

Var :
n longueur(Tab)
Debut
Pour i0 à n-1
Ecrire (Tab[i])
FinPour
Fin

version 1 :

Procédure plus_longue_suite_caracteres(m : tableau de caracteres)


Var :
i, n : entier
max, suite : caractère
Début
n longueur (m)
maxm[0]
compteurMax1
suitem[0]
compteurSuite1
Pour i1 à n-1 faire
Si (m[i]= m[i-1]) alors
compteurSuitecompteurSuite+1
Sinon
si compteurSuite > compteurMax
max suite
compteurMax compteurSuite
FinSi

suite m[i]
compteurSuite1
FinSi
FinPour
Ecrire (« la plus longue suite composée de caractère », max, « et de longueur »,
compteurMax)
Fin
---------------------------------------------

5
Version 2

Procédure plus_longue_suite_caracteres(m : tableau de caracteres)


Var :
i : entier
max, suite : chaine de caractère
maxm[0]
suitem[0]
Pour i1 à longueur(m)-1 faire
Si m[i]= m[i-1] alors
| suite suite+m[i] // concaténation
Sinon
| Si longueur(suite)> longueur(max) alors
| | | max suite
| | |FinSi
| suite m[i]
FinSi
FinPour
Ecrire (max, longueur(max))
Fin

0 1 2 3 4 5 6 7 8 9
a a b c e f e e e

Exercice 5 :
Version 1

Procédure inverseTableau (T1 : tableau des entiers, S ; T2 : tableau des entiers)


Variables:
N, i: entier
Début
Nlongueur (T1)
POUR i de 0 à N-1 FAIRE
T2[i] T1[N-1-i]

FINPOUR

Fin

Version 2 :

ALGORITHME inverseTab
VAR
T [N] : entier
i, N,Milieu : ENTIER
DEBUT

6
ECRIRE("Entrer le nombre N:")
LIRE(N)
SAISIR(T,N)
Milieu  N/ 2
POUR i DE 0 A Milieu-1 FAIRE
Echanger (T,i, N-1-i)
FINPOUR
FIN
PROCEDURE Echanger (VAR T: TABL; i,j :ENTIER)
VAR
aux :ENTIER
DEBUT
Aux T[i]
T[i] T[j]
T[j] aux
FIN
Exercice 6 :
Procédure Decalage_gauche (T[N]: Tableau de caractères)
VAR
tmp: caractére
i: entier
Debut
tmp <- T[0]
Pour i <- 0 a N-2 Faire
T[i] <- T[i+1]
FinPour
T[N-1] <- tmp
Fin

Exercice 7

Transposé :

Vous aimerez peut-être aussi