25
GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

Embed Size (px)

Citation preview

Page 1: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

GEF 243BProgrammation informatique appliquée

Types, variables et constantes

§2.3 - 2.6

Page 2: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 2

Revue

• Quelles sont les étapes pour créer un programme en C?

• Quelles sont les caractères valides pour des identificateurs en C?

Page 3: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 3

Synopsis

• Identificateurs• Types• Variables• Constantes• Caractères spéciaux

Page 4: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 4

Pourquoi avoir des types

• Un compilateur a besoin de réserver de l’espace de mémoire pour les variables

• Les caractères et les nombres entiers ou réels n’ont pas tous besoin de la même espace d’entreposage

• Assumons que on veut pas s’en bâdrer des typesÀ la limite on pourrais décider d’allouer le même

montant de mémoire à toutes les donnéesOn calcul le montant de mémoire pour le plus gros types

… puis on le donne à toutes les variables Possiblement très couteux …disons 16 octetsCela ou on laisse au compilateur la tâche de décider de

notre intention comme programmeur

Page 5: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 5

Pourquoi avoir des types

• Que sont les types de toute façon?En terme communs, les types aident au compilateur à

faire une vérification de base pour vérifier si l’intention d’une variable rencontre son utilisation.

Définissent un ensemble de valeurs et un ensemble d’opérations qui peuvent être utilisées sur ces valeurs.

Les variables et les fonctions ont des types. • Et les constantes aussi (implicitement)

Les types peuvent être standards ou dérivés. On va regarder les types standards pour les variables;

• les types pour les fonctions et les types dérivés sont vues plus tard.

Page 6: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 6

Types en C

• Les types de données standard en C sont atomiques (ils ne peuvent pas être décomposés en plus petits éléments)

Page 7: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 7

Types en C - void

• void: Aucune valeur et seulement une opération; l’affectation (=). … Béant … aucune dimension spécifiée

• C’est un type générique qui peut être utilisé pour représenter d’autres types.

• Utilisé si une fonction n’a pas de paramètre … MaFctn(void) {} … ou ne retourne pas de valeur … void main (void) {}

• Ce type est très flexible et comme nous allons le voir durant le cours, il est souvent utilisé.

Page 8: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 8

Intégral – Booléens (bool)

• Utilisé pour représenter les valeurs booléennes vrai ou faux

• Jusqu’à l’adoption de C-99, les entiers (integers) étaient utilisés pour représenter les valeurs booléennes Touts les nombres qui était non zéro en C (positifs ou

négatifs) étaient utilisés pour représenter la valeur logique vrai et zéro étaient utilisé pour représenter faux

• Maintenant en mémoire les booléens (bool) sont entreposés en mémoire: faux = 0vrai = 1

Page 9: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 9

Comment j’fais pour mettre des lettres

• Pouvez-vous trouver des caractères dans la mémoire … puis sur le disque dure?

Page 10: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 10

Intégral – caractère (char)

• Les caractères (char) utilisent normalement un octet (8 bits) pour stocker des caractères en ASCII.Parce que il n’y en as pas tant que ça …28 = 256

• Les char sont stockés en mémoire comme des nombres, représentant le code ASCII pour le caractère correspondant.Donc en C, les caractères sont souvent traités comme

des entiers (int)Une table ASCII est fournit à l’appendice A de

Forouzan.Exemple ‘a’ = 0x61 or 9710

Page 11: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 11

American Standard Code for Information Interchange (ASCII)

Page 12: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 12

Intégral – integer (int)

• Les ‘integers’ sont des nombres entiers (sans fractions).

• En C il y a trois sortes de types de données int: short int int long int

• Un int peut être ‘signed’ ou ‘unsigned’

• La bibliothèque <limits.h> de C, contient l’information sur la grandeur des entiers (int) pour la plateforme courante INT_MAX et INT_MIN

• Aussi vous pouvez vérifier la grandeur (en octets) d’un int avec l’opérateur sizeof() sizeof(short int);

Page 13: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 13

Types en C – Integer (int)

Type Sign Octets (B)

Valeur Min Valeur Max

short int Signed

