SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Chapitre 1: Algorithme et
Programmation (Rappel)
Enseignante : Mme Imen Fadhli
Algorithme et Programmation
 Objectifs :
➢ Apprendre les concepts de base de l'algorithmique et de la
programmation.
➢ Être capable de mettre en œuvre ces concepts pour analyser des
problèmes simples et écrire les programmes correspondants.
 Plan :
➢ introduction à l’algorithmique et à la programmation
➢ Généralités sur l’algorithmique et les langages de programmation
➢ Notion de base de l’algorithmique
1 ére année 2019/2020
2
Généralités sur le traitement de
l’information
Les ordinateurs sont utilisés pour :
 Le traitement d’informations.
 Le stockage d’informations.
Le schéma global d’une application informatique est toujours le même :
1 ére année 2019/2020
3
La notion de programme
 Tout traitement demandé à la machine, par l’utilisateur, est effectué par
l’exécution séquencée d’opérations appelées instructions. Une suite
d’instructions est appelée un programme.
1 ére année 2019/2020
4
Un programme est une suite d’instructions permettant à un
système informatique d’exécuter une tâche donnée écrit dans
un langage de programmation compréhensible par un
ordinateur.
Retenir
Langages informatiques
 Un langage informatique est un code de communication, permettant à un
être humain de dialoguer avec une machine en lui soumettant des
instructions et en analysant les données matérielles fournies par le système.
 Le langage informatique est l’intermédiaire entre le programmeur et la
machine.
 Il permet d’écrire des programmes (suite consécutive d’instructions)
destinés à effectuer une tâche donnée.
 Exemple : un programme de résolution d’une équation du second degré
 Programmation : ensemble des activités orientées vers la conception, la
réalisation, le test et la maintenance de programmes.
1 ére année 2019/2020
5
Compilateur / Interpréteur
 Un compilateur est un programme qui traduit un texte écrit dans un
langage de programmation de haut niveau vers un code binaire prêt pour
exécution par l'ordinateur.
1 ére année 2019/2020
6
le schéma de principe de compilation
Compilateur / Interpréteur
 Le texte initial en langage de programmation est dit code source, et le
binaire généré est dit code objet.
 Un interpréteur est un programme qui exécute au fur et à mesure les
instructions d'un programme source (dit aussi script) sans avoir besoin de
traduire le source entier vers un code objet.
1 ére année 2019/2020
7
Schéma de principe de l'interprétation
Compilateur vs. Interpréteur
 Fonctionnalités :
 Un compilateur traduit (tout) le texte d'un programme, et n'assure pas son exécution.
 Un interpréteur "exécute" les instruction d'un programme au fur et à mesure. Il peut les
traduire ou pas.
 Compilateur conçu pour
 Signaler erreur de compilation
 Contrôle de type
 Développement de logiciel final de façon plus rigoureuse.
 Interpréteur conçu pour
 Mise au point facile (on voir le résultat du programme au fur et à mesure)
 Développement plus souple
 Utile pour prototypage
1 ére année 2019/2020
8
Langages de programmation
Deux types de langages:
 Langages procéduraux : Fortran, Cobol, Pascal, C, …
 Langages orientés objets : C++, Java, C#,…
1 ére année 2019/2020
9
Notion d’algorithme
 Un programme informatique permet de résoudre un problème,
 Un algorithme peut se comparer à une recette de cuisine:
✓ le résultat c’est comme le plat à cuisiner
✓ Les données sont l’analogues des ingrédients de la recette
 Les règles de transformations se comparent aux directives ou instructions
de la recette
1 ére année 2019/2020
10
Étapes de réalisation d’un programme
 D’où l’intérêt de l’Algorithmique
