Skip to content

Instantly share code, notes, and snippets.

View titouanc's full-sized avatar

iTitou titouanc

  • Belgium
View GitHub Profile
@titouanc
titouanc / gist:5160997
Last active December 14, 2015 22:48
Email assistant
Madame, monsieur,
suite à la remise de la partie 3 de notre projet d'année en BA1 (INFO-F-106),
une grande majorité de la classe de BA1 est dans le doute.
Nous avons reçu un corrigé qui ne semble pas respecter entièrement les consignes du projet,
et qui affiche des messages d'erreurs lors de l'exécution (sans gérer les exceptions).
D'autre part, l'implémentation de certaines méthodes nous semble inappropriée: par exemple
la méthode isDat (dans le module draughts.py) est incorrecte (elle peut renvoyer True si
la sous-chaîne '.dat' se trouve ailleurs qu'en fin de chaîne), et elle utilise un "algorithme"
@titouanc
titouanc / breathe.asm
Created March 16, 2013 21:34
Résultat du workshop MSP430 @ UrLab
;Arbitrary values (aka constants)
#define MIN #0x0008
#define MAX #0x00ff
#define START #0x00ff
#define True #0x01
#define False #0x00
;Named registers (aka variables)
#define GoUp R13
#define Thres R14
@titouanc
titouanc / tree2dot.py
Created March 28, 2013 10:40
Afficher facilement les arbres binaires des exercices du 5ème chapitre de TP d'INFO-F-103 à l'ULB
def node2dot(tree):
if tree.left:
print('\t', tree.getRootVal(), '->', tree.left.getRootVal())
node2dot(tree.left)
if tree.right:
print('\t', tree.getRootVal(), '->', tree.right.getRootVal())
node2dot(tree.right)
def tree2dot(tree, title='Arbre'):
class Tree:
def trig(self):
# ...
class SplitGame:
def trig(self):
self.tree.trig()
1 - 3 - 7
| |
| 6
|
2 - 5
|
4
int a = 3; /* Variable de type "int", qui vaut 3 */
int *p = &a; /* Variable de type "pointeur sur int", qui vaut l'adresse de a (ex: 0xffffff58) */
int *n = NULL; /* Variable de type "pointeur sur int", initialisée à NULL (pointeur vide) */
/*
En pratique, dans stdlib.h, on a
#define NULL (void*)0
C'est à dire un pointeur générique (void *) vers l'adresse 0 de la mémoire.
Tenter dy accéder fera planter le programme.
*/
@titouanc
titouanc / makefile
Last active December 16, 2015 21:59
CC = g++
CFLAGS = -Wall -Wextra
OBJS = Tree.o SplitGame.o
LDFLAGS =
all: mainProjLang
%.o : %.cpp
${CC} ${CFLAGS} -c -o $@ $<
@titouanc
titouanc / ptr.c
Created May 3, 2013 08:56
Les pointeurs
class Categorie {
public:
int eleves;
Categorie *options;
}
/* Allocation statique: deux objets Categorie sur la stack (voir cours FDO), ba1 et ba2 désignent les objets */
Categorie ba1, ba2;
/* Allocation dynamique: un objet Categorie sur le heap, un pointeur sur la stack. options désigne l'adresse d'un objet */
@titouanc
titouanc / gist:5516806
Last active December 16, 2015 23:50 — forked from anonymous/gist:5514888
/* Solution 1: getSubTree renvoie un pointeur sur pointeur sur arbre,
autrement dit, l'adresse du pointeur sur le sous-arbre gauhe de l'objet.
A éviter, puisqu'on permet d'écrire dans un atttribut privé. */
Tree **Tree::getSubTreeL(){
return &(this->leftChild);
}
/* Solution 2: implémenter un setter, à préferer */
void Tree::setSubTreeL(Tree *child){
this->leftChild = child;
#include <cstring>
const char *longue_chaine = "Je suis une longue chaine de caracteres";
char dest[6] = "";
size_t N = 5;
/* Equivalent de dest = longue_chaine[:5] en Python */
strncpy(dest, longue_chaine, N);
dest[N] = '\0'; /* Si la chaine d'origine est plus longue que N de strncpy,
la chaine de destination n'est pas terminée, faut le faire