____________________________________________________________________________________________________________
Exercice 1 :
Dans la recherche d’employés, un
organisme a exigé d’identifier les candidats par les caractéritiques suivantes
:
-Nom
-Prénom
-Date de naissance :
jour,mois,année
-Lieu de naissance : ville,province,pays
-Etat civil (marié ou non)
-Nombre d’enfants
-Nationalité
-Adresse :
avenue,ville,pays,numero,code postal,téléphone
-Diplôme
-Stage
-Etablissement : Etablissement1, Etablissement2,
Etablissement3,Etablissement4.
a-Ecrire l’enregistrement Identité.
b-Ecrire une parte d’algorithme permettant
de déclarer une variable de type identité et lui affecter l’identité d’une
personne.
____________________________________________________________________________________________________________
Solution :
A-
Type
Date=enregistrement
Jour : entier ;
Mois : entier ;
Année : entier ;
FinEnregistrement
Lieu=enregistrement
Ville : chaine
de 15 caractères ;
Province : chaine de 25 caractères ;
Pays : chaine de
20 caractères ;
FinEnregistrement
Domicile= enregistrement
Avenue,ville,pays : chaine de 20 caractères ;
Numero,code_postale entier long ;
Téléphone :
chaine de 10 caractères ;
FinEnregistrement
Entreprise = enregistrement
Etab_1, Etab_2,
Etab_3, Etab_4 : chaine de 25 caractères
;
FinEnregistrement
Identite=enregistrement
Nom,prenom,nationalité,diplôme : chaine de 40 caractères ;
Date_naissance :
date ;
Lieu_naissance :
lieu ;
Etat_civil,stage
: booléen ;
Adresse :
domicile ;
Etablissement : entreprise
;
FinEregistrement
__________________________
B-
Type
Var
Employe :identite ;
Début
Avec Employe faire
Nom ß ‘’Adil’’ ;
Prenomß ‘’Adil’’ ;
nationalite ß ‘’Marocaine’’ ;
avec Date_naissance Faire
jour ß 20 ;
mois ß 5 ;
annee ß 1964 ;
Fin avec
avec Lieu_naissance Faire
villeß
‘’Tanger’’ ;
paysß ‘’Maroc’’
;
provinceß
‘’Tanger’’ ;
Fin avec
Etat_civil ß vrai ;
Stage ß vrai ;
Nbr_enf ß 3 ;
Avec adresse faire
Code_postale ß
32500 ;
Avenue ß
‘’Mohamed V’’ ;
Ville ß
‘’casablanca’’ ;
Pays ß ‘’Maroc’’
;
Numero ß 71 ;
Telephone ß
‘’0665222222’’ ;
Fin avec
Avec etablissement faire
Etab_1 ß
‘’Sony’’ ;
Etab_2 ß
‘’Samsung’’ ;
Etab_3 ß ‘’Thomson’’ ;
Etab_4 ß
‘’Motorola’’ ;
Fin avec
Fin avec
Fin
____________________________________________________________________________________________________________
Exercice 2 :
Dans un repère orthonormé, un
point est connu par deux coordonnées X
et Y. on peut le
représenter en programmation par un enregistrement a deux champs.
-Ecrire un algorithme permettant
de :
-Déclarer un enregistrement «
point »,
-Introduire les coordonnées de
deux points P1 et P2,
-Afficher les deux points P1 et
P2,
-Calculer et afficher la distance
entre ces deux points,
-Introduire au clavier un
déplacement dx sur l’axe des X et dy sur
l’axe des y ,
-Déplacer les deux points en
utilisant les déplacements dx et dy,
-Afficher les deux points P1 et
P2 dans les nouvelles positions.
____________________________________________________________________________________________________________
Solution :
Algorithme points ;
Type
Point=enregistrement
X : entier ;
Y : entier ;
FinEnregistrement
Var
P1,P2 :point ;
dx,dy : entier ;
d : réel ;
Début
(* Saisie des coordonnées des
deux points *)
Ecrire(‘Entrer l’abscisse du premier point P1 : ‘) ;
Lire(P1.X) ;
Ecrire(‘Entrer l’abscisse du premier point P1 : ‘) ;
Lire(P1.X) ;
Ecrire(‘Entrer l’ordonnée du premier point P1 : ‘) ;
Lire(P1.Y) ;
Ecrire(‘Entrer l’abscisse du deuxième point P2 : ‘) ;
Lire(P2.X) ;
Ecrire(‘Entrer l’ordonnée du deuxième
point P2 : ‘) ;
Lire(P2.Y) ;
(*Affichage des deux points P1 et
P2*)
Aller à (P1.X,P1.Y) ;
Ecrire(‘*’) ;
Aller à (P2.X,P2.Y) ;
Ecrire(‘*’) ;
(*calcul de la distance entre les
points P1 e P2*)
d<-- sqrt((P2.X – P1.X)^2 +
(P2.Y – P1.Y)^2) ;
Ecrire (‘La distance entre les
deux points P1 et P2 est :’,d) ;
(*Saisie des déplacements selon X
et Y*)
Ecrire (‘entrer le deplacement
selon OX :’) ;
Lire(dx) ;
Ecrire (‘entrer le deplacement
selon OY :’) ;
Lire(dy) ;
(*Déplacement et affichage des deux points *)
P1.X <-- P1.X + dx ;
P1.y <--
P1.y + dy ;
P2.X <-- P2.X + dx ;
P2.y <-- P2.y+ dy ;
(*Affichage des deux points
dans les nouvelles positions*)
Aller à (P1.X,P1.Y) ;
Ecrire(‘*’) ;
Aller à (P2.X,P2.Y) ;
Ecrire(‘*’) ;
Fin
____________________________________________________________________________________________________________
Exercice 3 :
Ecrire un algorithme permettant
de :
Déclarer un tableau nommé «
courbe » de N point et chaque point défini sous forme d’enregistrement.
Saisir les coordonnées de tous
les points de la courbe,
Tracer la courbe à l’écran point
par point en utilisant des étoiles.
____________________________________________________________________________________________________________
Solution :
Algorithme points ;
Type
Point=enregistrement
X
: entier ;
Y : entier ;
FinEnregistrement
Var
Courbe : tableau[1..100] de
point ;
N,i: entier ;
Début
(* Saisie des points de la courbe *)
Ecrire(‘Entrer le nombre de
points de la courbe : ‘) ;
Lire(N) ;
Pour i <-- 1 à N faire
Ecrire(‘Entrer l’abscisse du
point N° ,’i’,’: ‘) ;
Lire(courbe[i].X)
;
Ecrire(‘Entrer l’ordonnée du
point N° ,’i’,’: ‘) ;
Lire(courbe[i].Y)
;
Fin pour i
(*traçage de la courbe point
par point *)
Pour i <-- 1 à N faire
Aller à (courbe[i].X, courbe[i].Y) ;
Ecrire(‘*’) ;
Fin pour i
Fin
____________________________________________________________________________________________________________
Exercice 4 :
Dans une banque un client est connu par :
-Nom
-Prénom
-Adresse
-Numéro de compte
-solde
a- Ecrire l’enregistrement client.
b- Ecrire un programme permettant :
D’entrer les informations de tous
les clients de la banque,(on considère NC :nombre de client)
De faire la somme d’argents
totale STA et la moyenne d’argent Moy par client ,
D’afficher les données et résultats
à l’écran.
____________________________________________________________________________________________________________
Solution :
Type
client=enregistrement
nom : chaine de
15 caractères ;
Pr : chaine de
20 caractères ;
Adr: chaine de
35 caractères ;
Num : Entier long ;
Sold : réel ;
FinEnregistrement
Var
T : Tableau[1..50] de client ;
i,NC : entier ;
STA,Moy : réels ;
Début
Ecrire(‘programme de gestion
d’une banque’) ;
(*saisie de données *)
Ecrire(‘entrer le nombre de
clients : ’) ;
Lire(NC) ;
Pour i <-- 1 à NC faire
Ecrire(‘**********Information
du client numéro ‘,i,’ ******** ’) ;
Ecrire(‘entrer le nom du client
:’) ;
Lire(T[i].nom) ;
Ecrire(‘entrer le prénom du client :’) ;
Lire(T[i].Pr) ;
Ecrire(‘entrer le numéro du
compte:’) ;
Lire(T[i].num) ;
Ecrire(‘entrer l’adresse du
client :’) ;
Lire(T[i].Adr) ;
Ecrire(‘entrer le solde du client :’) ;
Lire(T[i].Sold) ;
Fin pour i ;
(*calcul*)
STA <-- 0 ;
Pour i<-- 1 à NC faire
STA <--
STA+T[i].Sold ;
Fin pour i
Moy <-- STA/NC ;
(*affichage des r ésultats*)
Ecrire (‘la somme totale
d’’argent est :’,STA) ;
Ecrire(‘la moyenne d’argent est
:’,Moy) ;
Pour i<-- 1 à NC faire
Avec T[i] faire
Ecrire(‘information du
client numéro :’,i) ;
Ecrire(‘Nom :’,nom) ;
Ecrire(‘Prenom :’,pr) ;
Ecrire(‘adresse:’,adr) ;
Ecrire(‘numéro de compte
:’,num) ;
Ecrire(‘solde :’,Sold) ;
FinAvec
Fin pour i
Fin
____________________________________________________________________________________________________________
____________________________________________________________________________________________________________
0 commentaires:
Enregistrer un commentaire