Les types.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

Introduction au Langage C,C++
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Introduction Langage très répandu Noyau Linux VLC … Des avantages indéniables mais aussi des contraintes ! Ceci nest quun rapide tour.
Programmation Orienté Objet en C++
Rappels C.
Développement logiciel sur micro-contrôleurs PIC en C
Langage C# et Plate-forme .NET
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
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
Approfondissement du langage
C.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Structures et unions types énumérés Qu'est-ce qu'une structure
Chap. 1 Structures séquentielles : listes linéaires
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Langage de Programmation: I - Le Langage C -
Cours de C GTR 2003/ COURS DE PROGRAMMATION EN LANGAGE C ALBERT Arnauld.
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.
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
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.
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
IFT-2000: Structures de données
Structures de données IFT-2000
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
Principes de programmation
IFT 6800 Atelier en Technologies d’information
8PRO100 Éléments de programmation Les types composés.
C++ : variables Déclaration de variables
LANGAGE C LP A2I IUT St DIE
Structures de données IFT-2000
Types de données fondamentaux
L’essentiel du langage C
Introduction au C.
Structures des données
Stocker plusieurs valeurs de même type dans une variable
Les pointeurs L'opérateur &.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Programmation en Java Tableaux NGUYEN Thi Minh Tuyen
et quelques rappels sur certains éléments du langage C
Les adresses des fonctions
Ecrire des expressions arithmétiques et logiques
SIF-1053 Architecture des ordinateurs
ALGORITHMIQUE ET PROGRAMMATION C
8PRO107 Éléments de programmation Les chaînes de caractères.
Les variables et les types standard des données
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que l’on veut allouer. Le premier exemple: #include void main()
Strings et Tableaux en Java
Les chaînes de caractères
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Les types composés Les enregistrements.
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
Chaînes de caractères en langage c, c'est en fait un tableau
Cours LCS N°4 Présenté par Mr: LALLALI
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
1 Les caractères En informatique, les caractères sont très importants puisqu’ils sont utilisés pour la communication personne-machine. Puisque les ordinateurs.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
PRO-1027 Programmation Scientifique en C
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction au langage C
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Transcription de la présentation:

Les types

Types de base Il existe 4 types de base Caractere char Entier int Reel float Reel double precision double Le type d’une donnee determine La place memoire (siweof()) Les operations legales Les bornes

char Là encore, deux types, codés sur 8 bits. char (-128 à 127) unsigned char (0 à 255) Exemple: ‘a’ ‘c’ ‘$‘ ‘\n‘ ‘\t‘ ‘\007‘(bell) les caractères imprimables sont toujours positifs. le code ASCII de ‘A’ est 65 mais celui de ‘2’ n’est pas 2. Caractères spéciaux: \n (nouvelle ligne), \t (tabulation horizontale), \a (sonne), \f (nouvelle page), \b (backspace), EOF, …

char (2) Conversion de caractères: Entrées/sorties de base: (stdlib:h) c=getchar(); lit un caractère sur l’entrée standard. putchar(); e,voie un caractère sur sortie standard. Qualification de caractères: isalpha(c) valeur non nulle si c est une lettre Isupper(c) valeur non nulle si c est une lettre majuscule Isdigit(c) valeur non nulle si c est un chiffre… Conversion de caractères: toascii, toupper, tolower, atoi, atof, …

Les entiers short (short int) 16 bits -32.768 à 32.767 int 32 bits Exemple: unsigned short maValeur; Constantes entières:24, -24, +25, -0 0x00ff (hexadécimale) 016 (octale) 54L (de type long) short (short int) 16 bits -32.768 à 32.767 int 32 bits -2.147.483.648 à 2.147.483.647 long (long int) unsigned short 0 à 65.535 unsigned long 0 à 4.294.967.295

Les réels Trois types possibles: float, 32 bits, -3,4e38 à 3,4e38 (7 chiffres significatifs) double, 64 bits, -1,7e308 à 1,7e308 (15 chiffres signi.) long double, 80 bits, 3,4e-4932 à 1,1e4932 (non standard) Par défaut, une constante réelle est de type double mais on peut forcer le type à float (532.76f) ou à long (3E-10L) Stocké en deux parties: mantisse(signi.) et exposant. Opérations plus lentes, moins précises (x==0 à éviter)

La déclaration de variables

Rôle d’une déclaration Précise le nom (identifiant) et le type d’une variable (ou une fonction, etc) Existe un qualificatif: const (variable non modifiable) Existe plusieurs classe de mémorisation: static, auto, register Une initialisation peut être

