Ecrire un programme qui lit la
dimension N d'un tableau T du type int (dimension maximale: 50
composantes), remplit le tableau par des valeurs entrées au clavier et affiche
le tableau.
Calculer et afficher ensuite la
somme des éléments du tableau.
Ecrire un programme qui lit la
dimension N d'un tableau T du type int (dimension maximale: 50
composantes), remplit le tableau par des valeurs entrées au clavier et affiche
le tableau.
Effacer ensuite toutes les
occurrences de la valeur 0 dans le tableau T et tasser les éléments restants.
Afficher le tableau résultant.
Ecrire un programme qui lit la
dimension N d'un tableau T du type int (dimension maximale: 50
composantes), 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.
Idée: Echanger les éléments du tableau à l'aide de deux indices
qui parcourent le tableau en commençant respectivement au début et à la fin du
tableau et qui se rencontrent en son milieu.
Ecrire un programme qui lit la
dimension N d'un tableau T du type int (dimension maximale: 50
composantes), 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.
Ecrire un programme qui lit les
dimensions L et C d'un tableau T à deux dimensions du type int
(dimensions maximales: 50 lignes et 50 colonnes). Remplir le tableau par des
valeurs entrées au clavier et afficher le tableau ainsi que la somme de tous
ses éléments.
Ecrire un programme qui lit les
dimensions L et C d'un tableau T à deux dimensions du type int
(dimensions maximales: 50 lignes et 50 colonnes). Remplir le tableau par des
valeurs entrées au clavier et afficher le tableau ainsi que la somme de chaque
ligne et de chaque colonne en n'utilisant qu'une variable d'aide pour la somme.
Ecrire un programme qui transfère un
tableau M à deux dimensions L et C (dimensions maximales: 10 lignes et 10
colonnes) dans un tableau V à une dimension L*C.
Exemple:
/
\
| a b c d | / \
| e f g h |
==> | a b c d e f g h i j k l
|
| i j k l | \ /
\
/
Ecrire un programme qui calcule le
produit scalaire de deux vecteurs d'entiers U et V (de même dimension).
Exemple:
/
\ / \
| 3
2 -4 | * | 2 -3 5 |
= 3*2+2*(-3)+(-4)*5 = -20
\
/ \ /
Calculer pour une valeur X donnée du
type float la valeur numérique d'un polynôme de degré n:
P(X) = AnXn
+ An-1Xn-1 + ... + A1X + A0
Les valeurs des coefficients An,
... , A0 seront entrées au clavier et mémorisées dans un tableau A
de type float et de dimension n+1.
a)
Utilisez la fonction pow() pour le calcul.
b)
Utilisez le schéma de Horner qui évite les opérations d'exponentiation:

