tete du loic

 Loïc YON [KIUX]

  • Enseignant-chercheur
  • Référent Formation Continue
  • Responsable des contrats pros ingénieur
  • Référent entrepreneuriat
  • Responsable de la filière F2 ingénieur
  • Secouriste Sauveteur du Travail
mail
loic.yon@isima.fr
phone
(+33 / 0) 4 73 40 50 42
location_on
ISIMA
  • twitter
  • linkedin
  • viadeo

[C] Examen 2022

Codage d'une conversion hexadécimal vers décimal

Sans utiliser les fonctions des bibliothèques string.h ou stdio.h, convertir un nombre donné dans une chaîne de caractères représentant un nombre hexadécimal POSITIF en le nombre décimal correspondant.

Décomposition d'entiers en facteurs de nombres premiers

Un nombre premier est un entier naturel qui n'admet que deux diviseurs : 1 et lui-même. 0 et 1 ne sont pas premiers. Pour déterminer si un nombre n est premier, il existe plein de techniques. Nous vous proposons d'utiliser un l'algorithme peu efficace comme celui qui consiste à essayer de diviser par tous les entiers entre 2 et racine_carree(n).

Nous vous demandons ensuite de décomposer un nombre n en facteurs premiers (tous plus petits que n, les facteurs étant listés dans une chaîne de caractères, du plus petit au plus grand). Pour cela, il suffit de chercher le plus petit diviseur premier a de n, de remplacer le nombre n par le quotient n/a jusqu'à obtenir 1 (le dernier nombre n est donc premier)

Pour 44, le plus petit entier diviseur est 2 et on obtient 22=44/2. 2 est encore diviseur de 22 car 22=2*11. 11 est premier alors la recherche est terminée : 44 = 2*2*11.

La dernière étape consiste à donner une forme condensée à la recherche des facteurs premiers du nombre demandé : 44 = 2^2*11

Création, lecture et multiplication de matrices carrées

La première fonction à écrire crée dynamiquement une matrice carrée identité d'ordre (taille) donné.

Pour construire la matrice, vous devez allouer un tableau de lignes puis les lignes une à une. Pour éviter la duplication de code, vous pouvez créer un fonction qui crée un matrice "nulle" de taille donnée, tant que celle-ci est définie dans le fichier .c

La deuxième fonction à écrire est la fonction de libération de la mémoire associée à la matrice dont l'ordre est également donné.

On s'intéresse ensuite à la lecture dans un fichier d'une matrice carrée. On lit tout d'abord l'ordre de la matrice carrée, puis les éléments un par un (ligne par ligne). Si on peut lire le fichier, on estime que le contenu est correct. La fonction de lecture crée la matrice dynamiquement.

La dernière étape consiste à calculer le produit matriciel des deux matrices carrées données en paramètre. Le produit est encore créé dynamiquement.

Si on cherche à calculer C = (cij) = A * B, on a la relation suivante : cij = sommek(aik*bkj)

Le rendu-mémoire sera vérifié.