type liste_de_var_de_ce_type; Conventions type liste_de_var_de_ce_type; Exemples: int x,y; float coordonnées; Identifieurs: TAILLE (correct mais réservé pour variables symboliques) Buffer (correct mais réservé pour constantes dans enum) i (correct) adresse_tableau(correct) adresseTableau (correct) j45(correct) _ptr(correct mais réservé pour valeurs système) 8adr(incorrect) a b(incorrect)

Les règles d’identification Tout identificateur (variable, type, fonction) doit être déclaré avant d’être utilisé. La portée de la déclaration d’un identificateur (visibilité) commence à la fin de sa déclaration jusqu’à la fin du bloc de sa déclaration. void f(int i){ int j; j=0; } Toute double déclaration d’identificateur est interdite dans le même bloc. int i,j,m; /* variable global */ void f(int i){ /* variable local */ int j,k; /* variable local */ char k; /* erreur de compilation */ m=0;

Classes de variables Variables locales à un bloc, un fichier: auto (par défaut) auto float x; register register int j; static static char c; Variables globales à un fichier: static par défaut. Variables et fonctions globales à l’application: extern

Types complexes

classe type nom[dimension]; Tableaux Suite ordonnée d’éléments de même type. Caractérisé par: Un nom Un type Une dimension Une classe d’allocation Déclaration: les dimensions d’un tableau doivent être connus à la compilation: allocation statique de mémoire. Interdit: void fonc(int a){…; int tab[a][a*2]; …. classe type nom[dimension]; Exemple: int tab[10]; Taille=sizeof(int) 1 2 3 4 5 6 7 8 9 tab

Tableaux(2) 7 6 initialisation: int tab[5]; for(i=0;i10;i++) tab[i]=-1; int monTableau[] = {0,3,6,8,10}; short monTab[4] = {7,6}; Donc int zeTab[100]={0}; permet d’initialiser rapidement à 0. Utilisation: on accède à un élément par[]: tab[4]=6; Int a=tab[1]; ATTENTION: indices non valides pas détectés. 7 6

Chaînes de caractères N’est pas un tableau de caractère! Char nom[10]; Est une chaîne de caractère (string) si le dernier caractère est ‘\0’ (donc 9 caractères max) Sinon, un simple tableau de char! Initialisation: char mes[]=‘‘message’’; Équivaut à: char mes[]={‘m’,’e’,’s’,’s’,’a’,’g’,’e’,’\0’};

Chaînes de caractères (2) Attention: la déclaration char chaine[] =``bonjour``: est autorisée Mais l’affectation chaine=``bonjour`` est interdite, il faut utiliser la fonction strcpy(chaine, ``bonjour``); Dans la bibliothèque string.h strcpy: copie une chaîne dans une autre. strncpy: copie seulement les n premiers caractères dans une autre. strlen: retourne la longueur d’une chaîne. strcmp: compare deux chaînes. strcat: concatène deux chaînes.

Les énumérations Définition: enum type { idf [ = constante] [,…] }; Exemples: enum bool {faux = 0, vrai =1}; enum symbole { ajouter=‘a’, modifier=‘m’,…} Déclaration: enum bool b; enum symbol s; Utilisation: if( b==faux ) En fait, les éléments sont du type int: ajouter+1=1 et modifier = 1.

Les structures Objet rassemblant plusieurs variables ~un tableau dont chaque case peut contenir un type différent. Exemple: struct point { int x; int y; }; Déclare une structure contenant les données d’un point de l’espace. Et: struct point p1,p2; Déclare deux points. Autre type de déclaration de variable: struct { } p1, tabPoint[100]; Utilisation: int monX = p1.x; Un peu lourd: voir typedef

Les unions Permet de représenter par un même type générique plusieurs types différents. On peut ainsi manipuler différents types de données dans une même zone mémoire. La liste des champs ne représente pas une concaténation d’objets mais différentes façons de considérer une même zone mémoire. union{ int a[4]; short f; char *p; }uval;

L’accès à une structure (une union) struct personne maPersonne; int a = maPersonne.age struct nœud *p_noeud; p_noeudvaleur=25;

typedef type nouveau_nom_de_type; Définition de type Permet de construire de nouveaux noms de type. typedef type nouveau_nom_de_type; Exemple: typedef unsigned short BOOLEAN; typedef char CHAINE[n]; typedef struct{ double reel; double imaginaire; }COMPLEXE; Déclaration de variable: BOOLEAN b; CHAINE tab[100]; COMPLEXE cpx; COMPLEXE tab[5];