• Aucun résultat trouvé

TD n°3 de langage C : bitwises, tableaux, chaînes

N/A
N/A
Protected

Academic year: 2022

Partager "TD n°3 de langage C : bitwises, tableaux, chaînes"

Copied!
1
0
0

Texte intégral

(1)

TD n°3 de langage C : bitwises, tableaux, chaînes

Exercice 1 (acquisition)

Réalisez fonction void pt(int t[], int n) qui modifie l’ordre des valeurs stoc- kées dans le tableau t, supposé de taille n, de manière à faire apparaître en pre- mier la plus petite valeur, sans contrain- te sur l’ordre des autres valeurs.

En utilisant la fonction pt précédemment décrite, réalisez une fonction void tri(int t[], int n) qui trie en ordre croissant les valeurs stockées dans un tableau t supposé de taille n.

Exercice 2 (acquisition)

Réalisez une fonction int n1(int x) qui retourne 0 si x n’est pas une puissance de deux et qui dans le cas contraire retourne log à base 2 de x.

Pour mémoire, log base 2 de 2 puissance n vaut n.

Exercice 4 (consolidation)

On souhaite réaliser des fonctions permet- tant d’effectuer des opérations sur des ensembles de caractères (au sens char du langage C). Un ensemble de caractères sera représenté par un tableau e de 256 carac- tères exploités comme des Booléens, avec la convention suivante : e[i] vaut vrai si et seulement si le caractère i est dans l’ensemble représenté par e.

Quels sont les avantages et les inconvé- nients de cette représentation ?

Réalisez les fonctions permettant d’ajou- ter un élément à un ensemble, de retirer un élément, de tester si un élément appar- tient à un ensemble, de calculer l’inter- section et l’union de deux ensembles.

Exercice 8 (consolidation)

On souhaite crypter des mots ne comportant (pour simplifier) que des lettres majuscules. La clé de cryptage est une chaîne de 26 caractères comportant une seule occurrence de chaque lettre majuscule.

Pour crypter une chaîne, on remplace chaque lettre x de cette chaîne par la lettre qui, dans la clé de cryptage, apparaît en position x. Par exemple, si la clé de cryptage est nommée cry, le caractère ‘A’ de la chaîne à crypter sera remplacé par cry[0], le caractère ‘B’ par cry[1], etc.

Réalisez une fonction void proc(char* s, char* cle) qui permet de crypter la chaîne s à l’aide de la clé fournie.

Réalisez une fonction void mcd(char* cc, char* dd) qui place dans la chaîne dd la clé de décryptage correspondant à la clé de cryptage cc. Cette clé doit permettre de décrypter une chaîne à l’aide la fonction proc avec laquelle elle a été cryptée, mais en utilisant la clé de décryptage au lieu de la clé de cryptage.

Donnez un exemple de programme de test réalisant le cryptage d’une chaîne, le calcul de la clé de décryptage, puis le décryptage de la chaîne et l’affichage du résultat.

Exercice 3 (consolidation)

En utilisant la fonction iclass réalisée lors du TD précédent, réalisez une fonc- tion void tri(int[] t, int n) qui trie par ordre croissant les valeurs du tableau t, supposé de taille n, par la méthode du tri par interclassement et fusion.

Tout tableau vide ou de longueur 1 est trié. Tout tableau plus grand est décompo- sé en deux segments de mêmes tailles (à un élément près). Chaque segment est trié récursivement, puis les résultats sont fusionnés.

Quel est la complexité en temps dans le pire des cas de ce tri ?

Références

Documents relatifs

[r]

Un arbre de profondeur n>1 est représenté par un tableau contenant la représentation de son fils gauche, puis celle de son fils droit, puis la valeur associé à sa racine..

Réalisez une fonction int f0(int x)qui retourne un Booléen ayant la valeur vrai si et seulement si les 4 bits de poids faibles de la représentation binaire de x sont tous à 0..

Réalisez une fonction int getPar(char t[], char p[] int n) qui place dans le tableau p toutes les valeurs paires conte- nues dans le tableau t, qui est supposé être de longueur n,

Cours de math´ ematiques Int´ egration. Th´ eor`

Si une fonction paire admet un d´eveloppement limit´e d’ordre n en 0 alors les coefficients des termes de degr´e impair sont nuls, si une fonction impaire admet un

a f, tel que f est continue sur chacun des intervalles ouverts de cette subdivision et admet des limites finies en leurs extremit´es.. L’ensemble des fonctions continues par

Le but de cette partie est de d´ emontrer que toute forme lin´ eaire positive sur C c ( R d ) d´ efinit n´ ecessairement une application d’int´