Vous êtes sur la page 1sur 18

Cours programmation : langage C

Annexe1 : TDs

Annexe1 : Liste des Travaux Dirigés

TD N°1 : Familiarisation avec langage C et notions de bases

Exercice 1 :

Ecrire un programme C qui lit un entier x et affiche son opposé.

Exercice 2 :

Ecrire un programme C qui lit trois entiers et affiche leur somme, leur produit et leur moyenne.

Exercice 3 :

Une date est donnée sous forme d’un nombre entier de 6 chiffres. Par exemple 211007 représente le 21 octobre 2007. Développer un programme C qui accepte en donnée un tel nombre et affiche le résultat suivant :

Jour : 21 Mois : 10 Année : 2004

Exercice 4 :

Développer un programme C qui pour un rayon donné, renvoie le périmètre du cercle et la surface du disque.

Exercice 5 :

Une température T c exprimée dans l’échelle Celsius est liée à la même température T F dans l’échelle Farenheit par la relation : T F = 32 + 1.8 T c . La température T K exprimée en degrès Kelvin est liée à T c par la relation T K = 273 + T c

Ecrire un programme C qui admet en donnée la température exprimée dans l’échelle Farenheit et renvoie en résultat la même température exprimée en degrés Kelvin.

Cours programmation : langage C

TD N°2 : Structures conditionnelles

Annexe1 : TDs

Exercice 1 :

Ecrire un programme C qui pour deux entiers donnés, affiche le maximum.

Exercice 2 :

Ecrire un programme C qui lit trois entiers A, B, et C et affiche le max et le min.

Exercice 3 :

Développer un programme C qui permet de résoudre l’équation ax + b = 0

Exercice 4 :

Développer un programme C qui permet de résoudre l’équation ax 2 + bx + c = 0

Exercice 5 :

Ecrire un programme C permettant de dire pour un jour de la semaine, ce qu’il y a à faire sachant que :

Du lundi au vendredi, il y a cours

Samedi il y a DS

Dimanche on se repose

Exercice 6 :

Ecrire un programme C qui permet de lire la moyenne d’un étudiant, de type réel, est d’afficher la mention correspondante en utilisant la structure SELON sachant que :

10 >= Moy < 12 : « Passable »

12 >= Moy < 14 : « Assez Bien »

14 >= Moy < 17 : « Bien »

17 >= Moy < 18 : « Très Bien »

18 >= Moy < 20 : « Excellent »

Moy < 10

: « Non admis »

Moy = 20

: « Parfait »

Exercice 7 :

Ecrire un algorithme qui permet de dire si une année est bissextile ou non. Une année est bissextile si elle est divisible par 4 sauf dans le cas où elle est divisible par 100 et non divisible par 400.

Exercice 8 :

Ecrire un programme C qui simule le fonctionnement d’une calculatrice ayant les opération suivantes (+, -, /, *) La forme d’une opération est : opérande1 opérateur opérande2

Exercice 9 :

Ecrire un programme C qui permet de programmer un distributeur automatique de billets de banque de telle façon qu’il renvoie le minimum possible de billets. Le DAB n’accepte que les sommes multiples de 5. Le DAB distribue des billets de 30, de 20, de 10 et de 5.

Cours programmation : langage C

Exercice 10 :

Annexe1 : TDs

On désire calculer le montant de la facture d’électricité d’un abonné sachant que l’abonné :

1. Paye 2.500 DT (frais d’abonnement) même s’il n’a rien consommé.

2. Paye sa consommation selon un tarif à tranches :

a. 0.100 DT, par KWh, pour les 100 premiers KWh

b. 0.175 DT, par KWh, pour les 150 KWh suivants

c. 0.225 DT, par KWh, pour la fraction de consommation qui excède 250 KWh

3. Paye la TVA pour un taux de 8%.

Ecrire un programme C qui lit deux valeurs entières : l’ancien index et le nouvel index pour déterminer la consommation d’électricité en KWh et affiche le montant à payer hors taxe et le montant toutes taxes comprises.

