1 of 31

Chapitre 2 :�les éléments de base d’un algorithme et leur représentation en langage C

MIPC

1

2019/2020

2 of 31

Notion de Commentaire et de Constante

  • Les commentaires :
  • Pour permettre une interprétation aisée de l’algorithme, il faut utiliser des commentaires.
    • Mot Clé : co ceci est un exemple fco
  • Les constantes
  • Elles représentent des chiffres, des nombres, des caractères, des chaînes de caractères, … dont la valeur ne peut pas être modifiée au cours de l’exécution de l’algorithme.
    • Mot clé : const
  • Exemple:

co ceci est un exemple fco

CONST

PI←3.1415927:réel

MIPC

2

2019/2020

3 of 31

Notion de variable

  • Dans les langages de programmation une variable sert à stocker la valeur d’une donnée

  • Une variable désigne en fait un emplacement mémoire dont

le contenu peut changer au cours d’un programme (d’où le nom variable)

  • Règle : Les variables doivent être déclarées avant d’être utilisées, elle doivent être caractérisées par :

    • un nom (Identificateur)
    • un type (entier, réel, caractère, chaîne de caractères, …)

MIPC

3

2019/2020

4 of 31

Notion de variable : Choix des identificateurs (1)

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)
    • valides: SMI2007, SMI_2007 invalides: SMI 2007, SMI-2007, SMI;2007
  • doit être différent des mots réservés du langage (par exemple en : const, var, si sinon, tantque….
  • La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage utilisé

MIPC

4

2019/2020

5 of 31

Notion de variable : Choix des identificateurs (2)

Conseil: pour la lisibilité du code choisir des noms significatifs qui décrivent les données manipulées

exemples: TotalVentes2006, Prix_TTC, Prix_HT

Remarque: en pseudo-code algorithmique, on va respecter les règles, même si on est libre dans la syntaxe.

MIPC

5

2019/2020

6 of 31

Déclaration des variables

  • Rappel: toute variable utilisée dans un programme doit avoir fait l’objet d’une déclaration préalable
  • En pseudo-code, on va adopter la forme suivante pour la déclaration de variables

Variables liste d'identificateurs : type

  • Exemple:

Var i, j,k : entier

x, y : réel

OK: booléen

ch1, ch2 : chaîne de caractères

  • Remarque: pour le type numérique on va se limiter aux entiers et réels sans considérer les sous types

MIPC

6

2019/2020

7 of 31

Structure d’un programme en Langage C

  • Les directives à destination du préprocesseur

#include <math.h>

#include <stdio.h>

#define NFOIS 5

    • Il s’agit de directive qui seront prises en compte avant la traduction (compilation) du programme. Ces directives doivent être écrites une par ligne, et il est préférable de les placer au début. Les deux premières directives demandent d’introduire(avant compilation) des instructions(en langage C) situées dans les fichier stdio.h et math.h. On les appelles fichiers en-têtes.
    • La troisième directive définie une constante. Elle demande de remplacer systématiquement, dans toute la suite du programme, le symbole NFOIS par 5

MIPC

7

2019/2020

Eléments de base du langage C

Programme exécuté automatiquement avant la compilation, il transforme le fichier source à partir d’un certain nombre de directive

8 of 31

Structure d’un programme en Langage C

  • La fonction main()
    • est un bloc obligatoire d’un programme C. Sa forme la plus simple consiste à saisir son nom, main, suivi de parenthèse () vide et d’une paire d’accolades {}. L’exécution du programme débute à la première instruction de main() et se termine avec la dernière instruction de cette fonction.
  • La définition des variables
    • Une variable est un nom donné à une zone mémoire pour stocker les données en cours d’exécution. En C une variable doit être définie avant son utilisation. Sa définition indique son nom au compilateur et le type de données que l’on pourra y stocker.
    • Sa déclarations est de la forme

Type nom_variable [=<valeur>];

    • Elle peut être déclarée à l’extérieur ou à l’intérieur de la fonction main

MIPC

8

2019/2020

Eléments de base du langage C

9 of 31

Structure d’un programme en Langage C

  • Notion d’identificateur
    • Un identificateur, comme son nom l’indique, permet de donner un nom à une entité du programme (qu’il s’agisse d’une variable ou d’une fonction). Ils sont sujets aux règles suivantes :
      1. Ils sont formés d’une suite de lettres (’a’ à ’z’ et ’A’ à ’Z’), de chiffres (0 à 9) et du signe ’_’. En particulier, les lettres accentuées sont interdites ;
      2. le premier caractère de cette suite ne peut pas être un chiffre ;
      3. les identificateurs sont case-sensitive.
    • Ainsi, les noms var1, S_i, et InitDB sont des identificateurs valides, tandis que i:j ou 1i ne le sont pas.

MIPC

9

2019/2020

Eléments de base du langage C

10 of 31

Structure d’un programme en Langage C

  • Pour écrire des informations: la fonction printf
    • L’instruction printf("Bonjour\n"); appelle une fonction prédifinie(printf) qui reçoit un argument "Bonjour\n"

délimiter par des guillemets pour dire que c’est une chaîne de caractères. La notation \n est conventionnelle : elle représente un caractère de fin de ligne, lorsqu’il est envoyé à l’écran, elle provoque le passage à la ligne suivante.

    • L’instruction

printf("je vais vous calculer %d racines carrées\n",NFOIS);

Ressemble à la précédente avec la différence qu’il reçoit un argument que l’on nomme un format, c’est comme un guide qui précise comment afficher les informations, dans notre cas le code format %d précise qu’il s’agit d’un entier.

MIPC

10

2019/2020

Eléments de base du langage C

11 of 31

Structure d’un programme en Langage C

  • Pour lire les informations: la fonction scanf
    • scanf("%f",&x): cette instruction n’est qu’appel de la fonction prédéfinie scanf dont le rôle est de lire une information au clavier
      • %f: le format de la variable
      • &x: son adresse

MIPC

11

2019/2020

Eléments de base du langage C

12 of 31

Structure d’un programme en Langage C

  • Les commentaires
    • /* un commentaire d’une ligne*/
    • Int a, b, c; /* commentaire sur une partie d’une ligne*/
    • /* un commentaire

Qui s’étend sur plusieurs ligne*/

    • //cette ligne est en commentaire
  • Conseils:
    • Ajouter de nombreux commentaires dans le code source de votre programme, surtout s’il contient des instructions ou fonctions qui pourraient être difficile à comprendre. Vous gagner un temps précieux quand vous aurez à le modifier.

MIPC

12

2019/2020

Eléments de base du langage C

13 of 31

Les mots-clés

  • Un certains nombres de mots sont réservés pour le langage C, a évité comme identificateurs, la liste exhaustive est la suivante:

MIPC

13

2019/2020

Eléments de base du langage C

14 of 31

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 0 à 255
    • Entier court (codé sur 2 octets) : -32 768 à 32 767
    • Entier long (codé sur 4 ou 8 octets)
    • Réel simple précision (codé sur 4 octets)
    • Réel double précision (codé sur 8 octets)
  • Type logique ou booléen: deux valeurs VRAI ou FAUX

  • Type caractère: lettres majuscules, minuscules, chiffres, symboles, …

exemples: ’A’, ’a’, ’1’, ’?’, …

  • Type chaîne de caractère: toute suite de caractères,

exemples: " Nom, Prénom", "code postale: 1000", …

MIPC

14

2019/2020

15 of 31

Les types de base : Les caractères

  • On utilise le mot-clé char pour désigner une variable de type char. Il s’agit en fait d’un entier codé sur 8 bits interprété comme un caractère utilisé sur la machine (il s’agit en général du code ASCII de ce caractère).
  • Exemple :
    • char c1 = ’a’; // Déclaration d’une variable c1 de type char

// a laquelle on affecte la valeur ’a’

// A noter l’utilisation du simple quotte

MIPC

15

2019/2020

Eléments de base du langage C

16 of 31

Les types de base : Les caractères

  • Le tableau suivant donne la liste des principaux codes ASCII en décimal

MIPC

16

2019/2020

Eléments de base du langage C

17 of 31

Les types de base : Les caractères

  • Caractères particuliers
    • Il existe un certain nombre de caractères particuliers dont les principaux sont résumés dans le tableau suivant :

  • Chaînes de caractères
    • Les chaînes de caractères sont vues comme un pointeur sur des caractères et sont donc de type char *.
    • Exemple:
      • char * chaine = "Hello World !";// une chaine de caractère

// noter l’utilisation du double

// quotte

MIPC

17

2019/2020

Eléments de base du langage C

18 of 31

Les types de base : Entiers

  • Le type int peut être précisé par des attributs :
    • De longeur :
      • short pour des entiers courts(généralement de 8 ou 16 bits)
      • long pour des entiers longs(généralement de 32 ou 64bits)
      • La longeur par défaut est généralement de 16 ou 32bits
    • De domaine
      • signed pour les entiers relatifs
      • unsigned pour les entiers naturels positifs ou nuls

MIPC

18

2019/2020

Eléments de base du langage C

19 of 31

Les types de base : Entiers

  • On utilise le mot-clé int.
  • Exemple :
    • /* déclaration la plus courante d’une variable de type int */
      • int a = 14; // la variable a est initialisée à la valeur 14
    • /* Utilisation des précisions (cas le plus général)*/
      • short int b; // b est codé sur 16 bits
      • int c; // c est codé sur 16 ou 32 bits
      • long int d; // d est codé sur 32 bits
    • // la possibilité de l’écriture suivante dépend du compilateur
      • long long int e; // e est codé sur 64 bits.
    • /* Précision du signe */
      • unsigned long int n; //n est un entier non signé sur 32 bits

MIPC

19

2019/2020

Eléments de base du langage C

20 of 31

Les types de base : Entiers

  • Le tableau suivant regroupe les types entiers standards avec quelques informations supplémentaires :

MIPC

20

2019/2020

Eléments de base du langage C

21 of 31

Les types de base : Entiers

  • Constante entière: donnée inchangée qui ne peut varier pendant l’exécution d’un programme
    • Déclaration : #define Max 100
  • Elle se présente sous forme décimale, octale ou hexadécimal
    • décimale (écriture en base 10) : c’est l’écriture usuelle. Ex : 372 ;
    • octale (base 8) : on commence par un 0 suivi de chiffres octaux. Ex : 0477 ;
    • héxadécimale (base 16) : on commence par 0x (ou 0X) suivis de chiffres héxadécimaux (0-9, a-f). Ex : 0x5a2b, 0X5a2b, 0x5A2b.

MIPC

21

2019/2020

Eléments de base du langage C

22 of 31

Les types de base : Les flottants

  • On distingue trois types de flottants : float, double et long double.
    • Exemple : double Pi = 3,14159;
  • Le tableau suivant donne des informations pour chaque type flottant.

MIPC

22

2019/2020

Eléments de base du langage C

23 of 31

Les types de base : Les flottants

  • Une constante réelle représente un nombre à virgule flottante(de type float ou double) sous forme décimale ou exponentielle.
  • Exemple :

MIPC

23

2019/2020

Eléments de base du langage C

24 of 31

Les types de base : Le type void

  • Toute variable C est typée, de même que toute valeur de retour d’une fonction. Mais il peut arriver qu’aucune valeur ne soit disponible pour exprimer l’idée de ”aucune valeur”, pour cela on utilise le mot-clé void. Ce type est utilisé pour la déclaration de fonctions qui n’ont pas de valeur de retour.

MIPC

24

2019/2020

Eléments de base du langage C

25 of 31

Déclarations des variables simples

  • Les variables et les constantes sont les données principales manipulées par un programme.
  • Les déclarations introduisent les variables, fixent leur type et parfois aussi leur valeur de départ(initialisation);
  • Syntaxe de déclaration:
    • int x,y;
    • short compteur;
    • float prix,salaire;
    • double m;
    • char s;

MIPC

25

2019/2020

Eléments de base du langage C

26 of 31

Déclarations des variables simples

  • Initialisation des variables
    • En C, il est possible d’initialiser les variables à la déclaration
    • Exemples:
      • int max=123;
      • char tab=‘c’;
    • En utilisant l’attribut const, la valeur d’une variable ne change pas au cours du programme: c’est une constante.
    • Exemple:
      • Const int max=765;
      • Const char newline=‘\n’;

MIPC

26

2019/2020

Eléments de base du langage C

27 of 31

Le mot-clé typedef

  • Le mot-clé typdef permet de créer un synonyme pour un type de donnée existant. Par exemple l’instruction :
    • typedef int entier;

Crée le synonyme entier pour int. Vous pouvez ainsi utiliser entier pour définir des variables de type int, comme dans l’exemple suivant:

    • entier compte;

MIPC

27

2019/2020

Eléments de base du langage C

28 of 31

L’instruction d’affectation

  • Permet de mettre une valeur ou le résultat d’un calcul dans une variable,
  • Mot clé : symbole d’affectation ; L’affectation se fait en deux temps :

1) Evaluation de l’expression située à droite du symbole

