Vous êtes sur la page 1sur 4

Université 20 Août 1955 Skikda

Faculté des Sciences


Département de Maths
Niveau : 1ère Année Math-Informatique (1MI)

Semestre N°01 Module : ASD1


2020-2021
Série de TD N°05

Exercice 1 :

Ecrire un algorithme qui lit deux nombres complexes C1 et C2 et qui affiche ensuite leur somme.
Sachant que un nombre complexe se caractérise par sa partie réel re et sa partie imaginaire im.

Exercice 2 :

Ecrire un algorithme qui lit deux points a et b. sachant que un point se caractérise par ces deux cordonnées x
et y.

ensuite en calcule la distance entre ces deux point.

Exercice 3 :

Ecrire un algorithme permettant d'introduire une suite de produits (50 produit). Sachant que chaque produit se
caractérise par : son numéro , son nom (libellé) et son prix .

ensuite on augmente le prix de tous les produit ayants un numéro inferieur à 30 par 5.

Exercice 4 :

Ecrire un programme permettant de :

- définir le type Saison permet de représenter les 4 saisons de l'année.

- permet à l'utilisateur d'introduire sa saison préférée

- afficher sa saison préférée

Exercice 5:

Ecrire un algorithme permettant à un enseignant de :

- Saisir les notes de ses étudiants (30 étudiants). Sachant que chaque étudiant est caractériser par son numéro
(séquentiel), son nom, son prénom ainsi que sa note. .

- afficher les étudiants ayants la moyenne (>=10).

1
Solution série 05
Solution Exo 01 :

En algorithmique En C
Algo Exo1S5 #include <stdio.h>
Type Complexe = Enregistrement main ()
re : réel {
im: réel struct Complexe {
FinEnregistrement float re ;
Var c1,c2,c3 : Complexe float im ;
moyenne : réel };
Début Complexe c1, c2, c3 ;
Ecrire ('entrer la partie réel du premier nombre ') float dist;
Lire (c1.re) printf ("entrer la partie réel du c1 ");
Ecrire ('entrer la partie imaginaire du premier nombre ') scanf ("%f",&c1.re);
Lire (c1.im) printf ("entrer la partie imaginaire du c1 ");
Ecrire ('entrer la partie réel du deuxième nombre ') scanf ("%f",&c1.im);
Lire (c2.re) printf ("entrer la partie réel du c2 ");
Ecrire ('entrer la partie imaginaire du deuxième nombre ') scanf ("%f",&c2.re);
Lire (c2.im) printf ("entrer la partie imaginaire du c2 ");
c3.re ← c1.re + c2.re scanf ("%f",&c2.im);
c3.im ← c1.im + c2.im c3.re = c1.re + c2.re ;
Ecrire (' la somme des deux nombres est ', c3.re , '+i' , c3.im = c1.im + c2.im ;
c3.im)
Fin printf ("la somme de c1 et c2est %f + i %f ",c3.re , c3.im);
}

Solution Exo 02 :

En algorithmique En C
Algo Exo2S5 #include <stdio.h>
Type Point = Enregistrement #include <math.h>
x : réel main ()
y: réel {
FinEnregistrement
struct Point {
float x ;
Var a,b : Point
float y ;
dist : réel
Début };
Ecrire ('entrer x du point a ') Point a,b ;
Lire (a.x) float dist;
Ecrire ('entrer y du point a ') printf ("entrer le x de du a ");
Lire (a.y) scanf ("%f",&a.x);
Ecrire ('entrer x du point b ') printf ("entrer le y de du a ");
Lire (b.x) scanf ("%f",&a.y);
Ecrire ('entrer y du point b ') printf ("entrer le x de du b ");
Lire (b.y) scanf ("%f",&b.x);
dist←sqrt ((a.x- b.x)* (a.x- b.x) + (a.x- b.x)* (a.x- b.x))
printf ("entrer le y de du b ");
Ecrire ('la distance entre a et b = ', dist)
scanf ("%f",&b.y);
Fin
dist = sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y) ) ;
printf ("la distance entre a et b est %f",dist);
}