N. B :

La consommation est mesurée en KWh.

Consommation en KWh = nouvel index - ancien index

Montant toutes taxes comprises = montant hors taxe * (1 + TVA)

Exercice 11 :

On veut calculer les impôts à payer par une personne ayant un montant imposable MI pour toute sa famille. On doit calculer d’abord le revenu imposable RI en diminuant MI de 10% puis en diminuant le résultat obtenu de 20% (RI = (MI * 0.9) * 0.8).

Soit N représentant le nombre de personnes de la famille.

On appelle quotient familial QF = RI / N.

On se propose de calculer l’impôt à payer IMP comme suit :

IMP = 0

IMP = (RI * 0.15) (140 * N)

IMP = (RI * 0.25) (420 * N)

IMP = (RI * 0.35) (940 * N)

IMP = (RI * 0.45) (3040 * N)

si QF < 1800 si 1800 QF < 2500 si 2500 QF < 4500 si 4500 QF 6000 si QF > 6000

1)- Ecrire un programme C qui permet de lire MI et N et de calculer IMP en utilisant un schéma conditionnel avec des SI imbriqués.

2)- Reprendre uniquement la partie conditionnelle du programme en utilisant une structure SELON.

Cours programmation : langage C

TD N°3: Structures répétitives

Annexe1 : TDs

Exercice 1 :

Ecrire un programme C qui permet de lire deux entiers et de calculer leur produit par additions successives.

Exercice 2 :

Ecrire un programme C qui permet de calculer et d’afficher la somme et le produit des 100 premiers nombres positifs.

Exercice 3 :

Ecrire un programme C lit un nombre entier N et affiche sa table de multiplication :

Exemple : Pour N = 5, l’algorithme affiche :

5

x 0 = 0

5

x 1 = 5

5

x 2 = 10

5

x 3 = 15

5 x 10 = 50

Exercice 4 :

Ecrire un programme C qui permet de lire un entier entre 10 et 20 et d’afficher la somme

harmonique :

S 1

Exercice 5 :

1

2

1

3

1

n

Ecrire un programme C qui permet de calculer et d’afficher la valeur de S donnée par l’expression suivante :

S

n

m



i 1

j

0

(

i

j

)

2

Les entiers naturels non nuls n et m sont saisis au clavier par l’utilisateur. Reprendre cet algorithme en utilisant la structure TANT QUE.

Exercice 6 :

Ecrire un programme C qui permet de saisir trois entiers a, b et n strictement positifs puis calcule et affiche la somme suivante:

n

S =

i

0 (

a

ib

)

1

= 1/a + 1/(a+b) +1/(a+2*b) + 1/(a+3*b) +

+1/(a+n*b)

Exercice 7 :

Ecrire un programme C permettant de calculer l’expression suivante :

F(x) =

n

k 0

(

1) k

(

x

k

!(

n

k

)!

2

)

n

2 k

Cours programmation : langage C

Annexe1 : TDs

Exercice 8 :

Soit la suite U n définie par : U 0 = 1 U n+1 = 5 U n + 3 Ecrire un programme C qui permet de lire n et de calculer la suite Un pour un rang n.

Exercice 9 :

Soit les suites U n et V n définies par :

U 0 = 5 V 0 = 3 U n+1 = 5 V n - 2 U n + 3 V n+1 = 3 V n + 7

Ecrire un programme C qui permet de lire n et de calculer la suite Un et la suite Vn pour un rang

n.

Exercice 10 :

Ecrire un programme C fournissant la moyenne d’un nombre n de notes obtenues par des élèves. Le premier nombre lu sur l’organe d’entrée est n, les suivants étant les notes.

Exercice 11 :

Ecrire un programme C lit un nombre entier N strictement positif.

Ce programme traitera N nombres réels positifs ou négatifs de la manière suivante :

Les N réels sont lus à partir du clavier

Le programme calcule et affiche les résultats suivants :

