Algorithmique II Examen Final 2018 - 2019

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2

UNIVERSITE IBN TOFAIL Année: 2018/2019

Faculté des sciences Filières : SMI


Département d’Informatique Semestre : 3
Kenitra

Algorithmique II
Examen final
Durée : 1h 30mn

Exercice 1 : (Sur 6 points)


Un marchand de produits représente chaque Produit comme une structure contenant les
champs suivants :
- CodeProduit, une chaine de caractères de taille maximale 10 caractères, indiquant le code du
Produi.
- NomProduit, une chaine de caractères de taille maximale 20 caractères, indiquant le nom du
Produit.
- PrixUnitaire, un réel indiquant le prix unitaire du produit.
- Quantité, un entier indiquant la quantité à vendre du produit.
- Stock, un entier indiquant la quantité du produit se trouvant dans le stock.

Pour établir la facture des produits vendus pour un client le marchand range la liste des
produits vendus à ce client dans un tableau de Produits nommé Tab.
1. a) Donner la déclaration du type Produit en tant que structure regroupant les champs ci-
dessus.
b) Donner la déclaration de Tab en tant que variable de type tableau de Produit, de taille
N (N est une constante).
2. Ecrire une procédure AfficherFacture (Tab ; NomClient ; M : Entier) recevant le tableau Tab,
une chaîne de caractères NomClient de taille maximale 20 caractères donnant le nom du
client ainsi que le nombre M de produits vendus et la procédure affichera les produits du
tableau, après avoir vérifié que pour chaque produit la quantité vendue est disponible en
stock. L’affichage sera comme suit :

Nom : NomClient

Code du Produit Nom du Produit Prix Unitaire Quantité Prix Total


……………. …………… …………….. ……… …………

Total : ……..

"Prix Total" est le prix de la quantité vendue du produit, si elle est disponible dans le stock et
"Total" est la somme des prix totaux

Exercice 2 : (Sur 7 points)


Soit Ch[1..n] et P[1..m] deux chaînes de caractères, avec 1mn On considère la fonction
Match (P ; Ch ; m ; n) définie par :

Fonction Match (P : Caractere[1..m]; Ch : Caractere[1..n]) : Entier


Var L, r : Entier
B : Boolleen
Debut
L 0
B Faux

1/2
Tant que (L (n-m) Et B=Faux) Faire
LL+1
r1
B  Vrai
Tant que (r m Et B=Vrai) Faire
Si (P[r] <> Ch[L+r-1]) Alors
B  Faux
Fin Si
rr+1
Fin Tant que
Si (B=Vrai) Alors
Retourner L
Fin Si
Fin Tant que
Retourner -1
Fin

1. Expliquer brièvement le but de la fonction Match ?


2. Calculez la complexité temporelle C(m, n) dans les pires des cas de la fonction Match, ceci en
fonction de m et n.
3. Modifiez la fonction Match de manière à ce qu'elle fournisse le nombre d'occurrences de P
dans Ch (Les occurrences peuvent se chevaucher).

Exercice 3 : (Sur 7 points)


On considère la suite récurrente donnée par :
a0=1 ; a1=2 et an= an-1 * an-2 pour n>1
1. Ecrire en pseudo-code une fonction récursive SuiteRecursive () qui retourne le nème élément
de cette suite.
2. Ecrire en pseudo-code une fonction itérative SuiteIterative () qui retourne le nème élément de
cette suite.
3. Laquelle des deux fonctions est plus efficace. Justifier votre réponse en calculant les
complexités temporelles des deux fonctions.

Bon courage

2/2

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy