Vous êtes sur la page 1sur 3

Chap1 Premier modèle d’accès séquentiel

Variable : CC (Caractère Courant) ou EC (Entier ou Elément Courant)


Machine caractères/entiers/éléments de consultation : (actions)
Démarrer (positionne sur le 1er car du ruban), Avancer (positionne sur le car suivant)
Machine caractères/entiers/éléments de création : (actions)
Amorcer (positionne sur le 1er car), Enregistrer (la donnée X), Marquer (enregistre la marque)
Rmq : on ne sait pas quel caractère est utilisé comme marque.

Chap2 Parcours de séquences marquées


Schéma n°1 de parcours : (On intègre le cas de la séquence vide et le traitement du 1er élément)
Démarrer
Initialisation du traitement
tantque EC ≠ marque faire
Traitement de l’élément courant
Avancer
fintantque
Terminaison du traitement

Schéma n°2 de parcours : (On distingue à part le cas de la séquence vide)


Démarrer
selon EC
EC = marque : Traitement de la séquence vide
EC ≠ marque : Initialisation du traitement
répéter
Traitement de l’élément courant
Avancer
jusqu’à EC = marque
finselon

Schéma n°3 de parcours : (On distingue le traitement de la séquence vide et le traitement du 1er élément s’il
existe)
Démarrer
selon EC
EC = marque : Traitement de la séquence vide
EC ≠ marque : Traitement du premier élément
itérer
Avancer
arrêt : EC = marque
Traitement de l’élément courant
finitérer
Terminaison du traitement
finselon
A remplacer 2ème forme :
itérer Avancer
Avancer tantque EC ≠ marque faire
arrêt : EC = marque Traitement de l’élément courant
Traitement de l’élément courant Avancer
finitérer fintantque

Démarrer(R) ; Avancer(R) ; Amorcer(R) ; Marquer (R) ; Enregistrer (R, E) ; CC(R) ou EC(R)


Exemple :
Analyse du problème :
Le problème correspond à un parcours.
La séquence à traiter est une séquence de caractères.
J’utilise le schéma n°1 de parcours.
Lexique : {on utilise une machine entiers de consultation} (c’est une opération, non un commentaire)
{on utilise une machine entiers de création}
R1 : un ruban d’entiers
Chap3 Schémas de recherche sur une séquence marquée
Recherche : il n’y a pas de traitement ; on peut s’arrêter avant la fin du ruban
Schéma de recherche n°1 :
Démarrer
tantque EC ≠ marque et non( P(EC) ) faire
Avancer
fintantque {EC = marque ou P(EC)}
selon EC
EC = marque : traitement non trouvé
EC ≠ marque : traitement trouvé
finselon

Schéma de recherche n°2 : (Applicable uniquement s’il existe au moins un élément vérifiant la propriété P)
Démarrer
tantque non( P(EC) ) faire
Avancer
fintantque
Terminaison (selon … fin selon)

Chap4 Parcours de sous-séquences et composition des schémas


Un problème peut se décomposer en plusieurs sous-problèmes. Avec un parcours ou une recherche de sous-
séquence et avec des adaptations de schéma.

Chap5 Traitement séquentiel des tableaux


Tableau : structure de données permettant un accès direct aux éléments avec un indice (appartenant à un intervalle)
Notation :
Déclaration d’un tab : T : un tableau sur [bi … bs] d’éléments {intervalle de définition}
Accès à l’élément d’indice i : T[i]
Séquences avec marque : on ne connait pas la longueur L (à priori)

Notation :
Lmax : l’entier XXX
T : un tableau sur [1 … Lmax+1] d’éléments

Machine séquentielle de consultation : Machine séquentielle de création


f : un entier sur [1 … Lmax+1] (indice sur un élément) f (prochaine position à remplir)
f  1 (Démarrer), f  f+1 (Avancer), T[f] (T[i]) f  1 (Amorcer) , T[f]  x ; f  f+1 (Enregistrer)
Séquence sans marque : on connait la longueur L (L=0 si séquence vide)
Notation :
… L : un entier sur [0 … Lmax]
Schéma n°1 de parcours
initialisation du traitement
pour i parcourant [1..L]
traiter( T[i] )
finpour
terminaison du traitement

Schéma n°1 de recherche


I1
tantque i ≤ L etpuis non( P (T[i] ) ) faire
ii+1
fintantque
selon i, L
i = L : … {on n’a pas trouvé}
i ≠ L : … {on a trouvé à l’indice i le 1er élément vérifiant P}
finselon

Schéma n°2 de recherche : (il y a au moins un élément vérifiant P)


I1
tantque non( P (T[i] ) ) faire
ii+1
fintantque {on a trouvé à l’indice i le 1er élément vérifiant P)

Schéma n°2 de parcours : (on distingue à part le cas de la séquence vide)


selon L
L=0: Traitement de la séquence vide
L≠0: Initialisation du traitement
pour i parcourant [1 .. L]
Traiter( T [i] )
finpour
Terminaison du traitement
finselon

Schéma n°3 de parcours : (distinction de la séquence vide et du 1er élément)


Remplacer le « 1 » du schéma précédent en un « 2 »