- NE : le nombre de valeurs entières

- SP : la somme des réels positifs

- SN : la somme des réels négatifs

- NP : le nombre des réels positifs

- NN : le nombre des réels négatifs

Exercice 12 :

1/ Ecrire un programme C lit un nombre entier et décide s’il est premier ou non.

2/ Modifier le programme pour qu’il lit un nombre entier N strictement positif et affiche les nombres premiers inférieurs à N.

Exercice 13 :

1/ Ecrire un programme C qui permet de lire un texte caractère par caractère ; le texte se termine par un point. Ce programme doit afficher le nombre de d’apparition du caractère ‘a’.

2/ Pour cette question le programme doit afficher le nombre de d’apparition de la suite "es".

Exercice 14 :

Ecrire un programme C qui permet de lire un nombre entier et qui détermine combien de fois est-il divisible par 2.

Par exemple : - 11 est divisible zéro fois par 2.

- 8 est divisible 3 fois par 2. (8/2=4 ; 4/2=2 ; 2/2=1)

- 12 est divisible 2 fois par 2. (12/2=6 ; 6/2=3)

Cours programmation : langage C

TD N°4 : Les Tableaux

Annexe1 : TDs

Exercice 1 :

Ecrire un programme C qui lit et affiche les éléments d’un tableau de N entiers (max. 50) dans l’ordre des indices décroissants (de droite à gauche).

Exercice 2 :

Ecrire un programme C qui calcule le nombre d’occurrences de la valeur val dans un tableau Tab de N entiers (max.50).

Exercice 3 :

Ecrire un programme C qui calcule le maximum et le minimum des éléments d’un tableau Tab de N entiers (max.50).

Exercice 4 :

Ecrire un programme C qui permet d’afficher si une valeur X existe dans un tableau Tab de N réels ou non (max.50).

Exercice 5 :

Ecrire un programme C qui permet de trier un tableau Tab de N réels dans l’ordre croissant.

Exercice 6 :

Ecrire un programme C qui permet d’afficher si deux tableaux sont égaux ou non.

Exercice 7 :

Ecrire un programme C qui permet d’afficher :

- le nombre d’apparition d’une valeur X donnée dans un tableau T de N entiers (max.50)

- la position de la première apparition de X

- la dernière position d’apparition de X

Exercice 8 :

Ecrire un programme C qui permet d’insérer un élément X dans tableau d’entiers T trié.

Exercice 9 :

Ecrire un programme C qui permet de supprimer un élément X donné dans un tableau T de N entiers donné.

Exercice 10 :

Etant donné un tableau d’entiers trouver et afficher l’élément le plus proche de la moyenne.

Exercice 11 :

Ecrire un programme C qui permet de fusionner 2 tableaux triés.

Exercice 12 :

Transférer les éléments d’un tableau V1 dans un tableau V2 selon le principe suivant :

Les éléments de rang impair de V1 sont rangés dans V2 en ordre inverse en commençant par la fin de V2, et les éléments de rang pair de V1 sont rangés dans V2 dans le même ordre. (V1 est de longueur impaire)

Cours programmation : langage C

Annexe1 : TDs

V1

Exemple :

Cours programmation : langage C Annexe1 : TDs V1 Exemple : -1 2 7 1 3

-1

2

7

1

3

1

-2

V2

2

1

1

-2

3

7

-1

3 1 -2 V2 2 1 1 -2 3 7 -1 Exercice 13 : Ecrire un

Exercice 13 :

Ecrire un programme C qui effectue la mise à 0 de la diagonale principale d’une matrice carré d’entiers M(N*N) .

Exercice 14 :

Ecrire un programme C qui multiplie une matrice carré d’entiers M(N*N) par un réel X donné.

Exercice 15 :

Ecrire un programme C qui permet de dire si un élément X existe dans une matrice d’entiers ou non Mat(M*N).

Exercice 16 :

