Post

DS3 2023 2024

Télécharger le DS3 2023 2024 en pdf

Pages : 1 2 3

Page 1 : Pré-ING1Semestre 1 - 2023/2024DS n° 3 - Informatique ICalculatrice et documents non autorisésLorsqu’aucune consigne n’est précisée, les réponses peuvent être données en langage C ou en pseudo-code. Prêtez uneattention particulière à la robustesse de vos programmes.Exercice 1 Convertisseur binaire / décimal 3.00 ptsCet exercice doit être codé en langage C obligatoirement.1. Écrire une procédure void afficheBinaireunsigned int num qui prend en paramètre un nombre entier positif ounul, et qui affiche la valeur correspondante au format binaire notez qu’on ne demande pas de stocker ce nombre binairedans une variable, simplement de l’afficher.2. Écrire une fonction unsigned int binaireToDecimalchar bin qui prend en paramètre une chaîne de caractèresdont chaque caractère représente le chiffre d’un nombre binaire par exemple : bin = "101101". Cette fonction doitconvertir cette chaîne de caractères en entier et retourner la valeur convertie.Cette fonction doit stopper le programme avec un code d’erreur si elle rencontre le moindre problème.Exercice 2 Encodeur Binaire 4 vers 2 4.25 ptsConcevoir un encodeur binaire qui prend quatre entrées binaires A3, A2, A1, A0 et produit deux sorties S1, S0 en indi-quant la position du bit le plus significatif bit de poids fort à 1.Ici A3 est le bit de poids fort et A0 le bit de poids faible.Idem S1 est le bit de poids fort et S0 le bit de poids faible.Les sorties S1, S0 indiqueront la position du bit le plus significatif à 1 en binaire. de la position 0 à la position 3,respectivement de la droite à la gauche.Les sorties S1 et S0 doivent être codées en binaire naturel 00 pour 0, 01 pour 1, 10 pour 2, 11 pour 3.Exemples :— Entrée : 0101→S1 = 1, S0 = 0 →le bit de poids le plus fort avec une valeur à 1 se trouve à l’index ’2’ la 3ème place.— Entrée : 0011→S1 = 0, S0 = 1 →le bit de poids le plus fort avec une valeur à 1 se trouve à l’index ’1’ la 2ème place.Respecter les étapes suivantes :1. Écrire la table de vérité du convertisseur binaire.2. Réaliser le tableau de Karnaugh associé.3. On ne sait pas quelle valeur de sortie S mettre pour une entrée A qui vaut 0 : donner la valeur de S1 et S0 pour A=0,permettant ainsi de simplifier les equation de sortie le plus possible.4. En déduire les équations réduites.5. Dessiner le circuit logique associé aux équations.Exercice 3 Manipulation de Polynômes 5.25 ptsCet exercice doit être codé en langage C obligatoirement.Dans cet exercice, nous manipulons des polynômes dont les coefficients sont représentés dans un tableau. L’indice du tableaucorrespond au degré associé à chaque coefficient. Par exemple, le polynôme 8x4 9x2 +7, 6x+5 est représenté par le tableau5, 7.6, 9, 0, 8 où la valeur 0 indique l’absence de coefficient pour le degré 3.1. Écrire une fonction ou procédure displayPoly... qui, prenant en paramètres un tableau et sa taille, affiche lepolynôme correspondant.Exemple : 5, 7.6, 9, 0, 8 sera affiché+8x^4 -9x^2 +7.6x + 5.2. Écrire une fonction ou procédure evaluationPoly... qui prend en paramètre :1

page 1

Page 2 : — Un tableau,— Sa taille,— Un réel représentant la valeur de x,et qui retourne le résultat du polynôme pour cette valeur de x.On suppose l’existence de la fonction float powfloat x, float y; en langage C, qui permet de calculer xy.3. Écrire une fonction ou procédure addPoly... pour additionner deux polynômes de mêmes degrés. Ce bout deprogramme prendra en paramètre deux tableaux de mêmes tailles et mettra dans le premier la somme des deuxpolynômes.4. Écrire une fonction ou procédure derivativePoly... permettant de dériver un polynôme passé en paramètre. Cebout de programme prendra en paramètre 1 tableau et sa taille et le modifiera en suivant le calcul de la dérivée d’unpolynome.Exercice 4 Remplissage d’un tableau 2D 3.50 ptsOn souhaite remplir un tableau à 2 dimensions de taille de côté N avec des nombres entiers croissants de 1 à N 2. En partantd’un tableau initialisé avec des valeurs à 0, le remplissage se fera en forme de spirale avec la méthode suivante :1. démarrage par la case en haut à gauche avec la valeur 12. on se déplace vers la droite jusqu’à rencontrer le bord droit de la matrice ou bien une valeur différente de 03. on se déplace vers le bas jusqu’à rencontrer le bord inférieur de la matrice ou bien une valeur différente de 04. on se déplace vers la gauche jusqu’à rencontrer le bord gauche de la matrice ou bien une valeur différente de 05. on se deplace vers le haut jusqu’à rencontrer le bord supérieur de la matrice ou bien une valeur différente de 06. incrémenter la valeur de la case de +1 par rapport à la précédente case, et continuer ces etapes en reprenant à l’etape2 jusqu’à atteindre la valeur N² ce qui devrait concorder avec le fait que toutes les cases du tableau ont été remplies.Pour un tableau de taille de côté N = 5, on a le schéma ci-dessous qui indique dans quel état doit se trouver le tableauaprès exécution du programme.12345161718196152425207142322218131211109Écrire un programme principal qui va déclarer un tableau à deux dimensions de taille carrée TAILLE définie commeconstante.Le programme doit initialiser le tableau avec des 0, et ensuite le remplir comme indiqué précédemment.Ce bout de programme ne doit rien faire d’autre que le remplissage du tableau.Exercice 5 Vérification de Mot de Passe 4.00 ptsÉcrire une fonction ou procédure checkPassword... qui prend en entrée une chaîne de caractères qui est un mot depasse entré par un utilisateur.Cette fonction retourne en sortie une valeur entière qui indique si le mot de passe respecte les règles de sécurité. Pourvous aider, la table ASCII est fournie en annexe.Les règles de sécurité pour le mot de passe sont les suivantes :— La longueur du mot de passe doit être d’au moins 8 caractères,— Le mot de passe doit contenir au moins 1 lettre minuscule,— Le mot de passe doit contenir au moins 1 lettre majuscule,— Le mot de passe doit contenir au moins 1 chiffre,— Le mot de passe doit contenir au moins 1 caractère spécial dont la valeur dans la table ASCII est strictement supérieureà 20 base 16 et strictement inférieur à 7F base 16.La fonction doit retourner une valeur entière dont la valeur dépend du contenu du mot de passe donné en entrée :— 0 : le mot de passe respecte toutes les règles de sécurité,— 1 : le mot de passe a une mauvaise longueur,— 2 : le mot de passe a une longueur correcte mais l’un de ses caractères n’est pas autorisé,— 3 : le mot de passe a une longueur correcte et tous ses caractères sont autorisés mais il ne respecte pas l’ensemble desrègles de sécurité énoncées plus haut.Il est interdit d’utiliser les fonctions du module string.h dans cet exercice.2

page 2

Page 3 : ANNEXE : table ASCII3

page 3

Pages : 1 2 3

Le contenu de cet article est la propriété exclusive de son auteur.