Ecrire un programme qui détermine la
plus grande et la plus petite valeur dans un tableau d'entiers A. Afficher
ensuite la valeur et la position du maximum et du minimum. Si le tableau
contient plusieurs maxima ou minima, le programme retiendra la position du
premier maximum ou minimum rencontré.
Un tableau A de dimension N+1
contient N valeurs entières triées par ordre croissant; la (N+1)ième
valeur est indéfinie. Insérer une valeur VAL donnée au clavier dans le tableau
A de manière à obtenir un tableau de N+1 valeurs triées.
Problème: Rechercher dans un tableau d'entiers A une valeur VAL
entrée au clavier. Afficher la position de VAL si elle se trouve dans le
tableau, sinon afficher un message correspondant. La valeur POS qui est
utilisée pour mémoriser la position de la valeur dans le tableau, aura la
valeur -1 aussi longtemps que VAL n'a pas été trouvée.
Implémenter deux versions:
a) La recherche séquentielle
Comparer successivement les valeurs
du tableau avec la valeur donnée.
b) La recherche dichotomique
('recherche binaire', 'binary search')
Condition: Le tableau A doit être trié
Comparer le nombre recherché à la
valeur au milieu du tableau,
- s'il y a égalité ou si le tableau
est épuisé, arrêter le traitement avec un message correspondant.
- si la valeur recherchée précède la
valeur actuelle du tableau, continuer la recherche dans le demi-tableau à
gauche de la position actuelle.
- si la valeur recherchée suit la
valeur actuelle du tableau, continuer la recherche dans le demi-tableau à
droite de la position actuelle.
Ecrire le programme pour le cas où
le tableau A est trié par ordre croissant.
Question: Quel est l'avantage de la recherche dichotomique? Expliquer
brièvement.
Problème: On dispose de deux tableaux A et B (de dimensions
respectives N et M), triés par ordre croissant. Fusionner les éléments de A et
B dans un troisième tableau FUS trié par ordre croissant.
Méthode: Utiliser trois indices IA, IB et IFUS. Comparer A[IA] et
B[IB]; remplacer FUS[IFUS] par le plus petit des deux éléments; avancer dans le
tableau FUS et dans le tableau qui a contribué son élément. Lorsque l'un des
deux tableaux A ou B est épuisé, il suffit de recopier les éléments restants de
l'autre tableau dans le tableau FUS.
Problème: Classer les éléments d'un tableau A par ordre décroissant.
Méthode: Parcourir le tableau de gauche à droite à l'aide de l'indice
I. Pour chaque élément A[I] du tableau, déterminer la position PMAX du
(premier) maximum à droite de A[I] et échanger A[I] et A[PMAX].
Problème: Classer les éléments d'un tableau A par ordre croissant.
Méthode: En recommençant chaque fois au début du tableau, on
effectue à plusieurs reprises le traitement suivant: On propage, par
permutations successives, le plus grand élément du tableau vers la fin du
tableau (comme une bulle qui remonte à la surface d'un liquide).
Implémenter l'algorithme en
considérant que:
* La partie du tableau (à droite) où
il n'y a pas eu de permutations est triée.
* Si aucune permutation n'a eu lieu,
le tableau est trié.
Ecrire un programme qui lit les
points de N élèves d'une classe dans un devoir et les mémorise dans un tableau
POINTS de dimension N.
* Rechercher et afficher:
- la note maximale,
- la note minimale,
- la moyenne des notes.
* A partir des POINTS des élèves,
établir un tableau NOTES de dimension 7 qui est composé de la façon suivante:
NOTES[6] contient le nombre de notes 60
NOTES[5] contient le nombre de notes de 50 à 59
NOTES[4] contient le nombre de notes de 40 à 49
...
NOTES[0] contient le nombre de notes de 0 à 9
Etablir un graphique de barreaux
représentant le tableau NOTES. Utilisez les symboles ####### pour la représentation des barreaux et affichez le domaine
des notes en dessous du graphique.
Idée: Déterminer la valeur maximale MAXN dans le tableau NOTES et
afficher autant de lignes sur l'écran. (Dans l'exemple ci-dessous, MAXN = 6).
Exemple:
La note maximale est 58
La note minimale est 13
La moyenne des notes est 37.250000
6
> #######
5
>
####### #######
4
> #######
####### #######
3
> #######
####### ####### #######
2
> ####### #######
####### ####### #######
1
> ####### ####### #######
####### #######
+-------+-------+-------+-------+-------+-------+-------+
I 0 - 9 I 10-19 I 20-29 I 30-39 I 40-49
I 50-59 I 60 I
Ecrire un programme qui met à zéro
les éléments de la diagonale principale d'une matrice carrée A
donnée.
Ecrire un programme qui construit et
affiche une matrice carrée unitaire U de dimension N. Une matrice
unitaire est une matrice, telle que:
/ 1 si
i=j
|
|
uij
=
|
|
|
\ 0 si
ij
|
Ecrire un programme qui effectue la
transposition tA d'une matrice A de dimensions N et M en une matrice
de dimensions M et N.
a)
La matrice transposée sera mémorisée dans une deuxième matrice B qui sera
ensuite affichée.
b)
La matrice A sera transposée par permutation des éléments.
Rappel:
/ \
/ \
tA =
t | a b c d | = | a e i |
| e f g h | | b f j |
| i j k l | | c
g k |
\ /
| d h l |
\ /
Ecrire un programme qui réalise la
multiplication d'une matrice A par un réel X.
Rappel:
/
\ / \
| a b c d | | X*a X*b X*c X*d |
X * | e f g h | = |
X*e X*f X*g X*h |
| i j k l | | X*i X*j X*k X*l |
\
/ \ /
a)
Le résultat de la multiplication sera mémorisé dans une deuxième matrice A qui
sera ensuite affichée.
b)
Les éléments de la matrice A seront multipliés par X.
Ecrire un programme qui réalise
l'addition de deux matrices A et B de mêmes dimensions N et M.
Rappel:
/
\ /
\ / \
|
a b c d | | a' b' c' d' | | a+a' b+b' c+c' d+d' |
|
e f g h | + | e' f' g' h' | = | e+e' f+f' g+g' h+h' |
|
i j k l | | i' j' k' l' | | i+i' j+j' k+k' l+l' |
\ /
\ /
\ /
a)
Le résultat de l'addition sera mémorisé dans une troisième matrice C qui sera
ensuite affichée.
b)
La matrice B est ajoutée à A.
0 Comments