Algorithmes et structures de donnes 5me cours - PowerPoint PPT Presentation

1 / 34
About This Presentation
Title:

Algorithmes et structures de donnes 5me cours

Description:

3-4 tomates fra ches ou 1 cuill re. soupe de concentr de tomate ... la viande dans une marmite et ajoutez les morceaux d'oignon, les tomates ou le ... – PowerPoint PPT presentation

Number of Views:29
Avg rating:3.0/5.0
Slides: 35
Provided by: PatrickR158
Category:

less

Transcript and Presenter's Notes

Title: Algorithmes et structures de donnes 5me cours


1
Algorithmes et structures de données5ème cours
  • Patrick Reuter
  • http//www.labri.fr/preuter

2
Ingrédients dalgorithmes
  • Affectation (ex. mois 6, jours1 31)
  • Condition/Comparaison (ex. mois lt 12)
  • Appel de fonction (ex. writeln(mois))
  • Structure de contrôle
  • Branchements conditionnels (multiples) (si ..
    Alors .. Sinon)
  • Boucles (tant que..faire, pour.. faire)
  • Bloc dinstructions (begin .. end)

3
Motivation
Structure de données - tableau à 2 dimensions
4
Déclaration de variables
Préparation La veille, mettez les pois chiches
dans un bol d'eau. Le jour même, roulez le
couscous .Si vous utilisez du couscous roulé et
séché, rincez-le à l'eau froide, égouttez-le et
laissez-le gonfler pendant 30 mn. Coupez la
viande en morceaux.Pelez les oignons et
coupez-en 1 en morceaux. Lavez et passez les
tomates à la moulinette.Mettez la viande dans
une marmite et ajoutez les morceaux d'oignon, les
tomates ou le concentré de tomate dilué dans 1
verre d'eau, l'huile, le poivre, le piment, la
cannelle et du sel. Faites revenir ..
  • Comme dans un livre de recettes
  • Ingrédients(pour 8-10 personnes) - 1 kg de
    couscous roulé - 1 kg de mouton - 1 poignée de
    pois chiches - 2 oignons secs - 3-4 tomates
    fraîches ou 1 cuillère.à soupe de concentré de
    tomate - 3-4 pommes de terre - 3-4 navets -
    3-4 carottes - 3-4 courgettes - 1 tranche de
    courge - 4 cuillères à soupe d'huile - 1/2
    cuillère à café de cannelle - 1 pincée de poivre
    noir - 1/2 cuillère à soupe de piment rouge doux
    ou de paprika - 1/2 cuillère à soupe de
    ras-el-hanout
  • - 1 piment rouge sec - 100 g de beurre ou 3
    cuillères à soupe d'huile - sel

5
Déclaration de variables
  • var compteur integer
  • var diviseur single
  • var c char
  • var precision double
  • var nom string
  • var masculin boolean
  • var jours array1..12 of byte
  • diviseur 1.1 Affectation
  • compteur 1
  • Nom Gerhard

Nombre entier
Nombre à virgule flottante
Nombre à virgule flottante avec double précision
Chaîne de caractères
Tableau
6
Déclaration de variables
  • var compteur integer
  • var diviseur single
  • var c byte
  • var precision double
  • var nom string
  • var masculin boolean
  • var jours array1..12 of byte
  • diviseur 1.1 Affectation
  • compteur 1
  • Nom Gerhard

Nombre entier
Nombre à virgule flottante
Nombre à virgule flottante avec double précision
Chaîne de caractères
Tableau
7
Déclaration de variables
  • Types prédéfinis
  • integer, boolean, single,
  • Types que lon peut définir soi-même
  • type t_nombre_entier integer
  • var i t_nombre_entier
  • pas vraiment dintérêt ...
  • au lieu de
  • var i integer

8
Déclaration de variables
  • Types prédéfinis
  • Integer, boolean, single,
  • Types que lon peut définir soi-même
  • type t_tableau array1..12 of byte
  • var jours t_tableau
  • au lieu de
  • var jours array1..12 of byte

9
Déclaration de variables
  • Type tableau
  • type t_tableau array1..MAX of integer
  • var factoriel t_tableau
  • Factoriel1 1
  • Factoriel2 2
  • Factoriel3 6
  • Factoriel4 24
  • Factoriel5 120
  • Factoriel6 720

10
Déclaration de variables
  • Type tableau
  • type t_tableau array1..MAX of integer
  • var factoriel t_tableau
  • var i, produit integer
  • produit 1
  • POUR i de 1 à MAX faire
  • produit iproduit
  • factorieli Produit
  • FIN POUR

11
Organisation de la mémoire
  • type t_tableau array1..MAX of integer
  • var factoriel t_tableau

0
536.870.911
536.870.910
...
n!
factorieln (20004n-1)
...
0
factoriel2 2004
2
0
0
0
factoriel1 2000
1
? factorielindex (20004index-4)
12
  • Type tableau à 2 dimensions
  • var a array1..lignes of array1..colonnes of
    real
  • Ou bien
  • var a array1..lignes, 1..colonnes of real
  • Ou bien
  • type t_ligne array1..colonnes of real
  • var a array1..lignes of t_ligne
  • Ou bien
  • type t_ligne array1..colonnes of real
  • type t_tableau2 array1..lignes of t_ligne
  • var a t_tableau2

13
Déclaration de variables
  • Type tableau à 2 dimensions
  • type t_ligne array1..colonnes of real
  • type t_tableau2 array1..lignes of t_ligne
  • var a t_tableau2
  • Affectation
  • a11 0
  • a12 0
  • ..
  • a1colonnes 0
  • a21 0
  • a22 0
  • ..
  • ..
  • alignescolonnes 0

