Académique Documents
Professionnel Documents
Culture Documents
ma
Un portail au service
de la formation professionnelle
Le Portail http://www.ista.ma
Que
ue vous soyez tudiants, stagiaires, professionnels de terrain, formateurs, ou que vous soyez tout
simplement intress(e) par les questions relatives aux formations professionnelle,
professionnelle aux mtiers,
http://www.ista.ma vous propose un contenu mis jour en permanence et richement illustr avec un suivi
quotidien de lactualit, et une varit de ressources documentaires, de supports de formation ,et de
documents en ligne ( supports de cours, mmoires, exposs, rapports de stage ) .
Le site propose aussi une multitude de conseils et des renseignements trs utiles sur tout ce qui
concerne la recherche d'un emploi ou d'un stage : offres demploi, offres de stage,
stage comment rdiger
sa lettre de motivation, comment faire son CV, comment se prparer l'entretien dembauche,
dembauche etc.
Les forums http://forum.ista.ma sont mis votre disposition, pour faire part de vos expriences,
ragir l'actualit, poser des questionnements,
question
susciter des rponses.N'hsitez
'hsitez pas interagir avec
tout ceci et apporterr votre pierre l'difice.
Notre Concept
Le portail http://www.ista.ma est bas sur un concept de gratuit intgrale du contenu & un modle
collaboratif qui favorise la culture dchange et le sens du partage entre les membres de la communaut ista.
Notre Mission
Diffusion du savoir & capitalisation des expriences.
Notre Devise
Partageons notre savoir
Notre Ambition
Devenir la plate-forme leader dans le domaine de la Formation Professionnelle.
Notre Dfi
Convaincre de plus
lus en plus de personnes pour rejoindre notre communaut et accepter de partager leur
savoir avec les autres membres.
Afpa
Page 2 de 118
28/09/2005
Support de formation
Sommaire
1. Les structures de base d'un langage de programmation -------------------------- 6
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.7.
La squence d'instructions--------------------------------------------------------------------------- 6
L'affectation ------------------------------------------------------------------------------------------11
la structure alternative ------------------------------------------------------------------------------13
La structure rptitive-------------------------------------------------------------------------------15
La compilation ---------------------------------------------------------------------------------------17
La dclaration des variables------------------------------------------------------------------------18
Les fonctions et procdures ------------------------------------------------------------------------21
2. Rgles de programmation------------------------------------------------------------------ 24
3. La syntaxe du pseudo-langage ----------------------------------------------------------- 26
4.
AFPA
L'alternative ------------------------------------------------------------------------------------------41
La boucle ---------------------------------------------------------------------------------------------43
Contraction -------------------------------------------------------------------------------------------47
Doublons----------------------------------------------------------------------------------------------49
Equivalence ------------------------------------------------------------------------------------------51
Eparpillement ----------------------------------------------------------------------------------------55
Inversion ----------------------------------------------------------------------------------------------57
Palindrome -------------------------------------------------------------------------------------------59
Cryptage ----------------------------------------------------------------------------------------------61
Comptage ---------------------------------------------------------------------------------------------63
Les tris ------------------------------------------------------------------------------------------------66
Le calcul des heures ---------------------------------------------------------------------------------77
Le jeu du pendu --------------------------------------------------------------------------------------79
Le crible d'Erathostne------------------------------------------------------------------------------82
Page 3 de 118
28/09/2005
Support de formation
Afpa
Alternative--------------------------------------------------------------------------------------------83
Alternative2 ------------------------------------------------------------------------------------------85
Boucle-------------------------------------------------------------------------------------------------87
Statistiques -------------------------------------------------------------------------------------------89
Contraction -------------------------------------------------------------------------------------------91
Doublons----------------------------------------------------------------------------------------------92
Equivalence ------------------------------------------------------------------------------------------93
Eparpillement ----------------------------------------------------------------------------------------95
Inversion ----------------------------------------------------------------------------------------------97
Palindrome -------------------------------------------------------------------------------------------99
Cryptage -------------------------------------------------------------------------------------------- 101
Comptage ------------------------------------------------------------------------------------------- 103
Dichotomie ----------------------------------------------------------------------------------------- 105
TriSelection ---------------------------------------------------------------------------------------- 108
Tri Bulle -------------------------------------------------------------------------------------------- 110
TriPermutation ------------------------------------------------------------------------------------- 112
Tri Comptage -------------------------------------------------------------------------------------- 114
Tri Alphabtique----------------------------------------------------------------------------------- 116
Page 4 de 118
28/09/2005
AFPA
Support de formation
Page 5 de 118
28/09/2005
Support de formation
AFPA
Page 6 de 118
28/09/2005
Support de formation
Vous voyez que l'ordre des instructions a de l'importance : "S'habiller" puis "prendre sa douche" conduit un
rsultat pas gnial que nous appellerons un "bug". Cependant certaines instructions peuvent se drouler dans
un ordre indiffrent: "prendre sa douche" et "prendre son petit djeuner" peuvent tre inverss sans prjudice
pour le rsultat.
Une alternative s'exprime par si .. sinon
Que la condition soit ralise (condition vraie) ou qu'elle ne le soit pas (condition fausse) les premires actions
sont les mmes et se passent dans le mme ordre ce qui permet la simplification suivante :
Remarquez que les actions si vrai ou si faux sont dcales par rapport aux autres instructions afin de
permettre une meilleure lisibilit; on parle d'indentation.
Afpa
Page 7 de 118
28/09/2005
Support de formation
Pour illustrer l'itrative ou rptitive (les deux termes sont quivalents), continuons notre exemple en supposant
que Buggy dont nous vivons la journe palpitante, soit un employ de banque. La routine journalire de cet
employ est :
Les deux actions "Traiter client" et "Appeler client suivant" vont se rpter tant que la condition situe
derrire l'instruction "Tant que" est vrifie.
Afpa
Page 8 de 118
28/09/2005
Support de formation
Afpa
Page 9 de 118
28/09/2005
Support de formation
Remarques : Faire travail tant une instruction assez complexe, elle a t dtaille dans la fonction Travail
pour une meilleure lisibilit du programme. De mme, nous avons cr une fonction guichet afin de ne pas
rpter la mme squence d'instructions deux fois dans le programme.
Notre programme a donc t scind en deux parties :
) le corps du programme de la ligne 1 la ligne 15
) les fonctions ou sous-programmes internes partir de la ligne 17.
Comment cela se passe-t-il lorsque nous rencontrons un appel de fonction ?
A la ligne 11 nous avons "Faire travail" qui indique la machine qu'elle doit aller en ligne 17 qui
correspond au dbut de la fonction appele. La procdure fait les actions des lignes 18, 19 et 20. Elle trouve
nouveau un appel de fonction, cette fois-ci "Faire guichet" donc elle se dbranche vers la ligne 29 et excute
les instructions jusqu' la ligne 36 o se trouve "Fin fonction" se qui ramne la machine l'instruction se
situant juste aprs " Faire guichet" c'est dire ligne 22. puis les actions des lignes 20, 21, 22 vont se rpter
n fois jusqu' l'heure de djeuner. Ensuite, la ligne 23 est excute et nouveau il y aura rptition de faire
guichet (avec dbranchement la ligne 29 et retour la ligne 26. Lorsque nous arrivons sur la ligne 27 "Fin
fonction", nous retournons la ligne 12.
Afpa
Page 10 de 118
28/09/2005
Support de formation
Dans notre pseudo-langage, nous n'aurons que la liste minimum d'instructions, ncessaire et suffisante pour
les programmes que nous aurons crire.
1.2. L'affectation
Ce qui se lit "variable reoit valeur" et qui signifie que nous mmorisons la valeur un endroit nomm
variable. Nous pourrions aussi dire que nous rangeons une valeur dans des cases de la mmoire que nous
nommons variable.
Par exemple :
Il ne faut jamais confondre valeur et variable. Une variable est caractrise par :
) une adresse c'est dire un emplacement dans la mmoire de la machine,
) un type permettant d'indiquer la nature de l'information contenue,
) ventuellement une longueur si le type ne le dfinit pas.
Quand nous aurons affaire une variable numrique, nous crirons
Dans le premier exemple, nous envoyons la constante 0 dans une variable nomme nCompteur.
Dans le deuxime exemple, nous envoyons le contenu de la variable nSalaireBase comme contenu de la
variable nSalaire.
Quand nous sommes en prsence d'une variable alphanumrique, nous crirons
Dans le premier cas, nous envoyons la constante Bonjour dans une variable nomme strMessage.
"AFFICHER strMessage" donnera comme rsultat l'affichage du mot Bonjour.
Dans le deuxime exemple, nous envoyons le contenu de la variable nomme Bonjour qui peut contenir BYE
comme contenu de la variable strMessage.
"AFFICHER strMessage" donnera comme rsultat l'affichage du mot BYE.
Afpa
Page 11 de 118
28/09/2005
Support de formation
La premire lit tous les caractres qui sont saisis au clavier, jusqu' ce que l'utilisateur appuie sur la
touche entre, et range le rsultat dans la variable.
La seconde affiche sur l'cran le ou les textes et la valeur des variables.
exemple :
Afpa
Page 12 de 118
28/09/2005
Support de formation
Exemples :
Pour avoir la valeur absolue (appele nAbsolu dans notre exemple) d'un nombre (n1 dans notre
exemple), s'il est ngatif nous le multiplions par 1 sinon la valeur absolue gale le nombre :
Afpa
Page 13 de 118
28/09/2005
Support de formation
ET OU NON XOR(ou
Lorsque l'on crit de telles conditions, il est recommand de mettre toutes les parenthses afin d'viter
les erreurs car les oprateurs ont une hirarchie qui ne collera pas ncessairement avec votre logique.
Afpa
Page 14 de 118
28/09/2005
Support de formation
1.4.1. TantQue
Ce qui signifie : tant que la condition est vraie, on excute les actions.
exemple :
Afpa
Page 15 de 118
28/09/2005
Support de formation
Ce qui signifie que l'on excute les actions jusqu' ce que la condition soit vraie.
exemple :
1.4.3. Pour
Trs souvent, nous utilisons une structure rptitive avec un compteur et nous arrtons lorsque le
compteur a atteint sa valeur finale.
C'est pourquoi la plupart des langages de programmation offrent une structure permettant d'crire cette
rptitive plus simplement. Dans le pseudo-langage c'est la structure pour :
Afpa
Page 16 de 118
28/09/2005
Support de formation
1.5. La compilation
Un langage de programmation sert crire des programmes de manire les excuter. Des outils
permettent de traduite le langage crit par le programmeur en langage machine.
Ils fonctionnent de la manire suivante :
Programme
source
Compilateur
Fichier
objet
Erreurs
Bibliothques
diteur de liens
Fichier
excutable
Erreurs
Le compilateur analyse le langage source afin de vrifier la syntaxe et de gnrer un fichier objet en
langage intermdiaire assez proche du langage machine. Tant qu'il y a des erreurs de syntaxe, le
compilateur est incapable de gnrer le fichier objet.
Souvent, on utilise dans un programme des fonctions qui soit ont t crites par quelqu'un d'autre soit
sont fournies dans une bibliothque (graphique par exemple). Dans ce cas, le compilateur ne les
connat pas et ne peut donc pas gnrer le langage intermdiaire correspondant.
C'est le travail de l'diteur de liens que d'aller rsoudre les rfrences non rsolues. C'est dire que
lorsqu'il est fait appel dans le fichier objet des fonctions ou des variables externes, l'diteur de liens
recherche les objets ou bibliothques concerns et gnre l'excutable. Il se produit une erreur lorsque
l'diteur de liens ne trouve pas ces rfrences.
Afpa
Page 17 de 118
28/09/2005
Support de formation
instructions
entier : il s'agit des variables destines contenir un nombre entier positif ou ngatif.
Dans notre pseudo-langage, nous crirons la dclaration des variables de type entier :
Gnralement un entier occupe 2 octets, ce qui limite les valeurs de -32768 +32768.
Cependant cela dpend des machines, des compilateurs, et des langages.
Afpa
Page 18 de 118
28/09/2005
Support de formation
Certains langages distinguent les entiers courts (1 octet), les entiers longs (4 octets) et les entiers
simples (2 octets).
rel : il s'agit des variables numriques qui ne sont pas des entiers, c'est dire qui comportent des
dcimales. Gnralement un nombre rel est cod sur 4 octets (voir cours sur le codage des
informations).
Dans notre pseudo-langage, la dclaration des variables de type rel est la suivante :
caractre : Les variables de type caractre contiennent des caractres alphabtiques ou numriques
(de 0 9), mais dans ce cas ils ne sont pas considrs comme tant des nombres et on ne peut pas
faire d'oprations dessus.
Un caractre occupe un octet.
Dans notre pseudo-langage, une variable de type caractre se dclare ainsi :
Remarque : les chanes de caractres, dans notre langage sont des tableaux de caractres (voir 1.6.2)
boolen : Il est souvent ncessaire lorsque l'on crit un programme d'introduire des variables qui
prennent les valeurs vrai ou faux ou les valeurs oui ou non.
Pour cela, il existe un type particulier dont les variables ne peuvent prendre que 2 valeurs : vrai ou
faux.. Dans notre pseudo-langage, la dclaration s'crit :
Page 19 de 118
28/09/2005
Support de formation
exemple :
Le premier exemple montre la dclaration d'un tableau de 10 postes de type caractre dont les postes
seront nommes mot (i) i allant de 1 10.
Afpa
Page 20 de 118
28/09/2005
Support de formation
1.7.1. Procdure
Une procdure est une suite d'instructions servant raliser une tche prcise en fonction d'un certain
nombre de paramtres.
Ce lot d'instructions est crit une fois dans la procdure mais peut tre excute autant de fois que
voulu en appelant la procdure : on aura donc une ligne de code pour excuter n instructions.
De plus une procdure peut fonctionner avec des paramtres qui sont indiqus au moment de l'appel et
pris en compte dans l'excution de la procdure.
Les paramtres sont de deux types.
Les paramtres de type VAL : ils contiennent une valeur qui sera utilise dans la procdure.
Les paramtres de type VAR : ils reprsentent une variable du programme appelant qui pourra tre
lue et modifie si ncessaire.
Dans notre pseudo-langage, une procdure se dclare de la manire suivante :
Les variables que nous dclarons l'intrieur de procdure ne sont connues que dans cette procdure.
Elles sont d'ailleurs nommes variables locales.
Pour utiliser cette procdure dans un programme appelant, on crit :
Afpa
Page 21 de 118
28/09/2005
Support de formation
Cette procdure attend en entre, trois paramtres pour fonctionner. Le premier sera de type caractre,
le second de type numrique entier et le troisime de type tableau de caractres
Nous appellerons cette fonction comme ceci :
Dans le premier cas, nous envoyons en paramtres deux constantes et une variable : la premire
constante("*")de type caractre qui sera reue dans caractre, la seconde (12) qui sera reue dans
longueur et la variable (ligne) qui sera reue dans chane.
Dans le deuxime appel tous les paramtres sont transmis sous forme de variables.
Appel par
remplir_chaine("*",12, ligne);
Appel par
Les paramtres doivent tre transmis dans l'ordre et doivent respecter le type dfini dans la procdure.
Afpa
Page 22 de 118
28/09/2005
Support de formation
1.7.2. Fonction
Une fonction est une procdure dont le but est de dterminer une valeur et de la retourner au
programme appelant.
Dans notre pseudo-langage, elle se dclare de la manire suivante :
Afpa
Page 23 de 118
28/09/2005
Support de formation
2. Rgles de programmation
Un programme doit tre le plus lisible possible, de manire ce que n'importe qui d'autre que l'auteur
soit capable de comprendre ce qu'il fait rien qu'en le lisant. Pour cela il faut suivre les quelques rgles
suivantes :
le nom des variables doit tre significatif, c'est dire indiquer clairement quoi elles servent
un algorithme ne doit pas tre trop long (une page cran). S'il est trop long, il faut le dcouper en
fonctions et procdures (voir 1.7)
les structures de contrle doivent tre indentes, c'est dire, par exemple, que les instructions qui
suivent le alors doivent toutes tre alignes et dcales d'une tabulation par rapport au si. Il en
est de mme pour les rptitives.
A chaque imbrication d'une structure de contrle, on dcale d'une tabulation.
exemples :
Afpa
Page 24 de 118
28/09/2005
Support de formation
Afpa
On doit toujours tre capable de donner un nom significatif une procdure ou une fonction.
Le nombre de paramtres ne doit pas tre trop grand ( en gnral infrieur 5) car cela nuit la
lisibilit du programme.
Une procdure ou une fonction doit tre la plus gnrale possible de manire pouvoir tre
rutilise dans d'autres circonstances.
Si le but d'une procdure est de calculer une valeur simple, il est prfrable d'en faire une fonction.
Il est souvent plus clair d'crire une fonction boolenne plutt qu'une condition complexe.
Page 25 de 118
28/09/2005
Support de formation
3. La syntaxe du pseudo-langage
Un programme comportera
) Une partie dclaration
) Une partie encadre par dbut fin o sont dcrites les actions
Afpa
Page 26 de 118
28/09/2005
Support de formation
3.1.5. Alternative :
3.1.6. Rptitive :
) Tantque
) Faire
) Pour
Afpa
Page 27 de 118
28/09/2005
Support de formation
Afpa
Page 28 de 118
28/09/2005
Support de formation
Dans les quelques pages qui suivent, nous vous indiquerons quelques raisonnements tenus pour arriver un
pseudo code rpondant une question donne mais il s'agit de notre faon de raisonner : vous de vous
construire la votre.
Page 29 de 118
28/09/2005
Support de formation
Premier cas
Les lments de dpart sont :
2 3 3 5 6
12
25
26
42
53
55
25
26
42
53
55
Deuxime cas
Les lments de dpart sont :
Nous voulons insrer le nombre 7 dans une liste ne comportant aucun lment
Le rsultat devrait tre :
7
Troisime cas
Les lments de dpart sont :
2 3 3 5 6
12
25
26
42
26
53
42
55
53
55
Quatrime cas
Les lments de dpart sont :
2 3 3 5 6
Afpa
12
25
42
53
55
53
55
Page 30 de 118
26
60
28/09/2005
Support de formation
Afpa
Page 31 de 118
28/09/2005
Support de formation
Afpa
Page 32 de 118
28/09/2005
Support de formation
nAInserer
nDebut
nFin
nbElement
Nous rptons
nPosition
Nous divisons ce nombre par 2
nPosition
Si le rsultat n'est pas entier, nous arrondissons l'entier suprieur
Nous comparons le nPositionime numro de la liste avec notre nombre Insrer
Si ce nombre est infrieur au nombre insrer,
) nous prenons la partie droite du tableau depuis l'lment en nPosition jusqu' la fin; cela revient
dire que nous changeons la position de dbut du tableau nDebut prend la valeur de nPosition.
er
) autrement nous prenons la partie gauche depuis le 1 lment jusqu' l'lment en nPosition; cela
revient dire que nous changeons la position de fin du tableau nFin prend la valeur de nPosition
nbElement
Nous cherchons le nombre d'lments restant consulter
) les autres fois nbElement prend la valeur de nFin nDebut + 1
Afpa
Page 33 de 118
28/09/2005
Support de formation
nAInserer
nDebut
nFin
nbElement
Afpa
Page 34 de 118
28/09/2005
Support de formation
12
25
26
42
53
55
Si nous envoyons notre nombre insrer en 6me position, nous allons "craser" la valeur qui
y tait soit 8 : Notre rsultat serait alors
2
12
25
26
42
53
55
12
25
26
42
53
55
Ce qu'il faut faire c'est dcaler 8 vers la droite c'est dire la place de 12 pour mettre 7 la
place
2 3 3 5 6 7 8 25 26 42 53 55
Si nous procdons ainsi nous perdons toujours un des lments initiaux.
Comment faire pour ne rien perdre ? il faut commencer par la fin.
2 3 3 5 6
8 12 25 26 42 53
8
12
25
26
55
1
42
55
55
nFin
Afpa
Page 35 de 118
28/09/2005
Support de formation
nAInserer
nDebut
nFin
nbElement
nbElement
SI
FINSI
POUR
FINPOUR
Afpa
Page 36 de 118
28/09/2005
Support de formation
Afpa
Page 37 de 118
nAInserer
nDebut
nFin
nbElement
nPosition
28/09/2005
Support de formation
nAInserer
nDebut
nFin
nbElement
nPosition
nPosition
nPosition
FINSI
nbElement
nFin
Page 38 de 118
28/09/2005
Support de formation
12
25
26
42
26
53
55
42
53
55
12
25
26
42
53
55
53
55
60
Lorsque nous droulons la dmarche prcdemment crite, nous arrivons une anomalie.
Au premier TANTQUE, les valeurs des variables sont :
NDbut
NFin
Variable
Valeur
1
12
NPosition
nbElement
12
NPosition
nbElement
Dmarrons le premier TANTQUE, nPosition devient 7 / 4 = 3,5 ramen l'entier suprieur soit 4.
Problme, car 4 n'est pas compris entre 6 et 12. il Nous faut changer le calcul de nPosition par
Ce calcul devient :
Nous divisons ce nombre par 2
nPosition
nPosition
Page 39 de 118
28/09/2005
Support de formation
nAInserer
nDebut
nFin
nbElement
nPosition
nPosition
nPosition
FINSI
nbElement
nFin
Page 40 de 118
28/09/2005
Support de formation
5. Un peu d'entranement
5.1. L'alternative
Un patron dcide de calculer le montant de sa participation au prix du repas de ses employs de la
faon suivante :
S'il est clibataire
S'il est mari
S'il a des enfants
participation de 20%
participation de 25%
participation de 10% supplmentaires par enfant
Afpa
Page 41 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 42 de 118
28/09/2005
Support de formation
5.2. La boucle
Autre sujet : crire un programme qui saisit des entiers et en affiche la somme et la moyenne (on
arrte la saisie avec la valeur 0)
Afpa
Page 43 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 44 de 118
28/09/2005
Support de formation
Les statistiques
On saisit des entiers (comme exercice prcdent) et on les range dans un tableau (maximum 50)
crire un programme qui affiche le maximum, le minimum et la valeur moyenne de ces nombres.
Afpa
Page 45 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 46 de 118
28/09/2005
Support de formation
5.3. Contraction
Recopier une phrase dans une autre en tant toutes les occurrences dun caractre
Soit une phrase termine par un point.
Il s'agit de la restituer en supprimant les occurrences d'un caractre donn.
Exemple :
phrase : abbcccdeeeffg
caractre : c
rsultat : abbdeeeffg
Afpa
Page 47 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 48 de 118
28/09/2005
Support de formation
5.4. Doublons
Recopier une phrase dans une autre en tant tous les doublons de caractres successifs
Soit une phrase termine par un point.
Il s'agit de la restituer en supprimant tous les doublons de caractres successifs.
Exemple :
abbcccdeeeffg.
donne
abcdefg.
Afpa
Page 49 de 118
28/09/2005
Support de formation
Corrig
Jeu d'essai:
Afpa
Page 50 de 118
28/09/2005
Support de formation
5.5. Equivalence
Dterminer si deux phrases sont quivalentes.
Soit deux phrases termines par un mme terminateur.
Elles sont dites quivalentes si elles ont les mmes lettres dans le mme ordre mais avec un nombre
d'occurrences de ces lettres qui peut diffrer entre les deux phrases.
On supposera qu'il existe une fonction longueur lg de chane qui renvoie un entier
Exemple :
abbcccdeeeffg
aabcdeffffg
sont quivalentes
Afpa
Page 51 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 52 de 118
28/09/2005
Support de formation
Faisons tourner le programme la main, ligne par ligne avec les phrases :
Phrase1 aabbbccddde
Phrase2 : abccdeee
Dans le tableau qui suit, nous notons tous les changements de valeurs subies au fur et mesure de l'excution
du programme. La premire colonne indique la ligne du programme o les valeurs sont notes (les valeurs sont
changes une fois la ligne d'affectation passe).
N ligne
14
15
16
18
21
27
27
18
21
26
26
26
21
21
27
27
18
21
27
27
27
18
21
21
21
27
Afpa
nIndice1
nIndice2
StrPhrase1() StrPhrase2()
StrOctet
bOk
vrai
1
1
a
2
2
3
b
3
4
5
6
4
5
7
8
d
6
9
10
11
e
7
8
9
12
Page 53 de 118
28/09/2005
Support de formation
Il est assez fastidieux de "drouler" le programme de cette manire; Des outils appels "dboggeur" vous
permettent de laisser le travail la machine. Ils permettent de :
) Faire avancer le programme "pas pas" c'est dire ligne par ligne
) Lister le contenu des variables un point d'arrt c'est dire une ligne prcise (nous vous
rappelons que les valeurs ne sont modifies qu'une fois l'affectation finie; il faut donc se
positionner sur la ligne aprs l'affectation pour voir la valeur prise par la variable.
) Faire avancer le programme de point d'arrt en point d'arrt
) Eventuellement de modifier les valeurs des variables : attention si vous travaillez dans un contexte
aussi utilis par les utilisateurs, vous risquez de faire des btises en modifiant la base de donnes
relle.
Cas n 1
Phrase n 1 ccccccdddddaaaagggg
Phrase n 2 cccdddggggaa
Cas n 2
Phrase n 1 aaazzzeeerrty
Phrase n 2 azerty
Cas n 3
Phrase n 1 Immobile
Phrase n 2 imobile
En effet, une lettre majuscule est diffrente d'une lettre minuscule sur un systme "casse sensitive". Elles sont
quivalence sur les autres systmes.
Afpa
Page 54 de 118
28/09/2005
Support de formation
5.6. Eparpillement
Chercher les lettres dun mot parpilles dans une phrase, dans le mme ordre.
Soient un caractre terminateur et une phrase termine par ce caractre terminateur.
Soient un mot donn
Il s'agit de vrifier si les lettres du mot sont bien prsentes dans la phrase, ce dans le mme ordre que celui du
mot.
Exemple :
terminateur :
.
phrase : le chat est gris et boit.
mot :
lattis
longueur : 6
donne
vrai
Afpa
Page 55 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 56 de 118
28/09/2005
Support de formation
5.7. Inversion
Effectuer la saisie d'une chane de caractres qui contiendra un nom et un prnom.
Les prnoms composs seront obligatoirement spars par des tirets.
Afficher une chane de caractres sous forme prnom nom spars par un espace, en ayant fait disparatre les
tirets saisis dans le prnom.
Ecrire la procdure en pseudo-code (ventuellement ensuite avec un langage).
Ne pas utiliser les instructions de type concatnation et recherche d'un caractre dans une chane.
Afpa
Page 57 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 58 de 118
28/09/2005
Support de formation
5.8. Palindrome
Dterminer si une chane de caractres est un palindrome.
Un palindrome est une phrase qui peut se lire dans les deux sens.
Les espaces sont ignors.
Exemple :
esope reste ici et se repose.
Le terminateur est ici un point.
Donnez l'algorithme du programme.
Afpa
Page 59 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 60 de 118
28/09/2005
Support de formation
5.9. Cryptage
Crypter une phrase en codant les lettres en fonction du mot o elles se trouvent.
Soit une phrase termine par un point.
Les espaces sont des sparateurs de mot et sont transcrits sans modification.
Il s'agit de la crypter en codant chaque mot suivant son rang dans la phrase.
Au mot de rang 1, on crypte ses lettres avec les lettres qui suivent dans l'alphabet.
Au mot de rang 2, on crypte ses lettres avec les lettres qui suivent de 2 caractres dans l'alphabet. etc ...
Par convention, la lettre suivant le caractre Z est le caractre A.
Les espaces sont des sparateurs de mot et sont transcrits sans modification.
Exemple :
Phrase :
Rang :
Rsultat :
Afpa
1 2
Page 61 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 62 de 118
28/09/2005
Support de formation
5.10. Comptage
Compter le nombre de mots dune phrase ayant une terminaison donne.
Soit une phrase termine par un point.
Les espaces sont des sparateurs de mot.
Il s'agit de donner le nombre de mots de la phrase ayant pour terminaison la chane intitule terminaison.
Exemple :
Caractre final : .
Phrase :
rien ne sert de courir il faut partir point il ne faut pas rire.
Terminaison :
rir
Rsultat :
1
Note : les terminaisons de longueur nulle indiquent la procdure qu'il faut renvoyer le nombre de mots de la
phrase.
Afpa
Page 63 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 64 de 118
28/09/2005
Afpa
Support de formation
Page 65 de 118
28/09/2005
Support de formation
5.11.1.
23
23
23
23
23
23
55
55
55
62
Afpa
Page 66 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 67 de 118
28/09/2005
5.11.2.
Support de formation
Le tri bulle
Le tri bulle est un tri plus astucieux. Son principe est de faire remonter petit petit un lment trop
grand vers le haut du tableau en comparant les lments deux deux.
Si l'lment de gauche est suprieur son voisin de droite on les inverse et on continue avec le suivant.
Lorsque l'on est en haut du tableau on repart au dbut et on s'arrte lorsque tous les lments sont
bien placs.
52 10 1 25 62 3 8 55 3 23
10 52 1 25 62 3 8 55 3 23
10 1 52 25 62 3 8 55 3 23
10 1 25 52 62 3 8 55 3 23
10 1 25 52 62 3 8 55 3 23
10 1 25 52 3 62 8 55 3 23
10 1 25 52 3 8 62 55 3 23
10 1 25 52 3 8 55 62 3 23
10 1 25 52 3 8 55 3 62 23
10 1 25 52 3 8 55 3 23 62
On a parcouru tout le tableau, on recommence, jusqu' ce que tout soit bien plac.
crire l'algorithme qui ralise ce tri.
Afpa
Page 68 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 69 de 118
28/09/2005
5.11.3.
Support de formation
23
23
23
23
23
23
23
23
62
Afpa
Page 70 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 71 de 118
28/09/2005
5.11.4.
Support de formation
Le tri par comptage consiste pour chaque lment du tableau compter combien d'lments
sont plus petits que lui, grce ce chiffre on connat sa position dans le tableau rsultat.
Afpa
52
10
25
62
55
23
7
8
4
5
0
1
6
7
9
10
1
2
3
4
8
9
1
3
5
6
10
23
25
52
55
62
Page 72 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 73 de 118
28/09/2005
5.11.5.
Support de formation
Le tri alphabtique
Le programme consiste saisir des mots (au maximum 10) de 20 caractres maximum et de les insrer
dans un tableau dans l'ordre alphabtique. Puis d'afficher ensuite ce tableau.
Le tableau rsultat est du type TABLEAU CAR [10,20].
Afpa
Page 74 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 75 de 118
28/09/2005
Afpa
Support de formation
Page 76 de 118
28/09/2005
Support de formation
Afpa
Page 77 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 78 de 118
28/09/2005
Support de formation
Afpa
Page 79 de 118
28/09/2005
Support de formation
Corrig
Afpa
Page 80 de 118
28/09/2005
Afpa
Support de formation
Page 81 de 118
28/09/2005
Support de formation
Afpa
Page 82 de 118
28/09/2005
Support de formation
6.1. Alternative
Afpa
Page 83 de 118
28/09/2005
Afpa
Support de formation
Page 84 de 118
28/09/2005
Support de formation
6.2. Alternative2
Afpa
Page 85 de 118
28/09/2005
Afpa
Support de formation
Page 86 de 118
28/09/2005
Support de formation
6.3. Boucle
Afpa
Page 87 de 118
28/09/2005
Afpa
Support de formation
Page 88 de 118
28/09/2005
Support de formation
6.4. Statistiques
Afpa
Page 89 de 118
28/09/2005
Afpa
Support de formation
Page 90 de 118
28/09/2005
Support de formation
6.5. Contraction
Afpa
Page 91 de 118
28/09/2005
Support de formation
6.6. Doublons
Afpa
Page 92 de 118
28/09/2005
Support de formation
6.7. Equivalence
Afpa
Page 93 de 118
28/09/2005
Afpa
Support de formation
Page 94 de 118
28/09/2005
Support de formation
6.8. Eparpillement
Afpa
Page 95 de 118
28/09/2005
Afpa
Support de formation
Page 96 de 118
28/09/2005
Support de formation
6.9. Inversion
Afpa
Page 97 de 118
28/09/2005
Afpa
Support de formation
Page 98 de 118
28/09/2005
Support de formation
6.10. Palindrome
Afpa
Page 99 de 118
28/09/2005
Afpa
Support de formation
28/09/2005
Support de formation
6.11. Cryptage
Afpa
28/09/2005
Afpa
Support de formation
28/09/2005
Support de formation
6.12. Comptage
Afpa
28/09/2005
Afpa
Support de formation
28/09/2005
Support de formation
6.13. Dichotomie
Afpa
28/09/2005
Afpa
Support de formation
28/09/2005
Afpa
Support de formation
28/09/2005
Support de formation
6.14. TriSelection
Afpa
28/09/2005
Afpa
Support de formation
28/09/2005
Support de formation
Afpa
28/09/2005
Afpa
Support de formation
28/09/2005
Support de formation
6.16. TriPermutation
Afpa
28/09/2005
Afpa
Support de formation
28/09/2005
Support de formation
Afpa
28/09/2005
Afpa
Support de formation
28/09/2005
Support de formation
Afpa
28/09/2005
Afpa
Support de formation
28/09/2005
Afpa
Support de formation
28/09/2005