Documente Academic
Documente Profesional
Documente Cultură
Programmation
1) Structure de programmation
1. Instruction : Une instruction est un ordre simple excut par le processeur
Dans la plupart des langages une instruction s'crit sur une ligne et se termine par un ;
Exemple :
a=23 ; <= Instruction : on demande de copier la valeur 23 dans la variable a
b=b+1 ; <= Instruction : on demande au processeur de lire le contenu de la
variable b, de lui ajouter 1 et de copier le rsultat dans la variable b
2. Bloc d'instruction : Les instructions sont crites les unes aprs les autres pour former un
bloc d'instructions.
Exemple :
Instruction 1 ;
instruction 2 ;
En gnral le dbut et la fin de chaque bloc d'instructions sont marqus par un symbole
particulier :
- En Java, Javascript, C, C++, php,
{
}
- En vb, Pascal, Dephi, winder
begin
end
Exemple :
{
a=15 ;
c=a+18 ;
}
Dans un bloc d'instruction, les instructions sont excuts de manires squentielle : les
unes aprs les autres du haut vers le bas.
Chiffres de la base 16 :
Base 16 Base 10 Base 2
0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111
Exemple :
0xFE 254 1111 1110
Base 16 Base 10 Base 2
Remarque : Concatnation
La concatnation de chane de caractre est une opration qui assemble bout bout plusieurs
chanes de caractre.
L'oprateur de concatnation :
- en JS, java, C++,C# => le plus +
- en php => le point .
- en VB => le et commercial &
Exemple : En php
toto . titi tototiti
Exemple : En VB
toto & titi tototiti
Remarque : Comparaison
Deux chanes de caractres sont gale si et seulement si tous les caractres sont gaux 2 2.
toto est gal toto
toto est diffrent de tot
La comparaison avec les oprateurs < ou > utilise l'ordre lexigrophique (alphanumrique) pour
dterminer si une chane est plus grande que l'autre.
Les valeurs ASCII des caractres sont compares 2 2 en commenant par la gauche et en
progressant vers la droite tant qu'il y a galit. Ds qu'une valeur est plus grande que l'autre
alors la chane correspondante est dite plus grande.
3. Boulen :
Type binaire : 0 ou 1
Vrai/faux ou True/false tel que false=0 et true <> 0
N'importe quel valeur numrique entire diffrente de 0 est considre comme vrai.
Ainsi on a :
Objet.html
<label>Age :</label>
<input id="Zone de saisie age :">
<button onclick= Bouton_onclick (); > bouton </button>
<script>
function Bouton_onclick()
{
var zone = document.getElementById( ZoneSaisieAge ) ;
alert(zone.value) ;
}
</script>
Remarque : la balise script peut tre plac au dessus ou en dessous peut importe.
Le naviguateur HTML va compiler le script et la procdure ne se lancera que lorsque le bouton
ALGORITHME 10/11/11
3)
Variable :
Obligation de dclarer la variable par l'instruction "var"
Le type de variable sera dfini l'initialisation de la variable et non dfini tout de suite
l'inverse d'autre language (Java, C,C++,VB,CSharp) o l'on prcise tout de suite le type de variable.
Il y a mme des languages ou les variables ne sont pas dclar (php) mais alors l il faudra utiliser
une typologie specifique ($) pour que le compilateur reconnaisse les variables.
1. Definition :
Une variable est un espace mmoire (dans la RAM) nomm (toute variable possde un nom
unique) destin stocker une valeur ( la fois) d'un type dtermin.
Le type de valeur de la variable conditionne la taille de l'espace mmoire allou pour la variable
ainsi que la manire utilise pour crire ou lire une valeur dans cet espace mmoire.
En gnral, avant d'utiliser une variable ou la declare avec une instruction prvue cet effet.
Sur 32 bits = 24 bits pour la mantisse (ou significande) 1 pour le signe et le reste pour l'exposant
Sur 64 bits
pour les chaines de caractre = nombre de caractre (1 octet code ASCII/caractre + 1 pour le
terminaison (octet 0)
ALGORITHME 10/11/11
Declaration de variable en JS :
var nomdevariable = valeur ;
Exemple :
var i = 1 => variable entiere Int
var s = toto => variable de chaine String
var f = 1,23 => variable rel Float
ParseInt( 123 )
fonction qui analyse et convertie la chaine de caractre en valeur entire de type Int
ParseFloat( 123 )
fonction qui analyse et convertie la chaine de caractre en valeur rel de type Float
RQ : noms de variable
1. un nom de variable doit tre unique l'interieur du bloc d'instruction dans lequel elle est
dclare.
Exemple :
{
var a = 1 ;
.
var a = 1,23 ; Erreur de compila^on
}
{
var a = 2 ; L cela fonc^onne
}
2. Un nom de variable commence par une lettre ou caractre soulign (underscore) suivi par des
lettres, chiffres non soulign
variable = expression
|Valeur simple
|Calcul
|Appel de fonction
Exemple :
a=1;
a= b + 2*c ; => calcul avec des variables en 2 temps : 1. Le caclul est execut et produit une
valeur resultat
2. Le resultat est copi dans la variable
a = parseInt( 123 ) ; => en 2 temps : 1. la foction est excute et renvoie une valeur resultat
2. La valeur resultat est dans la variable a
Exemple :
a b
var a, b ; Undefined Undefined
var a =1 ; 1 Undefined
var b =2 ; 1 2
b=b+a-3 ; 1 0
a=a+2 ; 3 0
b=b+a-3 ; 3 0
a=a*3+b ; 9 0
b=b+a-3 ; 9 6
Difficult de la programmation
Systeme complexe =
Ce que va produire le programme n'est qu'une proprit emergeante de l'execution de toute les
instructions du programmes
ALGORITHME 10/11/11
Definition a
var a, b ; Undefined
var a =1 ; 1
while (a < 10) 1
{ }Corp de boucle 1
a=a+1 } 2
{ } 2
2
2
var a =1 ;
a = a + 2;
Incrmente le contenu de a de la valeur 2
A l'inverse :
a=a-3
Dcremente le contenu de a de la valeur 3.
Instructions spciale pour l'incrmentation et la dcrementation (C, C++, Java, JS, php) :
a += 2; quivalent a = a+2; Mme plus rapide l'execution
a-=3; quivalent a = a+2;
a++; quivalent a= a +1
a --; quivalent a = a-1;
Instructions similaire pour les produits et les divisions (C, C++, Java, JS, php) :
a=a*2;
Exemple :
Augmenter de 10% le contenu d'une variable prix
prix = prix *1,1
Aprs execution de cette ligne, la valeur de la variable prix est augment de 10%
Autre notation :
a = a *2 <=> a*=2
a = a/3 <=> a/ =3
ALGORITHME 10/11/11
Concatation droite
var nom ="DUPONT"
nom = nom + "est"
non = nom + "est un Monsieur"
Exemple de programme qui crit une phrase gramaticalement juste de presentation d'une
personne partir du contenu des variale
nom "Durant"
prenom "Vlarie"
Sexe F
Age 30 an
sexe "F"
"m"
"age
"ag"
Age ==1 "an"
> 1 "ans"
L'ide est de cummuler dans une variable plusieurs valeurs au travers d'une addition, soustraction,
ou multiplication ou division.
ALGORITHME 10/11/11
Exemple d'un programme qui demande l'utilisateur de saisir 10 valeurs entire et qui calcule la
somme des 10 valeurs
En conclusion il faut crire une boucle qui execute 10 itrations et chaque itration on fait le
traitement.
Il faut une boucle de comptage qui compte de 1 en 1 . Exemple de boucle de comptage :
var i =1;
while ( i <=10)
{
=> Le corp de boucle est excut 1 fois
i++;
}
Il reste convertir la boucle par le traitement.
(1) On utilise une variable valeur pour stocker la valeur saisie par l'utilisateur.
- On utilise la fonction prompt pour demander l'utilisateur et rcuprer la valeur saisie
- Comme prompt retourne une chaine de caractre on utilisera la fonction parseInt pour convertir
la chaine en nombre entier de telle sorte pouvoir faire une addition
(2) On utilise une variable resultat pour cumuler successivement les valeurs saisies.
La variable rsultat sera initialise 0.
var valeur;
var resultat=0;
var i = 1;
while (i<=10)
{
valeur = prompt ("Entrer une valeur");
valeur = parseInt(valeur);
resultat=resultat + valeur;
i++
}
A chaque itration, on incrmante la variable resultat du contenu de la variable valeur.
Exemple : Avec la multiplication, similaire sauf que la variable resultat devra tre initialis 1 au
lieu de 0
var valeur;
var resultat=1;
var i = 1;
while (i<=10)
{
valeur = prompt ("Entrer une valeur");
valeur = parseInt(valeur);
resultat=resultat * valeur;
ALGORITHME 10/11/11
i++
}
De cet exemple nous pouvons ecrire un programme qui calcule une factorielle :
On utilise la variable i qui s'incremente de 1 en 1 chaque fois.
Pour calculer la factorielle on aura alors :
var valeur;
var resultat=1;
var i = 1;
while (i<=10)
{
valeur = i;
valeur = parseInt(valeur);
resultat=resultat * valeur;
i++
}
Pour automatiser le processus et fair eun programme qui demande un nombre entier l'utilisateur
et en calcul la factorielle.
On ajoute une nouvelle variable fact
var valeur;
var fact;
var resultat=1;
var i = 1;
while (i<=fact)
{
valeur = i;
valeur = parseInt(valeur);
resultat=resultat * valeur;
i++
}
Ou en simplifiant :
var fact;
var resultat=0;
var i = 1;
while (i<=fact)
{
i = parseInt(i);
resultat*=i;
i++
}
ALGORITHME 10/11/11
Variable locale/globale
Une variable dclare l'interieur d'un bloc d'instruction est dite locale ce bloc est n'est
accessible qu' l'interieure du bloc.
A la fin du bloc la variable et sa valeur sont supprims.
Exemple :
{
----------------- ; => La variable a n'existe pas encore
var a = 1; => a est une variable locale uniquement visible au sein du bloc et
----------------- au sortir du bloc elle disparait.
----------------- => Domaine de visibilit de la variable a
} => La variable et sa valeurs sont dtruites.
A contrario une variable dclare en dehors de tout bloc est une variable dite globale.
Elle est accessible de n'importe o dans le programme, et sa dure de vie correspond la dure
d'execution du programme.
Exemple :
var a =1; => variable globale
{
var b =2; => variable locale
----------------;
----------------;
}
{
var b =3; => variable locale
var c =1;
var a =10;
---------------;
}
Je peux dclarer une variable locale a alors qu'il existe dj une variable globale a.
La variable locale va tre prpondrante sur la variable globale au sein d'un bloc.
Dans un bloc si on a une variable locale de mme nom qu'une variable gloable dj existante, la
variable locale est prioritaire.
ALGORITHME 10/11/11
Exemple : TP calculatrice
<script/>
function V(chiffre)
{
var valeur = document.getElementByID("valeur"); => valeur est une variable locale
valeur.value = valeur.value + chiffre;
}
function efface()
{
var valeur = document.getElementByID("valeur"); => valeur est une variable locale
valeur.value = "";
}
</script>
Remarque : Pour acceder la chaine de caractre contenu dans l'imput ID, on utilise la
commande .value
function V(chiffre)
{
valeur.value = valeur.value + chiffre;
}
function efface()
{
valeur.value = "";
}
</script>
Attention : en declarant la variable globale le programme va executer le script avant les balises
ALGORITHME 10/11/11
html. Les objets HTML sont cr aprs le script et cela risque de generer une erreur.
Recommandation :
Prfrer les variables locales au variables globales. Limiter l'utilisation des variables globales pour
ne pas polluer le programme.
ALGORITHME 10/11/11
Traitement conditionnels
Cas simple :
If (condition) instruction ;
Si la condition est vraie l'instruction est execute, sinon on passe l'instruction suivante.
If (condition)
{
instruction 1 ; VRAI condition FAUX
instruction 2 ;
}
Else Condition 1 Condition 1
{ Condition 2 Condition 2
instruction 1 ; Condition 3 Condition 3
instruction 2 ;
}
Ici le bloc vert est excute quand la condition est vraie et sinon c'est le bloc bleu qui s'execute
Remarque :Comme pour le if, else peut s'utiliser avec juste une instruction.
Cas du Else If
If (condition 1)
{ VRAI FAUX
Condition 1
instruction 1 ;
}
else if (condition 2) instruction 1
{ Condition 2
instruction 2 ;
} instruction 2 instruction 3
else
{
instruction 3 ;
ALGORITHME 10/11/11
Les blocs sont exclus mutuellement : a partir du moemnt ou un bloc est execut les autres ne
s'executent pas.
Conditions
Conditions simple
- resultat d'une condition est boulen (true/false)
- comparaison entre valeur d'expression, en utilisant des oprateur de comparaison.
- Egalit : expression == expression
l'expression de gauche est calcule ainsi que celui de droite et leur resultat sont compars.
s'ils sont gaux la condition renvoi true sinon false
a == 1 : compare le contenu de a avec la valeur 1
a+1 == a x 2 : compare le resultat des 2 expression.
Attention pige :
If (a =1 ) => Oprateur d'affectation qui copie la valeur dans a.
Conditions composes
Conditions composes de conditions simples spares par des oprateurs logiques (boulen.)
Les oprateurs s'excutent selon un ordre de priorit : Priorit forte -> Priorit faible
( ), ! , && , ^ , ||
ALGORITHME 10/11/11
Exemple :
Appartenance d'une valeur un intervalle de 2 valeur :
if ( v >= min && v <=max)
vrai si v est comprise entre min et max
MIN MAX
De manire gnrique on a :
Switch (expression)
{
case valeur 1 :
.......................... ;
.......................... ;
case valeur 2 :
{
.......................... ;
.......................... ;
}
case valeur 3 :
.......................... ;
break ;
case valeur 4 :
.......................... ;
break ;
default :
........................... ;
............................ ;
}
Exemple :
Switch (choix)
{
case 1 :
Eliminer ("Charles") ;
break ;
case 2 :
Eliminer (" Claudine");
case 3 :
Eliminer ("Henri");
break ;
case 4 :
Eliminer ("Laurent");
break ;
default :
print ( "Mauvais choix");
}
Choix Personnes limines
1 Charles
2 CLaudine et Henri
3 Henri
4 Laurent
ALGORITHME 10/11/11
Exemple :
On veut stocker les donnes nom, prenom, datenaissance, numcompte d'une personne
On va ainsi crer un type structur Personne contenant les champs destins recevoir les valeur
d'une personne.
En algorithme :
p.nom = 'DUPOND'
p.prenom = 'Alain'
p.datenaissance = '01/04/1989'
p.numcompte = 123456
P : Personne
DUPOND
Alain
01/04/1989
123456
A partir d'un type structur on peut crer des variavbles de ce type, qui contiendront autant de
valeurs que de champs prcis dans le type.
Le genre de variable est appel structure.
Pour accder un champ d'une variable structure, on utilise la syntaxe : nomvariable.nomchamp
Exemple : p.datenaissance = '01/04/1989'
On peut aussi crer des tableaux partir de type structur o chaque case contient alors tous les
champs spcifis dans le type.
ALGORITHME 10/11/11
Exemple :
En Algorithmique :
t [ 5 ] : Personne
nom
0 prenom
datenaissance
numcompte
nom DURAND
1 prenom Marcel
datenaissance
numcompte
En Javascript :
Il n'existe pas de type en gnral et de type structur mais on peut crer des valeurs structurs
que l'on appelle objet.
La cration et mise jour des champs se fait la vole.
En Javascript :
var p = {}; Dclaration de la variable p initialise avec une variable structure ou objet vide.
p.nom ="DUPOND";
p.prenom = "Marcel"; On met jour des valeurs
p.datenaissance = "01/04/1989"; de p en mme temps que
p.numcompte = 123456; l'on definit les champs
Notation GISON :
var p = { "nom" : "DUPOND", "prenom" : "Marcel", "datanaissance" : "01/04/1989",
"numcompte" : 123456};