Вы находитесь на странице: 1из 3

Universit Abdel Malek Essadi Initiation la programmation en langage Groupe SMP4

Facult des Sciences Ttouan C 2014/2015


Dpartement Informatique TP 2 Pr A. CHERGUI

Instructions de contrle

Les instructions de branchement conditionnel

Exercice 1 : Signe de produit Avec un = 9.80 / et 0 la hauteur de lancement


linstant t=0.
Ecrire un programme qui lit deux valeurs entires (A et
B) au clavier et qui affiche le signe du produit de A et B Vous devez proposer un programme dans lequel on
sans faire la multiplication. introduit les valeurs initiales ( (/), (),
0 ()) et puis il calcul (si cest possible !) la distance
Exercice 2 : Mention parcourue par le projectile jusqu latteinte du sol.

Ecrire un programme qui donne la mention d'un NB : indications sur les tapes :
tudiant en fonction de sa note entre au clavier.
Introduction des valeurs initiales du systme.
Exercice 3 : Indice de masse corporelle Transform ce systme en un problme de
rsolution dquation de second degrs (trouv
a,b et c !)
Le rapport (I) du poids en kilogrammes (P) par la taille Rsoudre le problme et interprter le rsultat.
en mtres (T) au carr tait constant chez des individus
de constitution moyenne. En 1998, l'Organisation
Mondiale de la Sant a tabli une classification suivant Exercice 5 : Jour de la semaine

ce rapport = 2 : On se propose de construire un programme qui prend

au clavier un entier correspondant un jour de la
maigreur pour I<18.5 semaine et retourne le en lettres --- 1 correspond
limite moyenne pour 18.5 ... 24.9 lundi ---. Pour ce faire, on dcide d'utiliser une
instruction de branchement multiple (switch).
surpoids pour I>25

Les instructions itratives


Construire un programme qui demande l'utilisateur
son poids en kilogrammes et sa taille en mtres, calcul
l'indice I et affiche sa condition par rapport la Exercice 6 : Factorielle
classification de l'OMS.
Ecrire un programme qui demande lutilisateur un
Exercice 4 : Projectile nombre entier, puis calcul son factorielle.

Le but de cet exercice est de calculer la distance que NB : Il faut traiter toutes les possibilits avant de
parcourt un projectile lanc avec une vitesse initial commencer les calculs.
qui fait un angle avec laxe horizontale.
Exercice 7 : Nombre de combinaisons

Ecrire un programme qui demande lutilisateur deux


nombres entiers n et p, puis calcul le nombre de
combinaisons de p par n.

NB : Toujours, il faut traiter toutes les possibilits avant


de commencer les calculs.

Exercice 8 : Suite de Fibonacci

Pour un entier n saisi au clavier, construire un


ime
programme qui calcule et affiche le n terme de la
suite de Fibonacci. Cette suite est dfinie par la
rcurrence et les conditions initiales suivantes :
Le systme dquations paramtriques dcrivant la
trajectoire du projectile scrit :

1
Universit Abdel Malek Essadi Initiation la programmation en langage Groupe SMP4
Facult des Sciences Ttouan C 2014/2015
Dpartement Informatique TP 2 Pr A. CHERGUI

0 = 0 *
1 = 1 *0*
*****
= 1 +2 **0***0
*****0***
Exercice 9 : PGCD & PPCM ***********
|||
En utilisant les principes de la division euclidienne entre |||
deux entiers.
Pour rsoudre le problme, il est judicieux de le
dcomposer en trois tapes:
1. Ecrivez un programme qui calcul le PGCD le
Dessiner le cne du sapin qui dpend de sa
Plus Grand Diviseur Commun de deux
hauteur. Soit N la hauteur du cne, il s'agit
nombres entiers introduits par lutilisateur.
d'imprimer l'cran N lignes dont la premire est
2. Trouvez la relation qui existe entre le PGCD et
compose d'une toile et la dernire de 2*N-1
le PPCM le Plus Petit Multiple Commun de
toiles (voir dessin).
2 nombres entiers.
Rajouter le tronc.
3. Elaborez alors un programme pour le calcul du
PPCM. Modifier le dessin du cne en rajoutant des boules
de manire alatoire.
Remarque: on peut gnrer un nombre alatoire x
Exercice 10 : Rectangle compris entre 0 et 1 en crivant:
x=rand()/RAND_MAX; (plus dexplication la fin de la
Ecrire un programme qui affiche un rectangle du srie)
nombre de lignes par le nombre de colonnes donn par Suggestion pour l'tape 3: Avant d'afficher une toile,
l'utilisateur. gnrer un nombre alatoire compris entre 0 et 1. Si ce
nombre est infrieur une certaine valeur (probabilit
Exemple : de placer une boule) et s'il reste des boules placer,
afficher un O sinon afficher une toile.

