Solution des exercices sur les structures
Exercice 1
La déclaration :
//Un joueur de basket caractérisé par son nom, sa date de naissance, sa nationalité
Type Date = structure {
j, m,a : entier ;
}
Type joueur = structure {
nom : chaine ;
DN: Date ; //Date de naissance de type Date
Nat : chaine de caractère ;
}
//Une association de joueurs de basket (un tableau qui contient les informations des joueurs)
A [100] : joueur ; //Association c’est un tableau contient 100 joueurs maximums
i , n : entier;
//Une équipe de basket avec son nom, ses joueurs, ainsi que les points gagnés.
Type Equipe = structure
{
nom : chaine ;
T[20]: Chaine ;
Pg : entier ;
}
Eq : Equipe; //Eq c’est une variable de type Equipe
//Saisie 50 joueurs d’une association
Pour i de 1 à 50 faire
Ecrire (“Donner le nom du joueur: “);
Lire(A[i].nom)
Ecrire (“Donner sa date de naissance: “);
Lire(A[i].DN.j);
Lire(A[i].DN.m);
Lire(A[i].DN.a);
Ecrire (“Donner sa nationalité: “);
Lire(A[i].Nat);
Finpour
//Saisie les informations d’une équipe de basket composé de 12 joueurs
Ecrire (“Donner le nom de l’équipe svp: “);
Lire(Eq.nom);
Pour i de 1 à 12 faire
Ecrire (“Donner le nom du joueur: “);
Lire(Eq.T[i])
Finpour
Ecrire (“Donner le nombre des points gagnés: “);
Lire(Eq.Pg);
//Afficher les joueurs de l’association dont leur nationalité est “Algérienne” et son mois de naissance “octobre”.
Pour i de 1 à 50 faire
Si( A[i].Nat=”Algérienne” ET A[i].DN.m= 10) alors
Ecrire (A[i].nom, “ “ );
Ecrire (A[i].DN.j“ / “, A[i].DN.m,”/”, A[i].DN.a);
Ecrire (A[i].Nat)
Finsi
Fin
//Afficher les points gagnés par l’équipe de basket.
Ecrire (“Le nombre des points est : “,Eq.Pg);
Exercice 2 :
Déclarer la structure commune puis déclarer 100 communes
Algorithme Exo2_Commune
Type code = structure {
Num, Wl : entier ;
}
Type commune = structure
{ nom : chaine ;
Nj, Na : entier ;
CD : code ;
}
Variable
V[100] : commune ;
n,i :entier ;
//Saisie les n communes de l’Algérie avec leurs informations.
Ecrire (‘’ Donner le nombre de communes: );
Lire;
Pour i de 1 à n faire
Lire(V[i].nom, V[i].Nj, V[i].Na);
Lire(V[i].CD.Num, V[i].CD.Wl) ;
Finpour
//Affiche tous les noms des communes de la wilaya de Saida
Pour i de 1 à n faire
Si (V[i].CD.WI=20) alors
Ecrire(V[i].nom);
Fsi
finpour
//Vérifie si Saida compte plus de personnes âgées que des jeunes
k←0 ; // k : le nombre des jeunes de la wilaya de Saida
m←0 ; //m : le nombre des personnes âgées de la wilaya de Saida
Pour i de 1 à n faire
Si (V[i].CD.WI=20) alors
k←k+V[i]. Nj ;
m←m+V[i].Na;
Finsi
Finpour
Si (m>k) alors
écrire ("Saida compte plus de personnes âgées que de jeunes") ;
Sinon
Si (m<k) alors
Ecrire ("Saida compte plus de jeunes que de personnes âgées") ;
Sinon
Ecrire (‘’Le nombre des jeunes égal le nombre des personnes agées “) ;
Finsi
Fnisi
//Affiche le nom de la commune de la wilaya de Saida qui contient le plus de jeunes.
max←0 ; // max: le nombre de jeunes maximal d’une commune de la wilaya de Saida
Pour i de 1 à n faire
Si (V[i].CD.WI=20) alors
Si (V[i]. Nj>max) alors
Max← V[i].Nj ;
Vl←V[i].nom ;
finsi
finsi
Finpour
Ecrire("la commune", Vl, "contient le plus de jeunes");
Fin