Ecrire un a programme C qui calcule le nombre d’apparition d’un entier Y dans une matrice d’entiers Mat(M*N).

Exercice 17 :

Ecrire un programme C qui calcule la transposé d’une matrice.

1

5

6

8

1

9

2

9

7

0

3

5

7

4

2

4

1

0

6

0

1

 

8

3

0

Exercice 18 :

Soit A et B deux matrices carrées de réels de dimension respectives 5 et 10. La matrice B est définie comme suit :

B =

A O O -A
A
O
O
-A

O est la matrice nulle de dimension 5. Ecrire un programme C qui permet la lecture de la matrice A et la génération de la matrice B. Exercice 19 :

Cours programmation : langage C

Annexe1 : TDs

On appelle carré une matrice de n lignes et de n colonnes contenant des entiers naturels. Le carré est magique si, en effectuant la somme de tous les nombre d’une ligne ou d’une colonne, le résultat est le même quelle que soit la ligne ou la colonne. Voici un exemple :

8

6

1

=

15

4

2

9

=

15

3

7

5

=

15

=

=

=

15

15

15

Ecrire un programme C qui permet de :

1-

Définir un type carré. On pourra supposer qu’on travaille avec des carrés de dimension inférieure à 6

2-

Remplir un carré

3-

Déterminer si un carré est magique ou non

Cours programmation : langage C

TD N°5 : Les chaines de caractères

Annexe1 : TDs

Exercice 1 :

On appelle bigramme une suite de 2 lettres. Ecrire un programme C qui calcule le nombre d’occurrences d’un bigramme donné dans une chaine de caractères.

Exercice 2 :

Ecrire programme C qui permet de tester si un mot est un palindrome ou non. Un mot est dit palindrome s’il se lit de la même manière de gauche à droite ou de droite à gauche. Exemple : LAVAL, AZIZA, AFIFA.

Exercice 3 :

Ecrire un programme C qui lit un entier et qui l’affiche sur 7 caractères en remplaçant tous les espaces par des ‘*’. Exemple :

245 ………………. ****245 -1345 ……………. **-1345

Exercice 4 :

Une chaîne de caractères W est un carré s’il existe une chaîne U telle que W = UU ( par exemple "chercher" et "bonbon" sont des carrés). Ecrire un programme C qui dit si une chaîne est carrée ou non.

Exercice 5 :

Ecrire un programme C permettant de traduire une phrase en français, ne contenant que des lettres, en JANAVAIS. Il s'agit d'ajouter "AV" à chaque fois que l'on rencontre une consonne suivie d'une voyelle. Les voyelles sont : 'a', 'e', 'i', 'o', 'u', 'y' Exemple :

Phrase en français : "Je travaille" Phrase en JANAVAIS : "JAVe trAVavAVaillAVe"

Cours programmation : langage C

Annexe1 : TDs

Cours programmation : langage C

TD N°6 : Les Fonctions

Annexe1 : TDs

Exercice 1 :

Ecrire une fonction qui permet de permuter deux entiers.

Ecrire une fonction qui permet de remplir un tableau.

Ecrire une fonction qui permet d’afficher un tableau.

En utilisant les fonctions précédentes, écrire une fonction qui lit les valeurs d’un tableau et affiche le tableau trié.

Exercice 2 :

1. Ecrire une fonction qui prend en paramètre un entier et retourne combien de fois il est divisible par 2.

2. Ecrire un programme C qui lit un entier et affiche le nombre de fois il est divisible par 2.

Exercice 3 :

1. Ecrire une fonction qui permet de remplir un tableau.

2. Ecrire une fonction qui retourne vrai si un tableau est trié et Faux sinon.

3. Ecrire un programme C qui lit les valeurs d’un tableau et affiche si ce tableau est trié ou non.

Exercice 4 :

1. Ecrire une fonction qui retourne le minimum de deux entiers en utilisant la formule

suivante :

Min(x, y) = (x+y - |x-y|)/2

2. Ecrire un programme C qui lit deux entiers et affiche le minimum.