Exercice 13 : Le nombre secret


Programmer le jeu du nombre dcouvrir. Le joueur
doit deviner un nombre secret choisi alatoirement par
lordinateur entre 0 et NB_MAX (voir explication la fin
de la srie). Sil propose un nombre trop grand,
Exercice 11 : Affichage d'toiles. lordinateur lui rpond "Plus petit", sil propose trop petit,
lordinateur lui rpond "Plus grand". Dans ces deux cas,
On se propose d'afficher des toiles dans les il est invit proposer un autre nombre. Le jeu sarrte
dispositions suivantes : quand il devine juste. Un exemple dexcution de ce jeu
pourrait tre :
Votre choix ?
***** * ***** ***** *
8
***** ** **** **** ** Plus petit.
***** *** *** *** *** Votre choix ?
***** **** ** ** **** 4
Plus petit.
***** ***** * * ***** Votre choix ?
2
Construire un programme C qui affiche successivement Vous avez trouv le nombre secret.
ces dispositions.
1. Proposez un programme en C pour ce jeu et
Exercice 12 : Arbre fruitier testez-le.
2. Pourquoi prfrez-vous une boucle while ici ?
Ecrire un programme permettant de dessiner un sapin
en fixant la hauteur du cne, la largeur et la hauteur du
tronc et le nombre de boules (dont la position est
alatoire). Par exemple, pour un cne de hauteur 6, un
tronc de hauteur 2 et de largeur 3 et le nombre de boule
est 4 :

2
Universit Abdel Malek Essadi Initiation la programmation en langage Groupe SMP4
Facult des Sciences Ttouan C 2014/2015
Dpartement Informatique TP 2 Pr A. CHERGUI

float nb_rel; /* nombre rel alatoire gnrer


Les Tableaux entre [0,1]*/

/* initialisation du gnrateur de nombres pseudo-


Exercice 14 : Minimum & Maximum dun tableau alatoires */
srand(time(NULL)); /* ne faire quune fois */
nb_alea=rand()%nb_max; /* tirage du nombre
Ecrire un programme qui permet de remplir un alatoire entre 0 et NB_MAX */
tableau, puis de retrouver la valeur minimal et
son indice. printf("le nombre alatoire entier =
%d\n",nb_alea);
Ecrire une seconde version du programme qui nb_rel=rand()/(float)RAND_MAX; /* tirage du nombre
permet de remplir un tableau, puis de retrouver alatoire rel entre 0 et 1 */
la valeur maximal et son indice.
printf("le nombre aleatoire reel entre [0,1] =
Ecrire une troisime version du programme qui %f\n",nb_rel);
trouve en mme temps la valeur du max et min return 0;
en utilisant une seul boucle. }

Exercice 15 : Trie de tableau.

Ecrire un programme qui introduit puis trie les lments


dun tableau de rels dans un ordre croissant.

Exercice 16 : Recherche 2D.

Ecrire un programme qui permet de rechercher


squentiellement un lment dans un tableau dentier
2 dimensions n x m.

Exercice 17 : Matrice : saisie, somme, produit et affichage.

crire une programme qui permet de saisir deux


matrices carres n x n, de faire leurs somme et leurs
produit, puis d'afficher les rsultats.

La gnration des nombres alatoires

La librairie C standard propose des fonctions renvoyant des


nombres pseudo-alatoires dclares dans <stdlib.h>.
Lordinateur va utiliser la fonction : int rand(); qui renvoie un
nombre pseudo-alatoire entier entre 0 et la constante
RAND_MAX (gale 2147483647) inclus. Pour renvoyer un
nombre pseudo-alatoire entre 0 et NB_MAX,(NB_MAX <
RAND_MAX), il suffit de calculer le reste de la division
entire de rand() par (NB_MAX), cest--dire le nombre
renvoy par rand() modulo (NB_MAX + 1) (oprateur % en
C). Le nom rand vient de random qui veut dire alatoire en
anglais.
Un exemple de programme illustrant lutilisation de rand
pour engendrer deux nombres pseudo-alatoires, lun est
entier et lautre est un rel de lintervalle [0,1] :
#include <stdio.h>/*pour rand, srand */
#include <stdlib.h>/* pour printf */
#include <time.h>/* pour time */
#define nb_max 300/* nombre alatoire entre 0 et
NB_MAX*/
int main()
{
int nb_alea; /* nombre entier alatoire gnrer
entre 0 et nb_max */
3

Вам также может понравиться