2 ) Affectation du résultat à l’identificateur de variable

v← e : attribue la valeur de e à la variable v

  • e peut être une valeur, une autre variable ou une expression
  • v et e doivent être de même type ou de types compatibles
  • l’affectation ne modifie que ce qui est à gauche de la flèche

  • Exemple: i ←1 j ←i k ←i+j

MIPC

28

2019/2020

29 of 31

Exercices simples sur l'affectation (1)

Donnez les valeurs des variables A, B et C après exécution des instructions suivantes ?�

Algorithme affectation

Var A, B, C: Entier�DébutA ← 3�B ← 7�A ← B

B ← A+5

C ← A + B�C ← B – A�Fin

MIPC

29

2019/2020

30 of 31

Exercices simples sur l'affectation (2)

Donnez les valeurs des variables A et B après exécution des instructions suivantes ?�

Algorithme affectation

Var A, B : Entier�DébutA ← 1�B ← 2�A ← B�B ← A�Fin��Les deux dernières instructions permettent-elles d’échanger les valeurs de A et B ?

MIPC

30

2019/2020

31 of 31

Exercices simples sur l'affectation (3)

Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B

Algorithme Echange

Var A, B,C : Entier�DébutA ← 1�B ← 2

C🡨A�A ← B�B ← C�Fin��

MIPC

31

2019/2020