Exercice 5 :

Ecrire une fonction qui prend en paramètre une chaîne et un caractère et retourne la dernière apparition du caractère dans la chaîne, elle retourne 0 si le caractère n’existe pas.

Exercice 6 :

Une agence de location de voitures propose deux formules tarification :

4. Location au kilomètre :

a. 0.120 DT, par Km, pour les 100 premiers Km

b. 0.150 DT, par Km, pour les 900 Km suivants

c. 0.170 DT, par Km, pour la fraction de kilométrage qui excède 1000 Km

5. Forfait journalier :

a. 75 DT, par jour avec kilométrage illimité

Ecrire un programme C qui :

- lit le nombre de jour de location et le nombre total de kilomètres.

Cours programmation : langage C

Annexe1 : TDs

- calcule et affiche les coûts totaux des deux tarifications (coût Location au kilomètre et coût du Forfait journalier) et indique par un message la solution la plus avantageuse pour un client.

En utilisant une fonction qui calcule le coût au Km et une fonction qui calcule le coût au forfait journalier.

Exercice 7 :

Ecrire un programme C qui permet de vérifier si un tableau unidimensionnel d’entiers et de 10 éléments saisis au clavier est bien symétrique ou non.

Exemple :

saisis au clavier est bien symétrique ou non. Exemple : : Tableau symétrique : Tableau symétrique
saisis au clavier est bien symétrique ou non. Exemple : : Tableau symétrique : Tableau symétrique
saisis au clavier est bien symétrique ou non. Exemple : : Tableau symétrique : Tableau symétrique

: Tableau symétrique

: Tableau symétrique

: Tableau non symétrique

Le programme utilisera les sous programmes suivants :

- Une fonction permettant la saisie des éléments du tableau.

- Une fonction « Symétrique » qui pour un tableau donné retourne s’il est symétrique ou non.

Exercice 8 :

Ecrire un programme C qui permet de vérifier si la différence entre deux éléments successifs d’un tableau d’entiers et de 10 éléments saisis au clavier est bien constante en valeur absolue ou non.

Exemple :

1 1
1
1
est bien constante en valeur absolue ou non. Exemple : 1 1 : Différence constante de

: Différence constante de 2

: Différence non constante

Le programme utilisera les sous programmes suivants :

- Une fonction permettant la saisie des éléments du tableau.

- Une fonction « Différence » qui pour un tableau donné retourne si la différence est constante ou non et la valeur de la différence.

Exercice 9 :

Ecrire un programme C qui calcule la transposé d’une matrice en utilisant les procédures suivantes :

Fonction de remplissage de la matrice

Cours programmation : langage C

Fonction de calcul de la transposé

Fonction d’affichage de la transposé

1

5

6

8

1

9

2

9

7

0

3

5

7

4

2

4

1

0

6

0

1

 

8

3

0

Annexe1 : TDs

Cours programmation : langage C

TD N°7 : Les Structures

Annexe1 : TDs

Exercice 1 :

Soit un stock de 1000 articles dont chacun est caractérisé par sa référence, son nom et son prix.

1-

Saisir les données du stock

2-

Trouver toutes les références des articles dont le prix est compris entre deux prix donnés.

3-

Trouver le prix d’un article dont la référence est données.

Exercice 2 :

Une chambre d’agriculture désire faire des statistiques sur les éleveurs de moutons (100 éleveurs). Un éleveur est caractérisé par son nom, le nombre de brebis, le nombre de béliers et le nombre d’agneaux.

1. Proposer une structure de données permettant de représenter les éleveurs (tableaux d’éleveurs).

2. Saisir les données des éleveurs.

3. Afficher le nom et nombre d’animaux de l’éleveur ayant le plus grand troupeau.

Exercice 3 :

On se propose de gérer les étudiants d’un institut. On suppose que nous avons 100 étudiants et que chacun est caractérisé par son nom, son prénom, son CIN et suit 3 matières dont chacune possède un coefficient. Chaque étudiant possède une moyenne.

