Académique Documents
Professionnel Documents
Culture Documents
ILBOUDO Alfred
2021-2022
1
Plan
• Définition de l’informatique • Les Expressions
• Définition de l’ordinateur • Les Opérateurs
• Architecture générale d’un • Les Opérateurs arithmétiques
ordinateur • Evaluation expression logique
• Le logiciel • Structures conditionnelles
• Traitement de l’information • Structures itératives
• Notion de programme • Les structures algorithmiques
• Intérêt de l’algorithme élémentaires
• notion de langage de • Chaine de caractères
programmation • Tableaux
• Notion de l’algorithme • Procédures et fonctions
• Les étapes de résolution d’un • Compléments sur les tableaux
problème • La récursivité
• Structure de l’algorithme • Les structures
• Données élémentaires • Les pointeurs
• Structures de base • La gestion dynamique de la
• Exemple d’algorithme mémoire
• Méthodes de représentation des • Les Listes Chainées
algorithmes • Les Fichiers
Définition de l’informatique
L’Académie française en 1967 défini
l’informatique comme : "La science du
traitement rationnel, notamment par machines
automatiques, de l’information considérée
comme le support des connaissances humaines
et des communications dans les domaines
technique, économique et sociale"
3
Définition de l’ordinateur
En partant de la définition de l’informatique comme la
science du traitement rationnel de l’information, on peut dire
qu’un ordinateur est une machine qui traite automatiquement
l’information. L’information est fournie sous forme de
données (est la représentation d’une information sous une
forme conventionnelle (codée) destinée à faciliter son
traitement) traitées par des programmes (exécutés par des
ordinateurs). Un ordinateur est constitué de matériels
(hardware) et de logiciels (software).
4
Composition d’un ordinateur (1/2)
Un ordinateur se compose des éléments suivants :
• L’unité centrale, comportant elle-même :
- Le processeur, dont le rôle consiste à exécuter les
6
Le logiciel
Matériel = moyen physique à mettre en œuvre
Logiciel = moyen logique de mise en œuvre
On peut classer les logiciels en trois niveaux :
• Le système d’exploitation (Operating System ou OS en
anglais) a pour rôle de gérer le fonctionnement du matériel,
de manière que ce dernier exécute correctement les
instructions prévues
• Un logiciel outil a pour rôle de formaliser des fonctions
générales sous une forme utilisable par l’homme
• Un logiciel d’application a pour rôle de fournir un
traitement répondant à un besoin spécifique de l’utilisateur.
7
Notion de l’algorithme (1/3)
• Définition : un algorithme est un langage de description des
étapes nécessaires à la résolution d’un problème. Il décrit une
succession d’opérations à exécuter dans un certain ordre et suit
certaines conditions pour passer des données d’entrées
(données de départ ) au résultat. L’algorithme est donc une suite
ordonnée d'Operations permettant d’obtenir un résultat
déterminé.
• Tout algorithme est caractérisé par :
- Un début et une fin : c’est-à-dire contenir un nombre fini
d’opérations.
- L’algorithme doit utiliser des données connues par
l’utilisateur.
- Un ordre d’exécution de ces différentes opérations
déterminé par la logique d’enchaînement et conditionné par
les structures mises en œuvre. 8
Notion de l’algorithme (2/3)
• L’algorithme est le résultat d’une démarche logique de
résolution d’un problème pour la mise en œuvre pratique sur
ordinateur.
• l’Algorithmique est la logique d’écrire des algorithmes. Elle
est une étude comparatives des différentes algorithmes.
C’est-à-dire l’étude et la production de règles et techniques qui
sont impliquées dans la définition et la conception
d’algorithme.
• La suite d’opérations sera composée d’actions élémentaires
appelées instructions.
• Exemple : Ecrire un algorithme permettant de calculer et
d’afficher la surface d’un cercle.
9
Notion de l’algorithme (3/3)
L’algorithme doit respecter les règles suivantes :
10
Historique (1/2)
L’algorithmique est un terme d’origine arabe, comme l’algèbre.
11
Historique ( 2/2)
Pour Wikipedia : «Le domaine qui étudie les algorithmes est appelé
l'algorithmique. On retrouve aujourd'hui des algorithmes dans de
nombreuses applications telles que le fonctionnement des ordinateurs,
la cryptographie, le routage d'informations, la planification et
l'utilisation optimale des ressources, le traitement d'images, le
traitement de textes, la bio-informatique, etc. »
12
Efficacité d'un algorithme
L'efficacité d'un algorithme est mesurée notamment par :
13
Traitement de l’information
Le traitement de l’information correspond à effectuer l’une ou
l’autre des actions suivantes sur cette information : création,
modification, la saisie, la suppression, la lecture, l’écriture, le tri,
la fusion, le calcul, la comparaison …
15
Notion de programme
• C’est un ensemble d’instructions ( d’ordres ) nécessaires à
l’exécution d’une tâche donnée. Un programme est alors une
suite ordonnée d’instruction.
16
La notion de langage de programmation
La machine ne comprend que le langage binaire qui est d’un
maniement très difficile pour l’homme.
Pour passer de l’homme à la machine, c’est-à-dire du
langage naturel au langage binaire il existe une véritable hiérarchie
des langues. Homme
Langage naturel
traducteur
Langage binaire
Machine
17
Les étapes de résolution d’un problème
1) Comprendre l’énoncé du problème : qu’est ce qu’on me
demande comme résultat à obtenir. (Calculer la surface et
afficher).
2) Les données nécessaires : qu’est ce qu’il me faut avoir
comme information au départ pour pouvoir calculer la
surface du cercle ( il me faut un rayon).
3) Les données résultantes : A partir des informations de
départ comment obtenir le résultat qu’on me demande.
(Par la formule du surface S=∏R2)
4) La démarche à suivre pour arriver au résultat en partant
d’un ensemble de données
5) Elaboration d'un algorithme.
18
Structure de l’algorithme
ALGORITHME nom_algorithme
DEBUT
{*Suite d’instructions*}
FIN
19
Données élémentaires (1/5)
• Tout algorithme utilise des objets ou données élémentaires
comme par exemple des littéraux, des constantes ou des
variables :
– Variable : un objet appelé à subir des transformations au
sein de l’algorithme. C’est une donnée dont la valeur peut
changer au cour de l’exécution du programme qui l’utilise.
La variable porte toujours un nom. Une variable est un
nom donné à une zone mémoire.
– Constante : un objet non modifiable par l’algorithme. C’est
une donnée qui reste fixe pendant tout le déroulement du
programme.
– Littéral : valeur de type numérique ou alphanumérique ,
exemple : 15 ; 40.5 ; ‘Bonjour’.
20
Données élémentaires (2/5)
• Constante et variable se caractérisent par :
– Un identificateur : nom de l’objet ou de la donnée qui ne doit
pas contenir d ‘espace.
– Une valeur : contenu de l’objet.
– Un type : domaine où l’objet puise sa valeur.
• Exemples :
– Const
Pi=3.1416 (Constante du type numérique)
A="Ali" (Constante du type chaine de caractère)
– Var
Diametre, salaire : réel
21
Données élémentaires (3/5)
• Les règles portant sur un identificateur sont entre autres :
23
Données élémentaires (5/5)
Types d’objets existants :
Types d’objets Exemple de opérations
valeurs possibles
Booleen Vrai, Faux Comparaison(=,<,>,..),NON,ET,OU.
Caractère ''A'' Comparaison, conversion
Entier 45 123 arithmétiques classiques : + (addition), -
(soustraction), * (produit), DIV (division entière)
comparaison classiques : <, >, =, ...
Réel 12,345 arithmétiques classiques : + (addition), -
(soustraction), * (produit), / (division)
comparaison classiques : <, >, =, ...
Chaine ''Bonjour monsieur'' Comparaison, longueur, extraction,
concaténation.
Une variable de type caractère ne peut contenir qu'un seul et unique caractère.
En pseudo-code, une chaîne de caractères est toujours notée entre guillemets
24
Structures de base (1/4 )
• Déclaration des variables : elle consiste avant de pouvoir
utiliser une variable, d’effectuer une réservation de zone
memoire ou cellule mémoire en associant à ce dernier :
– Un nom de la variable
– Un type de données
• Syntaxe de déclaration d’une variable :
<Nom_de_la_Vaiable> <:> <Type_De_Données>
Exemple : salaire : réel
• Les commentaires : un commentaire est un texte ajouté à
l’algorithme(programme) servant à décrire certaines parties
afin de faciliter la compréhension des dites parties par les
humains mais ignoré par la machine pendant l’execution. Les
commentaires servent seulement à documenter l’algoritme.
On les note : " {* ceci est un commentaire *} "
25
Structures de base (1/4 )
• L’affectation : C’est l’attribution d’une valeur à une variable.
Cette valeur est placée dans une zone de la mémoire appelée
ZONE MÉMOIRE ou CELLULE MEMOIRE.
– Le symbole utilisé est : ←
– Exemple : A ← 5 ( affecté la valeur 5 dans la zone
mémoire appelée A)
C ← "BINTOU" ( affecté le mot "BINTOU"
dans la zone mémoire appelée C)
– Une instruction d’affectation ne modifie que ce qui est situé
à gauche de la flèche.
NB : On utilisera le signe "=" pour les tests d’égalité avec les
instuctions logiques
26
Structures de base (2/4 )
• L’initialisation : C’est l’attribution d’une valeur initiale
(valeur de départ) à une variable.
• L’incrémentation : c’est le fait d’ajouter une valeur
constante à l’ancienne valeur d’une variable.
Exemple : I ← I + 1
Nouvelle valeur de I Ancienne valeur de I avant
après l’incrémentation l’incrémentation
27
Structures de base (3/4)
• Instruction d’entrée ou Instruction de Lecture (Lire, Entrer) : C’est le
transfert de l’information d’une mémoire secondaire (disque dur, bande
magnétique, disque amovible) ou du clavier vers la mémoire centrale de
l’ordinateur. Instruction d’entrée autorise la saisie de l’information à partir du
clavier.
28
Structures de base (4/4)
• Les instructions de sortie (Ecrire, Afficher) : c’est le
transfert de l’information de la mémoire centrale de
l’ordinateur vers une mémoire secondaire , vers l’écran ou
vers l’imprimante. Les instructions de sortie autorisent :
– L’affichage des informations à l’écran.
– L’impression des informations sur papier
• Ecrire Nom_variable : permet d’écrire la valeur d’une
variable sur un support externe.
29
Exemple d’algorithme
ALGORITHME CalculSomme
VAR
A: entier
B , Somme : entier
Début
Somme ←0
Ecrire ('' Taper le premier nombre : '')
Lire A
Ecrire ('' Taper le deuxième nombre : '')
Lire B
Somme ← A+B
Ecrire ('' la somme est de : '', Somme)
Fin
Remarques :
• Les messages à afficher sont définis entre '' ''.
• On peut saisir plusieurs variables en une seule fois, séparées par une virgule.
• A la rencontre d’une instruction lire, le programme est interrompu.
• L’utilisateur doit alors entrer la donnée.
• La saisie est terminée par l’appui sur la touche entrée.
• Le déroulement du programme se poursuit.
• Le corps de l’algorithme qui fournit sa définition est défini entre Début … fin.
30
Notion langage Machine et Langage Evolué
• Si on programmait dans un langage directement
compréhensible par la machine, on devrait désigner nos
données par des adresses mémoires telles que 10011001 et
autres 01001001. De tels langages portent le nom
d’assembleur.
• Les langages informatiques plus évolués se chargent
précisément, d’épargner au programmeur la gestion
fastidieuse des emplacements mémoire et de leurs adresses.
31
Méthodes de représentation des
algorithmes (1/4)
On utilise plusieurs méthodes de représentation des algorithmes :
32
Méthodes de représentation des
algorithmes (2/4)
Les principaux symboles utilisés dans les organigrammes
Exemples : Pi 3.14
S R * R * Pi
33
Méthodes de représentation des
algorithmes (3/4)
• Les symboles de début et de fin
DEBUT
FIN
34
Méthodes de représentation des
algorithmes (4/4)
• Les entrées / sorties
Exemples :
LIRE R ECRIRE R
• Le test logique
Vraie Fausse
Conditions
A B
1- Les parenthèses
3- Les fonctions
39
Les expressions arithmétiques (3/3)
• Exemples
3^2+4 = 9+4=13
40
Exercice 1
1. Quel résultat produit le programme suivant ?
Debut
Var
a, b : entier
Début
a 461
ba*2
Ecrire a
Ecrire b
Fin
43
Les chaines de caractères
Fonctions Prédéfinies ou Primitives d’utilisation des chaînes de
caractères :
LONGUEUR (<chaine>) : donne le nombre de caractères d’une chaîne.
CONCAT (<chaine1>, <chaine2>) : renvoie la concaténation de deux
chaînes (ou plus).
SUBSTR (<chaine>, <début>, <nbre_caractères>) : extraction dans
<chaine> à partir de la position <début> de <nbre_caractères>.
RANG(<chaine1>, <chaine2>, <pos>) : recherche dans la chaine <chaine1>
la sous chaine <chaine2> à partir de la position <pos>. Si <chaine2> est
trouvée, la fonction produit la position du premier caractère de <chaine2>
dans <chaine1>, sinon 0.
CODE(<caractère>) : renvoie la valeur du code numérique lié au caractère
CAR(<nombre>) : restitue le caractère correspondant à cette valeur
numérique. CAR est la fonction réciproque de CODE
CVCHAINE (<nombre>) : transforme <nombre> en type chaine
CVNOMBRE (<caractères>) : transforme < caractères > en type numérique
44
Les chaines de caractères
EXEMPLE : RÉSULTATS
LONGUEUR ("étudiant") 8
CONCAT ("Bonjour", "à tous") "Bonjour à tous"
SUBSTR("Algorithmique",1,4) "Algo"
RANG("Informatique", "format", 2) 3
RANG("Informatique", "format", 4) 0
CODE("A") 65
CAR(65) "A"
CAR(CODE("A")) "A"
CVCHAINE(8) "8"
CVNOMBRE("8") 8
45
Exercice 6
1. Écrire un algorithme qui détermine si une chaîne est un
palindrome. Exemple : Ressasser
46
Les structures algorithmiques
élémentaires (1/3)
Tout problème, même très complexe, se décompose en
blocs logiques d’opérations simples. Chacun de ces blocs logiques
correspond à l’une des trois structures algorithmiques de base :
linéaire, répétitive ou alternative.
48
Les structures algorithmiques
élémentaires (3/3)
• Structure répétitive ou itérative ou les boucles : un ensemble
d’opérations est répété un certain nombre de fois avec des
données (généralement) différentes. Nous utilisons une
structure itérative lorsque l’action peut être exécutée 0 à N fois.
Autrement dit, lorsqu’il n’est pas exclu que les évènements
décrits se produisent 0 fois
Instructions
50
Structures conditionnelles (2/4)
L’instruction conditionnelle SI
- Exemple
SI (age>=15) ALORS
Ecrire nom
FINSI
- Format Organigramme
faux vrai
Age>=15
Ecrire nom
51
Structures conditionnelles
Ecrire l’algorithme permettant d’afficher la valeur absolue de la différence entre deux nombres
saisis au clavier. Exemple :
ALGORITHME ValeurAbsolue
VAR
resultat, Nombre1, Nombre2 : réel
DEBUT
{ * Initialisation de resultat *}
resultat 0
{ * Saisie des nombres*}
Ecrire (" Entrez la valeur du premier nombre")
Lire Nombre1
Ecrire (" Entrez la valeur du deuxième nombre")
Lire Nombre2
SI(Nombre1> Nombre2) ALORS
resultat Nombre1- Nombre2
FINSI
SI(Nombre1<Nombre2) ALORS
resultat Nombre2- Nombre1
FINSI
Ecrire ( " La valeur absolue de la différence de ", Nombre1, "et", Nombre2, "est", resultat)
FIN
52
Structures conditionnelles (3/4)
• L’instruction alternative SI….ALORS…SINON…FINSI
- Syntaxe
SI (<Condition>) ALORS
<Instructions>
SINON
<Instructions>
FINSI
<Instructions suivantes ou suite du programme>
- Format Organigramme
Vrai Faux
Conditions
Instructions 2 Instructions 1
53
Structures conditionnelles (4/4)
• Imbrication des SI : nous pouvons mélanger les structures
conditionnelles (SI…FINSI) et les structures alternatives
(SI…..SINON……FINSI)
- Syntaxe
SI (<Condition>) ALORS
SI (<Condition>) ALORS
SI (<Condition>) ALORS
<Instructions>
FINSI
FINSI
FINSI
<Instructions suivantes ou suite du programme>
54