100% de satisfacción garantizada Inmediatamente disponible después del pago Tanto en línea como en PDF No estas atado a nada 4,6 TrustPilot
logo-home
Notas de lectura

Informatique - Les tableaux

Puntuación
-
Vendido
1
Páginas
6
Subido en
13-09-2014
Escrito en
2012/2013

Bases de l'informatique: Programmation et algorithme. Langage C.

Institución
Grado










Ups! No podemos cargar tu documento ahora. Inténtalo de nuevo o contacta con soporte.

Escuela, estudio y materia

Institución
Estudio
Grado

Información del documento

Subido en
13 de septiembre de 2014
Número de páginas
6
Escrito en
2012/2013
Tipo
Notas de lectura
Profesor(es)
Desconocido
Contiene
Todas las clases

Vista previa del contenido

Chapitre 7 : Les tableaux

I. Tableau à n dimension
On nomme le tableau ci dessous T :
Numéro 0 1 2 3 4
case
Valeur -6 0 12 7 24


En générale on les écrit
T=[-6, 0, 12, 7, 24]
Attention : En C, les cases sont numérotées à partir de 0
Formellement, un tableau représente un produit cartésien

A*A...*A= A^k de taille fixée( ici k ) et homogène ( que des A, pas A*B*C)

Par contre A peut-être ce qu'on veut
→ tableau de réels
→ tableau d'entiers
→ tableau de booléens
→ tableau de rationnels

Type abstrait :
ex : les tableaux de réels
Types importés : entier_tan (pour le numéro de cases)
réel (pour le contenu des cases)

 Opérateurs

nouveau_tableau : entier_nat (taille du tableau) → tableau
ecrire_tableau : entier_nat*réel*tableau → tableau
lire_tableau : entier_nat*tableau → réel

Attention : nouveau tableau crée un tableau « vide »
→ dans un algo, si on lit le contenu d'une case « vide », on a une erreur
→ en C si on lit le contenu d'une case non initialisée, on récupère n'importe
quoi ( ce qu'il y avait avant dans cette case mémoire de l'ordinateur)

 Notations

lire_tableau (i, T) s'écrit T[i]
T:= ecrire_tableau (i, x, T) s'écrit T[i]:=x
t:=nouveau_tableau(n) s'écrit T:= nouveau tableau de n réels

Application :

Écrire un algo itératif qui étant donné un tableau T de n entiers, et un entier a
et renvoie
→ le plus petit numéro de case i tel que T[i] = a s'il existe

,→ -1 si aucune case ne contient la valeur a
Recherche dans un tableau
→ si le tableau est déjà trié
Une méthode efficace : la dichotomie
On a un tableau T à m cases et on cherche la valeur x, on va à la case m/2

• Si T[m/2] >x [2,3,8,12,15,22]
On va chercher x dans la première moitié du tableau
• Si T[m/2] =x on a trouvé
→ Pour chercher dans une moitié de tableau, on ré applique la méthode
→ Si on a coupé le tableau assez de fois, on arrive à un tableau vide et on
conclut que la valeur n'y est pas.

Exemple : T=[2 3 8 12 15 22]
n=6
On regarde T[n/2]=T[3]=12, on a 12<15. Donc on cherche x
On cherche x=15
dans [15 22] ou 22 est une valeur supérieur a x. Donc on
cherche dans [15]
valeur=x=trouvé



T=[2 3 8 12 15 22]
n=6
On cherche x=5
Valeur de la case n/2=12 ( donc 3ème case)
On a 12>x donc on cherche dans
[ 2 3 8]
Valeur de la case milieu =3<x
Donc on cherche x dans [8]
Valeur de la case milieu=8>x
Donc on cherche x dans []
→ x n'est pas dans le tableau

Algorithme itératif de la recherche dans le tableau.

Fonction_recherche(m : entier_nat, T : Tableau, x:entier) : entier
Var :i,j : entier_nat /*i et j délimitent le sous-tableau dans lequel on cherche x
*/
m : entier_nat /* numéro de la case « milieu »*/

|Début|

i:=0
j:=n-1

Tant que i <=j faire
m:=(j+i)/2 /* fait la division entière*/
Si T[m]<x alors
i:=m+1
Sinon
Si T[m]>x alors

, j:=m-1
Sinon
retourner m /* cas ou T[m]=x */
Finsi
Finsi
Fintantque
retourner -1
|Fin|


Quand un algorithme est correct , il fait ce qu'on lui a demandé dans la
spécification, on s’intéresse alors à son efficacité. On parle alors de notion de
complexité (en temps)
= nb d'opérations élémentaires effectuées par l'algorithme en fonction de la
table des donnés.

Pour les algo sur les tableaux, la taille de la donnée est n=nb de cases.
Notations : O(f(x)) environ plus petit que k*f(n) quand on est grand( k=cte).
Par exemple : O(n)=ne grandit pas plus vite que k*n
Pour un tableau non trié, combien fait-on de comparaison en fonction de n
→ meilleur cas : O(1)
→ pire cas : O(n)
→ en moyenne : O(n) (pire cas/2)

Avec la dichotomie
→ meilleur cas O(1)
→ pire cas O(log2(n))

Spécification :

Étant donné un tableau T à n cases contenant deux entiers, je veux modifier T
pour trier les valeurs des cases par ordre croissant.

Fonction max_tab(T : Tableau, n:entier) : entier
var : i:entier_nat
max : entier_nat
|Début|

max:=T[0]

Pour i allant de 1 à n-1 faire
Si T[i]>max
alors T[i]=max
Finsi
Finpour
retourner max

|Fin|
Exemple : T= [ 2 26 3 24 3 6 5]
doit retourner T= [2 3 3 5 6 24 26]

fonction_selection(T : Tableau, n: entier_nat) : Tableau
$4.76
Accede al documento completo:

100% de satisfacción garantizada
Inmediatamente disponible después del pago
Tanto en línea como en PDF
No estas atado a nada

Conoce al vendedor
Seller avatar
Streamerine

Conoce al vendedor

Seller avatar
Streamerine IUT Mesures Physiques
Seguir Necesitas iniciar sesión para seguir a otros usuarios o asignaturas
Vendido
4
Miembro desde
11 año
Número de seguidores
2
Documentos
7
Última venta
1 año hace

0.0

0 reseñas

5
0
4
0
3
0
2
0
1
0

Recientemente visto por ti

Por qué los estudiantes eligen Stuvia

Creado por compañeros estudiantes, verificado por reseñas

Calidad en la que puedes confiar: escrito por estudiantes que aprobaron y evaluado por otros que han usado estos resúmenes.

¿No estás satisfecho? Elige otro documento

¡No te preocupes! Puedes elegir directamente otro documento que se ajuste mejor a lo que buscas.

Paga como quieras, empieza a estudiar al instante

Sin suscripción, sin compromisos. Paga como estés acostumbrado con tarjeta de crédito y descarga tu documento PDF inmediatamente.

Student with book image

“Comprado, descargado y aprobado. Así de fácil puede ser.”

Alisha Student

Preguntas frecuentes