Vous êtes sur la page 1sur 3

Centre de remise à niveau et de préparation aux concours

TEL : 690463224
INF 121
FICHE DE TD : ENREGISTREMENT (STRUCTURE)

EXERCICE 1 :
On manipule dans cet exercice des données sur des articles d’un magasin
représenté par le Type suivant :
Type structuré Article Début
Chaine Nom // Nom de l’article
Entier Nb // Nombre d’articles actuellement en stock
Réel prix // Prix unitaire de l’article
Entier NbMin // Nombre d’articles Minimum à avoir en stock
Fin
1. Ecrire un algorithme qui saisit les informations associées à un article,
affiche son nom suivi d’un message indiquant le cout du stock de cet
article, puis affiche un message d’alerte si cet article doit être
réapprovisionné.
2. Traduire cet algorithme en langage C.

EXERCICE 2 :
Soit le type d’article tdate, formé de trois entiers qui indiquent respectivement
le jour, le mois et l’année.
Type structuré tdate
Début
Jour, mois, année : entier ;
Fin ;
Ecrire l’algorithme et le programme C qui demande à l’utilisateur d’entrer deux
dates d1 et d2 et retourne la valeur vraie si la date d1 est antérieure à la date
d2 et faux dans le cas contraire.

EXERCICE 1
Une date est une donnée qui spécifie un jour, un mois et une année donnée.
1. Créer un nouveau type de donnée Date pour gérer les dates.
2. Ecrire une fonction d entête int isBixestile(Date D) qui retourne 0 si la
Date D est celle d’une année bissextile et 1 sinon.
3. Ecrire un sous-programme qui reçoit deux dates D1 et D2, les dates de
naissances de deux personnes P1 et P2, puis qui retourne 1 si P1 est plus
âgé que P2 et 2 sinon.
4. Ecrire un sous-programme qui lit une date.
5. Ecrire un sous-programme qui affiche une date
6. Ecrire un sous-programme qui lit les dates de naissances de deux
personnes A et B puis qui affiche :
a. La date du moins âgée.
b. Le nombre de date bissextile parmi les deux dates lues.
N.B : votre programme doit exploiter les sous-programmes des questions
précédentes. Pour éviter de perdre du temps, ne plus réécrire ces sous
programmes. Admettre leur existence et réaliser uniquement les appels
nécessaires dans le programme.

EXERCICE 1 : Nombres Rationnels


Un nombre rationnel est un nombre s’exprimant sur la forme d’un ration n/d,
ou n et d sont des entiers tel que d≠0, n est le numérateur et d le
dénominateur. On voudrait implémenter une bibliothèque de fonction, appelé
rationnal.h qui propose des opérations d’addition et de soustraction, entre
nombre rationnels ; elle devra également proposer une fonction pour la lecture
et l’affichage des nombres rationnels.
En rappel :
1 2 1×3+2×2
• + =
2 3 2×3
1 2 1×2 1
• + = Qui se normalise en
2 2 2×5 5
• (1/2)/(3/5)= ½ * 5/3 = 5/6 Le type rationnel est défini en C par la
structure :
struct rationnal
{
int n ;
int d ;
}
1- On voudrait par la suite déclarer les variables directement à l’aide de
l’identificateur de type rationnal. Proposer une instruction permettant
de définir rationnal comme synonyme de struct rationnal.
2- Ecrire la fonction d’entête rationnal read () permettant de lire un
nombre rationnel.
3- Ecrire une fonction void print (rationnal r) permettant d’afficher un
nombre rationnel.
4- Pour normaliser un nombre rationnel, on cherche le plus grand commun
diviseur (pgcd) entre les deux valeurs absolues du numérateur et du
dénominateur, puis on divise le numérateur et le dénominateur par cette
valeur. Les fonction int abs (int x) qui renvoie la valeurs absolue d’un
nombre entier et int pgcd(int n, int d) qui renvoie le pgcd, vous étant
fournies, écrire la fonction rationnal normaliser(rationnal r) permettant
de normaliser un nombre rationnel.
5- Ecrire la fonction rationnal add (rationnal r1, rationnal r2) permettant
d’additionner deux nombres rationnels.
6- Ecrire une fonction rationnal sub (rationnal r1, rationnal r2) permettant
de soustraire deux nombres rationnels.
7- On voudrait crée le type T_Rationnal pour stocker 10 nombres rationnels
à la fois.
a) Proposer une définition du type T_Rationnal
b) Ecrire une fonction void read (T_Rationnal t, int n) qui se sert de la
fonction read () précédente pour lire et stoker 10 nombres rationnels.

Vous aimerez peut-être aussi