65
Programmation Impérative 2006-2007 Licence Physique Université Jean Monnet Ruggero G. PENSA

Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Programmation Impérative2006-2007

Licence PhysiqueUniversité Jean Monnet

Ruggero G. PENSA

Page 2: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Eléments d’algorithmique

Introduction

Variables

Opérateurs et expressions

Actions

Entrée/Sortie

Page 3: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Définitions

Algorithmedescription d’un ensemble d’étapes (instructions) à effectuer dans un ordre donné pour parvenir à un résultat

Langage de programmationlangage dans lequel un algorithme peut être traduit pour être compris par l’ordinateur

Programmedescription d’un algorithme dans un langage de programmation

Exemples Guide de montage d’un meuble IKEA/Conforama… Recette de cuisine

Page 4: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Types de langage

Pour vos algorithmes Langage naturel : français, anglais, italien… Langages formels : pseudo-code

Pour vos programmes Langages évolués : C, Pascal, Visual Basic, Delphi, Java…

Utile à savoir Langages assembleurs : mnémoniques Langages machines : ensemble de bits

Langages interprétés : Visual Basic, Matlab, Pearl… Langages compilés : C, Pascal, Cobol, ADA

Page 5: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Langage de programmation

Un langage de programmation est un langage formel avec une syntaxe bien définie, qui sert à coder des algorithmes et des structures de données dans une forme compréhensible par l’ordinateur

Un programme informatique est constitué d’une suite d’instructions (ou ordres) exécutées par l’ordinateur pour accomplir une tâche particulière

Dans un langage il est important à la fois Le contenu (le sens) La forme (la syntaxe, la grammaire)

Page 6: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Méthodologie de programmation

Problème

Algorithme

Programme(langage évolué)

Programme(langage machine)

Résultats

Analyse

Débogage

Révision Débogage

Conception

Exécution

Traduction (Compilation)

TD

TP

Page 7: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Qualités d’un algorithme

Correctbien faire ce qui est prévu

Completfaire tout ce qui est prévu

Efficaceexécution rapideavec peu d’occupation mémoire

Clairdoit être facilement lisible et évolutif

Page 8: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Introduction au formalisme

Un algorithme doit être compréhensible par plusieurs personnes

Exemple

Nom : addDeuxEntiersRôle : Additionner deux entiers Entrée : a, b : entierSortie : entierDéclaration :

débutretourner (a + b)

fin

Entête

Corps

Page 9: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Variable

Entité qui contient une information

Possède un nom (identifiant)

Possède une valeur

Possède un type (qui caractérise l’ensemble des valeurs que peut prendre la variable)

Est stockée dans la mémoire centrale de l’ordinateur

Page 10: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Variable

Analogie avec une armoire d’archive qui contiendrait des tiroirs étiquetés

Armoire Mémoire de l’ordinateur Tiroirs Variables Etiquettes Identifiants Contenu Valeur Couleur Type

Exemple : bleu pour les factures, rouge pour les bons de commande…

Page 11: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Type d’une variable

Caractérise L’ensemble des valeurs que peut prendre la variable L’ensemble des actions que l’on peut effectuer sur une variable

Toute variable doit être déclarée avant son utilisation (partie Déclaration) en lui associant un Type

Identifiant : Type Exemples

age : Naturel nom : Chaîne de Caractères sexe : Caractère moyenne : Réel

Une fois qu’un type est associé à une variable, on peut pas le changer

Une fois qu’un type est associé à une variable le contenu de cette variable doit être obligatoirement du même type

Page 12: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Types de données

Types simples Dénombrables (nombre d’éléments fini) Indénombrables (nombre d’éléments infini)

Types complexes Exemples

- nombre complexe (partie réelle + partie imaginaire)- etudiant (nom + prénom + moyenne)

Page 13: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Types de données simples

Dénombrables

Booléen : { VRAI, FAUX }les variables ne peuvent prendre que ces deux valeurs

Intervalle, ex, : [1..10]les variables ne peuvent prendre que les valeurs entières définies dans cet intervalle

Énuméré, ex : {rouge, vert, jaune}les variables ne peuvent prendre que les valeurs explicitées

Caractères : table ASCII

Page 14: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Dénombrables

Exemples célibataire : booléen mois : 1..12 minuscules : ‘a’..‘z’ jour : JoursDeLaSemaine

Déclaration : type JourDeLaSemaine = énuméré {lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche}

Page 15: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Types de données simples

Indénombrables

Entier (positifs et négatifs)

Naturel (entiers positifs)

Réel

Chaîne de caractéresExemple ’’cours’’ ou ’’TD d’algorithmique’’

Page 16: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Indénombrables

Exemples

age : naturel

taille : réel

nom : chaîne de caractères

Page 17: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Constante

Variable dont la valeur est fixée tout au début de l’algorithme et ne change pas lors de l’exécution de l’algorithme

Possède Un nom Un type Une valeur (fixe)

Exemples Pi : Réel 3.14159 Euro : Réel 6.55957 Répétitions : Entier 10

Page 18: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateurs, opérande et expression

Opérateur : symbole d’opération qui permet d’agir sur des variables ou de faire des calculs

Opérande : entité (variable, constante ou expression) utilisée par un opérateur

Expression : combinaisons d’opérateur(s) et d’opérande(s), evaluée durant l’exécution de l’algorithme.Possède une valeur (son interprétation) un type

Page 19: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateur, opérande et expression

Exemple : a + b

a : opérande gauche + : opérateur b : opérande droite a + b : expression

Si a vaut 2 et b vaut 3, l’expression a + b vaut 5 Si a et b sont des entiers, l’expression a + b est de

type entier

Page 20: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Type d’opérateurs

Unaire : un seul opérande(Exemple : non)

Binaire : deux opérandes(Exemple : +)

L’expression possède un seul type dans une expression chaque opérateur doit être associé au type de l’expression(Exemple : "J’ai" + 2 + "chats")

Seule exception tolérée : types arithmétiques(Exemple : 2 + 3.5)

Page 21: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Signification des opérateurs

Peut changer en fonction du type des opérandes

Par exemple

opérateur + avec des entiers aura pour sens l'addition2 + 3 vaut 5

Opérateur + avec des chaînes de caractères aura pour sens la concaténation"bonjour" + " tout le monde" vaut"bonjour tout le monde"

Page 22: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateurs sur les booléens

Quatre opérateurs

vraifauxfauxvrainon aa

fauxfauxfauxvraifauxvraivraivraifauxvraivraivraia ou bba

fauxfauxfauxfauxfauxvraifauxvraifauxvraivraivraia et bba

fauxfauxfauxvraifauxvraivraivraifauxfauxvraivrai

a ouExclusif bba

Page 23: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateurs sur les énumérés

Trois opérateurs succ : permet d'obtenir le successeur pred : permet d'obtenir le prédecesseur ord : permet d'obtenir le naturel de correspondant à la

position de l'élément dans la liste de l'énuméré

Exemplestype JoursDeLaSemaine succ Lundi vaut Mardisucc Dimanche vaut Lundi

pred Mardi vaut Lundipred Lundi vaut Dimanche

ord Lundi vaut 0ord Dimanche vaut 6

Page 24: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateurs sur les caractères

Quatre opérateurs (les trois des énumérés + car)

On considère la position dans la table ASCII

Exemples ord 'A' vaut 65 car 65 vaut 'A' pred 'A' vaut '@' succ 'b' vaut 'c'

Cf. man ascii

Page 25: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateurs arithmetiques

Pour les entiers : +, -, *, / Pour les réels : +, -, *, / Pour les naturels et les entières :div : division entièremod : reste de la division

Exemples 11 div 2 vaut 5 11 mod 2 vaut 1

Page 26: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateurs sur les chaînes de caractères

Concatenation : +

Exemple :"bonjour" + " tout le monde" vaut "bonjour tout le monde"

Page 27: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateurs de comparaison

= : opérateur d'égalitéon le retrouve chez tous les types simples et permet de savoir si deux opérandes sont égales

≠ : opérateur d'inégalité

<, >, ≤, ≥ : opérateurs de comparaisons pour les types possédant un ordre

Une expression de comparaison contenant un opérateur de comparaisons est de type booléenExemples 12 < 14 vaut VRAI "marco" = "zizou" vaut FAUX