1 ére année 2019/2020
11
La réalisation de programmes passe
par l’écriture d’algorithme
D’où l’intérêt de l’Algorithmique
Algorithme
 Algorithme = méthode de résolution
 Algorithme vient du nom du célèbre mathématicien arabe Al Khawarizmi (Abu
Ja'far Mohammed Ben Mussa Al-Khwarismi)
 L’algorithme est un terme arabophone systématisé par le mathématicien Al
 Khuwarezmi.
 Un algorithme est une séquence d’instructions énoncés dans un ordre
séquentiel, appliquée sur un ensemble de données en entrée afin de donner
une solution à un problème donné (un résultat).
 Qualités: exact (fournit le résultat souhaité), efficace (temps d’exécution,
mémoire occupée), clair (compréhensible), général (traite le plus grand
nombre de cas possibles)
 Un algorithme s’écrit en un langage naturel avec des instructions universelles,
compréhensibles et indépendantes du langage de programmation
1 ére année 2019/2020
12
Structure générale d’un algorithme
 Dans un algorithme, on trouve deux parties essentielles :
 Une partie déclarative contenant tous les objets qui seront impliqués par les
différentes actions de l’algorithme (constantes, types, variables, etc.).
 Une partie réservée aux actions (en programmation, on dit les instructions) ;
elle est délimitée par les deux mots-clés Début et Fin.
 En outre, un algorithme est caractérisé par son nom qui devrait être
significatif.
1 ére année 2019/2020
13
Instructions de base
 Un programme informatique est formé de quatre types d’instructions
considérées comme des petites briques de base :
▪ l’affectation de variables
▪ la lecture et/ou l’écriture
▪ les tests
▪ les boucles
1 ére année 2019/2020
14
Notion de variable
 Une variable sert à stocker la valeur d’une donnée dans un langage de
programmation
 Une variable est une étiquette d’une case mémoire servant à stocker
provisoirement une donnée modifiable.
 Une variable dont le contenu ne peut être modifié par un algorithme est
appelée constante.
 Règle : Les variables doivent être avant d’être utilisées, elle doivent être
caractérisées par :
 Nom ou identificateur
 Type du contenu de la variable (entier, réel, caractère, chaîne de
caractères, ...)
1 ére année 2019/2020
15
Choix des identificateurs
 Le choix des noms de variables est soumis à quelques règles qui varient
selon le langage, mais en général:
 un nom doit commencer par une lettre alphabétique
Exemple valide: A1 Exemple invalide: 1A
 doit être constitué uniquement de lettres, de chiffres et du soulignement _
(Eviter les caractères de ponctuation et les espaces)
 Exemple valide: YEAR2019, YEAR_2019 Exemple invalide: YEAR 2019, YEAR-
2019,YEAR;2019
 doit être différent des mots réservés du langage (par exemple en java: int,
float, else, for, main ...)
1 ére année 2019/2020
16
Constante
 Une constante est une variable dont la valeur ne change pas au cours de
l'exécution du programme, elle peut être un nombre, un caractère, ou une
chaine de caractères.
 Exemple : pour calculer la surface des cercles, la valeur de pi est une
constante mais le rayon est une variable.
 Constante PI=3.14 : réel, MAXI=32 : entier
 Une constante doit toujours recevoir une valeur dès sa déclaration.
1 ére année 2019/2020
17
Affectation
 L’affectation consiste à attribuer une valeur à une variable (c’est-à-dire
remplir ou modifier le contenu d'une zone mémoire)
 En pseudo-code, l'affectation est notée par le signe ←
 Var← e : attribue la valeur de e à la variable Var
 Exemples : i ←1 ; j ←i
k ←i+j ; x ←10.3
OK ←FAUX ; ch1 ←"SMI"
ch2 ←ch1 ; x ←4 ; x ←j
 (avec i, j, k : entier; x :réel; ok :booléen; ch1,ch2 :chaine de caractères)
 Exemples non valides: i ←10.3 OK ←"SMI" j ←x
1 ére année 2019/2020
18
Exercice sur Affectation
 Donner les valeurs des variables A,B et C après exécution des instructions
suivantes:
 Variable: A , B , C : entier
Début
A 3
B 7
A  B
BA+5
CA+B
CB-A
Fin.
1 ére année 2019/2020
19
Notion de Type
1 ére année 2019/2020
20
 Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre.
 En pseudo-code, on va adopter la forme suivante pour la déclaration de
variables:
 Variables liste d’identificateurs: type
 Les principaux types utilisés en algorithmique sont :
✓ le type entier
✓ le type réel
✓ le type caractère
✓ le type chaîne de caractères
✓ le type logique ou booléen
Types des variables
 Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre. Les types
offerts par la plus part des langages sont:
 Type numérique (entier ou réel)
➢ Byte (codé sur 1octet): de [-27,27[ ou [0, 28[
➢ Entier court (codé sur 2 octets) : [-215,215[
➢ Entier long (codé sur 4 octets): [-231,231[
➢ Réel simple précision (codé sur 4 octets) : précision d’ordre 10-7
➢ Réel double précision (codé sur 8 octets) : précision d’ordre 10-14
 Type logique ou booléen: deux valeurs VRAI ou FAUX
 Type caractère: lettres majuscules, minuscules, chiffres, symboles,.. Exemples : ’A’, ’b’, ’1’,
’?’, …
 Type chaîne de caractère: toute suite de caractères Exemples: " " , " Nom, Prénom", "code
postale: 1000", …
1 ére année 2019/2020
21
Les instructions d’entrées et sorties :
lecture et écriture
 Les instructions de lecture et d'écriture permettent à la machine de
communiquer avec l'utilisateur
 La lecture permet d'entrer des donnés à partir du clavier
 En pseudo-code, on note: lire (var) la machine met la valeur entrée au
clavier dans la zone mémoire nommée var
 Remarque: Le programme s'arrête lorsqu'il rencontre une instruction Lire et
ne se poursuit qu'après la saisie de l’entrée attendue par le clavier et de la
touche Entrée (cette touche signale la fin de l’entrée)
1 ére année 2019/2020
22
Les instructions d’entrées et sorties :
lecture et écriture
 Les instructions d’entrées et sorties : lecture et écriture
 L'écriture permet d'afficher des résultats à l'écran (ou de les écrire dans un
fichier)
 En pseudo-code, on note: écrire (liste d’expressions) la machine affiche les
valeurs des expressions décrite dans la liste. Ces instructions peuvent être
des variables ayant des valeurs, des nombres ou des commentaires sous
forme de chaines de caractères.
 Exemple : écrire(a)
écrire(b+2)
écrire ("Message")
1 ére année 2019/2020
23
Exemple 1 : lecture et é Exemple :
lecture et écriture
 Écrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui calcule et
affiche le carré de ce nombre
Algorithme Calcul_du_Carre
Données : un entier
Résultats : le carre du nombre
variables A, B : entier
Début
écrire("entrer la valeur de A ")
lire(A)
B ← A*A
écrire("le carre de ", A, "est :", B)
Fin
1 ére année 2019/2020
24
Exemple 2 :
 Écrire un algorithme qui permet d’effectuer la saisie d’un nom, d’un prénom et affiche ensuite le
nom complet
Algorithme AffichageNomComplet
…
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
écrire("entrez le nom")
lire(Nom)
écrire("entrez le prénom")
lire(Prenom)
Nom_Complet ← Nom & " " & Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin
1 ére année 2019/2020
25

Mais conteúdo relacionado

Mais procurados

Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesInes Ouaz
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage Ccoursuniv
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithme: structures répétitives
Cours algorithme: structures répétitivesCours algorithme: structures répétitives
Cours algorithme: structures répétitivesInforMatica34
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheRiadh Harizi
 
Ch8 correction exercices (1)
Ch8 correction exercices (1)Ch8 correction exercices (1)
Ch8 correction exercices (1)abdellah12
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfFadouaBouafifSamoud
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéeMissaoui Abdelbaki
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
Cours Algorithme: Tableau
Cours Algorithme: TableauCours Algorithme: Tableau
Cours Algorithme: TableauInforMatica34
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NETAziz Darouichi
 
Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Fabio Hernandez
 
L’algorithme 1.pptx
L’algorithme 1.pptxL’algorithme 1.pptx
L’algorithme 1.pptxOkanimegamers
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en PythonABDESSELAM ARROU
 

Mais procurados (20)

Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de données
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithme: structures répétitives
Cours algorithme: structures répétitivesCours algorithme: structures répétitives
Cours algorithme: structures répétitives
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Cours de c
Cours de cCours de c
Cours de c
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-recherche
 
Ch8 correction exercices (1)
Ch8 correction exercices (1)Ch8 correction exercices (1)
Ch8 correction exercices (1)
 
01 correction-td smia-s2-info2
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2
 
Ch2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdfCh2-Notions de base & actions élémentaires.pdf
Ch2-Notions de base & actions élémentaires.pdf
 
cours algorithme et structure de données 1er année
cours algorithme et structure de données 1er annéecours algorithme et structure de données 1er année
cours algorithme et structure de données 1er année
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
Cours Algorithme: Tableau
Cours Algorithme: TableauCours Algorithme: Tableau
Cours Algorithme: Tableau
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NET
 
Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++
 
L’algorithme 1.pptx
L’algorithme 1.pptxL’algorithme 1.pptx
L’algorithme 1.pptx
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 

Semelhante a Algorithme et programmation.pdf

cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptxMED B
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)rezgui mohamed
 
Le langage C.pdf
Le langage C.pdfLe langage C.pdf
Le langage C.pdfNoamHaythem
 
Activité n°2 chap2
Activité n°2 chap2Activité n°2 chap2
Activité n°2 chap2zaynab baddar
 
0002- Introduction au Langage Pascal.ppsx
0002- Introduction au Langage Pascal.ppsx0002- Introduction au Langage Pascal.ppsx
0002- Introduction au Langage Pascal.ppsxBenacerLeila
 
Chapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfChapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfbenfifiaymen36
 
Compilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
CompilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnCompilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
Compilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnsaraayoub440
 
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...ATPENSC-Group
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfHailisara
 
presentation-compilateur.pptx
presentation-compilateur.pptxpresentation-compilateur.pptx
presentation-compilateur.pptxSaharSarraj
 
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfRedaBelattar
 
cours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationcours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationkamalomari2
 

Semelhante a Algorithme et programmation.pdf (20)

cours fortran.pptx
cours fortran.pptxcours fortran.pptx
cours fortran.pptx
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Asd
AsdAsd
Asd
 
Ktab asd
Ktab asdKtab asd
Ktab asd
 
Le langage C.pdf
Le langage C.pdfLe langage C.pdf
Le langage C.pdf
 
Activité n°2 chap2
Activité n°2 chap2Activité n°2 chap2
Activité n°2 chap2
 
0002- Introduction au Langage Pascal.ppsx
0002- Introduction au Langage Pascal.ppsx0002- Introduction au Langage Pascal.ppsx
0002- Introduction au Langage Pascal.ppsx
 
Chapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdfChapitre 0_ Introduction à la compilation.pdf
Chapitre 0_ Introduction à la compilation.pdf
 
Compilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
CompilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnCompilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
Compilationnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
 
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
 
Cours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdfCours_C_for_Etudiant.pdf
Cours_C_for_Etudiant.pdf
 
presentation-compilateur.pptx
presentation-compilateur.pptxpresentation-compilateur.pptx
presentation-compilateur.pptx
 
algo thrichi.pdf
algo thrichi.pdfalgo thrichi.pdf
algo thrichi.pdf
 
Langage C
Langage CLangage C
Langage C
 
compilation1-2020.pdf
compilation1-2020.pdfcompilation1-2020.pdf
compilation1-2020.pdf
 
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdfLUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
LUP IRT 2021_2022 - Cours - Programmation Python (Partie I).pdf
 
Cours compilation
Cours compilationCours compilation
Cours compilation
 
cours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationcours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'application
 
Microsoft07coursbaptiste
Microsoft07coursbaptisteMicrosoft07coursbaptiste
Microsoft07coursbaptiste
 
Tp introduction java
Tp introduction javaTp introduction java
Tp introduction java
 

Algorithme et programmation.pdf

  • 1. Chapitre 1: Algorithme et Programmation (Rappel) Enseignante : Mme Imen Fadhli
  • 2. Algorithme et Programmation  Objectifs : ➢ Apprendre les concepts de base de l'algorithmique et de la programmation. ➢ Être capable de mettre en œuvre ces concepts pour analyser des problèmes simples et écrire les programmes correspondants.  Plan : ➢ introduction à l’algorithmique et à la programmation ➢ Généralités sur l’algorithmique et les langages de programmation ➢ Notion de base de l’algorithmique 1 ére année 2019/2020 2
  • 3. Généralités sur le traitement de l’information Les ordinateurs sont utilisés pour :  Le traitement d’informations.  Le stockage d’informations. Le schéma global d’une application informatique est toujours le même : 1 ére année 2019/2020 3
  • 4. La notion de programme  Tout traitement demandé à la machine, par l’utilisateur, est effectué par l’exécution séquencée d’opérations appelées instructions. Une suite d’instructions est appelée un programme. 1 ére année 2019/2020 4 Un programme est une suite d’instructions permettant à un système informatique d’exécuter une tâche donnée écrit dans un langage de programmation compréhensible par un ordinateur. Retenir
  • 5. Langages informatiques  Un langage informatique est un code de communication, permettant à un être humain de dialoguer avec une machine en lui soumettant des instructions et en analysant les données matérielles fournies par le système.  Le langage informatique est l’intermédiaire entre le programmeur et la machine.  Il permet d’écrire des programmes (suite consécutive d’instructions) destinés à effectuer une tâche donnée.  Exemple : un programme de résolution d’une équation du second degré  Programmation : ensemble des activités orientées vers la conception, la réalisation, le test et la maintenance de programmes. 1 ére année 2019/2020 5
  • 6. Compilateur / Interpréteur  Un compilateur est un programme qui traduit un texte écrit dans un langage de programmation de haut niveau vers un code binaire prêt pour exécution par l'ordinateur. 1 ére année 2019/2020 6 le schéma de principe de compilation
  • 7. Compilateur / Interpréteur  Le texte initial en langage de programmation est dit code source, et le binaire généré est dit code objet.  Un interpréteur est un programme qui exécute au fur et à mesure les instructions d'un programme source (dit aussi script) sans avoir besoin de traduire le source entier vers un code objet. 1 ére année 2019/2020 7 Schéma de principe de l'interprétation
  • 8. Compilateur vs. Interpréteur  Fonctionnalités :  Un compilateur traduit (tout) le texte d'un programme, et n'assure pas son exécution.  Un interpréteur "exécute" les instruction d'un programme au fur et à mesure. Il peut les traduire ou pas.  Compilateur conçu pour  Signaler erreur de compilation  Contrôle de type  Développement de logiciel final de façon plus rigoureuse.  Interpréteur conçu pour  Mise au point facile (on voir le résultat du programme au fur et à mesure)  Développement plus souple  Utile pour prototypage 1 ére année 2019/2020 8
  • 9. Langages de programmation Deux types de langages:  Langages procéduraux : Fortran, Cobol, Pascal, C, …  Langages orientés objets : C++, Java, C#,… 1 ére année 2019/2020 9
  • 10. Notion d’algorithme  Un programme informatique permet de résoudre un problème,  Un algorithme peut se comparer à une recette de cuisine: ✓ le résultat c’est comme le plat à cuisiner ✓ Les données sont l’analogues des ingrédients de la recette  Les règles de transformations se comparent aux directives ou instructions de la recette 1 ére année 2019/2020 10
  • 11. Étapes de réalisation d’un programme  D’où l’intérêt de l’Algorithmique 1 ére année 2019/2020 11 La réalisation de programmes passe par l’écriture d’algorithme D’où l’intérêt de l’Algorithmique
  • 12. Algorithme  Algorithme = méthode de résolution  Algorithme vient du nom du célèbre mathématicien arabe Al Khawarizmi (Abu Ja'far Mohammed Ben Mussa Al-Khwarismi)  L’algorithme est un terme arabophone systématisé par le mathématicien Al  Khuwarezmi.  Un algorithme est une séquence d’instructions énoncés dans un ordre séquentiel, appliquée sur un ensemble de données en entrée afin de donner une solution à un problème donné (un résultat).  Qualités: exact (fournit le résultat souhaité), efficace (temps d’exécution, mémoire occupée), clair (compréhensible), général (traite le plus grand nombre de cas possibles)  Un algorithme s’écrit en un langage naturel avec des instructions universelles, compréhensibles et indépendantes du langage de programmation 1 ére année 2019/2020 12
  • 13. Structure générale d’un algorithme  Dans un algorithme, on trouve deux parties essentielles :  Une partie déclarative contenant tous les objets qui seront impliqués par les différentes actions de l’algorithme (constantes, types, variables, etc.).  Une partie réservée aux actions (en programmation, on dit les instructions) ; elle est délimitée par les deux mots-clés Début et Fin.  En outre, un algorithme est caractérisé par son nom qui devrait être significatif. 1 ére année 2019/2020 13
  • 14. Instructions de base  Un programme informatique est formé de quatre types d’instructions considérées comme des petites briques de base : ▪ l’affectation de variables ▪ la lecture et/ou l’écriture ▪ les tests ▪ les boucles 1 ére année 2019/2020 14
  • 15. Notion de variable  Une variable sert à stocker la valeur d’une donnée dans un langage de programmation  Une variable est une étiquette d’une case mémoire servant à stocker provisoirement une donnée modifiable.  Une variable dont le contenu ne peut être modifié par un algorithme est appelée constante.  Règle : Les variables doivent être avant d’être utilisées, elle doivent être caractérisées par :  Nom ou identificateur  Type du contenu de la variable (entier, réel, caractère, chaîne de caractères, ...) 1 ére année 2019/2020 15
  • 16. Choix des identificateurs  Le choix des noms de variables est soumis à quelques règles qui varient selon le langage, mais en général:  un nom doit commencer par une lettre alphabétique Exemple valide: A1 Exemple invalide: 1A  doit être constitué uniquement de lettres, de chiffres et du soulignement _ (Eviter les caractères de ponctuation et les espaces)  Exemple valide: YEAR2019, YEAR_2019 Exemple invalide: YEAR 2019, YEAR- 2019,YEAR;2019  doit être différent des mots réservés du langage (par exemple en java: int, float, else, for, main ...) 1 ére année 2019/2020 16
  • 17. Constante  Une constante est une variable dont la valeur ne change pas au cours de l'exécution du programme, elle peut être un nombre, un caractère, ou une chaine de caractères.  Exemple : pour calculer la surface des cercles, la valeur de pi est une constante mais le rayon est une variable.  Constante PI=3.14 : réel, MAXI=32 : entier  Une constante doit toujours recevoir une valeur dès sa déclaration. 1 ére année 2019/2020 17
  • 18. Affectation  L’affectation consiste à attribuer une valeur à une variable (c’est-à-dire remplir ou modifier le contenu d'une zone mémoire)  En pseudo-code, l'affectation est notée par le signe ←  Var← e : attribue la valeur de e à la variable Var  Exemples : i ←1 ; j ←i k ←i+j ; x ←10.3 OK ←FAUX ; ch1 ←"SMI" ch2 ←ch1 ; x ←4 ; x ←j  (avec i, j, k : entier; x :réel; ok :booléen; ch1,ch2 :chaine de caractères)  Exemples non valides: i ←10.3 OK ←"SMI" j ←x 1 ére année 2019/2020 18
  • 19. Exercice sur Affectation  Donner les valeurs des variables A,B et C après exécution des instructions suivantes:  Variable: A , B , C : entier Début A 3 B 7 A  B BA+5 CA+B CB-A Fin. 1 ére année 2019/2020 19
  • 20. Notion de Type 1 ére année 2019/2020 20  Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre.  En pseudo-code, on va adopter la forme suivante pour la déclaration de variables:  Variables liste d’identificateurs: type  Les principaux types utilisés en algorithmique sont : ✓ le type entier ✓ le type réel ✓ le type caractère ✓ le type chaîne de caractères ✓ le type logique ou booléen
  • 21. Types des variables  Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre. Les types offerts par la plus part des langages sont:  Type numérique (entier ou réel) ➢ Byte (codé sur 1octet): de [-27,27[ ou [0, 28[ ➢ Entier court (codé sur 2 octets) : [-215,215[ ➢ Entier long (codé sur 4 octets): [-231,231[ ➢ Réel simple précision (codé sur 4 octets) : précision d’ordre 10-7 ➢ Réel double précision (codé sur 8 octets) : précision d’ordre 10-14  Type logique ou booléen: deux valeurs VRAI ou FAUX  Type caractère: lettres majuscules, minuscules, chiffres, symboles,.. Exemples : ’A’, ’b’, ’1’, ’?’, …  Type chaîne de caractère: toute suite de caractères Exemples: " " , " Nom, Prénom", "code postale: 1000", … 1 ére année 2019/2020 21
  • 22. Les instructions d’entrées et sorties : lecture et écriture  Les instructions de lecture et d'écriture permettent à la machine de communiquer avec l'utilisateur  La lecture permet d'entrer des donnés à partir du clavier  En pseudo-code, on note: lire (var) la machine met la valeur entrée au clavier dans la zone mémoire nommée var  Remarque: Le programme s'arrête lorsqu'il rencontre une instruction Lire et ne se poursuit qu'après la saisie de l’entrée attendue par le clavier et de la touche Entrée (cette touche signale la fin de l’entrée) 1 ére année 2019/2020 22
  • 23. Les instructions d’entrées et sorties : lecture et écriture  Les instructions d’entrées et sorties : lecture et écriture  L'écriture permet d'afficher des résultats à l'écran (ou de les écrire dans un fichier)  En pseudo-code, on note: écrire (liste d’expressions) la machine affiche les valeurs des expressions décrite dans la liste. Ces instructions peuvent être des variables ayant des valeurs, des nombres ou des commentaires sous forme de chaines de caractères.  Exemple : écrire(a) écrire(b+2) écrire ("Message") 1 ére année 2019/2020 23
  • 24. Exemple 1 : lecture et é Exemple : lecture et écriture  Écrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui calcule et affiche le carré de ce nombre Algorithme Calcul_du_Carre Données : un entier Résultats : le carre du nombre variables A, B : entier Début écrire("entrer la valeur de A ") lire(A) B ← A*A écrire("le carre de ", A, "est :", B) Fin 1 ére année 2019/2020 24
  • 25. Exemple 2 :  Écrire un algorithme qui permet d’effectuer la saisie d’un nom, d’un prénom et affiche ensuite le nom complet Algorithme AffichageNomComplet … variables Nom, Prenom, Nom_Complet : chaîne de caractères Début écrire("entrez le nom") lire(Nom) écrire("entrez le prénom") lire(Prenom) Nom_Complet ← Nom & " " & Prenom écrire("Votre nom complet est : ", Nom_Complet) Fin 1 ére année 2019/2020 25