République du Cameroun Republic of Cameroon
Paix – Travail – Patrie Peace – Work – Fatherland
----------- -----------
Ministère de l’Enseignement Supérieur Ministry of Higher Education
----------- -----------
Université de Maroua The University of Maroua
----------- -----------
Faculté des sciences Faculty of sciences
------------ -----------
Département des mathématiques et Department of mathematics
Informatique And computer science
------------ -----------
CODE: INF/IGE 111
TPE : ALGORITHME
GROUPE 17 : Sujet 2
Rédiger par:
N0 NOMS ET PRENOMS
01 KELOMDAR ISAC
02 KOUNDAMA HAKDA
03 GORBA DJONWE DONATIEN
04 GNOWA KIDANDI
05 GUEDEL BABA
Nom de l’enseignant :
Dr DJAM-DOUDOU MOUNIRAH
Année académique : 2024/2025
Exercice 1
a) Écrivons un algorithme pour lire deux nombres réels A et B (A différent de zéro) puis qui
calcule la solution de l'équation Ax + B = 0. On précise également que l'On utilise la
méthode de résolution des équations du premier degré pur qui se présente de la
manière suivante : la solution de l'équation Ax + B = 0, A ≠ 0, est x = -B/A.
Algorithme Equation_premier_degré
Var A, B, x : réel ;
Début
Écrire ("Entrez la valeur de A : ") ;
Lire (A) ;
Écrire ("Entrez la valeur de B : ") ;
Lire(B) ;
Si (A≠0) Alors
x <--- - B / A ;
Écrire ("La solution de l'équation Ax + B = 0 est : ", x) ;
sinon
Écrire (" Erreur : la valeur de A est incorrecte”) ;
FinSi
Fin
Traduction en langage C
#include <stdio.h>
int main () {
float A, B, x;
printf ("Entrer la valeur de A :") ;
scanf ("%f", &A) ;
printf ("Donner la valeur de B :") ;
scanf ("%f", &B) ;
if (A≠0) {
x = - B/A
printf ("La solution de l’équation Ax + B = 0 est :%.2f", x) ;
}
else
printf ("Erreur: la valeur de A est incorrect") ;
}
b) Ecrivons un algorithme qui lit six nombres réels A, B, C, D, E et F et calcule la solution du
système d’équation Ax + By = C
Dx + Ey = F
Algorithme Système
Var A, B, C, D, E, F, x, y, detx, dety, det : réel ;
début
écrire ("Quelle est la valeur de A ?") ;
Lire(A) :
Écrire (''Quelle est la valeur de B ?") ;
Lire(B) ;
Écrire (''Quelle est la valeur de C ?'') ;
Lire(C) ;
Écrire (''Quelle est la valeur de D ?") ;
Lire(D) ;
Écrire (''Quelle est la valeur de E ?") ;
Lire(E) ;
Écrire (''Quelle est la valeur de F ?") ;
Lire(F) ;
det <--- AE-DB ;
detx <--- (CE-BF);
dety <--- (AF-DC);
x <--- detx/det;
y <--- dety/det;
Écrire (''x='', x) ;
Écrire (''y=", y) ;
Fin
Traduction en langage C
#include <stdio.h>
int main () {
float A, B, C, D, E, F, x, y, detx, dety, det ;
printf ("Donner la valeur de A :") ;
scanf ("%f", &A) ;
printf ("Donner la valeur de B :") ;
scanf ("%f", &B) ;
printf ("Donner la valeur de C :") ;
scanf ("%f", &C) ;
printf ("Donner la valeur de D :") ;
scanf ("%f", &D) ;
printf ("Donner la valeur de E :") ;
scanf ("%f", &E) ;
printf ("Donner la valeur de F :") ;
scanf ("%f", &F) ;
det = AE-DB ;
detx = CE-BF ;
dety = AF-DC ;
x = detx/det;
y = dety/det;
printf("x=", x) ;
printf("y=", y) ;
printf ("Division 4", p4, "%") ;
}
Exercice 2
Ecrivons un algorithme qui lit le montant des ventes généré par les quatre divisions et
imprime le montant totale des ventes ainsi que le pourcentage des ventes de chacune des
divisions
Algorithme gestion
Var Ventes1, Ventes2, Ventes3, Ventes4, : réel ;
p1, p2, p3, p4, total : réel ;
Début
Écrire (''Quel est le montant des ventes de la division 1 ? '') ;
Lire(Ventes1) ;
Écrire ("Quel est le montant des ventes de la division 2 ? '') ;
Lire(Ventes2'') ;
Écrire (''Quel est le montant des ventes de la division 3 ? '') ;
Lire(Ventes3) ;
Écrire (''Quel est le montant des ventes de la division 4 ? '') ;
Lire(Ventes4) ;
Total <----- Ventes1+ Ventes2+ Ventes3+ Ventes4 ;
p1 <----- 100 * (Ventes1/Total) ;
p2 <---- 100 * (Ventes2/Total) ;
p3 <----- 100 * (Ventes3/Total) ;
p4 <---- 100 * (Ventes4/Total) ;
Ecrire (''Ventes totales : '', Total) ;
Ecrire (''Division 1 : '', p1, "%'') ;
Ecrire ('Division 2 :'', p2, "%'') ;
Ecrire (''Division 3 : '', p3, "%'') ;
Ecrire (''Division 4 : '', p4, "%'') ;
Fin
Traduction en langage C
#include <stdio.h>
int main () {
float ventes1, ventes2, ventes3, ventes4, p1, p2, p3, p4, total ;
printf ("Quel est le montant des ventes de la division 1 ?") ;
scanf ("%f", &ventes1) ;
printf ("Quel est le montant des ventes de la division 2 ?") ;
scanf ("%f", &ventes2) ;
printf ("Quel est le montant des ventes de la division 3 ?") ;
scanf ("%f", &ventes3) ;
printf ("Quel est le montant des ventes de la division 4 ?") ;
scanf ("%f", &ventes4) ;
total = ventes1 + ventes2 + ventes3 + ventes4 ;
p1 = 100 * (ventes1/total) ;
p2 = 100 * (ventes2/total) ;
p3 = 100 * (ventes3/total) ;
p4= 100 * (ventes4/total) ;
printf ("Division 1", p1, "%") ;
printf ("Division 2", p2, "%") ;
printf ("Division 3", p3, "%") ;
printf ("Division 4", p4, "%") ;
}
Exercice 3 :
Ecrivons un algorithme pour calculer la difference ensembliste de deux
ensembles représentés par des tableaux. L’algorithme consiste à recopier dans
liste3 les elements de liste1 qui ne sont pas dans liste2
Algorithme ensembliste
Var liste1=Tab[liste1] d'entier ;
Liste2=Tab[liste2] d'entier ;
Liste3=Tab[liste3] d'entier ;
liste3 =tab[ ] d'entier ;
Pour i de 0 à liste1 faire
estPresent = False ;
Pour j de 0 à liste2 faire
Si liste1[i] = liste2[j] alors
estPresent = True;
break ;
FinSi
FinPour
Si estPresent = False alors
liste3 <----- (liste1[i]) ;
FinSi
FinPour
Pour i de 0 à liste3 faire
écrire ("Element dans la différence :", liste3[i]) ;
FinPour
Fin
Traduction en langage c
#include <studio.h>
int main() {
int liste1=Tab[liste1] , liste2= Tab[liste2], liste3= Tab[], i ;
For( i=0, i<=liste1, i++) {
estpresent=false ;
For(j=0, j<=liste2, j++) {
estpresent= true;
Break;
Si estpresent= false {
liste3=liste1 ;
For(i=0, i<=liste3, i++) {
Printf ("Element dans la différence :", liste3[i]) ;
}
Exercice 4 :
Soit le type enregistrement date, formé de trois nombres entiers qui indiquent
respectivement le jour, le mois et l'année.
type tdate = enregistrement
Jour, mois, année : entier ;
fin enreg;
Écrivons une fonction booléenne qui prend entrée deux dates datel et date2 et détermine si
la date datel vient avant la date date2.
Fonction EstDateAnterieure (date1 : tdate, date2 : tdate) : booléen
Si date1.année < date2.année Alors
Retourner Vrai ;
Sinon Si date1.année > date2.année Alors
Retourner Faux ;
Si date1.mois < date2.mois Alors
Retourner Vrai ;
Sinon Si date1.mois > date2.mois Alors
Retourner Faux ;
FinSi
Si date1.Jour < date2.Jour Alors
Retourner Vrai ;
Sinon Si date1.Jour >= date2.Jour Alors
Retourner Faux ;
FinSi
Fin Fonction
Traduction en langage C
#include <stdbool.h>
typedef struct {
int annee;
int mois;
int jour;
} tdate;
bool EstDateAnterieure(tdate date1, tdate date2) {
if (date1.annee < date2.annee) {
return true;
} else if (date1.annee > date2.annee) {
return false;
} else {
if (date1.mois < date2.mois) {
return true;
} else if (date1.mois > date2.mois) {
return false;
} else {
if (date1.jour < date2.jour) {
return true;
} else {
return false;
}
EXERCICE 5
Ecrivons l’algorithme qui qui demande à l’utilisateur de saisir les éléments nécessaires au
calcul de l’air de champ affichant ensuite la valeur de la surface en m2 (mètre carré)
Algorithme calcul_air_champ
Var petite_base, grande_base, hauteur, Aire : réel ;
Début
Ecrire ("Donner la longueur de la petite base en mètre :") ;
Lire(petite_base) ;
Ecrire ("Donner la longueur de la grande base en mètre :") ;
Lire(grande_base) ;
Ecrire ("Donner la hauteur du champ :") ;
Lire("hauteur") ;
Aire <----- ((petite_base + grande_base) * hauteur) /2 ;
Ecrire ("La surface du trapèze est" : Air,"m²") ;
Fin
Traduction en langage C
#include <stdio.h>
int main () {
float petite_base, grande_base, hauteur, aire ;
printf ("Donner la longueur de la petite base en mètre : ") ;
scanf ("%f", &petite_base) ;
printf ("Donner la longueur de la grande base en mètre :") ;
scanf ("%f", &grande_base) ;
printf ("Donner la hauteur du champ :") ;
scanf ("%f", &hauteur) ;
aire = ((petite_base + grande_base) * hauteur) /2 ;
printf ("La surface du champ est : %.2f", aire, "m²”) ;