Cours de Langage C Les structures

Slides:



Advertisements
Présentations similaires
Programmation Orienté Objet en C++
Advertisements

Rappels C.
1 Bases de donn é es relationnelles. 2 Introduction au mod è le relationnel les donn é es sont repr é sent é es par des tables, sans pr é juger de la.
GEF 243B Programmation informatique appliquée Structures §12.3.
1 Tableaux des objets C++ si on connaît le nombre dobjets nécessaires davance on peut utiliser des tableau dobjets dans les fonctions dusage class Personne.
C.
Structures et unions types énumérés Qu'est-ce qu'une structure
FLSI602 Génie Informatique et Réseaux
FLSI602 Génie Informatique et Réseaux
B.Shishedjiev - Informatique II
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Principes de programmation (suite)
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?
Structures de données IFT-2000
Les enregistrements (struct) suite. Struct Rappel Enregistrement : Suite de données pouvant être de types différents, accessibles via une seule variable.
Un langage de programmation hybride
8PRO100 Éléments de programmation Les types composés.
C++ : variables Déclaration de variables
Plan cours La notion de pointeur et d’adresse mémoire.
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Structures des données
Le langage C Structures de données
PHP 1° PARTIE : LES BASES © BTS IRIS 2002 [tv] Présentation Historique
2.1 - Historique Chapitre 2 : Introduction au langage C++
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
La notion de type revisitée en POO
et quelques rappels sur certains éléments du langage C
Les adresses des fonctions
Les types.
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.
ETNA – 1ème année Guillaume Belmas –
Les types composés Les enregistrements.
Les surcharges d'opérateurs
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Variables : notion Une variable permet de stocker/manipuler une donnée dans un programme avec un nom explicite Caractériser par son type (entier, flottant,...)
« NET-COTISATIONS CDG 35 » Guide d’utilisation. Accès à la déclaration Accéder au site de déclaration des cotisations dans votre espace collectivité à.
Développement d’application avec base de données Semaine 3 : Modifications avec Entité Framework Automne 2015.
1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.
Introduction à la programmation
G. Botti Service de l ’Information Médicale Pr M. Fieschi Hôpital Timone-adultesMarseille le 13 novembre 2000 Problématique du codage Langage, communication,
FACTORY systemes Module 5 Page 5-1 Les outils clients Wonderware FORMATION InSQL 7.0.
1 ALGORITHMIQUE AVANCEE IUT Vélizy – RT2 FA Laurent Marsan.
Introduction à la Programmation Orientée Objet H.GATI.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – RAPPELS SUR UNIX DE BASE.
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.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
Informatique 2A Langage C 3 ème séance.
Consigne d’utilisation
1 Rappel et compléments de la programmation en langage C.
Informatique 2A Langage C 4ème séance
Chapitre 5 Administration des accès aux objets dans les unités d'organisation Module S42.
1 Programmation en C++ Cycle de vie ● La vie d'un objet ● Destructeur ● Gestion de mémoire dynamique.
1 Programmation en C++ IO en C++/SL ● Standard Library ● Types, objets pour IO ● L'entrée de clavier ● Sortie à l'écran ● Fichiers.
LES TABLEAUX EN JAVA.
Ajouter le code dans une page html
Gestion dynamique de la mémoire : new / delete
Principes de programmation (suite)
Tableaux à plusieurs dimensions en langage C
Algorithmique & Langage C
M1103 : Structures de données et algorithmes fondamentaux
Question 1 Pour afficher un tableau d’entiers tab en C :
Le langage C# : Partie 1.
Python Nicolas THIBAULT
Transcription de la présentation:

Cours de Langage C Les structures

Les structures Une structure est un exemple de type composite, c’est-à-dire un type de données formé de plusieurs variables pouvant être de types différents Cela permet au développeur de définir de nouveaux types en utilisant l’instruction typedef Cela permet de définir un type adapté au problème à traiter 2 2

Les structures Exemple : struct complexe // Définition { //-> struct est un mot réservé du langage double re ; //-> complexe est le nom de la structure double im ; }; Le nouveau type de données est « struct complexe » re et im sont des champs de la structure On accède aux champs via l’opérateur . struct complexe z ; // Déclaration d’un objet z de type struct complexe z.re=1 ; z.im=2 ; // Initialisation des « champs » de cette structure 3 3

Structures et types internes Les éléments d’une même structure peuvent avoir des types différents : typedef struct client { char nom[100] ; // nom du client char prenom[100] ; // prénom du client int numero ; // le numéro du client double montant ; // somme sur son compte double ancien_montant[10] ; // ses 10 anciens montants } CLIENT ; nom, prenom, etc. sont des champs de la structure 4 4

Structures et types internes Exemples d’accès aux différents champs de la structure, en utilisant l’opérateur . client.numero = 12 ; client.montant = 2222 ; strcpy( client.nom , "MARTIN"; ) ; // Fonction spécifique // aux chaînes de caractères 5 5

Type synonyme On peut utiliser un type synonyme pour clarifier l’écriture : Exemple : struct complexe // Définition DANS LE HEADER, EN TETE { //-> struct est un mot réservé du langage double re ; //-> complexe est le nom de la structure double im ; }; typedef struct complexe COMPLEXE ; // par convention en MAJUSCULE Syntaxe plus compacte : typedef struct complexe {double re ; double im ; } COMPLEXE ; void main() { COMPLEXE z ; … } // Déclaration de la variable dans le main 6 6

Structures et fonctions Ce nouveau type de variable peut être utilisé exactement de la même manière que les autres types standards du langage (int, double …) Il permet de typer des variables, des fonctions, des tableaux. On peut définir des pointeurs sur des structures (et aussi sur des tableaux de structure) On peut créer des structures comprenant des structures Exemple : Fonction somme de complexes COMPLEXE somme (COMPLEXE z1, COMPLEXE z2) { COMPLEXE z z.re = z1.re + z2.re; z.im = z1.im + z2.im; return z } A noter : en retournant une seule variable de type structure, on retourne en fait 2 valeurs 7 7

Structures et pointeurs On peut définir un pointeur sur une structure COMPLEXE *z1; // déclaration du pointeur z1 = malloc(sizeof(COMPLEXE)); /* allocation dynamique de mémoire pour un COMPLEXE et initialisation du pointeur */ Pour accéder aux différents champs de la structure via le pointeur z1, il faut utiliser l’opérateur -> z1->re z1->im 8 8

Structures et tableaux On peut définir des tableaux statiques de structures : // déclaration d’un tableau de 10 structures COMPLEXE COMPLEXE tab[10] ; Exemple d’utilisation : Pour accéder aux différents champs du tableau de structures on peut utiliser l’opérateur . Avec la notation Tab[i] tab[2].re = 5 ; tab[2].im = 10 ; On peut définir aussi des tableaux dynamiques de structures : COMPLEXE *tab; tab = maloc(10*sizeof(COMPLEXE)) ; // allocation mémoire pour un tableau dynamique de 10 structures complexes Exemple d’utilisations avec les 2 syntaxes : la syntaxe . (orientée variable) syntaxe -> (orienté pointeur) tab[2].re = 5 ;  (tab+2)->re = 5; tab[2].im = 10 ;  (tab+2)->im = 10 ; 9 9

Conclusion : Vous savez désormais : Définir une structure avec différentes syntaxes Manipuler les structures et accéder à leurs champs Combiner les structures avec les fonctions ou les tableaux Déclarer de manière statique ou dynamique des tableaux de structures Utiliser des pointeurs sur des structures et accéder aux champs de ces structures avec diverses syntaxes 10 10