You are on page 1of 5

Ecole Hassania des Travaux Publics 1 ère Année, Génie Civil

M.K. GUENNOUN

Langage C
TP1

Préambule :

Ce TP constitue un premier contact avec le langage de programmation C. Le but est de mettre en


œuvre les concepts vus en cours d’algorithmique et de se familiariser avec la syntaxe du langage C
présentée dans la partie théorique. Nous utiliserons pour cela le compilateur « tcc »
(www.tinycc.org).

Pour la compilation, utiliser la commande :

 tcc –o Nom_ficher.o Nom_fichier.c

Profiter des messages du compilateur pour corriger d’éventuelles erreurs de codage.

Pour l’exécution, lancer l’exécutable en l’appelant :

 Nom_fichier.o

Exercices :
Exercice 1: 

Tester le programme suivant

#include <stdio.h>

int main()

printf("BONJOUR ");

printf("IL FAIT BEAU\n");                                                                                
printf("BONNES VACANCES");


Exercice 2:

Affichage multiple de structure:

Tester le programme suivant et conclure:

#include <stdio.h>

int main()

char c;

c ='A'; /* c est le caractere alphanumerique A */

printf("decimal = %d  ASCII = %c\n",c,c);

 }

Exercice 3:

Tester le programme suivant et conclure.

Dans un deuxième temps, modifier ce programme pour améliorer l’interface utilisateur.

#include <stdio.h>
int main()
{
char c;
c ='A'; /* c est le caractere alphanumerique */

printf("%d\n",c); /* affichage du code ASCII en decimal*/

printf("%o\n",c); /* affichage du code ASCII en base huit */

printf("%x\n",c); /* affichage du code ASCII en hexadecimal */

printf("%c\n",c); /* affichage du caractère */


}
 

Exercice 4:

Ecrire un programme qui permute et affiche les valeurs de trois variables A, B, C de type entier qui
sont entrées au clavier : 
A ==> B , B ==> C , C ==> A

Exercice 5:

Ecrire un programme qui affiche le quotient et le reste de la division entière de deux nombres entiers
entrés au clavier ainsi que le quotient rationnel de ces nombres.

Exercice 6:

Ecrire un programme qui affiche la résistance équivalente à trois résistances R1, R2, R3 (type float), 

­ si les résistances sont branchées en série: 

Rsérie = R1+R2+R3 

­ si les résistances sont branchées en parallèle:

R1.R 2.R3
R parallèle 
R1.R 2  R1.R3  R 2.R3

Une fois, les trois valeurs rentrées, le programme demande à l’utilisateur d’énoncer son besoin : série,
parallèle, ou les deux.

Exercice 7:

a) Ecrire un programme qui calcule le prix TTC (type double : %lf) d'un article à partir du prix net
(type  int)   et   du pourcentage  de  TVA   (type   int)   à   ajouter.   Utilisez   la   formule   suivante   en  faisant
attention aux priorités et aux conversions automatiques de type: 

PTVA
PTTC  PNET  PNET .
100

b) Ecrire un programme qui calcule le prix net d'un article (type double)  à partir du prix TTC (type
double) et du pourcentage de TVA (type int) qui a été ajoutée. 

(Déduisez la formule du calcul de celle indiquée ci­dessus)

Exercice 8 :

Ecrivez un programme qui lit deux valeurs entières (A et B) au clavier et qui affiche le signe du
produit de A et B sans faire la multiplication. 

Exercice 9 :

Ecrivez un programme qui calcule les solutions réelles d'une équation du second degré ax2+bx+c = 0
en discutant la formule: 

 b  b 2  4ac
X 1, 2 
2a
Utilisez une  variable  d'aide D  pour  la valeur   du discriminant   b2­4ac  et  décidez   à  l'aide  de   D,  si
l'équation a une, deux ou aucune solution réelle. Utilisez des variables du type int pour A, B et C. 

Considérez aussi les cas où l'utilisateur entre des valeurs nulles pour A; pour A et B; pour A, B et C.
Affichez les résultats et les messages nécessaires sur l'écran.

Utiliser les fonctions de la bibliothèque math.h, pow(X,Y) pour calculer XY et sqrt(X) pour calculer 

 .

Exercice 10:

Ecrivez un programme qui lit N nombres entiers au clavier et qui affiche leur somme, leur produit et
leur moyenne. Choisissez un type approprié pour les valeurs à afficher. Le nombre N est à entrer au
clavier. Résolvez ce problème, 

a) en utilisant while, 

b) en utilisant do ­ while, 

c) en utilisant for. 

d) Laquelle des trois variantes est la plus naturelle pour ce problème? 

Exercice 11:

Complétez la 'meilleure' des trois versions de l'exercice 10 : 

Répétez l'introduction du nombre N jusqu'à ce que N ait une valeur entre 1 et 15. 

Quelle structure répétitive utilisez­vous? Pourquoi?

Exercice 12:

Calculez la factorielle N! = 1*2*3*...*(N­1)*N d'un entier naturel N. 

a) Utilisez while, 

b) Utilisez for. 

 Exercice 13:

Calculez par multiplications successives X N de deux entiers naturels X et N entrés au clavier. 

Exercice 14:

Calculez la somme des N premiers termes de la série harmonique : 

1 + 1/2 + 1/3 + ... + 1/N 

Exercice 15:
Calculez la somme, le produit et la moyenne d'une suite de chiffres non nuls entrés au clavier, sachant
que la suite est terminée par zéro. Retenez seulement les chiffres (0, 1 ... 9) lors de l'entrée des données
et   effectuez  un  signal   sonore  si   les   données   sortent   de   ce   domaine.   Une   instruction  printf (" \a ")
permet d’émettre un bip sonore.

Exercice 16:

Calculez le N­ième terme UN de la suite de FIBONACCI qui est donnée par la relation de récurrence: 

U1=1, U2=1 et  UN=UN­1 + UN­2 (pour N>2) 

Exercice 17:

Calculez le PGCD de deux entiers naturels entrés au clavier en utilisant l'algorithme d'EUCLIDE. 

Indication: PGCD(a, b)=PGCD(b, a%b) pour a>b

Exercice 18:

Affichez un triangle isocèle formé d'étoiles de N lignes (N est fourni au clavier): 

Nombre de lignes : 8

***

*****

*******

*********

***********

*************

***************

You might also like