Vous êtes sur la page 1sur 6

Université IBN-ZOHR Année Universitaire : 2018-2019

Faculté Polydisciplinaire-Ouarzazate Filière : SMI


Département de Mathématiques, Informatique et Gestion Semestre : S3

Les tableaux
Exercice1
Ecrivez un algorithme qui permette de saisir un nombre quelconque de valeurs, et qui les range au
fur et à mesure dans un tableau. Le programme, une fois la saisie terminée, doit dire si les éléments du
tableau sont tous consécutifs ou non.
Par exemple, si le tableau est :
12 13 14 15 16 17 18
ses éléments sont tous consécutifs. En revanche, si le tableau est :
9 10 11 15 16 17 18
ses éléments ne sont pas tous consécutifs.

Exercice 2
Ecrivez un algorithme qui permette à l’utilisateur de supprimer une valeur d’un tableau
préalablement saisi. L’utilisateur donnera l’indice de la valeur qu’il souhaite supprimer. Attention, il ne
s’agit pas de remettre une valeur à zéro, mais bel et bien de la supprimer du tableau lui-même ! Si le
tableau de départ était :
12 8 4 45 64 9 2

Et que l’utilisateur souhaite supprimer la valeur d’indice 4, le nouveau tableau sera :


12 8 4 45 9 2

Exercice 3
Ecrivez l'algorithme qui recherche un mot saisi au clavier dans un dictionnaire. Le dictionnaire est
supposé être codé dans un tableau préalablement rempli et trié.
Exercice 4
Écrivez un algorithme qui fusionne deux tableaux (déjà existants) dans un troisième, qui devra être
trié.
Attention ! On présume que les deux tableaux de départ sont préalablement triés : il est donc
irrationnel de faire une simple concaténation des deux tableaux de départ, puis d'opérer un tri : comme
quand on se trouve face à deux tas de papiers déjà triés et qu'on veut les réunir, il existe une méthode
bien plus économique (et donc, bien plus rationnelle...)

Les pointeurs
Refaire les exercices 1,2,3, et 4 en utilisant des pointeurs.
Université IBN-ZOHR Année Universitaire : 2018-2019
Faculté Polydisciplinaire-Ouarzazate Filière : SMI
Département de Mathématiques, Informatique et Gestion Semestre : S3

Fonctions et procédures
Exercice 1
Ecrire une fonction qui renvoie la somme de 3 nombres fournis en argument.

Exercice 2
Ecrire une fonction qui calcule la partie entière d’un nombre positif (On appelle partie entière de x le
nombre entier n tel que n ≤ x< n+1).
Exercice 3
Ecrire une procédure qui affiche le tableau de multiplication d’un entier positif x.

Exercice 4
Ecrire une procédure qui permet de lire deux nombres, calculer la somme et le produit et afficher si ces
derniers sont positifs ou négatifs.

Exercice 5
Ecrire une fonction qui permet de savoir si un entier est divisible par un autre (on utilise le type booléen
(vrai et faux)).

Exercice 6
Ecrire une fonction ou procédure qui permet d’entrer deux valeurs M et N et d’afficher toutes les
valeurs paires entre M et N si M < N.

Exercice 7
Ecrire une fonction ou procédure qui affiche si un nombre est premier ou non (Un nombre premier est
un nombre entier naturel (non nul) qui admet exactement 2 diviseurs distincts : 1 et lui-même).

Exercice 8
Ecrire une procédure qui permet de lire une liste de nombres entiers dont la dernière valeur = -1 et
affiche le nombre d’entiers pairs et leur pourcentage par rapport au nombre d’entiers donnés.
Exercice 9
Trouver le résultat fourni par l’algorithme :
Programme principal :
Variables X, Y, Z : numériques
Procédure Som(X1 : numérique, X2 : numérique, S : numérique)
Début Som
X1 ← X1 * X1
X2 ← X2 * X2
S ← X1 + X2
Fin Som
Début du programme principal
X ← 3
Y ← 4
Z ← 0
Som (X, Y, Z)
Ecrire X, « ^2 + », Y, « ^2 = », Z
Université IBN-ZOHR Année Universitaire : 2018-2019
Faculté Polydisciplinaire-Ouarzazate Filière : SMI
Département de Mathématiques, Informatique et Gestion Semestre : S3

Fin du programme principal

Exercice 10
Ecrire une procédure qui inverse le contenu de deux valeurs passées en argument.
Exercice 11
Que produise l’algorithme suivant :
Procédure Deux (A : numérique) Procédure Un (B : numérique)
Début Début
A ← A + 1 A ← A + 1
Ecrire A Deux (A)
Fin B ← B +1
Deux (B)
Ecrire A, B
Fin

Début programme principal


Variables A, B : numériques
A ← 10
Deux (A)
Un (A)
B ← 10
Un (B)
Ecrire A, B
Fin du programme principal

