• Aucun résultat trouvé

Documents autoris´ es, pas de livre, pas de calculatrice Lundi 18 juin 2018

N/A
N/A
Protected

Academic year: 2022

Partager "Documents autoris´ es, pas de livre, pas de calculatrice Lundi 18 juin 2018"

Copied!
2
0
0

Texte intégral

(1)

ULCO 2017 - 2018

Licence 2 Math´ ematiques

Examen – Informatique

Documents autoris´ es, pas de livre, pas de calculatrice Lundi 18 juin 2018

Dur´ ee : 2h

Exercice 1. [ ? points] Une chaˆıne de caract´ eres est naturellement repr´ esent´ ee par un tableau de type char. Par exemple la chaˆıne "Bonjour !" est repr´ esent´ ee par

[’B’,’o’,’n’,’j’,’o’,’u’,’r’,’ ’,’!’]

1. Proposer une structure Chaine en C++ permettant de repr´ esenter une chaˆıne de caract` eres de longueur au plus 100. La longueur de la chaˆıne sera stock´ ee dans cette structure. On rapple qu’en C++ un caract´ ere est cod´ e par le type char.

2. Ecrire une fonction Chaine concatenation(Chaine c1,Chaine c2) retournant si pos- sible la chaˆıne obtenue en concat´ enant les chaˆınes c1 et c2. La fonction affichera un messsage d’erreur et retournera une chaˆıne de longueur 0 si la concat´ enation n’est pas possible. Par exemple, si c1 repr´ esente "Bonjour " et c2 repr´ esente "Ada !", l’appel concatenation(c1,c2) retournera "Bonjour Ada !".

3. Une chaˆıne est un palindrome si elle peut se lire indiff´ eremment gauche ` a droite ou de droite ` a gauche. Les chaˆınes "laval" et "1221" sont des palindromes tandis que

"algo" n’en est pas un. Ecrire une fonction bool est palindrome(Chaine c) testant si la chaˆıne c est un palindrome.

On suppose l’existence d’une fonction bool est chiffre(char c) permettant de d´ ecider si le char c repr´ esente un chiffre ou pas. Exemple :

— est chiffre(’7’) retourne true ;

— est chiffre(’a’) retourne false.

4. Ecrire une fonction bool est nombre(Chaine c) qui teste si la chaˆıne c repr´ esente un nombre entier positif.

On suppose qu’il existe une fonction int evalue chiffre(char c) qui retourne la valeur enti` ere du chiffre repr´ esent´ e par le caract` ere c. Par exemple evalue chiffre(’4’) retourne l’entier 4.

5. Ecrire une fonction int evalue nombre(Chaine c) qui ´ etant donn´ e une chaˆıne c repr´ esentant un nombre entier positif retourne la valeur de ce nombre.

Exercice 2. [ ? points]

Un arbre arithm´ etique est un arbre binaire de chaˆınes de caract` eres permetant de repr´ esenter des expressions arithm´ etiques. Il est constitu´ e soit de feuilles repr´ esentant des nombres entiers positifs, soit d’un noeud qui contient un operateur arithm´ etique ("+","×"), un sous arbre gauche et un sous arbre droite. L’expression ((2 × 7) + (5 + 4)) est ainsi repr´ esent´ ee par l’arbre T donn´ e par

"+"

"×"

"2" "7"

"+"

"5" "4"

1. Donner l’ordre de visite des sommets de T lors des parcours pr´ efix´ e, infix´ e et postfix´ e.

On repr´ esente les arbres de chˆ aines ` a l’aide de la structure suivante

(2)

2

struct Arbre { Chaine valeur;

Arbre* droite;

Arbre* gauche;

};

o` u Chaine est introduit ` a l’exercice 1

Pour la suite on pourra utiliser toutes les fonctions introduites ` a l’exercice 1.

2. Ecrire une fonction bool est arithmetique(Arbre* A) qui teste si un arbre de chaˆınes est arithm´ etique ou pas. On pourra supposer qu’on dispose des fonctions bool est addition(Chaine c) et bool est multiplication(Chaine c) qui teste si la chaˆıne c repr´ esente "+" ou "×".

3. Ecrire une fonction int evalue (Arbre* A) qui ´ etant donn´ e un arbre arithm´ etique A

retourne la valeur qu’il repr´ esente. Par exemple, l’´ evaluation de l’arbre T retournera 23.

Références

Documents relatifs

Cr´ eer une fonction tirer d’argument n qui effectue la simulation de l’exp´ erience pr´ ec´ edente et renvoie le num´ ero de la case dans laquelle se trouve la bille ` a la fin..

Le programme devra dire si l’utilisateur a trouv´ e ou pas le nombre, si l’utilisateur ne le trouve pas, le programme devra indiquer si le nombre saisi est trop grand ou trop

On constate que les lignes correspondant ` a un nombre impair compos´ e (par ex- emple, ici la quatri` eme ligne correspondant au nombre impair 9) ne contiennent jamais de case

[r]

Ce qu’il est amusant de constater, c’est que cette formule pour les 4k + 1 s’applique également au nombre premier 3 si ce n’est qu’il faut considérer celui-ci non pas comme un

Le 2 avril, chacune des trois copines envoie à son tour un message à trois autres copines pour les avertir?. Et ainsi la nouvelle se propage rapidement : dès qu’une

[r]

- réciter la comptine en déplaçant un élément de la collection à chaque fois qu’un mot-nombre est prononcé, -réciter la comptine numérique en pointant mentalement un élément