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 ;
Telephone : 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 ;
Debut
(* 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’ecran 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 ;
Debut
(* 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 ;
Debut
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
ConversionConversion EmoticonEmoticon
Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.