0% ont trouvé ce document utile (0 vote)
74 vues26 pages

Structures en C pour étudiants MIP

Le document décrit les structures en langage C. Il explique comment définir une structure, déclarer des variables de structure, accéder aux membres d'une structure, passer une structure en paramètre d'une fonction et initialiser une structure. Le document contient également des exemples sur les structures imbriquées et les tableaux de structures.

Transféré par

Simo Kapira
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
74 vues26 pages

Structures en C pour étudiants MIP

Le document décrit les structures en langage C. Il explique comment définir une structure, déclarer des variables de structure, accéder aux membres d'une structure, passer une structure en paramètre d'une fonction et initialiser une structure. Le document contient également des exemples sur les structures imbriquées et les tableaux de structures.

Transféré par

Simo Kapira
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

UNIVERSITE ABDELMALEK ESSAADI

Faculté des Sciences et Techniques d'Al Hoceima


Année académique 2023-24 / 2°année LMD MIP / Module : Structure de données

Langage C

Les structures
Comprendre les structures
• Un tableau est une variable qui permet a
votre programme de stoker plusieurs
valeurs de même type.
• Une structure permet de regrouper
plusieurs variables de type différents
Exemple
• Struct etudiant
{ char nom[50];
int CNE;
float note;
char adresse [200];
};
Syntaxe
Struct NomStructure
{ type 1 NomVariable1;
type 2 NomVariable2;
.
.
type n NomVariable n;
};
Voir une structure comme un modèle pour
les déclaration de variables
• La déclaration d’une structure permet de
regrouper plusieurs types de variable
• D’autre part la définition d’une structure ne
crée aucune variable en réalité .
• La définition d’une structure spécifie un
modèle que vos programmes pourront
utiliser pour déclarer des variables
• La définition d’une structure ne prend
aucune place en mémoire
Déclaration d’une variable structure
• Il y a deux manières de déclarer des
variables d’un type donné de structure.
• On suppose que votre programme déclare une
structure du type Employe comme ceci
Struct Employe
{
char nom[64];
float salaire;
int age;
};
Méthode 1
Vos programmes peuvent déclarer des variables
de type Employe comme ceci
• Struct Employe administrateur;
• Struct Employe nouvel_employe , ancien_employe;
Méthode 2
• Le C permet aussi de déclarer des variables d’un
type de structure à la suite de définition de la
structure,
Struct Employe
{
char nom[64];
float salaire;
int age;
} Employe administrateur, nouvel_employe , ancien_employe ;
Comprendre les membres d’une
structure
• Chaque élément de l’information de la structure
est un membre
• Exemple
Struct forme
{
int type;
int couleur;
float angle;
} triangle;
Dans le cas de la structure forme, il y a 3 membres
• Pour accéder à un membre particulier,
vous utiliserez l’opérateur C point(.)
• Exemple
Employe.age=21;
Employe.salaire=500.45;
Passer une structure à une fonction
• Comme pour toutes les variables, le C
vous permet de passer des variables
structures à une fonction
Exemple
#include <stdio.h>
Struct forme
{
int type;
int couleur;
float angle;
};
void montre_structure(struct forme forme)
{
printf(" forme.type %d ",forme.type);
printf(" forme.couleur %d ",forme.couleur);
printf(" forme.angle %f ",forme.angle);
}
main()
{
struct forme cercle ;
cercle.type =0;
cercle.angle=5.4;
cercle.couleur=1;
montre_structure(cercle);
}
Modifier une structure depuis une fonction

• Exemple précédente montre que vous