Page 28: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Priorité des opérateurs

Tout comme en arithmétique, les opérateurs ont des prioritésExemple : * / + - (du plus prioritaire au moins prioritaire)

Pour les booléen :non, et, ouExclusif, ou

En cas de doute : utiliser les parenthèses

Page 29: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Actions sur les variables

Lecture d'une variable obtenir son contenu Il suffit de nommer la variable

Exemple : écrire(a)

Écriture d'une variable affecter un (nouveau) contenu à la variable en utilisant la procédure lire (a) en utilisant l'opérateur d'affectation ""

Syntaxe : identifiant expressionl'expression ne contient pas d'opérateur d'affectation

Page 30: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateur d'affectation

Qu'est-ce que ça veut dire c a + b ? On prend la valeur contenue dans la variable a On prend la valeur contenue dans la variable b On additionne ces deux valeurs On met ce résultat dans la variable c Si c avait auparavant une valeur, cette dernière est perdue

Exemple :- x 1 (on affecte la valeur 1 à la variable x)- x x + 1 (on ajoute 1 à la valeur contenue dans x, on

stocke le résultat dans x)- Résultat : incrémentation de la variable x d'une unité (x vaut 2)

Page 31: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Les entrées/sorties

Un algorithme a souvent des interactions avec l'utilisateur. Il peut Afficher un résultat (texte ou contenu d'une variable) Demander à l'utilisateur de saisir une information afin de la stocker

dans une variable

Affichage Commande écrire suivie entre parenthèses de la chaîne de

caractères entre guillemets et/ou des variables de type simple à afficher (séparées par des virgules)

Exemple :écrire("La valeur de la variable prix est ", prix, " Euros")

Saisie Commande lire suivie entre parenthèses de la variable de type

simple qui va recevoir la valeur saisie par l'utilisateur Exemple : lire(b)

Page 32: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Exemple d'algorithme

Nom : euroVersFrancRôle : Convertisseur des sommes en euros vers le franc, avec sisie de la

somme en euro et affichage de la somme en franc.Entrée : -Sortie : -Déclaration : constante tauxConversion : Réel 6.55957 variable valeurEnEuro, valeurEnFranc : Réeldébut écrire("Entrer votre valeur en euro : ") lire(valeurEnEuro) valeurEnFranc valeurEnEuro * tauxConversion écrire(valeurEnEuro, "euros = ", valeurEnFranc, " Fra")fin

Page 33: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Langage C

Introduction

Variables

Opérateurs et expressions

Instructions

Entrée/Sortie

Page 34: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Histoire

Développé en 1971 par Dennis Ritchie au sein des laboratoires Bell pour écrire le système UNIX

Spécifications publiées en 1978 dans l'ouvrage de Kerninghan et Ritchie : "The C Programming Language" (K&R C)

Norme AINSI C publiée en 1989 (ANSI C)

Page 35: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Compilation

.c

.h

.s .o

compilateur

assembleur

éditeur de liens

gcc –o exécutable source.c

fichier.cfichier.o

fichier exécutable

Page 36: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Compilation 2

.c

.h

.s .o

compilateur

assembleur

éditeur de liens

.c

.s .o

vert.c

bleu.c

vert.o

bleu.o

common.h

fichier exécutable

Page 37: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Séparateurs et commentaires

Espace, tab et retour à la ligne sont ignorées (mais utiles pour la mise en forme du fichier .c)

/* */ : commentaires (ignorés)/* ceci est un commentairesur plusieurs lignes */

; termine une déclaration ou une instruction simple , sépare deux éléments dans une liste (…) liste d'arguments {…} bloc ou liste d'initialisations […] dimension/sélection d'élements de tableaux

Page 38: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Structure d'un programme C