1. Proposer une structure de données permettant de gérer les étudiants

2. Ecrire une fonction permettant de lire les noms, les prénoms, les CIN et les notes et initialiser les moyennes à 0.

3. Ecrire une fonction permettant calculer la moyenne de chaque étudiant.

4. Ecrire une procédure permettant de classer les étudiants selon leurs moyennes.

5. Ecrire un programme qui utilise ces sous programmes et affiche les nom et CINs des étudiants par ordre de mérite

Exercice 4 :

Le but de cet exercice consiste à évaluer le stock d’une entreprise. On dispose d’une centaine d’articles ; chacun est identifié par sa référence et caractérisé par son prix et sa quantité. On vous demande de:

a) Proposer une structure de données permettant de gérer les données du stock.

b) Ecrire une procédure qui réalise l’entrée des quantités en stock et les prix.

c) Ecrire une procédure qui majore de 20% les prix des articles dont la quantité dépasse 1000.

d) Ecrire une procédure qui affiche les articles en rupture de stock.

e) Ecrire une fonction qui retourne l’article le plus cher.

f) Ecrire l’algorithme principal qui rassemble tous ces sous programmes

Exercice 5:

Une chambre d’agriculture désire faire des statistiques sur les éleveurs de moutons (100 éleveurs). Un éleveur est caractérisé par son nom, le nombre de brebis, le nombre de béliers et le nombre d’agneaux.

Cours programmation : langage C

Annexe1 : TDs

1. Proposer une structure de données permettant de représenter les éleveurs (tableaux d’éleveurs).

Type Eleveur =

Type Tab =

2. Ecrire une procédure qui permet de lire les données des différents éleveurs. Compléter l’entête des procédures en indiquant le mode de passage des paramètres. Procédure Remplir (….V : Tab)

3. Ecrire une procédure qui pour un éleveur donné, calcule le nombre total de ses animaux et le pourcentage d’agneaux par rapport à l’ensemble de ses animaux. Procédure Stat (.…E :Eleveur, .…Nbtotal : Entier, .…Pourc : Réel)

4. En utilisant la procédure Stat, écrire une procédure qui affiche pour chaque éleveur son nom, le nombre total de ses animaux et le pourcentage d’agneaux par rapport à l’ensemble de ses animaux.

Procédure Affiche (….V :Tab)

5. Ecrire une fonction qui retourne le nombre d’animaux que possède en moyenne un éleveur. Fonction Moyenne (V :Tab)…

6. Ecrire une Fonction qui retourne l’indice de l’éleveur ayant le plus grand troupeau. Fonction Maxi (V : Tab) : entier

7. Ecrire un algorithme qui fait appel aux sous-programmes ci-dessus pour :

lire les données des différents éleveurs,

afficher pour chaque éleveur son nom, le nombre total de ses animaux et le pourcentage d’agneaux par rapport à l’ensemble de ses animaux,

afficher le nombre d’animaux que possède en moyenne un éleveur et

afficher le nom et nombre d’animaux de l’éleveur ayant le plus grand troupeau.

Exercice 14 :

On se propose de manipuler un tableau de personnes trié selon l’âge. Une personne est caractérisée par le nom, le prénom, l’âge et le sexe et l’état civil. Selon la valeur de l’état civil s’il est égal à 1, il faut indiquer si cette personne est fiancée ou non et s’il est égal à 2, on donne le nombre de ses enfants. On suppose que le tableau est trié dans l’ordre décroissant de l’âge.

1. Proposer une structure de données permettant de représenter les personnes

2. Ecrire les fonctions et les procédures suivantes :

a. Ajout-personne : Cette procédure permet d’ajouter une personne dans le tableau de façon que le tableau reste trié.

b. Répartition : Cette procédure permet de répartir le tableau en 2 tableaux :

i. Tab-homme qui contient les personnes dont le sexe = « Masculin » et

