Programmation C sharp/Les tableaux
Un tableau regroupe plusieurs données d'un même type, dans un ensemble ordonné et indicé par un entier. En C#, comme avec la plupart des langages de programmation modernes, le premier élément porte l'indice 0.
Déclaration d'un tableau.
Les crochets ajoutés à la fin d'un type indique qu'il s'agit d'un tableau.
Exemple :
int[] entiers;
La variable codice_1 est un tableau de nombres entiers.
Le nombre d'éléments du tableau n'est pas spécifié à la déclaration, mais lors de l'allocation du tableau.
Allocation d'un tableau.
Les tableaux font partie des types références.
Il n'est donc pas alloué par défaut (référence codice_2).
L'allocation se fait en utilisant le mot clé codice_3 et en spécifiant le nombre d'éléments entre crochets après le type :
 new "type"["taille"]
Exemple :
int[] entiers = new int[10]; // un tableau de 10 entiers
Il est également possible de l'allouer ailleurs que dans la déclaration :
int[] entiers;
entiers = new int[10]; // un tableau de 10 entiers
Une fois la place du tableau réservée en mémoire, celui-ci ne contient que des valeurs par défaut, c'est à dire que chaque élément d'un tableau de numériques (entiers, réels, ...) vaut codice_4, pour un tableau de codice_5 chaque élément vaut codice_6, et pour un tableau de références (objet, interface, tableau) chaque élément vaut codice_2.
Pré-initialisation.
Il est également possible de définir directement les valeurs que le tableau contient. Ces valeurs doivent être comprises entre des accolades et séparées par une virgule. Le compilateur détermine le nombre d'éléments à allouer d'après la liste d'éléments spécifiée à la suite de l'instruction d'allocation.
Exemples :
int[] entiers = new int[] { 10,15,20,25,30,35,40,45 };
entiers = new int[] { 10,15,20,25,30,35,40,45 };
Seule la déclaration peut omettre l'instruction d'allocation du tableau avant les accolades :
int[] entiers = { 10,15,20,25,30,35,40,45 };
Dans ce cas, le compilateur alloue implicitement un tableau du même type que la variable déclarée, pour le nombre d'éléments placés entre les accolades.
Accès aux éléments.
L'accés (lecture et écriture) aux éléments du tableau se fait en utilisant le nom du tableau suivi des crochets encadrant l'indice de l'élément accédé :
entiers[0] = 7; // Assigner 7 au premier élémént
entiers[1] = 13; // Assigner 13 au deuxième élément
Console.WriteLine("1er entier = " + entiers[0] );
L'indice spécifié est en fait une expression. Il est donc possible d'utiliser une variable comme indice, par exemple, pour parcourir les éléments du tableau :
for(int i=0 ; i<2 ; i++)
 Console.WriteLine("entier n°" + i + " = " + entiers[ i ] );
Taille d'un tableau.
L'attribut codice_8 donne la taille du tableau. Ce qui est pratique pour le parcourir :
 Console.WriteLine("Le tableau contient " + entiers.Length + " entiers :");
 for(int i=0 ; i<entiers.Length ; i++) // i : indice dans le tableau
 Console.WriteLine(" ["+i+"] = " + entiers[i] );
Si l'indice n'est pas nécessaire durant le parcours du tableau, il est plus simple d'utiliser codice_9 :
Console.WriteLine("Le tableau contient " + entiers.Length + " entiers :");
foreach(int n in entiers) // n : élément du tableau
 Console.WriteLine(" " + n );
