0% ont trouvé ce document utile (0 vote)
5 vues14 pages

Introduction à l'algorithmique et programmation

Transféré par

yasserakkaoui5
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues14 pages

Introduction à l'algorithmique et programmation

Transféré par

yasserakkaoui5
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Partie I : Généralités et algorithmique de base CPGE TANGER

« Un programme informatique ne fait jamais ce que vous voudriez qu’il fasse…


Il fait seulement ce que vous lui dites de faire… »

es algorithmes sont présents dans notre vie, nous les exécutons ou nous les faisons
exécuter tous les jours.
n informatique, l’ordinateur exécute aussi des algorithmes sauf qu’il est une machine non
intelligente, c’est-à-dire qu’il n’est pas capable de résoudre des problèmes sans une description
détaillée des actions à faire.

« Un algorithme est une description en langage naturel d’une suite finie d’actions (ou
d’instructions) à appliquer dans un ordre déterminé sur des données afin de résoudre un
problème ».

n ordinateur pour qu’il puisse effectuer des tâches aussi variées il suffit de le
programmer.
Effectivement l’ordinateur est capable de mettre en mémoire un programme qu’on lui fournit
puis l’exécuter. Plus précisément, l’ordinateur possède un ensemble limité d’opérations
élémentaires qu’il sait exécuter. Un programme est constitué d’un ensemble de directives,
nommées instructions, qui spécifient :
 les opérations élémentaires à exécuter
 la façon dont elles s’enchaînent.

Pour s’exécuter, un programme nécessite qu’on lui fournisse ce qu’on peut appeler «
informations données » ou plus simplement « données ». En retour, le programme va fournir
des « informations résultats » ou plus simplement résultats.

 Informations données: deux entiers a et b


 Les résultats: pgcd(a,b)

a programmation consiste, avant tout, à déterminer la démarche permettant


d’obtenir, à l’aide d’un ordinateur, la solution d’un problème donné.
e processus de la programmation se déroule en deux phases :
 Dans un premier temps, on procède à ce qu’on appelle l’analyse du problème posé ou
encore la recherche d’un algorithme qui consiste à définir les différentes étapes de la
résolution du problème. C’est la partie essentielle dans le processus de

15 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

programmation. Elle permet de définir le contenu d’un programme en termes de


données et d’actions.
 Dans un deuxième temps, on exprime dans un langage de programmation donné, le
résultat de l’étape précédente. Ce travail, quoi qu’il soit facile, exige le respect strict de
la syntaxe du langage de programmation.

ors de l’étape d’exécution, il se peut que des erreurs syntaxiques soient signalées, ce
qui entraîne des corrections en général simple ou des erreurs sémantiques plus difficiles à
déceler. Dans ce dernier cas, le programme produit des résultats qui ne correspondent pas à
ceux escomptés : le retour vers l’analyse sera alors inévitable.

onc, la résolution d’un problème passe tout d’abord par la recherche d’un algorithme.

’est le langage utilisé par un programmeur pour créer des applications exécutables par
un ordinateur. Les programmeurs utilisent divers langages de programmation pour écrire des
applications. Il existe des centaines. Un certain nombre de ces langages sont directement
compréhensibles par la machine. D'autres langages exigent des étapes intermédiaires de
traduction.

n langage informatique est par définition différent du langage machine. Il faut donc
le traduire pour le rendre intelligible du point de vue du processeur. Un programme écrit dans
un langage interprété a besoin d'un programme auxiliaire (l'interpréteur) pour traduire au fur
et à mesure les instructions du programme.

langage Python

16 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

