Vous êtes sur la page 1sur 2

Examen IBIS – I2, 2003-2004

Durée : 3 heures
Tout document autorisé

Le barème est donné à titre indicatif. Prenez le temps de lire le sujet et rendez une copie
propre.

Exercice 1 (sur 4 points)

On donne en entrée d’une procédure un tableau de N éléments de type entier. Donner


l’algorithme de la procédure Double qui pour chaque élément du tableau affiche cet élément
si son double (au sens mathématique x : 2x) est aussi présent dans le tableau. Les éléments
sont rangés dans un ordre aléatoire à l’intérieur du tableau. Le tableau est considéré comme
intégralement rempli.
Exemple :

1 16 2 4 6 8
éléments dont les doubles sont présents :
1, 2, 4, 8

Exercice 2 (sur 7 points)

On souhaite modéliser un carnet d’adresses. Une personne a un nom (une chaîne de


caractères de 25 éléments maximum), un prénom (une chaîne de caractères de 25 éléments
maximum), un numéro de téléphone (une chaîne de caractères de 13 éléments maximum),
une adresse composée d’un numéro (un entier), une rue (une chaîne de caractères de 25
éléments maximum), une ville (une chaîne de caractères de 25 éléments maximum) et un
code postal (une chaîne de caractères de 5 éléments maximum). Toutes les personnes sont
considérées comme ayant un nom différent. Il y a au maximum 50 personnes dans le carnet
mais il n’est pas forcément complètement rempli.

1) Proposer une modélisation des données.


2) Ecrire l’algorithme d’une procédure Recherche, qui recherche dans un carnet
d’adresses trié par ordre alphabétique, le numéro de téléphone d’une personne dont
on donne le nom.

Exercice 3 (sur 5 points)

On souhaite disposer d'une fonction, DonneQuantième, permettant d'associer à une date


donnée sous la forme d'un triplet, jour, mois et année de type entier, son quantième lui aussi
sous forme d'entier. Un quantième est une information modélisant l'année et le numéro du
jour dans l'année. A titre d'exemple le 2/2/2000 se modélise en sortie par 2000033 (soit 2000
pour l'année et 033 = 31 (pour le mois de janvier) + 2). Pour simplifier, on considère que les
données sont correctes, les années ne sont pas bissextiles (février a 28 jours).

Ecrire l'algorithme de cette fonction.


Exercice 4 (sur 4 points) (ou les joies des noms éloignés de leur sémantique)

Décrivez en quatre lignes maximum ce que fait l’algorithme suivant :

Type structure1 = structure a : chaîne, b : entier finstructure


Type structure2 = structure d, c : entier finstructure
Type structure3 = structure e : chaîne, f : réel finstructure

Type z1 = tableau [1..N] de structure1


Type z2 = tableau [1..P] de structure2 // P >= N
Type z3 = tableau [1..N] de structure3

procedure (Entrée a : z1, d : z2, Sortie e : z3, n : entier)

k ←1
pour i ←1 a N
n ←0
e[k].f ← 0
e[k].e ← a[i].b
pour j ← 1 a P
si a[i].b = d[j].d alors
e[k].f ← e[k].f + d[j].c
n← n+1
finsi
finpour

si n ≠ 0 alors
e [k].f ← e [k].f / n ;
k←k+1
finsi
finpour

n← k – 1

finprocedure