Institut Supérieur d'Informatique du Kef Année universitaire : 2023-2024
TP N°1
Matière : Atelier de Programmation C Classes : 1er SI
Exercice 1:
Ecrire un programme C qui lit un entier x et affiche son opposé.
Correction :
#include<stdio.h>
main( )
{
int x ;
printf("donner un entier\n");
scanf("%d",&x);
printf("l’opposé de %d est %d\n", x,-x);
}
Exercice 2 :
Ecrire un programme qui calcule la somme, le produit et la moyenne de trois nombres du type
entier entrés au clavier.
Correction :
#include <stdio.h>
main()
{
int x, y, z, s, p ;
float M ;
1
printf ("donner un entier x :");
scanf("%d",&x) ;
printf ("donner un deuxième entier y :");
scanf("%d",&y) ;
printf ("donner un trosième entier z :");
scanf("%d",&z) ;
s = x+y+z ;
p = x*y*z ;
M = (float)s/3 ;
printf("\n la somme est %d",s);
printf("\n le produit est %d",p);
printf("\n la moyenne est %f",M);
Exercice 3 :
Ecrire un programme qui demande le rayon d’un cercle (flottant) et affiche son diamètre et sa
surface.
Correction :
#include <stdio.h>
#include <math.h>
main ()
{
float R;
const float pi=3.14;
float S,D;
printf("donner le rayon du cercle\n");
scanf("%f",&R);
2
D= 2*R;
S= pi * pow(R,2);
printf ("la surface du cercle = %.2f et le diametre = %.2f \n", S, D);
Exercice 4:
Ecrire un programme qui calcule et affiche la distance entre deux points A et B du plan dont les
coordonnées sont respectivement (XA, YA) et (XB, YB) entrées au clavier comme entiers.
Correction :
#include <stdio.h>
#include <math.h>
main()
{
int XA, YA, XB, YB;
float DIST;
printf("Entrez les coordonnées du point A : XA,YA ");
scanf("%d %d", &XA, &YA);
printf("Entrez les coordonnées du point B : XB,YB ");
scanf("%d %d", &XB, &YB);
DIST=sqrt(pow(XA-XB,2)+pow(YA-YB,2));
printf("La distance entre A(%d,% d) et B(%d, %d) est %.2f\n",XA, YA, XB, YB, DIST);
}
3
Exercice 5 :
Etant donnée une durée en nombre de secondes, on souhaite déterminer les nombres d’heures
(h), minutes (m) et secondes (s) correspondants.
Par exemple d=4000 correspond à
h=1 (heure)
m=6 (minutes)
s=40 (secondes).
Autrement dit : d = 1* 3600+ 6*60+ 40 (on rappelle qu’une heure correspond à 3600 secondes,
une minute à 60 secondes, et que vous disposez de l’opérateur % qui donne le reste d’une
division entière).
Ecrire un programme qui, étant donnée une durée d en secondes, calcule les nombres d’heures,
de minutes et de secondes correspondants et les affiche sous la forme hh :mm :ss.
Pour l’exemple précédent (4000 secondes), on affichera : « 01 :06 :40 ».
Correction :
#include<stdio.h>
main( )
{
int d,h,s,m;
printf("donner le temps a convertir\n");
scanf("%d",&d);
h=d/3600;
m=(d%3600)/60;
s=(d%3600)%60;
printf("le temps %d seconde correspond à :\t%02d:%02d:%02d\n",d,h,m,s);
}