• Aucun résultat trouvé

UNIVERSITE MOHAMMED V-Agdal

N/A
N/A
Protected

Academic year: 2022

Partager "UNIVERSITE MOHAMMED V-Agdal"

Copied!
2
0
0

Texte intégral

(1)

UNIVERSITE MOHAMMED V-Agdal

SMI –S5 2013/2014

FACULTE DES SCIENCES -RABAT-

TD de Compilation

Département d’Informatique

Série 1 Rappel 1: Tableaux et pointeurs

1- Soit int *p ; // nous déclarons une variable p de type pointeur P++ ; // le pointeur p est incrémenté de 1 (de 1 quoi ?)

L’unité d’incrémentation ou de décrémentation d’un pointeur est la taille (convertie en octets) de la variable pointée.

Exercice : analyser le code suivant et donner les valeurs prises par x main( )

{

int a[10], *pa, x ;

a[0]=11 ; a{1]=22 ; a[3]=33 ; a[3]=44 ; pa = &a[0] ; /

x=*pa ; pa++ ; x=*pa ; x=*pa+1 ; x=*(pa+1) ; x=*++pa ; x=++*pa ; x=*pa++ ; }

2- Ecrire une fonction swap, à deux paramètres, qui permute les valeurs de 2 variables quelconques.

La fonction principale main() appelle la fonction swap pour faire le traitement et affiche le résultat.

Rappel 2: Macros d’analyse des caractères

Ces macros sont incluses dans la bibliothèque <ctype.h>.

Elles acceptent comme argument un char ou un int et retournent un entier différent de 0 si l’argument est compris dans les limites indiqués ci-dessous :

macros condition

isalpha(c) A-Z , a-z

isupper(c) A-Z

islower(c) a-z

isdigit(c) 0-9

isxdigit(c) 0-9 , A-F , a-f

isspace(c) blanc

isalnum(c) 0-9 , A-Z , a-z

Exercice : Donner un programme en C qui transforme les lettres minuscules en lettres majuscules d’un texte en entrée.

Rappel 3 : Tableau de caractères

Les macros sont incluses dans la bibliothèque <string.h>

Exemple 1 : Ecrire un code en C qui copie la chaîne « bonjour » dans un tableau chaine1[10].

Exemple 2 : Ecrire un code en C qui compare 2 chaînes de caractères.

Exemple 3 : Ecrire un code en C qui donne la longueur d’une chaîne.

(2)

Exercice 1 :

1- Donner une grammaire qui engendre les nombres entiers

2- Donner une définition dirigée par la syntaxe qui calcule le nombre de chiffres d’un entier

3- Donner l’arbre syntaxique décoré de : "3269"

4- Donner une grammaire qui accepte les nombres entiers multiples de 5 5- Donner l’arbre syntaxique de : "375"

Exercice 2 :

Soit la grammaire :

S S (S) S | a

1- donner l’arbre syntaxique de la chaîne : "a(a)a"

2- donner une d.d.s pour cette grammaire qui calcule le nombre de "a" d’une chaîne.

3- appliquer cette d.d.s à la chaîne précédente pour produire l’arbre syntaxique décoré.

Exercice 3 :

Nous représentons les instructions if... par les arbres abstraits suivants :

"if A then B" "if A then B else C"

if if_else

A B if C

A B

Voici deux instructions du langage PASCAL :

"if A<B then if A>C then i :=1 else i :=3 ;"

"if A<B then begin if A>C then i :=1 end else i :=3 ;"

Donner sous une forme graphique les arbres abstraits de ces deux phrases puis expliquer le rôle des parenthèses begin et end.

Exercice 4 :

Donner une expression régulière qui valide une forme simplifiée des adresses électroniques.

Définition simplifiée :

- une adresse électronique est constituée d’un champ ou plusieurs suivies d’un @ suivi d’un champ ou plusieurs.

- un champ est constitué d’un caractère ou plusieurs (lettre, chiffre, -, _).

Exercice 5 :

Un nombre binaire est constitué de 0 et de 1

1- donner une expression régulière qui accepte les nombres binaires constitués d’au moins deux 0.

2- donner une expression régulière qui accepte les nombres binaires constitués d’au plus trois 0.

Références

Documents relatifs

[r]

Montrer que R est une relation d'équivalence, puis, pour tout réel x, déterminer le nombre d'éléments dans la classe d'équivalence de x.. Proposition

Le message crypt´e envoy´e sur le r´eseau est obtenu en transformant le message initial ` a l’aide de cette cl´e (selon une m´ethode connue de l’´emetteur et du r´ecepteur)

Montrer que f admet deux points critiques et d´ eduire en utilisant les d´ eriv´ ees par- tielles d’ordre 2 la nature de chacun de ces

On admet (et c’est une cons´ equence) que toute fonction v´ erifiant ces hypoth` eses admet un minimum absolu qu’elle atteint en un certain x 0 ∈ IR n.. On veut d´ emontrer que

Par l’absurde, on suppose l’existence de plusieurs solutions et on note t 0 la solution la plus proche de a. En remarquant que φ est d´ ecroissante sur ]a, β[, montrer que β

En effet nous ne disposons plus alors que de 2 caractères pour écrire les nombres dont nous avons besoin, 0 et 1. Tout système pouvant se présenter dans deux états distincts

[r]