• Aucun résultat trouvé

Écrire une fonction str_to_lst de signaturestring -&gt

N/A
N/A
Protected

Academic year: 2022

Partager "Écrire une fonction str_to_lst de signaturestring -&gt"

Copied!
1
0
0

Texte intégral

(1)

Listes - Exercices Option informatique — MPSI

Exercice 1

La notation postfixe des expressions arithmétique (appelée également notation polonaise inverse ou notation de Łukasiewicz) consiste à écrire les opérandes d’une expression avant les opérateurs. Par exemple, l’expression (3×(5 + 4)−2) s’écrira 3 5 4 +×2−. Aucune parenthèse n’est requise pour écrire une telle expression.

1. Écrire une fonction str_to_lst de signaturestring -> char list qui transforme une chaîne de caractères en une liste de caractères, en supprimant les espaces. On utilisera une référence de liste.

2. En déduire une fonction postfixe de signature string -> int telle que postfixe s renvoie l’évaluation de l’expression s écrite en notation postfixe. On supposera que s ne contient que des chiffres et des symboles d’opérateurs (+, -, *, /) séparés par des espaces. On utilisera une structure de pile codée par une simple liste, ainsi que les fonctions suivantes permettant d’associer un caractère d’opérateur à l’opération associée ou un caractère de chiffre au chiffre associé :

let ops = function

| '+' -> ( + )

| '-' -> ( - )

| '*' -> ( * )

| '/' -> ( / );;

# ops '*' 2 3;;

- : int = 6

let chiffre x = int_of_char x - 48;;

# chiffre '5';;

- : int = 5

Exercice 2

On considère un message formé des lettres de l’alphabet encodé par un entier selon le principe suivant : une lettre est transformé en son rang dans l’alphabet (A →1, . . . , Z →26). Ainsi, un message sera codé par uneint listne contenant que des chiffres (donc des entiers entre 0 et 9).

1. Écrire une fonctioncomptequi compte le nombre de façons différentes de décoder le message. Par exemple,[2;6;1;0;3;7;1;1] peut se décoder de quatre façons différentes : ZJCGK, ZJCGAA, BFJCGK et BFJCGAA.

2. Lors de la transmission du message codé, certains chiffres sont transformés en∗. On s’intéresse à nouveau au nombre de façons de décoder le message. Par exemple, "2*" peut se décoder comme

"BA", "BB", . . . , "BI", "T", "U", "V", . . . ,"Z", soit 16 possibilités. Pour éviter les problèmes de types, on considérera que les∗sont codées par des-1. Écrire une fonctioncomptebisqui compte le nombre de façons différentes de décoder le message.

N. Carré Louis-le-Grand

Références

Documents relatifs

On aura plutôt tendance à dire qu’ils ont un chiffre d’affaire de millions. Ici, on a fait deux chose, on

La dernière phrase de l’extrait décrit l’ensemble des difficultés, y compris les conditions précaires de Denise. « sous la continuelle menace d’un renvoi brutal », et

nombre est trop petit pour être représenté Résultat qui n'est pas un nombre («. Résultat qui n'est pas un nombre (« not-a-

Des notations de l’état corporel de lots de brebis mises en reproduction au prin- temps ont été réalisées dans 8 exploitations des Cévennes Gardoises de novembre 1986

4 Écris chaque nombre sous forme décimale puis en notation

4  Écris chaque nombre sous forme décimale puis en notation

Écrire un nombre en utilisant la notation scientifique. Écris le nombre A = 6 430 en notation

Écrire un nombre en utilisant la notation scientifique. Écris le nombre A = 6 430 en notation