Exercice 12
Que produise l’algorithme suivant :
Début programme principal
Variables A, B, C : Entiers
Procédure Test (x ← 1 : Entier, y ← 2 : Entier, z ← 3 : Entier)
Début
A ← x + 2
B ← y + z
C ← A - B
Ecrire (x, y, z)
Ecrire (A, B, C)
Fin
A ← 10
Test (A)
Test (5)
Test (4,0)
Test (A, B, C)
Fin du programme principal
Université IBN-ZOHR Année Universitaire : 2018-2019
Faculté Polydisciplinaire-Ouarzazate Filière : SMI
Département de Mathématiques, Informatique et Gestion Semestre : S3

La récursivité et la complexité
Exercice 1 :
On considère la suite définie par :
𝑢0 = 2
{
𝑢𝑛 = 3 ∗ 𝑢𝑛−1 − 1
1. Ecrire une fonction itérative qui prend comme paramètre un entier n et calcule le terme 𝑢𝑛 de la suite.
2. Ecrire une fonction récursive qui prend comme paramètre un entier n et calcule le terme 𝑢𝑛 de la suite.
3. Evaluer la complexité de ces deux fonctions.

Exercice 2 :
Ecrire un algorithme itératif donnant l’indice de la première occurrence d’un élément minimal dans un
tableau de N entiers.
Exemple :
E/ : |5|2|4|4|1|7|9|4|1|1|
S/ : - 3 occurrences
- indice de sa première occurrence est 5.
Evaluer la complexité de la fonction.
Exercice 3 :
Calculer la complexité des fonctions suivantes :

Exercice 4 :
Donner une fonction récursive puissance (à, i) qui calcule : 𝑎𝑖 . Evaluer sa complexité.
Exercice 5 :
Écrire une fonction récursive pour calculer la somme :
𝑢𝑛 = 1 + 24 + 34 + ⋯ + 𝑛4
Evaluer la complexité de cette fonction.
Exercice 6 :
Donner une fonction récursive somme (a, n) qui calcule : ∑𝑛𝑖=0 𝑎𝑖 . Evaluer sa complexité.
Université IBN-ZOHR Année Universitaire : 2018-2019
Faculté Polydisciplinaire-Ouarzazate Filière : SMI
Département de Mathématiques, Informatique et Gestion Semestre : S3

Preuves d’algorithmes
Exercice 1 :
1. Ecrire une fonction itérative qui calcule la factorielle d'un naturel n.
2. Ecrire la version récursive de cette fonction.
3. Prouver la terminaison et la correction de ces deux fonctions.

Algorithmes de tri
Exercice 2 :
Le tri rapide ou en anglais "Quicksort", est certainement l’algorithme de tri interne le plus efficace.
L’idée, c'est de séparer votre tableau en deux. Pour cela, on choisit une valeur de notre tableau de base,
qu'on appelle pivot. Le pivot est souvent la valeur de la première case du tableau. On construit alors deux
« sous-tableaux » : l'un contient toutes les valeurs du premier tableau qui sont inférieures ou égales au
pivot, l'autre contient les valeurs supérieures au pivot. Afin de terminer le tri, il vous suffira de trier à
nouveau chacun des deux sous-tableaux, puis de concaténer les deux tableaux.

1. Ecrire l’algorithme de tri rapide.


2. Evaluer la complexité de cet algorithme.

Enregistrements et fichiers
Exercice 3 :
1. Définir la structure (ou l’enregistrement) permettant de stocker un point dont les coordonnées sont
des entiers.
2. Ecrire une fonction (ou procédure) permettant de saisir un point.
3. Ecrire une fonction (ou procédure) permettant d’afficher un point. Un point doit être affiché sous
le format(x,y).
4. Définir un tableau permettant de stocker un ensemble de points (version statique et version
dynamique).
5. Ecrire une fonction qui reçoit en argument un point (une structure du type point) et qui renvoie
en résultat la distance du point par rapport à l’origine.
a. En transmettant en argument la valeur de la structure concernée.
b. En transmettant en argument l'adresse de la structure concernée.
6. Donner une fonction (ou procédure) qui trie un tableau de points par ordre croissant des distances
de ses points (éléments) par rapport à l’origine.

Exercice 4 :
On souhaite réaliser une liste des employés. Chaque employé est caractérisé par :
 Un Id.
 Nom et prénom.
 Date de naissance (structure représentée par 3 entiers (jour, mois, année).
 Salaire (entier).
Université IBN-ZOHR Année Universitaire : 2018-2019
Faculté Polydisciplinaire-Ouarzazate Filière : SMI
Département de Mathématiques, Informatique et Gestion Semestre : S3

1. Ecrire la structure Employé correspondante.


2. Ecrire une fonction pour saisir les données d’un employé.
3. Ecrire une fonction pour afficher un employé.
4. Définir une liste des employées.

Exercice 5 :
On souhaite réaliser un algorithme pour enregistrer un ensemble de fiches (voir l’entité ci-dessous)
dans un fichier.
1. Ecrire la structure correspondant à l'entité suivante :

Fiche
Identifiant
Nom
Prénom
Age

2. Ecrire une fonction pour saisir les données d’une fiche.


3. Ecrire un algorithme qui permet de créer un fichier (contenant des fiches).

Vous aimerez peut-être aussi