Rendu

Vous devez travailler sur un dépôt : 2026_synthesis sur la la forge logicielle. Chaque chapitre doit être réalisé dans son propre repertoire : /c1, /c2, etc.

Des questions sont associées à chaque chapitre. Pour chaque question vous devez créer une issue, depuis la forge logicielle sur votre dépôt. Vous pouvez apporter des éléments de réponse au fur et a mesure que vous les trouvez, et finir par un commentaire qui contient votre réponse.

Vidéos

http://172.17.250.100:5000/cvid/

Évaluation

Vous ne serez pas évalué sur la proportion d’exercices réalisés ou même seulement sur rendu. À la place, lors des sessions nous allons passer périodiquement pour voir où vous en êtes sur vos exercices, pour vous poser des questions et vous valider ou non certaines notions.

Chaque section donne 4 points à la note finale de ce rattrapage. Certains sections sont éliminatoires (partiellement ou complètement).

BASES (toutes éliminatoires):

  1. écrire du code source qui compile, le compiler et l’exécuter (1 ou plusieurs fichiers)
  2. écrire du code source qui respecte un coding style
  3. écrire un programme minimal valide
  4. comprendre le code de sortie d’un programme
  5. afficher un caractère sur la sortie standard
  6. rendre son travaille sur git

DATA (éliminatoires 1 à 4):

  1. déclarer des variables
  2. initialiser une variable avant de l’utiliser
  3. faire de l’arithmétique simple
  4. utiliser les bons types pour les bons problèmes
  5. utiliser des tableaux
  6. utiliser des pointeurs

FUNC (éliminatoires 1 et 2):

  1. écrire une fonction
  2. appeler des fonctions
  3. renvoyer et utiliser des valeurs de renvoi
  4. utiliser une fonction écrite dans un autre fichier source

COND:

  1. écrire des conditions (en utilisant les opérateurs de comparaison)
  2. écrire des boucles (en les opérateurs de comparaison)
  3. vérifier l’appartenance à un interval

ASCII:

  1. traduire un chiffre en son caractère ASCII correspondant
  2. faire de l’arithmétique sur des caractères
  3. reconnaître qu’un caractère est une lettre minuscule, majuscule ou un chiffre
  4. construire une chaîne de caractère (capable d’allouer et remplir)
  5. utiliser une chaîne de caractère
  6. traduire une chaîne de caractères en un nombre

Chapitre 1

Sujet : Chapitre 1 • Premier programme.

Questions :

  • Qu’est-ce qu’un fichier source ?
  • Comment transformer un fichier source C en un exécutable ? Que doit contenir au minimum ce fichier source dans le cas où on souhaite que le programme s’arrête immédiatement après avoir été exécuté ? (De tête vous devez connaitre la syntaxe du fichier source minimal.)
  • Comment exécuter un exécutable ?
  • Qu’est ce que le code de sortie (exit code) d’un programme ?
  • Qu’est-ce que la sortie standard (standard output) ?
  • À quoi sert la fonction tc_putchar ? Comment l’appeler ?

Chapitre 2

Sujet : Chapitre 2 • Conditions, boucles

Questions

Variables :

  • Définissez les termes variable, valeur et valeur littérale.
  • Doit-on faire quelque chose avec une variable avant de l’utiliser dans une opération, comparaison, etc. ?

Fonctions :

  • Définissez le terme fonction.

  • Qu’elles sont les éléments d’une déclaration de fonction ? (De tête vous devez pouvoir lister les 4 éléments d’une déclaration de fonction.)

  • Comment utiliser (appeler) une fonction que l’on a déclaré ?

  • Définissez paramètre et argument.

  • Comment déclarer une fonction qui admet des arguments ?

  • Doit-on faire quelque chose avec un paramètre avant de l’utiliser dans une opération, comparaison, etc. ?

  • Comment passer un argument lorsqu’on appelle une fonction ?

  • Comment faire renvoyer une valeur à une fonction ? Comment utiliser une valeur renvoyée par une fonction appelée ?

  • Que doit-on faire pour utiliser dans un fichier A une fonction que l’on a écrite dans un fichier B ? Comment compiler les deux fichiers ensemble ?

Opérateurs, arithmétique, comparaisons :

  • Quelle est la différence entre les opérateurs % et / ?
  • Quelle est la différence entre un simple égal = et double égal == ?
  • Pour les instructions suivantes, donner la valeur de int res :
    • res = 2 < 3;
    • res = 2 > 3;
    • res = 3 > 3;
    • res = 3 >= 3;
    • res = 3 <= 3;
    • res = 3 == 3;
    • res = 2 == 3;
    • res = 3 != 3;
    • res = 2 != 3;
  • Comment conditionner l’exécution d’une ou plusieurs lignes de code à une condition ? (Si j’ai ça, alors je fais ça.)
  • Comment conditionner l’exécution d’une ou plusieurs lignes de code à une condition et à les répéter si la condition reste vraie ?
  • Qu’est-ce qui est nécessaire pour écrire une boucle avec un indice ?

Caractères :

  • Si nous, êtres humains, nous représentons les caractères (lettres, chiffres arabes) visuellement, comment est-ce qu’un programme se représente une lettre ?
  • Si on fait char letter = 'a'; letter += 1;, quelle est la valeur numérique finale de letter ? Si on tc_puchar(letter), qu’est-ce qui s’affiche ?

Rappel du but de la matière

Le but de cette matière n’est pas de faire de vous des experts de la programmation, mais il est de vous permettre le comprendre les blocs de construction les plus simples qui composent les logiciels et les scripts.

Ce sont des compétences transversales qui vous aiderons tout au long d’une carrière dans l’informatique, et qui s’avèrent d’autant plus intéressantes si vous êtes intéressés par l’audit de code dans le cadre d’une carrière en cyber-sécurité.

Le but de cette matière est aussi de vous montrer que vous êtes capable de réfléchir par vous même, en vous aidant à développer votre méthode, votre autonomie, bien que pour cette synthèse, de nouveaux outils vous seront introduits et imposés, et vous n’aurez pas beaucoup de temps dédié à l’autonomie.