Fiche 2 Structures de données NSI Gestions des tableaux Fiche 2 Exercice 1 : 1.

Fiche 2 Structures de données NSI Gestions des tableaux Fiche 2 Exercice 1 : 1. Écrire la fonction somme, qui prend en argument un tableau d'entiers, et renvoie la somme des valeurs du tableau. 2. Écrire la fonction moyenne qui renvoie la moyenne des valeurs d'un tableau de nombres. 3. Écrire la fonction min_max qui renvoie le plus grand et le plus petit élément d'un tableau sous forme d'un couple. 4. Écrire la fonction somme_positifs, qui prend en argument un tableau d'entiers relatifs, et renvoie la somme des valeurs positives du tableau. 5. Écrire la fonction somme_paire, qui prend en argument un tableau d'entiers , et renvoie la somme des valeurs paires du tableau. Correction # Exercice 1 # Question 1 def somme( ma_liste ) : s = 0 for i in ma_liste : s = s + i return s #Question 2 def moyenne( ma_liste ) : """ Retourne la moyenne de la l i s t e """ s = somme( ma_liste ) t a i l l e = len ( ma_liste ) return s/ t a i l l e def moyenne_2( ma_liste ) : return (somme( ma_liste ) / len ( ma_liste )) #Question 3 def min_max( ma_liste ) : mini =ma_liste [ 0 ] maxi =ma_liste [ 0 ] for i in ma_liste : i f i < mini : mini = i i f i > maxi : maxi = i return ( mini , maxi ) sebjaumaths.free.fr 1/5 Lycée Jean Rostand Fiche 2 Structures de données NSI #Question 4 : def somme_positifs ( tab ) : s = 0 for i in tab : i f i >=0 : s = s + i return s #Question 5 : def somme_paires ( tab ) : s = 0 for i in tab : i f i%2 == 0 : s = s + i return s Exercice 2 : 1. Écrire une fonction triple qui prend en argument un tableau de 3 entiers trié dans l'ordre croissant et un entiers, et renvoie le tableau des 3 valeurs les plus grandes stockées dans le tableau. Exemple : >>> t r i p l e ( [ 8 , 1 0 , 1 2 ] , 7 ) [8 , 10 , 12] >>> t r i p l e ( [ 8 , 1 0 , 1 2 ] , 9 ) [9 , 10 , 12] >>> t r i p l e ([8 ,10 ,12] ,11) [10 , 11 , 12] >>> t r i p l e ([8 ,10 ,12] ,15) [10 , 12 , 15] 2. Écrire la fonction triple_max qui renvoie le tableau des trois plus grande valeurs d'un tableau de nombres. ( rangés dans l'ordre croissant ) Correction #Question 1 def t r i p l e ( tab , n) : """ tab est trie , n est un entier , renvoie l e s 3 elements maximum """ i f n < tab [ 0 ] : return tab e l i f n < tab [ 1 ] : tab [ 0 ] = n return tab e l i f n < tab [ 2 ] : tab [0]= tab [ 1 ] tab [ 1 ] = n sebjaumaths.free.fr 2/5 Lycée Jean Rostand Fiche 2 Structures de données NSI return tab else : tab [0]= tab [ 1 ] # tab [ 1 : ] + [ n ] tab [ 1 ] = tab [ 2 ] tab [ 2 ] = n return tab def triage_3 ( ma_liste ) : i f ma_liste [ 0 ] > ma_liste [ 1 ] : i f ma_liste [ 0 ] > ma_liste [ 2 ] : i f ma_liste [ 2 ] > ma_liste [ 1 ] : return [ ma_liste [ 1 ] , ma_liste [ 2 ] , ma_liste [ 0 ] ] else : return [ ma_liste [ 2 ] , ma_liste [ 1 ] , ma_liste [ 0 ] ] else : return [ ma_liste [ 1 ] , ma_liste [ 0 ] , ma_liste [ 2 ] ] else : i f ma_liste [ 1 ] > ma_liste [ 2 ] : i f ma_liste [ 2 ] > ma_liste [ 0 ] : return [ ma_liste [ 0 ] , ma_liste [ 2 ] , ma_liste [ 1 ] ] else : return [ ma_liste [ 2 ] , ma_liste [ 0 ] , ma_liste [ 1 ] ] else : return ma_liste def triple_max ( ma_liste ) : tab = triage_3 ( ma_liste [ : 3 ] ) for i in ma_liste [ 3 : ] : tab = t r i p l e ( tab , i ) return tab Exercice 3 : On considère le tableau composé uniquement des valeurs 0, 1, 2 et 3. Écrire la compte, qui prend en argument un tel tableau, et renvoie un autre tableau de taille 4, contenant en position i le nombre de i du tableau argument. Correction #Exercice 3 def compte ( ma_liste ) : r e s u l t a t = [ 0 , 0 ,0 ,0 ] # [ 0 for i in range (4)] for i in ma_liste : r e s u l t a t [ i ] = r e s u l t a t [ i ] +1 return r e s u l t a t Exercice 4 : On considère le tableau suivant : t =[[ i for i in range ( 7 ) ] for j in range ( 1 0 ) ] 1. Déterminer les valeurs suivantes ( on véri a ensuite sur l'ordinateur ) : sebjaumaths.free.fr 3/5 Lycée Jean Rostand Fiche 2 Structures de données NSI >>> len ( t ) >>> len ( t [ 0 ] ) >>> t [ 2 ] [ 6 ] >>> t [ 1 ] [ 8 ] >>> t [ 4 ] [ 2 ] = 9 >>> t [ 2 ] [ 5 ] == 5 2. Écrire la procédure que permet de changer les valeurs de tableau t en suivant les règles suivantes : ˆ t[i][j] devient 0 si i = j. ˆ t[i][j] devient -1 si i < j. ˆ t[i][j] devient 1 si i > j. Correction t = [ [ k for k in range ( 7 ) ] for j in range ( 1 0 ) ] for l i g n e in range (10) : for colonne in range (7) : i f l i g n e == colonne : t [ l i g n e ] [ colonne ] =0 i f l i g n e < colonne : t [ l i g n e ] [ colonne ] =−1 i f l i g n e > colonne : t [ l i g n e ] [ colonne ] =1 for i in t : print ( i ) Exercice 5 : On considère la matrice dé nie par ( en utilisant la bibliothèque random : carte = [ [ randint (0 ,1) for i in range (100)] for i in range (100)] 1. Écrire la fonction test, qui prend en argument deux entiers i et j et un tableau t, et renvoie le booléen indiquant si la case t[i][j] ainsi que les huit cases qui l'entoure sont tous des 1. ( on veillera à ne pas travailler sur le "bord" de la matrice...) 2. Écrire une procédure qui compte le nombre de case véri ant la propriété précédente. Correction # exercice 5 from random import randint carte= [ [ randint (0 ,1) for i in range (100)] for i in range (100)] sebjaumaths.free.fr 4/5 Lycée Jean Rostand Fiche 2 Structures de données NSI def t e s t ( t , i , j ) : return t [ i ] [ j ]+t [ i −1][ j −1]+ t [ i −1][ j ]+t [ i −1][ j +1] +\ t [ i ] [ j −1] + t [ i ] [ j +1] +\ t [ i +1][ j −1] + t [ i +1][ j ] + t [ i +1][ j +1] ==9 def compte ( t ) : nb_ligne = len ( t ) nb_colonne = len ( t [ 0 ] ) compteur = 0 for l i g n e in range (1 , nb_ligne −1) : for colonne in range(1 , nb_colonne −1 ) : i f t e s t ( t , ligne , colonne ) : compteur += 1 return compteur print ( compte ( carte )) Exercice 6 : On souhaite construire le jeu du démineur : 1. Écrire la fonction creation_carte qui prend en argument un entier n et renvoie une matrice de taille n2 composée de (−2). 2. Écrire la fonction bord qui prend en argument une matrice et renvoie uploads/Philosophie/ fiche-2-correction.pdf

  • 31
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager