Académique Documents
Professionnel Documents
Culture Documents
1/2
Institut National des Télécommunications et des Technologies de l’Information et de la Communication d’Oran
Exercice 2: 5 points
Ecrire une fonction (avec l’algorithme appelant) qui calcule et retourne le plus grand écart dans un tableau passé en paramètre (l'écart
est la valeur absolue de la différence de deux éléments).
Exercice 3 3 points
Vous désirez comparez deux offres d’abonnement téléphonique. La facture est calculée avec un fixe (somme à payer obligatoirement
tous les mois) et une partie proportionnelle au temps passé à téléphoner (indiqué en minutes).
Ecrire l’algorithme qui indique l’opérateur le plus Offre Fixe Prix à la minute
intéréssant après avoir saisi la consommation Telecom 1 10 euros 0.50 euros
moyenne mensuelle (en minutes). Telecom 2 15 euros 0.42 euros
Remarque :
Répondez directement sur le sujet
Happy New Year
R. TLEMSANI
2/2
Institut National des Télécommunications et des Technologies de l’Information et de la Communication d’Oran
1/2
Institut National des Télécommunications et des Technologies de l’Information et de la Communication d’Oran
4) Qu’est-ce que la recherche dichotomique, dans quel cas peut-elle s’appliquer ? Expliquez son principe.
La dichotomie consiste à subdiviser et traiter des données ou un problème en deux parties plus petites de moitié.
La recherche dichotomique consiste à partir d’un tableau déjà trié : Séparer le tableau en deux par un indice milieu (entre des indices
1 pt
gauche et droite) ; Comparer la valeur recherchée et la valeur située au milieu du sous-tableau ; Continuer la recherche dans un seul
des deux sous-tableaux.
Exercice 2: 5 points
Ecrire une fonction (avec l’algorithme appelant) qui calcule et retourne le plus grand écart dans un tableau passé en paramètre (l'écart
est la valeur absolue de la différence de deux éléments).
Exercice 3 3 points
Vous désirez comparez deux offres d’abonnement téléphonique. La facture est calculée avec un fixe (somme à payer obligatoirement
tous les mois) et une partie proportionnelle au temps passé à téléphoner (indiqué en minutes).
Ecrire l’algorithme qui indique l’opérateur le plus Offre Fixe Prix à la minute
intéréssant après avoir saisi la consommation Telecom 1 10 euros 0.50 euros
moyenne mensuelle (en minutes). Telecom 2 15 euros 0.42 euros
Algorithme MeilleurOffre
Var : nombreMinute : entier ; ½ pt
tarif1, tarif2 : réel ;
Début
Lire(nombreMinute) ;
tarif1 10 + 0.5 * nombreMinute ;
1pt
tarif2 15 + 0.42 * nombreMinute ; ½ pt
Si (tarif1<tarif2) alors OPTIMISATION
½ pt Ecrire(« choisir Telecom1 ») ;
Sinon ½ pt
Ecrire(« choisir Telecom2 ») ;
Fin
Remarque :
Répondez directement sur le sujet 2/2
Happy New Year
R. TLEMSANI
Institut National des Télécommunications et des Technologies de l’Information et de la Communication d’Oran
EXAMEN IGE36
Algorithmique et structures de données
Durée 1h30
Exercice 1 8 points
Ecrire les trois fonctions permettant de:
1. calculer du nombre d'occurrences d'un élément donné dans un tableau.
2. tester si le même tableau est trié ou pas.
3. tester si les éléments du même tableau sont tous consécutifs ou non.
Exercice 2 3 points
1. Quelle est la différence entre une structure de données statique et une structure de données dynamique ?
2. Pour un magasin en ligne, on souhaite pouvoir afficher la liste des articles présents au catalogue par ordre de prix
croissants. Définir, un type Article permettant de modéliser des articles d’un catalogue avec comme attributs, une
référence alphanumérique (comme un nom par exemple), et un prix en euros.
3. Définir, en langage algorithmique, une fonction permettant de vérifier si trois nombres entiers (a, b, c) forment un
triplé de Pythagore, c’est-à-dire si a2 + b2 = c2.
Exercice 4 4 points
Ecrire un algorithme qui demande à l’user les données suivants
PHTU, Nombre d’article et TVA
Et calculer le PTTC selon la règle suivante tel que :
Remise = 10% si nombre d’article>10
Remise = 0.75% si 5<nombre d’article<=10
Remise = 0.50% si nombre d’article<=5
1/1
Institut National des Télécommunications et des Technologies de l’Information et de la Communication d’Oran
EXAMEN IGE36
Algorithmique et structures de données
Durée 1h30
Exercice 1 8 points
Ecrire les trois fonctions permettant de:
1. calculer du nombre d'occurrences d'un élément donné dans un tableau.
Fonction Nb_occurences (T: Tableau d'entier, N: entier, X :entier) : entier
VAR i,nb_occ : entiers
Debut
nb_occ 0
Pour i 1 a N Faire
Si T[i] = X Alors nb_occ nb_occ + 1
Fsi
Fpour
retourner (nb_occ)
Fin
1/1
Institut National des Télécommunications et des Technologies de l’Information et de la Communication d’Oran
Exercice 2 3 points
1. Quelle est la différence entre une structure de données statique et une structure de données dynamique ?
La différence entre une structure de données statique et une structure de données dynamique est la taille, la première est
définie au début en spécifiant la taille qui est fixe, par contre pour la deuxième la taille est variable et qui est basée sur
l’allocation dynamique.
2. Pour un magasin en ligne, on souhaite pouvoir afficher la liste des articles présents au catalogue par ordre de prix
croissants. Définir, un type Article permettant de modéliser des articles d’un catalogue avec comme attributs, une
référence alphanumérique (comme un nom par exemple), et un prix en euros.
Type Article = ENREGISTREMENT
Référence : chaîne de caractères
Prix : réel
FIN
3. Définir, en langage algorithmique, une fonction permettant de vérifier si trois nombres entiers (a, b, c) forment un
2 2 2
triplé de Pythagore, c’est-à-dire si a + b = c .
Fonction Pythagore (a : entier, b : entier, c : entier) : booléen
Debut Retourner a × a + b × b = c × c Fin
1/3
ALI OUAHIOUNE
REDOUANE TLEMSANI
Algorithmique et structures de données
Le code des algorithmes est plus simple, plus clair et plus court.
Une seule modification dans la fonction sera automatiquement répercutée sur tous les algorithmes qui
utilisent cette fonction.
L’utilisation de fonctions génériques dans des algorithmes différents permet de réaliser son travail et de
gagner du temps.
7. Qu’es ce qu’un ensemble d’adressage ?
Réponse :
Un environnement de données, appelé aussi espace d’adressage, correspond à l’ensemble des variables associées
exclusivement à un algorithme ou à une fonction.
8. Les deux sections de code ci-dessous sont-elles équivalentes ? Expliquez.
tant que (i < n) tant que ( (i < n) ET (t[i] != 0) )
{ tant que (t[i] != 0) { /* instructions */
{ /* instructions */ ii+1;
ii+1; }
}
i i+1;
}
Réponse :
Dans le code à gauche, si le tableau ne contient pas de valeur nulle, on atteint la fin du tableau sans que la boucle
interne s’arrête. On va donc chercher à accéder à des adresses qui ne correspondent pas à des éléments du
tableau. Ce n’est pas le cas avec le code fourni à droite : la boucle s’arrête dès que l’on atteint la fin du tableau.
9. Quelles sont les trois modes d’ouverture d’un fichier ? Donnez des exemples avec la syntaxe utilisée dans le cours !
Réponse :
Modes : Lecture, Ecriture, Ajout
Ouvrir “Tata1.txt” sur 1 pour Lecture
Ouvrir “Tata2.txt” sur 2 pour Ecriture
Ouvrir “Tata3.txt” sur 3 pour Ajout
10. Chaque déclaration de tableau ne doit pas donner, implicitement ou explicitement, l’information sur
A. Le nom du tableau
B. le type des données
C. Les premières données de sauvegarde mémoire
D. La plage d’indices
11. Deux principales mesures pour l'efficacité d'un algorithme sont
A. Processeur et mémoire
B. Complexité et la capacité
C. Temps et l'espace mémoire
D. Données et l'espace mémoire
Exercice 1 5 points
Soit Z une matrice à m x n éléments réels. Ecrire l’algorithme qui permet la construction du vecteur Y définit
comme suit :
yi = 0 si ∑𝑛𝑗=1 𝑧𝑖𝑗 = 0 ou s’il existe j tels que zij=0 ;
yi = -1 sinon
Solution
Z : tableau|50, 50] de réel ;
Y : tableau[50] d’entier ;
I,j,m,n : entier ;
Trouv: booléen;
2/3
ALI OUAHIOUNE
REDOUANE TLEMSANI
Algorithmique et structures de données
S: reel;
DEBUT
Lire(m,n);
Pour I de 1 à m faire
Pour j de 1 à n faire
Lire (Z[i,j]) ;
Pour i de 1 à m faire
{
S0 ;
Trouvfaux ;
J1 ;
Tant que j <= n ET non trouv faire
{si Z[i,j]= 0 alors trouv vrai ;
Sinon {ss+ Z[i,j]
Jj+1;}
}
Si non trouv alors si s=0 alors Y[i]0;
Sinon Y[i]-1;
Sinon Y[i]0;
}
Pour i de 1 à m faire
Ecrire (Y[i]) ;
Fin
Exercice 2 4.5 points
Écrire un programme permettant de déterminer et d’afficher le nombre des lettres alphabétique majuscules
dans un texte donné. Le texte étant saisi comme une chaîne de caractères contenant n de caractères (5 ≤ n ≤
20).
Solution
Algorithme nbMaj
var V,n,i:integer;
texte : chaine de caractère;
DEBUT
faire
Ecrire('’Donnez la taille de votre chaîne'’);
lire(n);
tant que (n<5 ou n>20]);
faire
Ecrire('Tapez votre chaîne');
Lire (texte);
Tant que(texte.longueur() = n);
Pour I de à n faire
si texte.iemecar()>”A” ou texte.iemecar() < ”Z” alors
V V + 1;
Ecrire(‘’Le nombre des lettres alphabétiques Majuscules’’, V);
FIN
3/3
ALI OUAHIOUNE
REDOUANE TLEMSANI