Les variables, telles que nous les avons vues dans les chapitres précédents, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de très nombreux programmes, on a besoin d'avoir plusieurs données du même type et qui jouent quasiment le même rôle. Pensez par exemple à la liste des utilisateurs d'un site web, cela représente plusieurs variables de type string.
L’utilisation des variables distinctes, dans ce cas, seraient beaucoup trop lourdes à gérer. Heureusement, le C++ propose un moyen simple de regrouper ces données dans un seul support. Il s’agit des tableaux.
Les tableaux sont des structures de données constituées d'un certain nombre d'éléments de même type. Ils correspondent aux vecteurs et matrices en mathématiques. Un tableau est caractérisé par sa taille et par le type de ses éléments.
Dans ce chapitre, je vais vous apprendre à manipuler deux sortes de tableaux :
Les tableaux statiques : ceux dont la taille est connue à l'avance, elle est donc figée une fois pour toute et ne peut pas être modifiée en cours d'exécution du programme.
Les tableaux dynamiques : ceux dont la taille peut varier au cours de l'exécution du programme.
Les chaînes de caractères sont déclarées en C++ comme tableaux de caractères et permettent l'utilisation d'un certain nombre de notations et de fonctions spéciales. Les particularités des tableaux de caractères seront traitées séparément à la fin de ce chapitre.
Travaux Dirigés : Algorithmique et Structure de DonnéesAnass41
Introduction....................................................................................
Les variables...................................................................................
1. Objectif ....................................................................................
2. Déclaration ...............................................................................
3. Type des variables ....................................................................
4. L’instruction d’affectation .......................................................
Les variables ....................................................................................
Correction TD 1 ...............................................................................
Les structures de contrôle ................................................................
1. Objectif ....................................................................................
2. Les structures de contrôle: .......................................................
3. Les structures itératives ............................................................
Les structures de contrôle ................................................................
Correction TD 2 ...............................................................................
Les tableaux à une dimension ..........................................................
1. Objectif ....................................................................................
2. Définition .................................................................................
3. Exemple ...................................................................................
4. Algorithmes de tri ....................................................................
Les tableaux à une dimension.......................................................
Les tableaux à deux dimensions ......................................................
1. Objectif ....................................................................................
2. Définition .................................................................................
3. Exemple ...................................................................................
Les tableaux à deux dimensions ......................................................
Les fonctions ....................................................................................
Objectif ............................................................................................
Les enregistrements .........................................................................
Les fichiers séquentiels ....................................................................
Dans ce cours, on découvre comment construire une interface graphique en Python en utilisant la librairie Tk. Après avoir vu les différents composants de base, ce cours présente la programmation évènementielle qui permet d'écrire du code qui réagit à des évènements comme le clic sur un bouton, par exemple.
Ce premier cours présente les notions d'objet et de classe, et le lien entre elles. Il présente aussi le premier concept clé de la programmation orientée objet, à savoir l'encapsulation des données. Les exemples sont fournis dans plusieurs langages (Python, C#, Java, C++ et PHP).
Ce chapitre est destiné pour les étudiants de la 2ème année année master Mathématiques, Cryptologie et Sécurité Informatique (MMCSI) Semestre 3. Il traite les concepts de base du langage Java.
Les variables, telles que nous les avons vues dans les chapitres précédents, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de très nombreux programmes, on a besoin d'avoir plusieurs données du même type et qui jouent quasiment le même rôle. Pensez par exemple à la liste des utilisateurs d'un site web, cela représente plusieurs variables de type string.
L’utilisation des variables distinctes, dans ce cas, seraient beaucoup trop lourdes à gérer. Heureusement, le C++ propose un moyen simple de regrouper ces données dans un seul support. Il s’agit des tableaux.
Les tableaux sont des structures de données constituées d'un certain nombre d'éléments de même type. Ils correspondent aux vecteurs et matrices en mathématiques. Un tableau est caractérisé par sa taille et par le type de ses éléments.
Dans ce chapitre, je vais vous apprendre à manipuler deux sortes de tableaux :
Les tableaux statiques : ceux dont la taille est connue à l'avance, elle est donc figée une fois pour toute et ne peut pas être modifiée en cours d'exécution du programme.
Les tableaux dynamiques : ceux dont la taille peut varier au cours de l'exécution du programme.
Les chaînes de caractères sont déclarées en C++ comme tableaux de caractères et permettent l'utilisation d'un certain nombre de notations et de fonctions spéciales. Les particularités des tableaux de caractères seront traitées séparément à la fin de ce chapitre.
Travaux Dirigés : Algorithmique et Structure de DonnéesAnass41
Introduction....................................................................................
Les variables...................................................................................
1. Objectif ....................................................................................
2. Déclaration ...............................................................................
3. Type des variables ....................................................................
4. L’instruction d’affectation .......................................................
Les variables ....................................................................................
Correction TD 1 ...............................................................................
Les structures de contrôle ................................................................
1. Objectif ....................................................................................
2. Les structures de contrôle: .......................................................
3. Les structures itératives ............................................................
Les structures de contrôle ................................................................
Correction TD 2 ...............................................................................
Les tableaux à une dimension ..........................................................
1. Objectif ....................................................................................
2. Définition .................................................................................
3. Exemple ...................................................................................
4. Algorithmes de tri ....................................................................
Les tableaux à une dimension.......................................................
Les tableaux à deux dimensions ......................................................
1. Objectif ....................................................................................
2. Définition .................................................................................
3. Exemple ...................................................................................
Les tableaux à deux dimensions ......................................................
Les fonctions ....................................................................................
Objectif ............................................................................................
Les enregistrements .........................................................................
Les fichiers séquentiels ....................................................................
Dans ce cours, on découvre comment construire une interface graphique en Python en utilisant la librairie Tk. Après avoir vu les différents composants de base, ce cours présente la programmation évènementielle qui permet d'écrire du code qui réagit à des évènements comme le clic sur un bouton, par exemple.
Ce premier cours présente les notions d'objet et de classe, et le lien entre elles. Il présente aussi le premier concept clé de la programmation orientée objet, à savoir l'encapsulation des données. Les exemples sont fournis dans plusieurs langages (Python, C#, Java, C++ et PHP).
Ce chapitre est destiné pour les étudiants de la 2ème année année master Mathématiques, Cryptologie et Sécurité Informatique (MMCSI) Semestre 3. Il traite les concepts de base du langage Java.
Ce chapitre est destiné pour les étudiants de la 1ère année Master MMCSI, Semestre 1. Il traite les points suivants:
Définition des arbres binaires
Arbres binaires particuliers
Implantation d’un arbre binaire
Notion de parcours
Les primitives sur les arbres binaires
Les autres fonctions sur les arbres binaires
- Les constructeurs
- La gestion des exceptions
- Les getters et les setters
- Lecture du clavier
- Les references
- Surcharge des méthodes
- Le mot clé this
- la méthode String tostring()
Chapitre 8 - Les tableaux et les pointeurs.pdfShiniGami0o0
In mathematics and computer science, an algorithm is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing calculations and data processing.
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24BenotGeorges3
Les informations et évènements agricoles en province du Luxembourg et en Wallonie susceptibles de vous intéresser et diffusés par le SPW Agriculture, Direction de la Recherche et du Développement, Service extérieur de Libramont.
https://agriculture.wallonie.be/home/recherche-developpement/acteurs-du-developpement-et-de-la-vulgarisation/les-services-exterieurs-de-la-direction-de-la-recherche-et-du-developpement/newsletters-des-services-exterieurs-de-la-vulgarisation/newsletters-du-se-de-libramont.html
Bonne lecture et bienvenue aux activités proposées.
#Agriculture #Wallonie #Newsletter #Recherche #Développement #Vulgarisation #Evènement #Information #Formation #Innovation #Législation #PAC #SPW #ServicepublicdeWallonie
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Formation
Suite à l'entrée en vigueur de la « Participation Financière Obligatoire » le 2 mai dernier, les règles du jeu ont changé !
Pour les entreprises, cette révolution du dispositif est l'occasion de revoir sa stratégie de formation pour co-construire avec ses salariés un plan de formation alliant performance de l'organisation et engagement des équipes.
Au cours de ce webinar de 20 minutes, co-animé avec la Caisse des Dépôts et Consignations, découvrez tous les détails actualisés sur les dotations et les exonérations, les meilleures pratiques, et comment maximiser les avantages pour les entreprises et leurs salariés.
Au programme :
- Principe et détails de la « Participation Financière Obligatoire » entrée en vigueur
- La dotation : une opportunité à saisir pour co-construire sa stratégie de formation
- Mise en pratique : comment doter ?
- Quelles incidences pour les titulaires ?
Webinar exclusif animé à distance en coanimation avec la CDC
1. Langage C
Partie 2
Année universitaire
2014/2015
Université Hassan II Casablanca
Ecole normale supérieure (ENS)
Master Mathématiques, Cryptologie et Sécurité Informatique (MMCSI)
Mohamed Lahby
mlahby@gmail.com
2. Langage C (Partie 2)
Types complexes
structures, unions et
énumérations
3. Langage C (Partie 2)
Plan du cours
1.Structures
2.Unions
3.Enumérations
4. Structures
Une structure est un nouveau type de données constitué par un ensemble de
variables (champs) qui peuvent être hétérogènes et de types différents
La différence avec le type tableau est que les champs d’un tableau sont tous
homogènes et du même type
Les structures permettent de représenter des objets réels caractérisées par
plusieurs informations, par exemple :
Une personne caractérisée par son nom (chaîne), son âge (entier), sa taille (réel), ...
Une voiture caractérisée par sa marque (chaîne), sa couleur (chaîne), son année
modèle(entier), ...
4/17
5. Définition d'un modèle de structure
La définition d'un modèle de structure s'effectue en précisant le nom de la
structure, ainsi que le nom et le type de ses champs :
Syntaxe en C : struct nom_structure
{
type 1 nom_champ1;
type 2 nom_champ2;
...
type N nom_champN;
};
Exemple : struct Personne
{ char Nom[20];
int Age;
float taille;
};
Rq: Le nom d’une structure n’est pas un nom de variable, c’est le nom du
type ou modèle de la structure
5/17
6. Déclaration d’une variable structure
La définition d'un modèle de structure ne réserve pas d’espace mémoire
La réservation se fait quand on définit des variables correspondant à ce
modèle de structure. Ceci peut se faire soit
Après la déclaration de la structure, par exemple :
struct Personne p1, p2, tab[10];
//p1 et p2 deux variables de type structure Personne
// tab est une variable de type tableau de 10 éléments (de type Personne)
ou au moment de la déclaration de la structure
struct Personne
{ char Nom[20];
int Age;
float taille;
} p1, p2, tab[10];
6/17
7. Initialisation d’une structure
Lors de la déclaration d’une variable structure, on peut initialiser ses champs
avec une notation semblable à celle utilisée pour les tableaux en indiquant la
liste des valeurs respectives entre accolades.
Exemple :
struct date
{ unsigned short jour;
char mois[10];
unsigned short annee;
};
struct date d1= {15,"Novembre", 2013};
7/17
8. Utilisation des champs d’une structure
L'accès à un champ d’une variable structure se fait par le nom de la variable
suivi d’un point et du nom du champ:
nom_variable.nom_champ
Exemples:
p1.age = 15; : affecte la valeur 15 au champ age de la structure p1.
printf ("%f", p1.taille) : affiche, suivant le code format %d, la valeur du champ taille de
la structure p1.
scanf ("%d", &p2.age) ; : lit, suivant le code format %d, une valeur qui sera affectée au
champ age de la structure p2. Notez bien la présence de l’opérateur &
8/17
9. Utilisation globale d’une structure
Il est possible d’affecter à une structure le contenu d’une structure
définie à partir du même modèle.
Exemple : soit la structure article définie par :
struct article
{ int numero; //un numéro qui identifie l’article numero;
int qte; // quantité disponible en stock
float prix;
} art1, art2;
Nous pourrons écrire : art1=art2
Une telle affectation globale remplace avantageusement
art1.numero = art2.numero ;
art1.qte = art2.qte ;
art1.prix = art2.prix ;
9/17
10. Saisie et d’affichage d’une structure
/* Saisie des champs de la structure art */
printf ("Entrez respectivement les champs de l’article n ");
scanf("scanf(" %d %s %d %f" , &art.numero, art.nom, &art.qte_stock, &art.prix);
/* Saisie des champs de la structure art */
printf (" Cet article a pour : n ");
printf (" t numéro : %d n ", art.numero);
printf (" t nom : %s n ", art.nom);
printf (" t quantité en stock : %d n ", art.qte_stock);
printf (" t prix : %f n ", art.prix);
10/17
11. Imbrication de structures
Les structures peuvent être composées de champs de n’importe quel type
connu: types de base, pointeur, tableau ou structure.
Exemple:
struct Etudiant
{ int code;
char Nom[20];
struct date date_naissance;
float notes[8]; //notes de l'étudiant dans 8 modules
} E1,E2;
On peut écrire E1.date_naissance.annee pour accéder au champ annee de
E1.date_naissance qui est de type date
E2.notes[3] représente la note du module 4 de l’étudiant E
11/17
12. Tableaux de structures
Voyez ces déclarations :
struct point { char nom ;
int x ;
int y ;
} ;
struct point courbe [50] ;
La structure point pourrait, par exemple, servir à représenter un point d’un
plan, point qui serait défini par son nom (caractère) et ses deux coordonnées.
point est un nom de modèle de structure, tandis que courbe représente
effectivement un tableau de 50 éléments du type point.
courbe[i].nom: représente le nom du point de rang i du tableau courbe. Il s’agit donc
d’une valeur de type char
courbe.nom[i] :n’aurait pas de sens!!!!.
12/17
13. Définition de types synonymes: typedef
En C, on peut définir des types nouveaux synonymes de types existants
(simples, pointeur, tableau, structure,...) en utilisant le mot clé typedef. Ces
nouveaux types peuvent être utilisées ensuite comme les types prédéfinis
Exemple :
La déclaration :
typedef int entier ;
signifie que entier est synonyme de int, de sorte que les déclarations suivantes sont
équivalentes :
int n, p ; <--------> entier n, p ;
De même
typedef int * ptr ;
signifie que ptr est synonyme de int *. Les déclarations suivantes sont équivalentes :
int * p1, * p2 ; ptr p1, p2 ;
13/17
14. Application typedef aux structures
En faisant usage de typedef, les déclarations des structures art1 et art2 peuvent
être réalisées comme suit :
struct enreg
{ int numero ;
int qte ;
float prix ;
} ;
typedef struct enreg s_enreg ;
s_enreg art1, art2 ;
ou encore, plus simplement :
typedef struct
{ int numero ;
int qte ;
float prix ;
} s_enreg ;
s_enreg art1, art2 ;
14/17
15. Exercice 1 : Modélisation des nombres complexes
Un nombre complexe z est entièrement défini par ses parties réelle a imaginaire b: z=a+ib
1)Définir la structure qui permet de représenter correctement un nombre complexe.
2)Réaliser les fonctions donnant les attributs d'un nombre complexe (partie réelle, partie
imaginaire, module, argument)
3)Réaliser les fonctions nécessaires à l'arithmétique sur les complexes (addition,
soustraction, multiplication,division, conjugué, multiplication par un réel)
4)Écrire une fonction d'entête: int IdentiqueComplexe(... , ...) qui teste l'égalité de deux
nombres complexes.
5)Ecrire une fonction d'entête void SaisieComplexe1(....); qui permet la saisie au clavier
d’un nombre complexe.
6)Ecrire une fonction d'entête void SaisieComplexe2(...) qui fait le même travail en
passage par adresse.
7)Ecrire une fonction d'entête complexe InitialiserComplexe1() qui permet d'initialiser
un nombre complexe
8)Ecrire une fonction d'entête complexe InitialiserComplexe(float R , float I) qui permet
d'initialiser un nombre complexe
9)Ecrire une fonction d'entête void AfficheComplexe qui permet d’afficher un nombre
complexe a l’écran. Vous passerez le nombre complexe à afficher par adresse.
10) Écrire le programme principale main() qui appel les fonctions précédentes
15/17
16. Exercice 2 : Gestion des notes d'une classe
On souhaite créer un programme en langage C permettant la gestion des notes pour une
classe. Pour cette raison on utilise les deux types de données (structures) définis ci-dessous
pour représenter un Etudiant et une Classe:
typedef struct ETD
{ char nom[30];
char prenom[30];
int age;
float note;
} Etudiant;
La structure Classe qui va représenter la classe des étudiants. adresses. Cette structure
Classe contiendra un tableau de 30 étudiants et un compteur (un entier nommé n) indiquant
le nombre des étudiants dans le tableau E.
typedef struct CLS
{ Etudiant E[30];
int n;
} Classe;
16/17
17. Exercice 2 : Gestion des notes d'une classe
1)Ecrire une fonction d'entête Etudiant saisir1_etudiant(void) saisissant au clavier les données
constituant un objet de type Etudiant.
2)Ecrire une fonction d'entête void saisir2_etudiant(Etudiant *I) saisissant au clavier les
données constituant un objet de type Etudiant.
3)Ecrire une fonction d'entête int identiques(Etudiant m1,Etudiant m2) retournant 1 si les
champs nom (considéré comme une chaîne de caractères) et age de m1 et m2 ont les mêmes
valeurs, et 0 sinon.
4)Ecrire une fonction d'entête void ajouter_etudiant(Etudiant I, Classe C) qui ajoute l'étudiant
I dans la classe C (on insère l'élément à la fin du tableau).
5)Ecrire une fonction d'entête float moy_classe(Classe C)qui permet de retourner la moyenne
de tous les étudiants de la classe C.
6)Ecrire une fonction d'entête void afficher_etudiant(Etudiant I) qui affiche les informations
contenues dans l’objet I passée en argument.
7)Ecrire une fonction d'entête void afficher_liste(Classe C) affichant à l'écran une représentation
lisible de tous les étudiants de classe C.
8)Ecrire une fonction d'entête int position(Etudiant m , Classe C) retournant l'indice où l'on
trouve m dans A (-1 si m n'est pas dans l'annuaire).
9)Ecrire une fonction d'entête float Chercher_Note_Max(Classe C) retournant le nom de
l'étudiant ayant la note la plus élevée dans la classe C.
10)Ecrire une fonction int Nbr_Etd_moy(Classe C) retournant le nombre des étudiants ayant
obtenu une notre supérieure ou égale à la moyenne de la classe. 17/17