Vous êtes sur la page 1sur 5

Ecole Hassania des Travaux Publics 1ère

Année, Génie Civil

Langage
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 « Tinycc » (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:

Affichage d'une variable de type char

Tester le programme suivant et conclure.

Dans un deuxième temps, le 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 en respectant que 0!=1.

a) Utilisez while,

b) Utilisez for.

Exercice 13:

Calculez par multiplications successives XN 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

***

*****

*******

*********

***********

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

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