Optimisation d'une solution DFS pour le problème de la tour de robots
L'énoncé provient de la compétition Blue Bridge Cup, problème numéro 118, intitulé "Tour de Robots".
Le problème consiste à construire une structure pyramidale avec des robots de deux types ('a' et 'b') en respectant certaines règles de placement. L'approche utilisée est le parcours en profondeur (DFS) pour explorer toutes les configu ...
Publié le 29 juin à 18h49
Commandes GDB pratiques pour le débogage
Introduction à GDB
GDB (GNU Debugger) est un débogueur puissent issu du projet GNU, principalement utilisé pour analyser des programmes écrits en C, C++, Go, ou Rust. Il permet d'examiner l'exécution d'un programme, d'identifier des erreurs logiques, et de diagnostiquer des plantages tels que les violations de segmentation.
Lancer une session G ...
Publié le 29 juin à 01h20
Guide technique FreeRTOS pour la programmation
Horloge système (SysTick)
Le noyau temps réel FreeRTOS utilise le compteur de ticks de l'horloge système pour mesurer le temps. À chaque incrémentation du tick, le noyau vérifie si des tâches bloquées doivent être réveillées. Lors d'une interruption de tick, une tâche réveillée peut avoir une priorité plus élevée que la tâche interrompue.
États ...
Publié le 27 juin à 23h06
Introduction au langage C
Exemple d'un programme C basique
#include <stdio.h>
int main(void) { /* Un programme C simple */
int valeur; /* Déclarer une variable appelée valeur */
valeur = 5; /* Affecter la valeur 5 à la variable */
printf("Je suis un "); /* ...
Publié le 26 juin à 17h06
Techniques d'Appel de Fonctions pour Systèmes Embarqués : Pointeur de Fonction et Rappels
L'appel de fonctions est une mécanique fondamentale en programmation, permettant de modulariser le code et de réutiliser des blocs logiques spécifiques. Dans le domaine des systèmes embarqués, où les contraintes de ressources et les exigences de réactivité sont primordiales, la manière dont les fonctions sont appelées peut avoir des implication ...
Publié le 26 juin à 05h36
PTA Structures de Données et Algorithmes – 7-4 : Même arbre binaire de recherche ?
Étant donné une séquence d'insertion, on peut construire un unique arbre binaire de recherche. Cependant, un même arbre binaire de recherche peut être obtenu à partir de plusieurs séquences d'insertion différentes. Par exemple, les séquences {2, 1, 3} et {2, 3, 1} insérées dans un arbre binaire de recherche initialement vide donnent le même rés ...
Publié le 24 juin à 04h07
Exercices de programmation en C : Affichage, validation et calculs
Exercice 1 : Dessin de personnages
Ce premier exercice consiste à afficher des formes simples représentant des personnages en utilisant des caractères d'impression.
1.1 Personnages empilés verticalement
Le programme suivant affiche deux fois la même structure de personnage, l'une en dessous de l'autre.
#include <stdio.h>
#include <std ...
Publié le 23 juin à 00h09
Récursivité en C : Implémentations pratiques
Calcul de la factorielle avec récursion
Exemple de programme qui calcule la factorielle d'un nombre entier via une fonction récursive.
#include <stdio.h>
int calculer_factorielle(int valeur);
int main() {
int entree;
printf("Entrez un entier positif : ");
scanf("%d", &entree);
if (entree < 0) { ...
Publié le 22 juin à 20h50
Optimisation des coupons magiques avec des tas binaires
Coupons magiques (25 points)
Sur Mars, une boutique magique propose des coupons spéciaux. Chaque coupon possède une valeur entière K : en l'appliquant à un produit, vous recevez K fois la valeur de celui-ci. La boutique offre aussi certains articles gratuits, mais si vous utilisez un coupon positif sur un cadeau (valeur négative), vous devez pa ...
Publié le 22 juin à 18h24
Manipulation de fichiers avec C, C++, API Windows et API Linux
C
En-tête : <stdio.h>
Fonctions principales :
FILE *fopen(const char *chemin, const char *mode);
int fclose(FILE *pointeur_fichier);
int fputc(int caractere, FILE *pointeur_fichier);
int fputs(const char *chaine, FILE *pointeur_fichier);
int fgetc(FILE *pointeur_fichier);
char *fgets(char *tampon, int taille, FILE *pointeur_fichier);
Ex ...
Publié le 22 juin à 18h09