2
Solution Exo 3 :

En algorithmique En C
Algo Exo3S5 struct Produit {
Type Produit= Enregistrement int num ;
num : entier char nom [30] ;
nom: chaine float prix;
prix : réel };
FinEnregistrement
Produit T [50];
int i ;
Var T : Tableau [0..49] de Produit
for (i= 0 ; i<3; i++)
i : entier
Début {
Pour (i de 0 à 49) faire printf ("entrer le numero du produit ");
Ecrire ('entrer le numéro du produit ') scanf ("%d",&T[i].num);
Lire (T[i].num) printf ("entrer le nom du produit ");
Ecrire ('entrer le nom du produit ') scanf ("%s",&T[i].nom);
Lire (T[i].nom) printf ("entrer le prix du produit ");
Ecrire ('entrer le prix du produit ') scanf ("%f",&T[i].prix);
Lire (T[i].prix) }
FinPour for (i= 0 ; i<50; i++)
Pour (i de 0 à 49) faire {
Si (T[i].num <= 30)
if (T[i].num <= 30)
T[i].prix ← T[i].prix + 5
T[i].prix += 5 ;
FinSI
}
FinPour
}
Fin

Solution Exo 04 :

En algorithmique En C
Algo Exo4S5 #include <stdio.h>
Type Saison = (AUTOME, HIVER, PRINTEMPS, ETE) main ()
Var s: entier {
Début Enum Saison { AUTOME, HIVER, PRINTEMPS,
Ecrire ('SVP entrer votre Saison préférée 1 : Automne 2: ETE };
Hiver, 3 : Printemps, 4 Eté ) Saison s ;
printf ("entrer votre saison preferee
Lire (s ) 1: Autome, 2: Hiver, 3: Printemps, 4 : Eté");
scanf("%d",&s);
switch (s)
Selon s faire
{
1 : Ecrire (votre saison préférée est l autome ') case AUTOME : printf ("votre saison preferee est l
autome");
2 : Ecrire (votre saison préférée est l Hiver ')
break;
3 : Ecrire (votre saison préférée est le Printemps ') case HIVER : printf ("votre saison preferee est l Hiver");
4 : Ecrire (votre saison préférée est l Eté ') break;
case PRINTEMPS : printf ("votre saison preferee est le
Printemps");
FinSelon break;
case ETE : printf ("votre saison preferee est l Eté");
Fin
}
}

3
Solution Exo5 :

En Algorithmique En C
Algo Exo5S5 #include <stdio.h>
Type Etudiant= Enregistrement
num : entier
main ()
nom : chaine
prenom: chaine
{
note: réel struct Etudiant {
FinEnregistrement int num ;
char nom [30] ;
Var T : Tableau [0..29] de Etudiant char prenom [30] ;
i : entier
float note;
Début
Pour (i de 0 à 29) faire
T[i].num ← i + 1 };
Ecrire ('entrer le nom de l étudiant ') Etudiant T [30];
Lire (T[i].nom) int i ;
Ecrire ('entrer le prénom de l étudiant ')
Lire (T[i].prenom) for (i= 0 ; i<3; i++)
Ecrire ('entrer la note de l étudiant ')
{
Lire (T[i].note )
FinPour T[i].num = i+1 ;
Ecrire ('Les Etudiant ayants la moyenne sont :') printf ("entrer le nom ");
Pour (i de 0 à 49) faire scanf ("%s",&T[i].nom);
Si (T[i].note >= 10) printf ("entrer le prénom ");
Ecrire (T[i].nom ,' ', T[i].prenom, ' : ', T[i].note, '\n') scanf ("%s",&T[i].prenom);
FinSI
printf ("entrer la note ");
FinPour
scanf ("%f",&T[i].note);
Fin }

for (i= 0 ; i<3; i++)


{
if (T[i].note >= 10)
printf("%s %s : %f",T[i].nom,
T[i].prenom, T[i].note ) ;
}

Vous aimerez peut-être aussi