Vous êtes sur la page 1sur 3

Année universitaire 2023-2024

Semestre 1, ID

Programmation C
TD N° 4 : Les structures

Exercice 1 :
1. On souhaite créer une structure Point pour représenter un point dans l'espace. Cette
structure doit contenir les coordonnées réels x, y et z du point.
o Donnez la définition de cette structure.
o Écrivez un programme qui :
▪ Crée deux points et les initialisés avec des réels.
▪ Affiche les deux points sous la forme : (6.9, 7.3, 4.2)
▪ Calcule la distance entre les deux points.
2. On souhaite aussi créer une structure Segment pour représenter un segment de droite défini
par deux points (structure Point).
o Donnez la définition de cette structure.
o Écrivez un programme qui : o crée un segment à partir de deux points.
▪ Affiche le segment sur comme suit :
[(6.9, 7.3, 4.2) --- (6.9, 7.3, 4.2)]
3. On souhaite par ailleurs créer une structure Ligne pour représenter une ligne brisée
constituée de plusieurs points. Cette structure doit contenir le nombre de points manipulés
N et un tableau automatique de points de taille constante TMAX.
o Donnez la définition de cette structure.
o Écrivez un programme qui :
▪ Crée une ligne brisée et l’initialise par les trois point (3.2, 5.0, 1.0), (4.6, 3.0,
0.0), (2.0, 2.5, 3.0).
▪ Affiche la ligne en affichant l’ensemble de points de la ligne.
▪ Calcule et affiche la longueur de la ligne.

Exercice 2 :
L’objectif est de créer un programme qui permet de gérer la facturation d’un magasin qui vend
des produits achetés par des clients. Chaque produit a un code, un libellé et un prix de vente.
Un produit est représenté par la structure suivante :
typedef struct Produit{
int code;
char libelle[20];
float prix;
}Produit;

Le client qui achète les produits à un nom et une adresse (on se limite à la ville). Le client est
représenté par la structure suivante :
typedef struct Client{
char nom[20];
char adresse[40];
}Client;

Le client peut commander un produit avec une quantité définie. Cette commande est désignée
sous le nom ligne de commande et peut être représenté par la structure suivante :

1/3
Année universitaire 2023-2024
Semestre 1, ID

typedef struct LigneCommande{


Produit prod;
int qte;
}LigneCommande;

1. En utilisant les structures définies, écrire un programme main qui permet de :

a. Créer 3 produits et les saisir avec les données suivantes :

Code Libellé Prix


Produit p1 11 Table 3000
Produit p2 22 Chaise 250
Produit p3 33 PC 9000

b. Créer 3 lignes de commande et les saisir avec les données suivantes :

Produit Quantité
LigneCommande c1 p1 5
LigneCommande c2 p2 8
LigneCommande c3 p3 2

c. Créer 1 client et le saisir avec les données suivantes :

Nom Adresse
Client e Hamid Kenitra

d. Afficher l’ensemble des données des variables crée.

On désir maintenant créer la facture du client contenant l’ensemble des produits commandés
par le client (un tableau de ligne de commande de taille fixé par une constante N). La facture a
un numéro (num) et concerne un client (cli) qui commande un nombre quelconque (nbLC) de
produits dans une date donnée (dateFacture). La facture peut être représentée par la structure
suivante :

#define N 100
typedef struct Facture{
long num;
Client cli;
char dateFacture[10];
LigneCommande ligneC[N];
int nbLC;
float tva;
}Facture;

2. Ajouter au programme précédant la déclaration d’une facture f.

3. Saisir la facture f avec les données des variables crées et l’afficher comme suit :

2/3
Année universitaire 2023-2024
Semestre 1, ID

-------------------------------------------------Facture----------------------------------------
Facture num : 1234 Date : 20/09/2016
Client : Hamid
Adresse : Kenitra
TVA : 20.00
--------------------------------------------------------------------------------------------------
Num Designation Quantite Prix HT Prix TTC
--------------------------------------------------------------------------------------------------
1 11 Table 5 3000.00 3600.00
2 22 Chaise 8 250.00 300.00
3 33 PC 2 9000.00 10800.00
--------------------------------------------------------------------------------------------------
Total : 14700.00
--------------------------------------------------------------------------------------------------

3/3

Vous aimerez peut-être aussi