GEF 243B Programmation informatique appliquée

Slides:



Advertisements
Présentations similaires
GEF 243B Programmation informatique appliquée Listes chaînées I – Tableaux de structures §15.1 – 15.2.
Advertisements

GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
GEF 243B Programmation informatique appliquée
Premier programme en C :
La boucle for : init7.c et init71.c
Introduction au Langage C,C++
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Programmation Orienté Objet en C++
Développement logiciel sur micro-contrôleurs PIC en C
Portée des variables VBA & Excel
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
GEF 243B Programmation informatique appliquée Boucles §
GEF 243B Programmation Informatique Appliquée
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Structures §12.3.
GEF 243B Programmation informatique appliquée Expressions et opérateurs §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
GEF 243B Programmation informatique appliquée Listes chaînées II §15.1 – 15.2.
GEF 243B Programmation informatique appliquée Pointeurs et adresses §9.1.
GEF 243B Programmation informatique appliquée Décisions de design avec structures de données §15.1 – 15.2.
GEF 243B Programmation informatique appliquée Flot de contrôle et énoncés de sélection §
GEF 243B Programmation informatique appliquée Expressions et opérateurs.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
FLSI602 Génie Informatique et Réseaux
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
1 Les pointeurs et quelques rappels sur certains éléments du langage C.
Question Comment le compilateur fait-il pour évaluer une expression telle que : A + B lorsque A et B sont des données de types arithmétiques différents.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Semaine #1 INF130 par Frédérick Henri.
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
Principes de programmation
Programmation concurrente
IFT 6800 Atelier en Technologies d’information
8PRO100 Éléments de programmation Les types composés.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 6. Gestion des erreurs et des exceptions : Fonctionnement.
C++ : variables Déclaration de variables
LANGAGE C LP A2I IUT St DIE
Types de données fondamentaux
L’essentiel du langage C
Structures des données
Stocker plusieurs valeurs de même type dans une variable
2.1 - Historique Chapitre 2 : Introduction au langage C++
Le langage C Rappel Pointeurs & Allocation de mémoire.
Gérer la sécurité des mots de passe et les ressources
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Notions de pointeurs en C
Les types.
8PRO107 Éléments de programmation Les chaînes de caractères.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
PRO-1027 Programmation Scientifique en C
Introduction au langage C
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Transcription de la présentation:

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

Revue Quelles sont les étapes pour créer un programme en C? Quelles sont les caractères valides pour des identificateurs en C? Java is OO C is strucutral, Java is interpreted and C is compiled Edit, compile, link, execute A..Z, a..z, 0..9, _ JGA Beaulieu

Synopsis Identificateurs Types Variables Constantes Caractères spéciaux JGA Beaulieu

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ées On calcul le montant de mémoire pour le plus gros types … puis on le donne à toutes les variables Possiblement très couteux …disons 16 octets Cela ou on laisse au compilateur la tâche de décider de notre intention comme programmeur JGA Beaulieu

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. Forouzan P. 32 JGA Beaulieu

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) JGA Beaulieu

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é. JGA Beaulieu

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 = 0 vrai = 1 JGA Beaulieu

Comment j’fais pour mettre des lettres Pouvez-vous trouver des caractères dans la mémoire … puis sur le disque dure? YOU BET YOUR ASCII JGA Beaulieu

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 Mainframes sometimes use two bytes to represent chars. ASCII - American Standard Code for Information Interchange JGA Beaulieu

American Standard Code for Information Interchange (ASCII) EEE243 - 03 Types Variables and Constants American Standard Code for Information Interchange (ASCII) Winter 2010 discuss control characters and printable characters discuss CR and LF JGA Beaulieu Sylvain P. Leblanc 11

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); There is no guarantee about the size of an int other than it is at least 16 bits long. Appendix E in Forouzan has all the constant names for limits.h JGA Beaulieu

Types en C – Integer (int) Sign Octets (B) Valeur Min Valeur Max short int Signed Unsigned 2 -32,768 32,767 65,535 Int 4 -2,147,483,648 2,147,483,647 4,294,967,295 long int long long int 8 -9,223,372,036,854,775,807 +9,223,372,036,854,775,806 1.8 X 10 19 Most personal computers (IBMs) have short = 2 bytes, int = 2 bytes and long = 4 bytes. Large computers (mainframes) use int with 32 bits and long can have 48 or 64 bits. Forouzan p.33 Appendix E in Forouzan has all the constant names for limits.h Unsigned variables are declared as foll: unsigned int varA; JGA Beaulieu

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 As opposed to integers, these sizes are consistent across most machines. JGA Beaulieu

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. There are also pointers to characters JGA Beaulieu

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 unique La mémoire est simplement un train d’octets Si nous n’avions pas d’identificateur nous aurions à se souvenir de toutes les adresses !!!! JGA Beaulieu

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 Here we are not covering the storage class of variables. Storage classes I believe are a bit beyond the scope of this course. Also we make no difference between declaration and definition for variables. These concepts are mostly used together in C except for functions, recursion and for dynamic memory allocation (pointers). JGA Beaulieu

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; JGA Beaulieu

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. Literals are normally not used other than to define a constant using the preprocessor directive or the memory constant definition. It is not a good coding practice because if there is a change for example in the tax rate, we would have to go everywhere in the code to find the information. Defined constants are replaced during the compilation where ever the name is encountered. Memory constants are variables that cannot be changed. They reserve space in memory. The compiler checks for the types in expressions. JGA Beaulieu

Constantes - bool Les constantes booléennes ont seulement deux valeurs 0 pour faux 1 pour vrai Il est possible d’utiliser les constantes true ou false Mais cela demande que vous incluez la bibliothèque stdbool.h JGA Beaulieu

Constantes - int Les constantes int: Si vous ne spécifiez pas un type, la constante est un signed int. Littérale Valeur Type 123 int -32000L -32,000 long int 76453LU 76,453 unsigned long int JGA Beaulieu

Constantes - float Les constantes float: Si vous ne spécifiez pas un type, la constante est un double. Littérale Valeur Type 1.0 double 3.1416F 3.1416 float 76453.1L 76,453.1 long double JGA Beaulieu

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” Characters constants are enclosed in single quotes like variable assignments. Strings in double. There is a difference between the null character and the empty string. The null character is 00000000 and the empty string is nothing. JGA Beaulieu

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 ‘\\’ Forouzan p. 40 JGA Beaulieu

Quiz Time Pourquoi utilisons nous des types dans un langage? Qu’est-ce qu’une variable A type is used as a “sanity” check to be performed by the compiler. A type defines the size of the data storage and the operation set defined on the type. A variable is a named memory location that has a type, hence it has a size and operations defined by its type. JGA Beaulieu