pouvez passer une structures à une
fonction.
• Pour modifier les membres d’une
structures depuis une fonction, vous devez
passer la structure par adresse .
Exemple
#include <stdio.h>
Struct notes_etudiant
{
int CNE
float note_cc1
float note_cc2;
};
Void change_note(struct note_etudiant *note)
{
(*note).note_cc1=12;
(*note).note_cc2=15;
}
Main()
{
Struct notes_etudiant.ali;
Change_note(&ali);
Printf(" la note cc1 de ali est %f “, ali.note_cc1);
Printf(" la note cc2 de ali est %f “, ali.note_cc2);
}
#include <stdio.h>
Struct notes_etudiant
{
int CNE
float note_cc1
float note_cc2;
};
Void change_note(struct note_etudiant
*note)
{
note->note_cc1=12;
Note->note_cc2=15;
}
Main()
{
Struct notes_etudiant.ali;
Change_note(&ali);
Printf(" la note cc1 de ali est %f “,
ali.note_cc1);
Printf(" la note cc2 de ali est %f “,
ali.note_cc2);
}
Initialiser une structure
• Le programme suivant déclare et initialise
une structure
#include<stdio.h>
Void main(Void)
{Structe cordonnee
{ float; X
int y ;
int z;
} point_M ={2.5, 10, 145};
print(“ point_M.X %f“, point_M.X)
print(“ point_M.Y %d“, point_M.Y)
print(“ point_M.Z %d“, point_M.Z)
}
Utiliser une structure imbriquée
Struct Employe
{
char nom[60]
int age;
Struct date
{ int jour;
int mois;
int annee;
}date_embauche;
int qualification;
float salaire;
}nouvel_employe;
Accéder à un membre d’une
structure imbriquée
Exemple précédent
nouvel_emplye.date_embouche.annee=2007
Structures contenant des tableaux
Exemple
Main()
{ struct date
{ char nom_du_mois[64];
int mois;
int jours;
Int annee;
}date_actuel ={“ mars “, 7, 4 , 2008};
Int I;
For(i=0; date_courante.nom_du_mois[i];i++)
Putchar(date_courante.nom_du_mois[i]);
}
Créer un tableau de structures
Exemple
Struct etudiant
{ char nom[60];
int CNE
float note1;
float note 2;
} mipc2_2[40];
Exemple d’utilisation de l’exemple
précédant
• On utilise la boucle for pour afficher le nom
de le CNE de chaque etudiant;

For( i=0, i<=40;i++)


Printf("etudiant %s CNE %d\n,etudiant[i].nom,etudiant[i].CNE")
Exercice
Soit le modèle de structure suivant
Struct s_point
{
char c;
int x, y;
};
écrire une fonction qui reçoit en argument une structure de type s_point et
qui en affiche le contenu sous la forme : point B de coordonnées 10 12
1. En transmettant en argument la valeur de la structure concernée
2. En transmettant en argument l’adresse de la structure concernée
3. écrire une fonction qui mis à ziro les différents champs d’une structure
du type s_point qui lui est transmise en argument
4. écrire une fonction qui reçoit en argument l adresse d’une structure du
type s_point et qui renvoie en résultat une structure de même type
correspondant à point de même nom et de coordonnées opposées.
5. Dans les quatre cas , on écrira un petit programme d’essai de la
fonction ainsi réalisée
solution
#include <stdio.h>
Struct s_point
{ char c;
Int x, y;
}
Void affiche1(struct s_point p)
{ printf("point %c de coordonnées %d %d\n“,p.c,p.x,p.y);
}
Void affiche2(struct s_point *p)
{ printf("point %c de coordonnées %d %d\n“,p->c,p->x,p->y);
}
Main()
{ struct s_point s;
s.c=‘A’;
s.x=10;
s.y=12
Affiche1(s)
Affiche2(&s)
}
solution
#include <stdio.h>
Struct s_point
{ char c;
Int x, y;
}
Void res(struct s_point *p)
{ p->c=0;
P->x=0;
P->y=0;
}
Struct s_point opose(struct s_point *p)
{ struct s_point ns;
ns.c=p->c;
Ns.x=-p->x;
Ns.y=-p->y
Return res;
}
Main()
{
struct s_point s,n;
s.c=‘A’;
s.x=10;
s.y=12
res(s)
n=opose(&s)

Vous aimerez peut-être aussi