Introduction
Le deuxième tutorial en C est enfin là !! Ce tutorial va vous faire découvrir les différentes boucles et conditions qui existent en C. Pour celà, je m'appuierais sur un algorithme de tri simple.
Cadre
Il existe une multitude de technique de tri : tri à bulle, quick sort, tri par sélection, tri par insertion, tri par dichotomie...
voir
http://fr.wikipedia.org/wiki/Algorithme_de_tri
Ici, je vais m'intéresser à un tri simple, i.e. un tri par sélection.
voir
http://fr.wikipedia.org/wiki/Tri_par_s%C3%A9lection
Pour information, je ne reprend pas l'algorithme donné dans wikipedia.
Description de l'alogrithme de tri sélectif
Nous disposons d'un tableau de 6 entiers. Pourquoi 6 ? Hummm pourquoi pas !
Ce tableau contient des valeurs quelconques.
Nous voulons les ordonnées de manière croissante, nous allons donc faire un tri.
Comment ?
Premièrement, il nous faut une valeur référence du minimum, généralement la première valeur du tableau.
On parcour ensuite le tableau à la recherche d'une valeur plus petite. Si une valeur est plus petite, nous la mettons dans la première case du tableau et cette valeur est prise comme nouveau minimum.
L'ancienne valeur du minimum est mise à la place de la valeur du nouveau minimum dans le tableau.
Nous recommencons le parcour du tableau à la recherche d'une valeur plus petite. Si oui..
Etc... jusqu'à la fin du tri
L'alogrithme en C
Note: un tableau va de 0 à MAX -1. Ici de 0 à 5
#include <stdio.h>
int main(void)
{
// Déclaration du tableau
int tab[6];
// Déclaration du minimum
int min;
//variable temporaire
int temp;
//indice de boucle
int i,j;
//initialisation manuelle
tab[0]=5;
tab[1]=14;
tab[2]=8;
tab[3]=2;
tab[4]=6;
tab[5]=4;
//init du minimum
min=tab[0];
// Recherche
for(i=0; i < 6; i++)
{
j=i+1;
while( j != 6)
{
if(tab[j] < min)
{
temp=tab[i];
// Nouveau minimum
min=tab[j];
// mise ds la premiere case
tab[i]=tab[j];
// ex minimum dans la case de la nouvelle
tab[j]=temp;
}
j++;
}
}
// Affichage du résultat
for(i=0; i <6; i++)
{
printf("tab[%i] = %in",i,tab[i]);
}
}
Décryptage
Je ne reviens pas sur la déclaration des librairies vu dans le premier tuto.
Regardons plutot les boucles
for et
while
for
On définit une boucle for en initialisant la varialbe de boucle
i = 0 ici
Ensuite, on définit la borne de la boucle, ie la ou elle doit s'arreter,
i < 6 ici
Enfin, on donne de quel maniére est incrémenté la variéalbe de boucle, i++ ici, ie i = i +1
while
la boucle while contient la condition d'arret seulement, ici la boucle s'arrete lorsque j atteint 6.
On notera qu'il est nécessaire d'indrémenter la variable j dans la boucle. Si vous oubliez cela, la boucle tourne en boucle (aucun jeux de mot

)
if
if permet de définir un test, ici si la valeur du tableau est inférieur à notre minimum.
Il est aussi possible de définir supérieur ( > ), supérieur égale ( >= ), inférieur égale (<=), différent ( != ) et égale ( == ).
Il est important de noter que pour égale il faut mettre ==
et pas =.
= correspond à l'affectation d'une variable.
Conclusion
Pour ceux qui se demandent "comment il fait pour afficher les valeurs du tableau ?". Je leur donne rendez-vous dans le prochain tutorial ou je présenterais les différentes variables proposées en C et comment les affichées.
De plus, pour les opérateurs d'opération je ne donne pas de tutorial donc je les donne ici briévement ( +, * , / et -) pas compliqué ! Il existe aussi la possibilité de récupérer le reste d'une division pour cela il faut employer le modulo ( % ). Je vous invite à tester 4%3. Normalement cela donne 1
Le quatrième tutorial sera consacré aux opérateurs logiques "et ou non"
Le cinquième tutorial rentrera enfin dans le vif du sujet en abordant les fameux pointeurs. Une breve explication sur l'architecture de la mémoire d'un programme sera donnée pour mieux comprendre l'intrêt de ces derniers.
Sinon des questions sur ce tutorial ? Dirigez vous vers le forum, je vous attends !