ii. Tab-femme qui contient les personnes de sexe = « Féminin »

c. Superieure_age : Cette fonction permet de calculer le nombre de personnes ayant un âge supérieur à l’âge spécifié dans l’argument

Cours programmation : langage C

TD N°8 : Les Pointeurs

Annexe1 : TDs

Exercice 1

Complétez-le pour chaque instruction du programme ci-dessus

 

B

A C

P1

P2

int A = 1, B = 2, C = 3; int *P1, *P2;

1 3

2

/

/

P1=&A;

1 3

2

&A

/

P2=&C;

     

*P1=(*P2)++ ;

     

P1=P2 ;

     

P2=&B ;

     

*P1-=*P2 ;

     

++*P2 ;

     

*P1*=*P2 ;

     

A=*P2**P1 ;

     

P1=&A ;

     

*P2/=*P1 ;

     

Exercice 2

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:

Exercice 3

a) *P+2

b) *(P+2)

c) &P+1

d) &A[4]-3

e) A+3

f) &A[7]-P

g) P+(*P-10)

h) *(P+*(P+8)-A[7])

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.

Cours programmation : langage C

Annexe1 : TDs

Ecrire un programme qui lit un entier X et un tableau A de type int au clavier et élimine toutes les occurrences de X dans A en tassant les éléments restants. Afficher le tableau A. Le programme utilisera les pointeurs P1 et P2 pour parcourir le tableau.

Exercice 5

Ecrire un programme qui lit la dimension N d'un tableau T du type int (dimension maximale: 100), 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 TPOS et toutes les valeurs strictement négatives dans un troisième tableau TNEG. Afficher les tableaux TPOS et TNEG. NB : Utiliser des pointeurs.

Exercice 6

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 PH. Le programme n'utilisera pas de variables numériques.

Exercice 7

Ecrire un programme qui lit 5 mots (une phrase de 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 8

Soient deux tableaux d’entiers T1 (maximum 50) et T2 (max 100). Ecrire un programme C qui permet de vérifier que T2 existe dans T1. Si T2 existe dans T1, alors supprimer les éléments de T2 dans T1. NB : Utiliser le formalisme pointeur.

Exemple :

 

T2

 

15

 

8

 

0

 

2

 

9

 

T1

 

1

 

11

 

15

 

8

 

0

 

9

13

23

100

T2 existe dans T1

 

T1

   

1

 

11

 

23

 

100

 

Exercice 9

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.

Cours programmation : langage C

Annexe1 : TDs

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 10

Ecrire une fonction qui permet de rechercher dans un tableau d'entiers tab une valeur A.

void ChercherVal (int tab[], int n, int A, int *pos, int *nbOcc);

Dans pos, la fonction sauvegarde l'indice de la dernière apparition et -1 si la valeur n'a pas été trouvée. Dans nbOcc, elle sauvegarde le nombre d'occurrence de A dans tab.

Exercice 11

1- Écrire une fonction est EstVoyelle qui prend en paramètre un caractère et retourne 1 si ce caractère est une voyelle et 0 si non.

2- Écrire une fonction NbVoyelle:

void NbVoyelles(char ch[], int *v, int *s)

À travers v, la fonction sauvegarde le nombre de voyelles dans la chaîne ch. Dans s,

la

consonnes.

fonction

sauvegarde

le

nombre

de

Exercice 12 Ecrire une fonction qui permet de rechercher dans un tableau d'entiers tab de taille n les deux plus grandes valeurs :

void deux_max (int T[ ], int n, int *max1, int *max2);

Exemple:

si T=[3, 1, 5, 5, 3, 6, 2, 6] alors max1=6 et max2 = 5.

Exercice 13

Ecrire une fonction SupprimerC qui à partir d’un texte TXT et d’un caractère C enlève tous les caractères C du text(e TXT. Les modifications se feront dans la même variable TXT.

TXT="Cette ligne contient quelques lettres e" C='e' Alors TXT="Ctt lign contint qulqus lttrs"