14
Déclaration de variables
  • Type tableau à 2 dimensions
  • type t_ligne array1..colonnes of real
  • type t_tableau2 array1..lignes of t_ligne
  • var a t_tableau2
  • var i,j integer
  • POUR i de 1 à n FAIRE
  • POUR j de 1 à n FAIRE
  • aij 0
  • FIN POUR
  • FIN POUR
  • ²

15
Déclaration de variables
  • Type tableau à 2 dimensions
  • type t_ligne array1..lignes of real
  • type t_tableau2 array1..colonnes of t_ligne
  • var a t_tableau2
  • var i,j integer
  • POUR i de 1 à n FAIRE
  • POUR j de 1 à n FAIRE
  • aij 0
  • FIN POUR
  • FIN POUR
  • Complexité ?
  • Remplir une matrice identité ?

16
Déclaration de variables
  • Type tableau à 2 dimensions n lignes
    colonnes
  • type t_ligne array1..n of real
  • type t_tableau2 array1..n of t_ligne
  • var a t_tableau2
  • var i,j integer

17
Déclaration de variables
  • Type tableau à 2 dimensions n lignes
    colonnes
  • type t_ligne array1..n of real
  • type t_tableau2 array1..n of t_ligne
  • var a t_tableau2
  • var i,j integer
  • POUR i de 1 à n FAIRE
  • POUR j de 1 à n FAIRE
  • SI ij ALORS
  • aij 1
  • SINON
  • aij 0
  • FIN POUR
  • FIN POUR

18
Organisation de la mémoire
  • type t_ligne array1..3 of byte
  • type t_tableau2 array1..3 of t_ligne
  • var a t_tableau2

536.870.911
536.870.910
...
a33 2008
...
...
a22 2004
Occupe de la place successive dans la mémoire
a21 2003
a13 2002
a12 2001
a11 2000
...
0
  • aij (2000(3(i-1)) j - 1 )

19
Organisation de la mémoire
  • type t_ligne array1..colonnes of byte
  • type t_tableau2 array1..lignes of t_ligne
  • var a t_tableau2

? aij (2000j((colonnes-1)i) -1)
20
Organisation de la mémoire
  • type t_ligne array0..colonnes-1 of byte
  • type t_tableau2 array0..lignes-1 of t_ligne
  • var a t_tableau2

? aij (2000j((colonnes)i) )
21
Déclaration de variables
  • Des nombres entiers sont souvent utilisés quand
    un choix parmi un petit nombre dalternatives est
    souhaité.
  • Nombre entiers
  • Type de base byte, integer
  • var jour integer
  • jour 1 signifie par exemple lundi
  • jour 3 signifie par exemple mercredi

22
Déclaration de variables
  • Les types énumérés
  • type t_jourdesemaine (lundi, mardi, mercredi,
    jeudi, vendredi, samedi, dimanche)
  • var jour t_jourdesemaine
  • jour lundi
  • jour mercredi

23
Déclaration de variables
  • Les types énumérés
  • Autres exemples
  • type t_jourdesemaine (lundi, mardi, mercredi,
    jeudi, vendredi, samedi, dimanche)
  • type t_couleur (rouge, vert, bleu, gris)
  • type t_sexe (masculin, feminin)

24
Organisation de la mémoire
  • var jour t_jourdesemaine

536.870.911
536.870.910
...
1.000
...
5
4
3
2
1
0
jour
25
Déclaration de variables
  • type t_carte (7,8,9,10,vallee,dame,roi,as)
  • var ma_meilleure_carte t_carte
  • var cartes array1..8 of t_carte
  • ma_meilleur_carte roi
  • cartes1 10
  • cartes2 dame
  • cartes3 7
  • ...
  • cartes8 9

26
Motivation
Structure de données - tableau à 2 dimensions
type t_ligne array1..8 of byte
27
Motivation
Structure de données - tableau à 2 dimensions
type t_ligne array1..8 of byte type t_damier
array1..8 of t_ligne
28
Motivation
Structure de données - tableau à 2 dimensions
type t_ligne array1..8 of byte type t_damier
array1..8 of t_ligne var damier t_damier
29
Motivation
Imaginons la convention suivante - 0 pour un
champs vide - 1 pour un champs blanc - 2 pour
un champs noir type t_ligne array1..8 of
byte type t_damier array1..8 of t_ligne var
damier t_damier Pour initialiser un damier
vide
30
Motivation
Imaginons la convention suivante - 0 pour un
champs vide - 1 pour un champs blanc - 2 pour
un champs noir type t_ligne array1..8 of
byte type t_damier array1..8 of t_ligne var
damier t_damier var i,j integer Pour
initialiser un damier vide POUR i 1 à 8
faire POUR j 1 à 8 faire damierij
0 FIN POUR FIN POUR
31
Motivation
Structure de données - tableau à 2 dimensions
type t_ligne array1..8 of byte type t_damier
array1..8 of t_ligne var damier t_damier
32
Motivation
Structure de données - tableau à 2 dimensions
type t_champ (vide, blanc, noir) pour le jeu
de dames
33
Motivation
Structure de données - tableau à 2 dimensions
type t_champ (vide, blanc, noir) type t_ligne
array1..8 of t_champ type t_damier
array1..8 of t_ligne var damier t_damier
34
Motivation
type t_champ (vide, blanc, noir) type
t_ligne array1..8 of t_champ type t_damier
array1..8 of t_ligne var damier
t_damier var i,j integer Pour initialiser un
damier vide POUR i 1 à 8 faire POUR j 1
à 8 faire damierij vide FIN
POUR FIN POUR
Write a Comment
User Comments (0)
About PowerShow.com