fin du bloc}corps du programme… ;variables… ;début du bloc{fonction principaleint main(int argc, char*argv[])fonctions… ;variables… ;prépocesseur#include <stdio.h>

Page 39: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Directives du procésseur

Commencent toujours par #Exemples : #include #define #ifdef

Quatre utilisations principales1. Inclusion de fichiers2. Constantes symboliques3. Macros4. Compilation conditionnelle

Page 40: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Variables

En C les variables sont caractérisées par

un identifiant

une portée

un type

une valeur

Page 41: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Identifiants

L'identifiant d'une variable est son nom

En C il est composé d'une suite de caractères parmi les lettres minuscules les lettres majuscules les chiffres "_" (underscore)

Le premier caractère est toujours "_" ou une lettre

Exemples (nom corrects)x x2 _x LePoint c_est_bon

Exemples (non incorrects)2x non' le.point hara-kiri

Page 42: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Identifiants 2

Distinction entre majuscules et minusculestoto ≠ Toto ≠ TOTO

Les mots réservés du langage C ne sont pas redéfinissables par le programmeur

caseswitchwhile

doforelseifcontinuebreak

returngotovolatilestaticregisterextern

autoconstsizeoftypedefunionstruct

enumunsigneddefaultsignedshortlong

voidasmdoublefloatcharint

Page 43: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Déclaration

On prévient le compilateur en début de bloc que l'on va utiliser une variable et le type d'éléments qui y seront stockés

Forme : <type> <identifiant> Exemple : int ma_variable

Page 44: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Affectation

On stocke une valeur dans la variable

Forme : <identifiant> = <contenu> ; Exemple : a = 3 ; (si a est une variable entière)

Page 45: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Initialisation

Déclaration + Affectation

Forme : <type> <identifiant> = <contenu> ; Exemple : int a = 3 ; (si a est une variable

èntiere)

Page 46: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Utilisation

On récupère la valeur qui est stockée dans la variable

Forme : <identifiant>Exemple : a + 2.5 (si a est une variable réelle)

Page 47: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Portée

La portée d'une variable définit où la variable peut être utilisée

En C une variable peut être utilisée à partir du moment où elle a été définie et jusqu'à la fin du bloc de déclaration

Page 48: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Portée Exemple

Variable a#include…int a ;… ;void test(int b){ if (a > b) { int c = b ; b = a ; a = b ; } ecrire(b) ;}void test2…

Page 49: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Portée Exemple

Variable b#include…int a ;… ;void test(int b){ if (a > b) { int c = b ; b = a ; a = b ; } ecrire(b) ;}void test2…

Page 50: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Portée Exemple

Variable c#include…int a ;… ;void test(int b){ if (a > b) { int c = b ; b = a ; a = b ; } ecrire(b) ;}void test2…

Page 51: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Types de base

void : type vide char : 'a' … 'b' … 'B' … '\n' … '\t' … '\014' int : 120 … -10 … 0123 … 0xfc … 0xFC float : 1.23 … -1.23 … 1.2345e+12 … 1. double : 1.23 … -1.23 … 1.23456789012345e+12 pas de type booléen en C Utiliser les entier

FAUX : 0, VRAI : tous les autres valeurs pas de type intervalle

Le type int possède 3 sous-typesshort, long et unsigned

Page 52: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Constantes

Les constantes sont des variables dont la valeur ne peut pas changer

Elles se déclarent comme des variables et sont affectées définitivement à ce moment là

Elles sont précédées du mot-clef constExemples const double Pi = 3.141592654 ; const int BufSize = 1024 ; const int VRAI = 1, FAUX = 0 ;

Elles ne peuvent pas être modifiées

Page 53: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Expressions

Une expression est un ensemble d'une ou de plusieurs opérations

Une expression a une valeur Types d'opérations :

arithmétiques logiques affectation et in/de-crémentation relations conversion de type

L'ordre d'évaluation dans une expression est déterminé par des règles de priorité et d'associativité

Le type de donné du résultat est déterminé par le type des opérandes

Page 54: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateurs arithmétiques

Pour les entiers et les réels

expr % exprmodulo (binaire)%

expr / exprdivision (binaire)/

expr * exprmultiplication (binaire)

*

expr – exprsoustraction (binaire)-

-exprsoustraction (unaire)-

expr + expr + …addition (binaire)+UsageFonctionOpérateur

Page 55: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateur d'affectation

Permettent de donner une valeur à une variable

int i, j ;i = 0 ;j = 1 ;

Attention : retourne la valeur affectéeint x, y ;x = y = -1 ; /* se lit : x = (y = -1) ; */

Combinaison possible avec un opérateur arithmétiquea = a + 2 ; a += 2 ;y = y / 4 ; y /= 4 ;x = x * (y + z) x *= y + z ;

Page 56: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateurs d'in/de-crémentation

L'opérateur ++ et l'opérateur – fournissent un moyen efficace pour compacter les écritures x++ ; post-incrémentation x-- ; post-décrémentation ++x ; pré-incrémentation --x ; pré-décrémentation

Significationx++ ; équivaut à x = x + 1 ;x-- ; équivaut à x = x – 1 ;

Page 57: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Opérateurs relationnels

Le résultat est une expression booléenne vraie ou fausse Lors de l'évaluation : arrêt de l'évaluation dès que la première

opérande est fausse, dans le cas de &&, ou vraie, dans le cas de ||

expr || exprou logique||expr && expret logique&&

!exprnon logique!expr <= exprinférieur ou égal<=expr < exprinférieur<

expr >= exprsupérieur ou égal>=expr > exprsupérieur>expr != exprinégalité!=expr == exprégalité==

UsageFonctionOpérateur

Page 58: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Instruction

Il existe deux types d'instruction

Instructions simples terminées par un ';'Exemple : a = 4 ; b++ ;

Instructions composées utilisant un bloc {…} Instructions conditionnelles Instructions d'itération

Page 59: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Instruction conditionnelle (exemple)

if (a < b){ c = b – a ; ecrire("Négatif") ;}else{ c = a – b ; ecrire("Positif ou zéro") ;}

Page 60: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Instructions d'itération

while (a < b){ a++ ; b-- ;}

for (i=1 ; i <= 10 ; i++) { somme += i ; produit *= i;}

Page 61: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Entrées

Entrées : scanf()

scanf("%c", &c) ;char c ;scanf("%f", &f) ;float f ;scanf("%lf", &d) ;double d ;scanf("%i", &i) ;int i ;instructionVariable

!!!

Page 62: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Sorties

Entrées : printf()

printf("%c", c) ;char c ;

printf("%lf", d) ;printf("%f", f) ;printf("%e", f) ; exponentielle

double d ;float f ;

printf("%i", i) ;printf("%d", i) ;printf("%x", i) ; héxadecimal

int i ;instructionVariable

Page 63: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Exemple d'algorithme

Nom : euroVersFrancRôle : Convertisseur des sommes en euros vers le franc, avec sisie de la

somme en euro et affichage de la somme en franc.Entrée : -Sortie : -Déclaration : constante tauxConversion : Réel 6.55957 variable valeurEnEuro, valeurEnFranc : Réeldébut écrire("Entrer votre valeur en euro : ") lire(valeurEnEuro) valeurEnFranc valeurEnEuro * tauxConversion écrire(valeurEnEuro, "euros = ", valeurEnFranc, " Fra")fin

Page 64: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Traduction en Langage C

#include <stdio.h>

const float tauxDeConversion = 6.55957 ;

int main(int argc, char *argv[]){

float valeurEnEuro, valeurEnFranc;printf("Entrer votre valeur en euros :") ;scanf("%f", &valeurEnEuros) ;valeurEnFranc = valeurEnEuro * tauxDeConversion ;printf("%f euros = %f Fra\n", valeurEnEuros,

valeurEnFranc) ;return 0 ;

}

Page 65: Programmation Impérative 2006-2007pensa/prog-L2-PCPA/cours1.pdf · 2006-10-04 · faire tout ce qui est prévu ... ord: permet d'obtenir le naturel de correspondant à la position

Récapitulatif

scanfprintf

lireécrire

EntréeSortie

E/S

a++ ;a-- ;+ - / * %! && ||== != < > <= >=

a a + 1a a – 1+ - / * mod et +. -. *. /.non et ou= ≠ < > ≤ ≥

incrémentationdécrémentationarithmétiquelogiquerelation

Opérateurs

int a ;a = 3 ;a

a : Entiera 3a

déclarationaffectationutilisationportée

Variables

void--intfloat / doublechar

-Booléen[1..10]EntierRéelCaractère

videbooléenintervalleentierréelcaractère

Types

Langage de programmationLangage C

Langage algorithmiquePseudo-code

Instruction

Depuis la déclaration jusqu'à la fin du bloc de déclaration