Académique Documents
Professionnel Documents
Culture Documents
Apprendre à réaliser un
algorithme
ou comment résoudre un problème en
structurant la mise en œuvre d’une solution
Enjeu: Être plus efficace dans le bricolage de ma voiture
Étapes
ranger
et reprendre un objet
Puis-je appliquer cet enchainement au rangement de mon
univers Vélo?
Généralisation de la solution
• définition de l’univers
• enumération des objets par univers
Une mesure: « si je donne à mon programme une entrée de taille N, quel est l'ordre de
grandeur, en fonction de N, du nombre d'opérations qu'il va effectuer ? »
Complexité
Langage de
Instruction: Programmation: Pseudo code:
programmation:
Compilateur:
• le programme est traduit en une seule fois et stocké dans un exe
• plus rapide
• C, C++,…
Semi-compilé:
• combine les 2 techniques en compilant d’abord et en les interprétant ensuite
• Python, Java…
LE PSEUDO CODE
Écriture d’algorithme à l’aide d’un
vocabulaire simple
Enchainements
DE QUOI S’AGIT-IL?
Nombre fini
d’opérations
Méthodologie de conception:
analyse descendante
Ss Pbs Algorithme
Décomposition Recomposition
simples principal
• Ss Pb 1 • Algo 1
Problème •… •… Résolution
• Ss Pb X • Algo X
objectifs de la Méthodologie de conception
bloc bloc
ordonnancement d’instructions à d’instructions à
des instructions executer selon exécuter
circonstances plusieurs fois
• Écriture Exemple
Algorithme Tension
Algorithme <Nom>
Var P, I, U: réel Simple
<Déclaration des
Début
variables>
P 4400
Début
Syntaxe globale
I 20
<Bloc Instructions>
UP/I
Fin
Fin
LES VARIABLES
• Description exemple
Usage
• stocker des valeurs
• définitives
• intermédiaires • Var NomPiece
• où?
Var Nom_Piece
• mémoire Pc
Var NomPiece, NomFamille
Les Variables
Déclaration
• Nom
• simple, sans espace, sans
ponctuation
• Descriptions exemples
Taille: optimisée pour économiser ressources PC
numérique
•byte (0 à 255) • Var A :byte
•entier simple (-32 768 à 32767)
•entier long ( -2147483648 à 2147483647)
•réel simple (-3,4x1038 à 3,4x1038)
• Var coefA: réel double
•réel double (-1,79x10308"à 1,79x10308)
monétaire
•2 chiffres après la virgule, devise
• Var prixHT: monétaire
date
•numéro de série
•format
• Var dateEffet: date (jj/mm/yyyy)
Les Variables
Portée-Durée
• Var n: entier
n10
Tableau Entier: t(n) \\10 cases
Exercices
Valeurs des variables au cours et à la fin de
l’exécution
• Exo 1: Exo 2:
Var A, B, C: Entier
Var A, B : Entier Début
Début A←2 \\ A=2
Exercices Variables
Var A, B, C: entier
Exercices Variables
Var A, B, C: entier
Début Début
CA \\C temporaire D←A \\D temporaire
AB A←B
B←C
BC C←D
Fin Fin
• Exo 7: Exo 8:
A ← "100" \\ A="100"
B ← "200" \\ B= "200"
B ← "200" \\ B= "200"
C ← A+B \\ Erreur!
A ← A&B \\ A="100200"
Fin
Fin
LECTURE ET ECRITURE
exemple
Lecture: Récupérer
une valeur provenant VAR A,B: ENTIER
de l’extérieur (clavier) DÉBUT
Lecture / écriture
LIRE (A,B)
ECRIRE (A+B)
Écriture: Afficher une FIN
valeur ( écran)
Exercices
lecture/ecriture
• Exo 1: Exo 2:
Programme de caisse qui affiche le
montant à payer, le montant reçu et le
Programme qui demande un reste à rendre
nombre puis affiche le carré de ce
Exercices Lesture/Ecriture
SI <CONDITION> ALORS
< instruction1> SI TEMPERATURE < 50°C ALORS
[SINON "OK"
< instruction2>] SINON
FINSI "Arrêt système"
Sequentielle
FINSI
[SINON]: facultatif
• SI ALORS SINON IMBRIQUÉS SI ALORS SINONSI
SI <CONDITION1> ALORS
Si <CONDITION2> ALORS SI <CONDITION1> ALORS
< instruction1> < instruction1>
Conditions imbriquées
• >, >=
S>T //faux (Ascii)
3.une autre valeur T>S //vrai
• Et/Ou/Xor/Non Exemple
VAR Temperature, Pression: reel double
• les 2 conditions
ET doivent être Vrai pour
que le tout soit Vrai
Temperature45.5
Pression 175
SI Temperature<50 ET Pression<180 ALORS
"ok"
SINON
Conditions composées
"arrêt système"
• 1 condition doit être Finsi //ok
SI NON(Pression<180) ALORS
"ok"
• si 1 condition doit être
NON inversée
SINON
"arrêt système"
Finsi //arrêt
• SELON CAS exemple
SELON CAS <Variable> SELON CAS Temperature
CAS valeur1 CAS < 0
Ecrire "Température négative!"
<instruction1>
CAS < 50
CAS valeur2 Ecrire "ok"
<instruction2> CAS 50
CAS valeurX Ecrire "Optimal"
<instructionX> CAS < 100
Sequentielle
Algo Menu
Afficher un menu qui Var choixMenu:byte
Debut
permet à l’utilisateur Ecrire "Menu:
1:Resultats
après choix, d’accéder aux 2:Chantiers
sections suivantes: 3:Devis
Exercices Logiques
4:Facturation
Resultats, Chantiers, 5:Paramètres"
Devis, Facturation, Lire choixMenu
Selon cas choixMenu
Paramètres cas 1
Ecrire …
cas 5
…
FinSelon
Fin
STRUCTURES
ITÉRATIVES: les boucles
Usage
• répéter une série d’instructions
• possibilité d’imbriquer les boucles
Utilisation: (exemples)
• remplir un tableau
• parcourir des champs de formulaires
• itérer sur des milliers de lignes très rapidement
• trier des listes
2 types:
• classiques
• 2 formes:
• nombre d’itérations connues à l’avance gérées par un compteur
Les boucles
lire password
SI MDP <> password ALORS
Sinon
ECRIRE "Échec "
• Faire SINON
Instructions ECRIRE "Ok"
TantQue <expression booleenne> validetrue
• Faire FINSI
FinTantQue
Instructions
FIN
Jusqu’à <expression booleenne>
Exercices
• Exo 1 Exo 2
Créer et renommer 12 onglets même exo mais en créant dans
d’un classeur Excel avec les mois chaque feuille une liste des 5 sites de
de l’année en nombre (1…12) l’entreprises (type site1…site5)
verticalement qui commence à ligne 2
Var feui,lig: byte
Var feui: byte Debut
Pour feui1 à 12
Debut ajouter.feuille
Pour feui1 à 12 nom.feuilleactivefeui
ajouter.feuille Pour lig2 à 6
cellule(lig,1)"site"&lig-1
nom.feuilleactivefeui lig suivant
Boucles
i suivant
• Exo 4
Fin TantQue
1 ligne fait remonter la suivante…
Fin
les Tableaux
par l’exemple
Tableau
Propriétés
• taille statique ou dynamique ( redimensionnable)
• 1 ou plusieurs dimensions : Tableau Entiers : T(5,3) signifie 5 lignes sur 3 colonnes \\T(5,6,3)? 3 rangées 1 cube. etc.
• Reprenons l’exo 3 des Tableau String: T()
boucles en affectant le Var feui,lig,cx: byte
nom réel des Debut
commerciaux placés Tplage("Commerciaux").valeurs\\si 5 cx: T(1à5, 1à1)
verticalement dans une Pour feui1 à 12
ajouter.feuille
plage d’Excel; dans ce nom.feuilleactivefeui
cas Vba instancie Pour lig2 à 6
(declare) un tableau à 2 cellule(lig,1)"site"&lig-1
dimensions Pour cx1 à indiceSuperieur(T,1)\\1: 1 dimension(5)
ère
lig suivant
T(1 à N, 1 à 1) feui suivant
qu’est ce que cela fera? Fin
FONCTIONS
Usage
• Algorithme prédéfini livré avec le langage (comme les calculettes)
• librairie mathématique (trigo, géo, finance): sin, cos, loi.normale, etc.
• traitements de chaines de caractères (extraction, recherche,…)
Utilisation
• pendant toute la programmation
• en appel « exterieur » pour effectuer un traitement intermédiaire
Syntaxe
Description
• un nom
• 2 parenthèses
• de 0 à N arguments séparés par virgule(s)
nomFonction([Argument1],[Argument2], [Argument3],…)
• Principales textes Equivalent VBA
taille(chaine): nb caractères
it SUIVANT
Ecrire "Cette phrase a " & nb & "caractères"
Fin
• Exo2
Var phrase, voy: caracteres
nb, it:entier
Debut
Ecrire "Saisir une phrase"
Lire phrase
nb0
• Compter le nb de voy "aeiouy"
voyelles d’une phrase Pour it1 à taille(phrase)
SI trouve(voy,extraire(phrase,it,1)) >0 ALORS
nbnb+1
FINSI
Fonctions
it SUIVANT
Ecrire "Cette phrase a " & nb & « voyelles"
Fin
• Exo3
Fin
\\ la conversion affichera l’année (aaaa)
FONCTIONS PERSONNALISEES
Le compilateur repère le début du programme: la procédure Principale
n’existe pas en VBA ( ≈ evenement Workbook_Open si
appelée par le système d’exploitation on veut lancer à l’ouverture du fichier)
Fonctions personnalisées
FinProcedure FinSI
FinPour
FinProcedure
• Fonctions sans et avec arguments Exemple
Fonction NomFonction () en type Fonction AdditionnerPlage() en long
Instructions Var calc: double
Pour lig50 à 100
FinFonction
calccalc+cellule(lig,1)
FinPour
Fonction NomFonction(Arg1, [Arg2]) en type AdditionnerPlagecalc
SI Arg1=… ALORS \\exemple... FinFonction
instructions
NomFonction… Fonction testDroits(str en string) en bool
SINON Selon str
NomFonction … cas "Admin"
testdroitsVrai
Fonctions
FINSI
cas "User"
FinFonction tesdroitsFaux
FinSelon
FinFonction
• Exo1
Debut
• Ecrire un prog qui va avertissement
afficher un message Fin
Exercices Fonctions
d’avertissement au
moyen d’une sous procedure avertissement()
procedure Ecrire "La valeur saisie…"
FinProcedure
• Exo2
Var Msg: string
Debut
Msg"Erreur de…"
• idem précédent avertissement(Msg)
mais qui permettra …
Exercices Fonctions