Unsigned

2 -32,768

0

32,767

65,535

Int Signed

Unsigned

4 -2,147,483,648

0

2,147,483,647

4,294,967,295

long int Signed

Unsigned

4 -2,147,483,648

0

2,147,483,647

4,294,967,295

long long int Signed

Unsigned

8 -9,223,372,036,854,775,807

0

+9,223,372,036,854,775,806

1.8 X 10 19

Page 14: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 14

Réels – fractionnaire (float)

• Un nombre fractionnaire (float) est un nombre qui a une partie fractionnelle (i.e. 43.56)

• Il y a trois différentes grandeurs pour un float: float, double et long double.

Type Octets

float 4

double 8

long double 10

Page 15: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 15

Types en C – String

• Il n’y a pas de strings en C non plus; il y a juste des tableaux de caractères, nous allons voir cela bientôt.

Page 16: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 16

Identificateurs

• Les identificateurs nous permettent de nommer les données et autres objets dans un programme

• Chaque objet identifié dans un ordinateur est entreposé à une adresse de mémoire uniqueLa mémoire est simplement un train d’octets

• Si nous n’avions pas d’identificateur nous aurions à se souvenir de toutes les adresses !!!!

Page 17: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 17

Variables

• Les variables ne sont rien de plus que des espaces de mémoire avec un identificateur et un type Parce qu’une variable a un type, elle a aussi une grandeur et un

ensemble d’opérations qui sont définies par le type

• Les identificateurs de variable sont des symboles qui sont utilisés pour identifier la location des données en mémoire. Ceci libère le programmeur d’avoir à savoir où les variables sont

physiquement; cela devient la responsabilité du compilateur.

• Les variables ne peuvent pas être déclarées comme void

Page 18: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 18

Variables - initialisation

• On déclare une variable quand on lui donne un type et un identificateur

• Les variables ne sont pas initialisées automatiquement quand elles sont déclarées, sauf pour quelques exceptions; elles contiennent des déchets

• Les variables peuvent être initialisées quand elles sont déclarées

int compte = 0;

char initial = ‘a’;

float tauxTaxe = 0.15;

Page 19: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 19

Constantes

• Les constantes sont … constantes

• Il y a trois façons de coder des constantes dans un programme: Littérale: une constante sans nom pour spécifier des données

• ‘a’ , 5, “Bonjour le Monde”, 3.25

Constantes Définies• #define TAXE_DE_VENTE 0.07 // pas de ;

Constantes de mémoire• const float PI = 3.14159

• Comme les variables, les constantes ont un type.

Page 20: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 20

Constantes - bool

• Les constantes booléennes ont seulement deux valeurs0 pour faux1 pour vrai

• Il est possible d’utiliser les constantes true ou false Mais cela demande que vous incluez la bibliothèque stdbool.h

Page 21: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 21

Constantes - int

• Les constantes int: Si vous ne spécifiez pas un type, la constante est un signed int.

Littérale Valeur Type

123 123 int

-32000L -32,000 long int

76453LU 76,453 unsigned long int

Page 22: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 22

Constantes - float

• Les constantes float: Si vous ne spécifiez pas un type, la constante est un double.

Littérale Valeur Type

1.0 1.0 double

3.1416F 3.1416 float

76453.1L 76,453.1 long double

Page 23: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 23

Constantes – characters & strings

• ‘\0’ /* caractère nulle */• ‘h’ /* le caractère h */• “” /* une string vide */• “h” /* une string contenant le caractère h */• “Bonjour le monde”

Page 24: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 24

Caractères spéciaux

• Null character ‘\0’• Alert ‘\a’• Backspace ‘\b’• Horizontal tab ‘\t’• New line ‘\n’• Vertical tab ‘\v’• Form feed ‘\f’• Carriage return ‘\r’• Single quote ‘\’’• Double quote ‘\”’• Backslash ‘\\’

Page 25: GEF 243B Programmation informatique appliquée Types, variables et constantes §2.3 - 2.6

4/11/23 25

Quiz Time

• Pourquoi utilisons nous des types dans un langage?

• Qu’est-ce qu’une variable