Telechargé par skeli mouna

TP Lnaguage C

publicité
Université Abdelmalek Essaadi
Ecole Nationale des Sciences Appliquées de Tétouan
TRAVAUX
PRATIQUES
Programmation C
Ahmed Bentajer | Sana Nabil | Chaimae Moumouh
2AP2 | [email protected] | [email protected] | [email protected]
TP langage C
TP 0 : Hello world !
Exercice 1 :
Ecrire un programme qui saisit 2 entiers et affiche successivement la somme, la différence, le
produit et le quotient de ces 2 entiers.
Exercice 2 :
Ecrire un programme qui demande à l’utilisateur de donner le rayon d’un cercle et lui retourne
sa surface et son périmètre.
Exercice 3 :
Ecrire un programme qui saisit deux entiers a et b et permute la valeur de ces deux entiers.
Exercice 4 :
Ecrire un programme qui saisit un réel x et un entier n et affiche x à la puissance n.
Exercice 5 :
Ecrire un programme retournant la factorielle d’un nombre entier entré par l’utilisateur.
Exercice 6 :
Ecrire un programme qui résout les équations du premier degré (ax + b = 0).
Le programme demande a et b à l’utilisateur puis indique le nombre de solutions ainsi que
leurs valeurs.
Exercice 7 :
Ecrire un programme qui résout les équations du second degré (ax2 + bx + c = 0).
Le programme demande a, b et c à l’utilisateur puis indique le nombre de solutions ainsi que
leurs valeurs.
Exercice 8 :
Ecrire un programme retournant le PGCD de 2 entiers entrés par l’utilisateur.
Ahmed Bentajer | Sana Nabil | Chaimae Moumouh
2
TP langage C
TP 1 : Les boucles
Exercice 9 :
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.
Exercice 10 :
Calculez par multiplications successives X^N de deux entiers naturels X et N entrés au clavie
Exercice 11 :
Calculez la somme des N premiers termes de la série harmonique : 1 + 1/2 + 1/3 + ... + 1/N
Exercice 12 :
Affichez un triangle isocèle formé d'étoiles de N lignes (N est fourni au clavier):
Nombre de lignes : 7
*
***
*****
*******
*********
***********
*************
Exercice 13 (a rendre) :
Affiche la table des produits pour N variant de 1 à 10 :
X*Y I
0
1
2
3
4
5
6
7
8
9 10
-------------------------------------------------0 I
0
0
0
0
0
0
0
0
0
0
0
1 I
0
1
2
3
4
5
6
7
8
9 10
2 I
0
2
4
6
8 10 12 14 16 18 20
3 I
0
3
6
9 12 15 18 21 24 27 30
4 I
0
4
8 12 16 20 24 28 32 36 40
5 I
0
5 10 15 20 25 30 35 40 45 50
6 I
0
6 12 18 24 30 36 42 48 54 60
7 I
0
7 14 21 28 35 42 49 56 63 70
8 I
0
8 16 24 32 40 48 56 64 72 80
9 I
0
9 18 27 36 45 54 63 72 81 90
10 I
0 10 20 30 40 50 60 70 80 90 100
Ahmed Bentajer | Sana Nabil | Chaimae Moumouh
3
TP langage C
Exercice 14 :
Ecrire un programme C qui calcule n! (factoriel) une fois avec un while puis une
seconde fois avec un for.
Exercice 15 :
Affichez un triangle formé d'étoiles de N lignes (N est fourni au clavier):
Nombre de lignes : 5
*
**
***
****
*****
Exercice 16
Ecrire un programme C qui teste si un nombre est premier ou pas, puis un programme C qui
teste tous les nombres entre 1 et N
TP 2 : Les Tableaux
Exercice 17 :
Ecrire un programme dont lequel vous déclarer et initialisez un tableau puis vous affichez les
éléments du tableau
Exercice 18 :
Ecrire un programme qui demande à l’utilisateur de de déclarer un tableau de 10 éléments,
puis remplir le tableau et l’afficher
Exercice 19 :
Ecrire un programme qui lit la taille N d'un tableau T du type int (dimension maximale: 50
vérifier la taille et demandez à l’utilisateur de saisir la taille tant que la valeur n’est pas
comprise entre 10 et 50), remplit le tableau par des valeurs entrées au clavier et l’afficher.
Exercice 20 :
Ecrire un programme qui lit la taille N d'un tableau T du type int (dimension maximale: 50
vérifier la taille et demandez à l’utilisateur de saisir la taille tant que la valeur n’est pas
comprise entre 10 et 50), remplit le tableau par des valeurs entrées au clavier et l’afficher.
Effacez ensuite les occurrences de 5 et tassez les éléments restant. Afficher le tableau
résultant
Ahmed Bentajer | Sana Nabil | Chaimae Moumouh
4
TP langage C
Exercice 21 :
Ecrire un programme qui lit la taille N d'un tableau T du type int , remplit le tableau par des
valeurs entrées au clavier et affiche le tableau. Ranger ensuite les éléments du tableau T dans
l'ordre inverse sans utiliser de tableau d'aide. Afficher le tableau résultant.
Exercice 22 :
Ecrire un programme qui lit la taille N d'un tableau T du type int , remplit le tableau par des
valeurs entrées au clavier et affiche le tableau. Copiez ensuite toutes les composantes
strictement positives dans un deuxième tableau TP et toutes les valeurs strictement négatives
dans un troisième tableau TN. Afficher les tableaux TP et TN.
Exercice 23 :
Ecrire un programme :
1.
2.
3.
4.
5.
6.
7.
Demande à l’utilisateur de saisir la taille du tableau
Crée un objet tableau avec la taille entrée par l’utilisateur
Demande à l’utilisateur de remplir le tableau
Calcule la somme des éléments saisis
Calcule la moyenne des éléments
Copier le tableau dans un deuxième tableau T2 et l’afficher
Classer les éléments du tableau dans un ordre croissant
Exemple tableau taille = 5
Somme = 5+10+2+17+23 = 57
5
10
2
17
23
5
10
17
23
Tableau trié
2
Exercice 24 :
Ecrire un programme qui calcule le plus grand écart dans un tableau (l'écart est la valeur
absolue de la différence de deux éléments).
Ahmed Bentajer | Sana Nabil | Chaimae Moumouh
5
TP langage C
TP 3 : Les Chaînes de Caractère
Exercice 25 :
Écrire un programme déterminant le nombre de lettres « e » présentes dans un texte
Exercice 26 :
Écrire un programme qui supprime toutes les lettres « e » d’un texte puis afficher le nouveau
texte
Exercice 27 :
Écrire un programme qui lit au clavier un mot et qui l’affiche à l’envers.
Exercice 28 :
Ecrire un programme qui lit un verbe régulier en "er" au clavier et qui en affiche la
conjugaison au présent de l'indicatif de ce verbe. Contrôlez s'il s'agit bien d'un verbe en "er"
avant de conjuguer. Utiliser les fonctions gets, puts, strcat et strlen
Exercice 29 :
Ecrire un programme qui demande l'introduction du nom et du prénom de l'utilisateur et qui
affiche alors la longueur totale du nom sans compter les espaces.
Exercice 30 :
Ecrire un programme qui lit deux chaînes de caractères CH1 et CH2, les compare lexicographiquement et affiche le résultat.
Exercice 31 :
Ecrire un programme qui lit deux chaînes de caractères CH1 et CH2 et qui copie la première
moitié de CH1 et la première moitié de CH2 dans une troisième chaîne CH3. Afficher le
résultat
Exercice 32 :
Ecrire un programme qui lit 10 mots et les mémorise dans un tableau de chaînes de caractères.
Trier les 10 mots lexico-graphiquement en utilisant les fonctions de la bibliothèque string.
Afficher le tableau trié. Utilisez la méthode de tri par sélection directe
Exercice 33 :
Ecrire un programme qui lit un nombre entre 1 et 7 et qui affiche le nom du jour de la semaine
correspondant
Ahmed Bentajer | Sana Nabil | Chaimae Moumouh
6
TP langage C
Exercice 34 :
Ecrire un programme qui lit une chaîne de caractères CH et qui convertit toutes les majuscules
dans des minuscules et vice-versa. Le résultat sera mémorisé dans la même variable CH et
affiché après la conversion
Exercice 35 :
Ecrire un programme qui supprime la première occurrence d'une chaîne de caractères OBJ
dans une chaîne de caractères SUJ
Exercice 36 :
Ecrire un programme qui détermine si le mot donné au clavier est un palindrome.
TP 4 : Les Fonctions et Pointeurs
Exercice 37 :
Ecrire un programme qui lit deux tableaux A et B et leurs dimensions N et M au clavier et qui
ajoute les éléments de B à la fin de A. Utiliser le formalisme pointeur à chaque fois que cela
est possible
Exercice 38 :
Testez le problèm2 suivant et donner les résultats
Soit P un pointeur qui 'pointe' sur un tableau A:
int A[] = {12, 23, 34, 45, 56, 67, 78, 89, 90};
int *P;
P = A;
Quelles valeurs ou adresses fournissent ces expressions :
*P+2
*(P+2)
&P+1
&A[4]-3
A+3
&A[7]-P
P+(*P-10)
*(P+*(P+8)-A[7])
Exercice 39 :
Ecrire un programme qui lit un entier X et un tableau A du type int au clavier et élimine
toutes les occurrences de X dans A en tassant les éléments restants. Le programme utilisera
les pointeurs P1 et P2 pour parcourir le tableau.
Ahmed Bentajer | Sana Nabil | Chaimae Moumouh
7
TP langage C
Exercice 40 :
Ecrire un programme qui range les éléments d'un tableau A du type int dans l'ordre inverse.
Le programme utilisera des pointeurs P1 et P2 et une variable numérique AIDE pour la
permutation des éléments
Exercice 41 :
Ecrire de deux façons différentes, un programme qui vérifie sans utiliser une fonction
de <string>, si une chaîne CH introduite au clavier est un palindrome:
a) en utilisant uniquement le formalisme tableau
b) en utilisant des pointeurs au lieu des indices numériques
Exercice 42 :
Ecrire un programme qui lit une chaîne de caractères CH et détermine la longueur de la
chaîne à l'aide d'un pointeur P. Le programme n'utilisera pas de variables numériques.
Exercice 43 :
Ecrire un programme qui lit une chaîne de caractères CH au clavier et qui compte les
occurrences des lettres de l'alphabet en ne distinguant pas les majuscules et les minuscules.
Utiliser un tableau ABC de dimension 26 pour mémoriser le résultat et un pointeur PCH pour
parcourir la chaîne CH et un pointeur PABC pour parcourir ABC. Afficher seulement le
nombre des lettres qui apparaissent au moins une fois dans le texte.
Exemple:
Entrez un ligne de texte (max. 100 caractères) :
ENSAS
La chaîne "Jeanne" contient :
1 fois la lettre 'A'
1 fois la lettre 'E'
1 fois la lettre 'N'
2 fois la lettre 'S'
Exercice 44 :
Ecrire un programme qui lit une matrice A de dimensions N et M au clavier et affiche les
données suivantes en utilisant le formalisme pointeur à chaque fois que cela est possible:
a) la matrice A
b) la transposée de A
c) la matrice A interprétée comme tableau unidimensionnel
Ahmed Bentajer | Sana Nabil | Chaimae Moumouh
8
TP langage C
Exercice 45 :
Ecrire un programme qui lit deux matrices A et B de dimensions N et M respectivement M et
P au clavier et qui effectue la multiplication des deux matrices. Le résultat de la multiplication
sera affecté à la matrice C, qui sera ensuite affichée. Utiliser le formalisme pointeur à chaque
fois que cela est possible.
Exercice 46 :
Ecrire un programme qui lit 5 mots d'une longueur maximale de 50 caractères et les mémorise
dans un tableau de chaînes de caractères TABCH. Inverser l'ordre des caractères à l'intérieur
des 5 mots à l'aide de deux pointeurs P1 et P2. Afficher les mots.
Exercice 47 :
Ecrire un programme qui contient une :
•
•
•
fonction MOYENNE du type float pour afficher la moyenne arithmétique de deux
nombres réels entrés au clavier
calcule la valeur XN pour une valeur réelle X (type double) et une valeur entière
positive N (type int)
fonction MIN et une fonction MAX qui déterminent le minimum et le maximum de
deux nombres réels.
Le programme aura un menu qui va demander à l’utilisateur la fonction désirée et le menu
s’affichera toujours tant que l’utilisateur n’a pas choisi de sortir du programme
Exercice 48 :
Ecrire la fonction AFFICHE_T à deux paramètres T et N qui affiche N composantes du tableau T du
type int.
Ecrire la fonction SOMME_T qui calcule la somme des N éléments d'un tableau T du type int. N et T
sont fournis comme paramètres; la somme est retournée comme résultat du type long.
Exercice 49 :
Ecrire des fonctions pour trier un tableau :
•
•
•
•
En utilisant le tri de shell
En utilisant le tri par sélection
En utilisant le tri par insertion
En utilisant le tri par propagation
Le porgramme aura en plus des fonctions de tris demandé une fonction qui va permettre de
lire un tableau et une fonction pour l’affichage du tableau et enfin un menu pour permettre à
l’utilisateur de choisir le tri voulu et le menu s’affichera tant qu’il n’a pas demander de quitter
le programme
Ahmed Bentajer | Sana Nabil | Chaimae Moumouh
9
TP langage C
Exercice 50 :
Cet exercice devra se faire sans passer par les fonctions prédéfinis dans la bibl. String et
Stdlib. Le but ici est de dévlopper vos propres fonctions pour la manipulation des
chaines de caractère
En plus de ces fonctions il doit y avoir une fonction qui permet de lire la chaîne de caractère
et une fonction pour l’affichage de la chaine
Ecrire un programme qui contient les fonctions suivantes :
•
•
•
•
•
•
•
LONG_CH qui retourne la longueur d'une chaîne de caractères CH comme résultat.
Sans utilisez le fonction strlen de la bibl. String (calcule de longeur).
MAJ_CH qui convertit toutes les lettres d'une chaîne en majuscules, sans utiliser de
variable d'aide.
AJOUTE_CH à deux paramètres CH1 et CH2 qui copie la chaîne de caractères CH2 à
la fin de la chaîne CH1 sans utiliser de variable d'aide (fonction de concaténation).
Ecrire la fonction INVERSER_CH qui inverse l'ordre des caractères d'une chaîne CH.
Utiliser la fonction LONG_CH (déjà définie ) et définir une fonction d'aide
PERMUTER_CH qui échange les valeurs de deux variables du type char.
Ecrire la fonction NMOTS_CH qui retourne comme résultat le nombre de mots
contenus dans une chaîne de caractères CH.
Ecrire la fonction MOT_CH qui retourne un pointeur sur le N-ième mot d'une chaîne
CH s'il existe, sinon un pointeur sur le symbole de fin de chaîne (fonction pour
rechercher une sous chaine dans une chaine).
Ecrire la fonction EGAL_N_CH qui retourne la valeur 1 si les N premiers caractères
de CH1 et CH2 sont égaux, sinon la valeur 0. (Si N est plus grand que la longueur de
CH1 ou de CH2, le résultat peut être 1 ou 0) (fonction de comparaison).
Puis implémentez ces fonctions dans un programme main avec un menu
TP 5 : LES FICHIERS
Exercice 51
Créer puis afficher à l'écran le fichier person.txt dont les informations sont structurées de la
manière suivante :
•
•
•
Numéro de matricule (entier)
Nom (chaîne de caractères)
Prénom (chaîne de caractères)
Le nombre d'enregistrements à créer est à entrer au clavier par l'utilisateur.
Ahmed Bentajer | Sana Nabil | Chaimae Moumouh
10
TP langage C
Exercice 52
Ecrire un programme qui crée sur disquette un fichier personbis.txt qui est la copie exacte
(enregistrement par enregistrement) du fichier person.txt
Exercice 53
Créer sur disquette puis afficher à l'écran le fichier FAMILLE.TXT dont les informations sont
structurées de la manière suivante :
•
•
•
•
•
Nom de famille
Prénom du père
Prénom de la mère
Nombre d'enfants
Prénoms des enfants
Le nombre d'enregistrements à créer est entré au clavier.
Note : Le nombre de rubriques des enregistrements varie avec le nombre d'enfants !
Ahmed Bentajer | Sana Nabil | Chaimae Moumouh
11
Téléchargement