Tableaux multi-dimensionnels.
Les tableaux vus jusqu'à présent étaient des tableaux uni-dimensionnels : ils n'ont qu'une seule dimension, c'est à dire un seul indice.
Certaines applications nécessitent des tableaux à deux indices ou davantage. Par exemple, une image est représentée par un tableau de couleurs indicé par l'abscisse (x) et l'ordonnée (y).
Un tableau multi-dimensionnel utilise la même syntaxe, en séparant les indices par une virgule.
int[,] image = new int[ 32, 16 ];
// un tableau de 32*16 entiers, soit 512 entiers
image[1,5] = 0;
Un tableau de tableaux (appelé "jagged array" ou tableau déchiqueté) utilise la syntaxe des tableaux uni-dimensionnels en utilisant un tableau comme type de base :
int[][] ensembles = new int[10][]; // un tableau de 10 tableaux d'entiers
ensembles[0] = new int[11]; // dont le premier contient 11 entiers
ensembles[1] = new int[] { 2, 3 }; // le deuxième : 2 entiers (2 et 3)
// ensembles[2] à ensembles[9] valent null car non alloués
ensembles[1][1] = 4; // remplace la valeur 3 par 4
Chacun des sous-tableaux doit être alloué séparément, et rien n'oblige à ce qu'ils aient tous la même dimension (d'où l'appellation de tableau déchiqueté).
Il est également possible de combiner les possibilités :
int[,][] donnees = new int[10,20][];
donnees[1,5] = new int[25];
donnees[1,5][10] = 12;

Firefox/Installation
Cette partie va vous guider dans l'installation de Firefox sur votre machine. La procédure d'installation dépend de votre système d'exploitation
Microsoft Windows.
Télécharger Firefox ici : http://www.mozilla.com/firefox/all.html. Attention à bien choisir la version Windows.
Par ailleurs, il existe aussi une version portable, donc exécutable depuis une clé USB.
Navigateur par défaut (Windows).
"Vous pouvez cocher la case dans cette section. Ceci permettra de vérifier si Firefox est toujours votre navigateur défaut."
Ubuntu.
Dans Ubuntu, Firefox est installé par défaut. Si toutefois ce n'était pas le cas, il vous suffit d'aller dans "ajouter des programmes" et de sélectionner "Navigateur Web Firefox" ou taper codice_1 ou codice_2 dans un terminal.

Programmation C sharp/Types génériques
Un type générique est en fait un type non spécifié à l'implémentation d'une méthode ou d'une classe. Le type sera déterminé lors de l'utilisation de cette méthode ou classe. En fait, pour chaque type différent utilisé, le compilateur génèrera une nouvelle version de la méthode ou de la classe.
Les types génériques sont utilisés pour effectuer un même traitement sur différents types de données.
Syntaxe.
Les types génériques sont identifiés par un nom, et spécifiés entre les signes codice_1 et codice_2 placés juste après le nom de la méthode ou la classe.
Exemple de méthode.
Soit une méthode statique retournant la valeur maximale entre deux valeurs passées en paramètre :
public static T max<T>(T a, T b) // Retourne la valeur maximale
 return a > b ? a : b ;

int entier = max ( 10 , 22 );
double vmax = max ( 3.14 , 1.618 );
Le compilateur détermine le type utilisé pour codice_3 d'après les valeurs des arguments. Dans le cas précédent, il génère deux versions surchargées de la méthode statique :
Exemple de classe.
La syntaxe est similaire. Soit une classe gérant une structure en arbre de valeurs de type quelconque :
public class Arbre<T>
 public T valeur;
 private Arbre<T> _gauche, _droite;
 public Arbre<T> ArbreGauche
L'utilisation de cette classe exige de spécifier explicitement le type utilisé :
Arbre<int> ArbreDesEntiers = new Arbre<int>();
ArbreDesEntiers.valeur = 100;
Exemple de structure.
Les types génériques sont également utilisables avec les structures :
public struct Taille<T>
 public T largeur, hauteur;
Plusieurs types génériques.
Il est possible d'utiliser plusieurs types génériques pour une méthode ou une classe :
public static void affiche<T,U>(T a, U b) // Affiche a et b
 Console.WriteLine("A vaut {0}, et B vaut {1}", a, b);