n programme écrit dans un langage dit "compilé" va être traduit une fois pour toutes
par un programme annexe (le compilateur) afin de générer un nouveau fichier qui sera
autonome, c'est-à-dire qui n'aura plus besoin d'un programme autre que lui pour s'exécuter
(on dit d'ailleurs que ce fichier est exécutable).
programme écrit dans un langage compilé a comme avantage de ne plus avoir
besoin, une fois compilé, de programme annexe pour s'exécuter. De plus, la traduction étant
faite une fois pour toute, il est plus rapide à l'exécution. Toutefois il est moins souple qu'un
programme écrit avec un langage interprété car à chaque modification du fichier source
(fichier intelligible par l'homme: celui qui va être compilé) il faudra recompiler le programme
pour que les modifications prennent effet. D'autre part, un programme compilé a pour
avantage de garantir la sécurité du code source. En effet, un langage interprété, étant
directement intelligible (lisible), permet à n'importe qui de connaître les secrets de fabrication
d'un programme et donc de copier le code voire de le modifier. Il y a donc risque de non-
respect des droits d'auteur. D'autre part, certaines applications sécurisées nécessitent la
confidentialité du code pour éviter le piratage (transaction bancaire, paiement en ligne,
communications sécurisées, ...).

langage C, Pascal

istoriquement, plusieurs types de notations ont représenté des algorithmes. Il y a eu


notamment une représentation graphique, avec des carrés, des losanges, etc. qu’on appelait
des . Aujourd’hui, cette représentation est quasiment abandonnée, pour deux
raisons. D’abord, parce que dès que l’algorithme commence à grossir un peu, ce n’est plus
pratique du tout. Ensuite parce que cette représentation favorise le glissement vers un certain
type de programmation, dite non structurée, que l’on tente au contraire d’éviter.
C’est pourquoi on utilise généralement une série de conventions appelée «
», qui ressemble à un langage de programmation authentique dont on aurait évacué la
plupart des problèmes de syntaxe. Ce pseudo-code est susceptible de varier légèrement d’un

17 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

livre à un autre. C’est bien normal : le pseudo-code, encore une fois, est purement
conventionnel ; aucune machine n’est censée le reconnaître.

C’est une représentation graphique de l’algorithme. Pour le construire, on utilise des


symboles normalisés :

ette notation utilise un ensemble de mots clés et de structures permettant de décrire


de manière complète, claire, l’ensemble des opérations à exécuter sur des données pour
obtenir des résultats.

Un algorithme se compose de trois parties :

 L’en-tête : comprend le nom de l’algorithme


 Les déclarations : comprend la liste des données : des variables et des constantes
 Le corps : dans cette partie sont placées les instructions à exécuter (Les actions).

Un algorithme écrit en pseudo-code et qui permet de calculer et d’afficher la somme de


deux nombres réels :

L’en-tête
Algorithme Addition

Variables A,B,S : réel Les déclarations

18 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

Début

Afficher(‘Donner la valeur de A’)


Saisir(A)
Afficher(‘Donner la valeur de B’) Le corps
Saisir(B)
S A+B
Afficher(‘’La somme de A et B est :’’,S)
Fin

es algorithmes agissent sur des données qui peuvent être de types différents et qui
peuvent varier, ou rester constantes.

ne constante est une donnée fixe qui ne varie pas tout le long de l’algorithme. Elle est
caractérisée par : son et sa (fixe)

nom_constante = valeur_constante

:
 constante Pi=3.14
 constante g=9.8

ans un programme informatique, on va avoir en permanence besoin de stocker


provisoirement en mémoire des valeurs. Il peut s’agir de données issues du disque dur ou
fournies par l’utilisateur (frappées au clavier). Il peut aussi s’agir de résultats obtenus par le
programme, intermédiaires ou définitifs. Ces données peuvent être de plusieurs types : elles
peuvent être des nombres, du texte, etc. Dès que l’on a besoin de stocker une information au
cours d’un programme, on utilise une variable.

ne variable est un nom qui sert à repérer un emplacement donné de la mémoire. Cet
emplacement est réservé pour contenir une valeur d'un type bien déterminé et qui pourra
changer tout au long de l’algorithme

19 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

01010
TV
01011
. A
.
. X
.
.
. Prix_HT
.
.
.
.
11110

ette notion contribue considérablement à faciliter la réalisation des programmes. Elle


permet de manipuler des données sans avoir à se préoccuper de l’emplacement qu’elles
occupent effectivement en mémoire. Pour cela, il vous suffit tout simplement de leur choisir
un nom. Bien entendu, la chose n’est possible que parce qu’il existe un programme de
traduction (compilateur, interpréteur) de votre programme dans le langage machine ; c’est lui
qui attribuera une adresse à chaque variable. Le programmeur ne connaît que les noms TVA ,
X, Prix_HT… Il ne se préoccupe pas des adresses qui leur sont attribuées en mémoires.

Une variable est caractérisée par : son , son et sa :

 (on dit aussi identificateur) d’une variable, dans tous les langages, est formé
d’une ou plusieurs lettres ; les chiffres sont également autorisés à condition de ne pas
apparaître au début du nom. La plupart des signes de ponctuation sont exclus en
particulier les espaces. Par contre, le nombre maximum de caractères autorisés varie
avec les langages
 A un instant donné, une variable ne peut contenir qu’une seule valeur.
Bien sûr, cette valeur pourra évoluer sous l’action de certaines instructions du
programme.
 Le type d’une variable définit la nature des informations qui seront
représentées dans les variables (numériques, caractères…).

a première chose à faire tout au début de l’algorithme, avant de pouvoir utiliser des
variables, c’est de faire la déclaration des variables.
Lorsqu’on déclare une variable, on lui attribue un nom et on lui réserve un emplacement
mémoire. La taille de cet emplacement mémoire dépend du type de variable. C’est pour cette
raison qu’on doit préciser lors de la déclaration le type du variable.

a syntaxe d’une déclaration de variable est la suivante :

nom_variable : TYPE_variable
ou
nom1_variable, nom2_variable,… : TYPE_variable

20 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

ous les langages, quels qu’ils soient offrent un « bouquet » de types numériques, dont
le détail est susceptible de varier légèrement d’un langage à l’autre. On retrouve cependant les
types suivants :

i, j, k :

es variables peuvent contenir bien d’autres informations que des nombres. On dispose
également du type chaîne (également appelé caractère ou alphanumérique).
ans une variable de ce type, on stocke des caractères, qu’il s’agisse de lettres, de
signes de ponctuation, d’espaces, ou même de chiffres. Le nombre maximal de caractères
pouvant être stockés dans une seule variable chaîne dépend du langage utilisé.

nom :

Une variable de type booléen prend uniquement deux valeurs VRAI ou FAUX.

x:

’affectation est une attribution d’une valeur à une variable. Elle se note généralement
en algorithmique avec le signe 

21 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

nom_variable ← valeur
nom_variable ← EXPRESSION

Une instruction d’affectation ne change que ce qui est situé à gauche de la flèche.

Soit l’instruction a  23 ; Attribue la valeur 23 à la variable a


Soit l’instruction b  2+5 ; Attribue la valeur 7 à la variable b
Soit l’instruction a  b ; Attribue la valeur de la variable b à la variable a.

our programmer la communication entre l’ordinateur et l’extérieur on utilise les


instructions de lecture et écriture.

’est l’action qui permet à l’algorithme d’afficher pour son utilisateur des messages ou
des résultats de calculs

 Afficher un texte :
("texte à afficher")
 Afficher la valeur d'une variable :
(nom_de_la_variable)
 Mélange de texte et de valeurs :
("texte",nom_de_la_variable,"texte", nom_de_la_variable)

(‘’La surface ?’’) affiche La à l’écran


(S) affiche le contenu de la variable S à l’écran

Considérons l’algorithme suivant :

22 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

VARIABLE A : ENTIER
Début
A ← 12 ^ 2
Afficher(A)
Fin

Il permet de calculer et d’afficher le carré de 12. Le problème de cet algorithme, c’est que, si
l’on veut calculer le carré d’un autre nombre que 12, il faut réécrire l’algorithme.

En effet, il existe une instruction qui permet à l’utilisateur de faire entrer des valeurs au
clavier pour qu’elles soient utilisées par l’algorithme. La syntaxe de cette instruction de lecture
est :
 Lire une donnée :

 Lire plusieurs données :

orsque l’algorithme rencontre une instruction , l’exécution de l’algorithme


s’interrompt, attendant la saisie d’une valeur au clavier. Dès que l’on frappe sur la touche
ENTER, l’exécution reprend.

Avant de lire une variable, il est fortement conseillé d’écrire des libellés à l’écran, afin de
prévenir l’utilisateur de ce qu’il doit frapper. La même chose pour l’instruction d’écriture.

ne : est un ensemble de valeurs, reliées par des , et équivalente à une


seule valeur.

23 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

 5+3-5 ; l’expression est 5+3-5


 ‘Bien’+’venue’ ; l’expression est ‘Bien’+’venue’

n : est un signe qui relie deux valeurs pour produire un résultat, Parmi les
opérateurs, on distingue les fonctions et les opérateurs.

 La fonction permet de donner le résultat de la division entière d'un nombre par un


autre. 7 DIV 2 = 3
 La fonction (se lit Modulo), permet de donner le reste de la division entière d'un
entier par un autre. 7 MOD 2 = 1
· La fonction ** ou ^ permet d'élever un nombre à la puissance d'un autre. 2**3=8

 + : Addition  > : Supérieur


 - : Soustraction  < : Inférieur
 * : Multiplication  >= : Supérieur ou égal
 / : Division  <= : Inférieur ou égal
 ^ : Puissance  == : Egal
 != : Différent

&

Cet opérateur permet de concaténer ou de joindre deux chaînes de caractères

Il s’agit du , du et du

Priorité à la multiplication et à la division.

a structure la plus simple. Elle traduit une suite d’instructions élémentaires, exécutées
l’une après l’autre, dans un ordre logique.

24 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

lle se traduit par : si condition vraie, exécuter une ou plusieurs instructions

bloc d'instructions

Où est une expression à valeur booléenne lors de son exécution, l'expression


est évaluée. Si Val( )=Vraie, l'instruction est exécutée,
sinon rien n'est exécuté.

SI note > 0 ALORS


Afficher (''Note positive'')
FIN SI

La deuxième forme possible est :

bloc1 d'instructions

bloc2 d'instructions

i la mentionnée après est , on exécute le (ce qui figure


après le mot ); si la est fausse, on exécute le (ce qui figure
après le mot ).

25 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

SI note > 0 ALORS


Afficher (''Note positive'')
SINON
Afficher (''Note négative'')
FIN SI

l peut arriver que l'une des parties d'une structure alternative contienne à son tour une
structure alternative. Dans ce cas, on dit qu'on a des structures alternatives imbriquées les unes
dans les autres.

bloc1 d'instructions

bloc2 d'instructions

Bloc3 d'instructions

SI note > 0 ALORS


Afficher (''Note positive'')
SINON
SI note ==0 ALORS
Afficher (''Note nulle)
SINON
Afficher (''Note négative'')
FIN SI
FIN SI

On peut aussi écrire :

SI note > 0 ALORS


ECRIRE (''Note positive'')
FIN SI

SI note ==0 ALORS


ECRIRE (''Note nulle)
FIN SI

SI note <0 ALORS


ECRIRE (''Note négative'')
FIN SI

a première version est plus simple à écrire et plus lisible. Elle est également plus
performante à l’exécution. En effet, les conditions se ressemblent plus ou moins, et surtout on

26 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

oblige la machine à examiner trois tests successifs alors que tous portent sur la même chose : la
valeur de la variable note.
Mais aussi, et surtout, nous avons fait des économies sur le temps d’exécution de l’ordinateur.
Si la note est supérieure à zéro, celui-ci écrit «Note positive' » et passe directement à la fin,
sans être ralenti par l’examen des autres possibilités.

es conditions sont évaluées comme étant vraies ou fausses, si la condition est vraie,
alors on exécutera le premier bloc d'instructions, sinon ce sera le deuxième bloc qui sera
exécuté. Ces conditions sont souvent le résultat de comparaisons.
Les opérateurs de comparaison sont :

ertains problèmes exigent parfois de formuler des conditions qui ne peuvent pas être
exprimées sous la forme simple vu en dessus. A cet effet, la plupart des langages autorisent des
conditions formées de plusieurs conditions simples reliées entre elles par ce qu'on appelle des
opérateurs logiques. Ces opérateurs sont : , et .

 Pour que la condition complexe, soit , il


faut impérativement que la soit et que la soit .
 Pour que la condition soit , il suffit que
soit ou soit . Il est à noter que cette condition
complexe sera si et sont .
 Le inverse une condition : ( ) est si est
, et il sera si est .

'une manière générale, les opérateurs logiques peuvent porter, non seulement sur des
conditions simples, mais aussi sur des conditions complexes. L'usage de parenthèses permet
dans de tels cas de régler d'éventuels problèmes de priorité. Par exemple, la condition :
(a < 0 b > 1) (a > 0 b > 3) est si l'une au moins des conditions entre
parenthèses est VRAI.

a structure de répétition permet de répéter l’exécution d’une suite d’instructions


un certain nombre de fois. Sa syntaxe est :

compteur val_ initial val_final


Instructions à répéter

27 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>


Partie I : Généralités et algorithmique de base CPGE TANGER

 compteur : c’est ce qu’on appelle . C’est une variable de type entier.


 val_initial et val _final : sont respectivement la valeur initiale et la valeur finale prise
par le compteur. Ce sont des valeurs entières.
 A chaque itération, on ajoute 1 à compteur

boucle
i:entier

i  0 à 10
(i*i)

L’algorithme affiche les résultats suivants :

ette structure sert à répéter un ensemble d’instructions jusqu’à ce qu’une certaine


condition soit réalisée.

condition
Instruction 1
Instruction 2
.
.
.

boucle2
i:entier

i  0
i <=10
(i*i)
i  i+1

L’algorithme affiche les résultats suivants :

28 Prof : ZBAKH ABDEL ALI <zbakhabdou@[Link]>

Vous aimerez peut-être aussi