Vous êtes sur la page 1sur 3

Module : Algorithmique et programmation C

Licence : LASTIC
Tuteur : Mme O. Belkahla Driss

Série N°3 – Chapitre 2 Les types composés

Exercice n°1 :
Ecrire un programme qui permet de :
− Créer la structure « fiche » constituée des éléments suivants :
nom : de type caractère (taille=10)
prenom : de type caractère (taille=10)
age : de type entier
note : de type float
− saisir une fiche
− l’afficher.
#include <stdio.h>
struct fiche
{
char nom[10] ;
char prenom[10] ;
int age ;
float note ;
};
main()
{
struct fiche f ;
printf("saisie d’une fiche \n”) ;
printf("Nom : "); scanf("%s", f.nom);
printf("Prénom : "); scanf("%s", f.prenom);
printf("Age : "); scanf("%d", &f.age);
printf("Note : "); scanf("%f", &f.note);
printf("lecture de la fiche \n”) ;
printf("Nom : %s Prénom : %s Age : %d Note : %f \n”, f.nom, f.prenom, f.age, f.note) ;
}

2ème solution : en définissant un nouveau type struct.


#include <stdio.h>
typedef struct
{
char nom[10] ;
char prenom[10] ;
int age ;
float note ;
} fiche;
main()
{
fiche f ;
printf("saisie d’une fiche \n”) ;
printf("Nom : "); scanf("%s", f.nom);
printf("Prénom : "); scanf("%s", f.prenom);
printf("Age : "); scanf("%d", &f.age);
printf("Note : "); scanf("%f", &f.note);
printf("lecture de la fiche \n”) ;
printf("Nom : %s Prénom : %s Age : %d Note : %f \n”, f.nom, f.prenom, f.age, f.note) ;
}
Module : Algorithmique et programmation C
Licence : LASTIC
Tuteur : Mme O. Belkahla Driss

Exercice n°2 :
Ecrire un programme qui permet de :
− Créer une structure « point » constituée des éléments suivants :
num : de type entier
x : de type float
y : de type float
− saisir 4 points
− les ranger dans un tableau
− puis les afficher.

Exercice n°3 :
Calculer les moyennes de n étudiants (n≤30) saisis dans un tableau sachant que chaque
étudiant est caractérisé par un nom, une note de DS et une note d’examen.

Algorithme Traitement_Etudiant
Debut
Constante Nmax =30
Type Etudiant = Structure
nom : chaine de caractère
Ds, Ex : réel
Fin Structure
Type TAB=Tableau [1..Nmax] de Etudiant
Variable
t : TAB
i : entier
/*Demande du nombre d’etudiants*/
répéter
Ecrire(″Donner le nombre d’etudiants″)
Lire(n)
jusqu’à (n dans [0..Nmax])
/*Remplissage du Tableau*/
Pour i de 1 à n faire
Ecrire(″Donner le nom du ″, i, ″ème étudiant″)
Lire(t[i].nom)
répéter
Ecrire(″Donner sa note de DS″)
Lire(t[i].Ds)
Jusqu’à (t[i].Ds dans [0..20])
répéter
Ecrire(″Donner sa note d’examen″)
Lire(t[i].Ex)
Jusqu’à (t[i].Ex dans [0..20])
Fin Pour
/*Calcul moyenne de chaque étudiant*/
Pour i de 1 à n faire
Ecrire(″La moyenne de l’etudiant″, t[i].nom, ″ est ″, (t[i].Ds+ t[i].Ex)/2 )
Fin Pour
Fin
Module : Algorithmique et programmation C
Licence : LASTIC
Tuteur : Mme O. Belkahla Driss

Programme C :

#include<stdio.h>
#include<stdlib.h>
#define Nmax 20
typedef struct Etud{
char nom[10];
float Ds, Ex ;} Etudiant;
typedef Etudiant TAB[Nmax] ;
int main()
{ TAB t ;
int i,n ;
/*Saisie du nombre d’etudiants*/
do {printf(″\nDonner le nombre d’etudiants″) ;
scanf(″%d″,&n) ;}while ((n<0)||(n>Nmax)) ;
/*Remplissage du Tableau*/
for(i=0 ; i<n ; i++)
{printf(″\nDonner le nom du %d ème étudiant ″, i+1) ;
scanf(″%s″, t[i].nom) ;
do{printf(″\n\tDonner sa note de DS ″) ;
scanf(″%f″, &t[i].Ds) ;}while ((t[i].Ds<0)||(t[i].Ds>20));
do{printf(″\n\tDonner sa note d’examen ″) ;
scanf(″%f″, &t[i].Ex) ;}while ((t[i].Ex<0)||(t[i].Ex>20));
};
/*Calcul moyenne de chaque étudiant*/
for(i=0 ; i<n ; i++)
printf(″\nLa moyenne de l’etudiant %s est %f\n″, t[i].nom, (t[i].Ds+ t[i].Ex)/2 ) ;
system(″pause″) ;
}

Exercice n°4 :
Ecrire un programme qui détermine la plus grande (maximum) et la plus petite valeur
(minimum) dans un tableau d'entiers A. Afficher ensuite la valeur et la position du maximum
et du minimum. Si le tableau contient plusieurs maxima ou minima, le programme retiendra la
position du premier maximum ou minimum rencontré.