WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception d'un logiciel d'aide à  la production d'un calendrier sportif d'un championnat de basketball en RDC

( Télécharger le fichier original )
par Alain BASAKI Kalokola
Institut Supérieur Pédagogique de Bukavu - Licencié en Informatique de Gestion 2008
  

sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

EPIGRAPHES

<< Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n'est pas censer être obscur, bizarre et plein de pièges subtils. Ça, ce sont les caractéristiques de la magie. >> - Dave Small

<< C'est illogique, Capitaine >> - Mr Spock

« N'attribuez jamais à la malveillance ce qui s'explique très bien par l'incompétence. »

Napoléon Bonaparte

« A l'origine de toute erreur attribuée à l'ordinateur, vous trouverez au moins deux erreurs humaines. Dont celle consistant à attribuer l'erreur à l'ordinateur. » - Anonyme

<< Il est assez difficile de trouver une erreur dans son code quand on la cherche. C'est encore bien plus dur quand on est convaincu que le code est juste. >> - Steve McConnell << Il n'existe pas, et il n'existera jamais, de langage dans lequel il soit un tant soit peu difficile d'écrire de mauvais programmes >>.

Anonyme

créer. >> - Anonyme

<< Si le débogage est l'art d'enlever les bogues, alors la programmation doit être l'art de les

« L'informatique semble encore chercher la recette miracle qui permettra aux gens d'écrire des programmes corrects sans avoir à réfléchir. Au lieu de cela, nous devons apprendre aux gens comment réfléchir » - Anonyme

« Le danger, avec les ordinateurs, ce n'est pas tellement qu'ils deviennent aussi intelligents que les hommes, mais c'est que nous tombions d'accord avec eux pour les rencontrer à michemin » - Bernard Avishai

IN MEMORIAM

'1 notre regretté cher Papa K'1LOKOL'1 OTEL'1NYELE Benjamin, pour toutes les peines que tu as endurées pour nous et qui ont fait de nous ce que nous sommes maintenant.

'1 notre regretté cher B'1H'1TI Bahizire Justin, pour tout ce que nous avions enduré ensemble depuis l'EDAP/ISP jusqu'à tes derniers instants ! Nous ne cesserons de penser à toi. Tu étais plus qu'un fr~re pour nous ; voici que le destin ne vous a pas permis de goûter les fruits de vos endurances. Que vos âmes reposent en paix.

« L'Eternel a donné et l'Eternel a ôté, que son nom soit béni ».

Job : 1 ; 21.

'1lain B'1S'1KI Kalokola

DEDICACE

A toi, notre ch~re mre Georgette NZIGIRE pour tant d'amour, de compensions que tu as envers tes enfants que nous sommes.

Grâce à tes encouragements, nous avons tout fait pour tenir le coup, que ce travail soit pour toi une joie et un réconfort.

A vous mes chers fr~res et soeurs Dr. BOKOTA Alain, Dr. BIRIMWIRAGI Jacques, LIKWEKWE Isaac, MUDUMIRA Martin, Martha K, NYAMAYANFUNGA Ben, NAZIYOLA Lisette, pour toute cette affection que vous ne cessez de témoigner envers nous. Nous sommes et nous resterons toujours reconnaissant pour tout ce que vous faites pour nous ; seul l'Eternel vous le rendra !

Que Maman LIBUGU Rogata et MBUYI Christian qui ne cessent de manifester leur présence dans notre vie ;

Que notre oncle MUBALAMA Fidèle et sa famille, trouvent en ce travail, le couronnement d'une longue période de fraternité ;

A vous mes oncles et tantes ;

A vous mes cousins et cousines ; A vous mes neveux et nièces ;

| IV

REMERCIEMENTS

Qu'il plaise à notre Dieu de recevoir nos remerciements, pour nous avoir assisté au cours de tout notre parcours à l'ISP/Bukavu.

Ce travail est le fruit de conjugaison des efforts des plusieurs personnes envers lesquelles nous ne cesserons d'exprimer notre gratitude.

Nos remerciements s'adressent avant tout au chef de travaux KASELE Léandre pour son dévouement et sa disponibilité avec lesquels il a, malgré ses multiples occupations, accepté d'assurer la direction du présent travail. Ses remarques tant pertinentes que rigoureuses sont à la base de la réalisation de celui-ci.

Que nos vifs remerciements soient adressés à tout le corps scientifique et académique de l'ISP/Bukavu en général et à ceux du département d'Informatique de Gestion en particulier, pour nous avoir fourni un enseignement de qualité.

Nous exprimons notre gratitude, à Georgette NZIGIRE, notre chère mère, pour les sacrifices consentis pendant toute notre vie.

Nous sérions ingrat si nous passions sous silence la contribution tant morale que matérielle de nos frères MUDUMIRA Martin et BOKOTA Alain.

Que le club SAIBA, nous citons MUSIMWA Al Mushad Bin Rachid, KANANI Yves, LUMBO Lungumbu Papy, BUHERHWA Oline-Diane, MIGABO Laurent, CIREZI Lucia, MUTAMA Olivier, LUFUNGULO Guillain, Pascal BOROTO trouve ici l'expression de notre profond attachement.

A tous nos collègues compagnons de lutte pour leur apport moral et scientifique, qu'ils soient représentés par : KEZA Armand, KAPETE Aimée, LUGIRIRA Nana, SHANYUNGU Louise, MUSIWA Trésor, MARADONA Magadju, MUGISHO Bany, KIBUNGO Laurent, CUBAKA Pacifique, MUKOTANYI Aline, MUKANIRE Tatiana, BISANGWA Elodie, MUTULA Patrick, AMISSI Mulet,

MUKANDAMA Patrick, KUMBA Idé, BUFOLE Demu, KASILEMBO Freddy, BIGANIRO Nelly, AMANY Christian, KIRONGOZI Jimmy, KEZA Armand, KASUKU Freddy, DUNIA Doux, MUTIMAYI Dieth, BAHATI K. Justin LINDA Trésor, MIKILA Eugénie, KARHIMA Toudoux, BINTU Diane, MULUNGULA James, NTUMBA Lily, RUKOMEZA Laurianne, MUKOTANYI Aline, BIREGEYI Jean-Paul, MAMBO Fiston, BIRUKE David, MULONGESHA Lop's, HABAMUNGU Kalwira DELPHIN Apocadero Di Vinci Jr.,

Que les familles MUBEMBE, BAGALWA, ZAGABE, LUKAMA, KALONJI, KANANI, LUFUNGULO, FUNGILOLO, BOROTO, trouvent ici l'expression de notre profond attachement.

Que APAL Unyera Lucie, MUGOLI, NENE, BELINDA, APAL Zizina, BINTU Mubembe, nos cousines, ne se sentent pas oubliées.

Que nos amis NYANGI Aristide, KANKOLONGO Djouss, RUBIGA Alain, MUHINYUZA Jean-Marie, BASHONGA Serge, BWIHAMBI Alice, SALUMU Tareck, ZUA Patricia, WABIWA Nicole, MUPENDA Souvenir pour avoir toujours pensé à nous.

A tous ceux qui ne sont pas cités par oubli ou à la suite de certains impératifs et de qui nous gardons souvenirs nobles d'un passé commun, se sentent toujours liés à nous !

| VI

SIGLES ET ABREVIATIONS

% : Pourcentage

AAU : Amateur Athletic Union

ABA : American Basketball Association

EUBABUK : Entente Urbaine de Basket-ball de Bukavu

FEBACO : Fédération de basket-ball du Congo

FIBA : Fédération internationale de basket-ball amateur

IAA : Intercollegiate Athletic Association

ISP : Institut Supérieur Pédagogique

NBA : National Basketball Association

RDC : République Démocratique du Congo

TFC : Travail de fin de Cycle.

ULEB : Union des ligues européennes de basket-ball

WNBA : Women's National Basketball Association

YMCA : Young Men's Christian Association

INTRODUCTION

1. PROBLEMATIQUE

Il y a de cela un bon moment que l'évolution de la technologie dans le monde donne aux propriétaires d'entreprises le goOt de moderniser leurs services en faisant appel à l'outil informatique afin de mettre fin à la gestion manuelle des activités, une technique déjà révolue !

A l'heure actuelle, toute entreprise, toute organisation se veut à tout prix, se doter d'une information fiable et cela dans le plus bref délai ; l'EUBABUK aussi.

En fin de saison, l'entente urbaine de basket-ball de Bukavu se réunit afin de statuer sur la saison écoulée et de rappeler ainsi le classement final des équipes en vue de procéder à l'archivage des données de la saison écoulée.

La liste ainsi établie est conservée et cela en ordre croissant, c'est-à-dire l'équipe championne prend la tête de la liste suivie de la vice championne, et ensuite suivront d'autres équipes en respectant toujours cet ordre.

Pour que l'EUBABUK produise un calendrier du championnat pour la saison sportive en cours, une réunion doit être tenue au niveau du secrétariat exécutif. Dans cette réunion, le secrétaire exécutif doit être muni d'un document appelé « clé du championnat », un ensemble de croisements des différentes équipes (représentées par des numéros) affiliées à l'EUBABUK en autant de journées que doit comprendre le championnat ; le nombre de journées dépendant du nombre de clubs affiliés puisqu'il existe, selon la clé de championnat, une division à 4, 6, 8, 10, 12, 14 ou à 16 équipes. En prenant par exemple une division à 16 équipes, le championnat devra avoir au total 15 journées au cours d'une phase et chaque journée compte 8 rencontres.

La production manuelle de ce calendrier est un exercice pénible, rigoureux et fatiguant qui vient s'ajouter aux multiples tâches que le secrétaire exécutif de l'EUBABUK est appelé à réaliser pendant qu'il prépare le démarrage du championnat de la saison, laquelle préparation lui demandera d'apprêter les dossiers de chaque

équipe, valider les transferts des athlètes, préparer les licences des joueurs, participer aux assemblées générales des clubs pour ne citer que celles-là.

Il y a risque de semer la confusion dans l'élaboration du calendrier de championnat, alors que c'est bien lui la pièce maîtresse dans l'organisation de l'entente du point de vue technique ; il se propose la production des croisements par application informatique afin d'épargner le secrétaire de l'EUBABUK des imprécisions, de perte de temps, de fatigue du fait qu'il y aurait une automatisation de certaines tâches.

L'automatisation est en train de prendre une allure de plus en plus grande dans l'ensemble des activités sportives au niveau international, une chose non encore faite dans les fédérations sportives nationale et locale. Quel que soit son domaine d'application et les techniques auxquelles elle fait appel, l'automatisation est en train de prendre de l'ampleur et cela dans l'unique but de réduire la pénibilité du travail humain et d'améliorer ainsi la productivité du travail, l'EUBABUK devait aussi y songer.

L'organisation d'un championnat local (urbain) de basket-ball est l'une des tâches que s'est assigné l'entente urbaine de basket-ball de Bukavu (EUBABUK) ; et cela en se basant sur cette clé de championnat ».

Reçue de la Fédération Congolaise de Basket-ball, cette clé, rappelons-le, est un document sous forme des croisements des équipes qui seront affiliées en vue de produire un calendrier qui, à son tour, mentionnera les différentes rencontres (matches) devant opposer ces équipes au cours d'une saison sportive donnée.

Etant donné les risques que présente la gestion manuelle des opérations dans une organisation, parmi lesquels risques, on peut citer, la lenteur d'exécution des tâches telles que la production du calendrier des matches via cette clé de championnat, et cela en tenant compte des toutes les formes de divisions que reconnaît la fédération de Basket-ball du Congo, on serait tenté de penser que l'absence de l'outil informatique à l'EUBABUK constitue une source réelle des problèmes de gestion.

Ne serait-il pas possible de concevoir une application informatique capable d'aider à produire cette clé ?

Une fois réalisée, une application de ce genre, ne contribuerait-elle pas dans la modernisation de la gestion de cette entente ?

Telles sont les questions auxquelles une analyse beaucoup plus pragmatique mérite d'être entreprise.

2. HYPOTHESES

Nous pensons qu'il est possible de concevoir une application informatique pouvant servir dans la production du calendrier sportif au sein de l'EUBABUK; Une fois réalisée, une telle application contribuera non seulement à apporter un aspect de modernisme dans la gestion de cette entente, mais aussi et surtout en la dotant d'un logiciel capable de faire face aux maux dont elle souffre.

3. JUSTIFICATION DU SUJET

C'est dans le souci d'apporter une contribution dans le monde de la science et surtout à ceux qui ont toujours eu grand besoin de faire appel à l'outil informatique dans la gestion efficace de leurs activités, que nous avons jugé bon d'orienter notre étude en ce sens.

Le choix de ce sujet n'est pas un fait du hasard. L'intérêt accordé à ce travail est guidé par deux types de motivation, il s'agit de :

 

L'intérêt personnel : dû aux différentes observations de différents calendriers des trois dernières saisons sportives de l'entente urbaine de basket-ball de Bukavu ; une entité sportive chargée d'organiser le championnat de basket-ball dans la ville. Vu la complexité du travail réservé au secrétaire de ladite entente, nous avions pensé qu'il était possible de concevoir une application susceptible de rendre aisée la production du calendrier sportif de la compétition.

 

L'intérêt scientifique : le souci non seulement de mettre en pratique la théorie apprise tout au long de notre cursus académique, mais aussi et surtout de doter notre entente de basket-ball d'une application informatique capable de lui produire une clé du championnat.

4. DELIMITATION DU SUJET + Dans le temps

Notre étude s'étend sur les trois dernières saisons sportives correspondant aux trois dernières années, c'est-à-dire la période 2006-2009.

+ Dans l'espace

Il convient de rappeler que nos recherches s'effectuent en RD Congo, dans la province du Sud Kivu, ville de Bukavu, au Bureau urbain des sports, « siège » de l'EUBABUK.

Il sied tout de méme de signaler que tout ou partie de l'étendue de la RD Congo où est organisée, par une entente, un championnat de basket-ball, peut intégrer notre espace de travail.

5. METHODOLOGIE

La mise sur pied du présent travail est basée sur les méthodes ci-dessous ; méthodes qui seront appuyées par quelques techniques.

a. Méthode analytico-descriptive

Cette méthode nous sera utile en ce sens qu'elle nous permettra non seulement d'analyser, mais aussi de décrire les faits dans le but de dégager les éléments qui faciliteront la compréhension ainsi que le détail des faits pour en déduire la conclusion. Elle nous permettra également à analyser certains phénomènes, certains documents, pour mieux les comprendre et mieux expliquer leurs fonctionnements et pour présenter la structure de la clé de championnat d'une entente de basket-ball, bien plus, parvenir à une production automatique de ladite clé.

b. Méthode structuro-fonctionnelle

Grâce à cette méthode, nous allons essayer de comprendre la structure de la clé de championnat de l'entente de basket-ball en RD Congo.

c. Navigation sur Internet

Cette méthode nous sera utile en ce sens qu'elle permettra d'accéder à certaines bibliothèques numériques ; lesquelles bibliothèques nous permettront de consulter certaines informations utiles à notre travail, ou en acquérir par la voie de téléchargement.

Nous ferons recours aux techniques suivantes afin d'exploiter les méthodes précitées :

d. Interview

Grace à l'entretien avec différents acteurs au sein du bureau de l'entente urbaine de basket-ball de Bukavu, nous pensons obtenir les données utiles à notre travail.

e. Documentaire

Cette technique nous sera utile dans la mesure où elle nous permettra de nous ressourcer à travers des livres, revues, articles et autres documents afin d'étoffer davantage notre travail.

6. SOMMAIRE

Outre l'introduction et la conclusion, notre travail portera sur trois chapitres dont voici les idées maitresses:

o Le premier chapitre, intitulé « Généralités sur le basket-ball » traite du basket-ball depuis ses origines jusqu' à ces jours ; il présente le basket-ball tant au niveau international que local ;

o Le second chapitre quant à lui est intitulé « Etude de la clé et l'algorithmique » ; nous parlons brièvement de l'algorithmique, de la clé du championnat de basket-ball en RDC ; nous présenterons également quelques algorithmes élaborés sur base de l'étude de la clé du championnat ;

o Le dernier chapitre, intitulé « Réalisation de l'application », porte sur la mise sur pied d'un logiciel d'aide à la production automatique de la clé du championnat.

7. ETAT DE LA QUESTION

Très souvent lorsqu'un chercheur entame un travail scientifique, la probabilité pour que le sujet abordé n'ait été traité par ses paires, est minime. Raison pour laquelle il est recommandé aux chercheurs de pouvoir lire et fouiller davantage dans les travaux déjà effectués dans le domaine, afin d'éviter toute répétition inutile dans la science.

En effet, nous avions parcouru le répertoire des travaux déjà réalisés dans notre institution et jusque là, nous n'avions trouvé aucun travail se rapportant à notre sujet.

CHAPITRE PREMIER: THEORIES SUR LE BASKET-BALL 1.1. LE BASKET-BALL INTERNATIONAL

1.1.1. HISTOIRE (1)

1.1.1.1. Création

Le basket-ball a été inventé en 1891 par James Naismith, un professeur d'éducation physique canadien du collège de Springfield dans l'État du Massachusetts (États-Unis). Il cherchait à occuper ses étudiants entre les saisons de football et de baseball, pendant l'hiver, au cours duquel la pratique du sport en extérieur était difficile. Naismith souhaitait également leur trouver une activité où les contacts physiques soient restreints, afin d'éviter les risques de blessure.

Un jour, il reprit l'idée d'un ancien jeu de balle maya et plaça deux caisses de pêche sur les rampes du gymnase. Le but de ses étudiants était de faire pénétrer un ballon dans ces caisses en bois pour marquer un but. Les caisses étant en hauteur, ce jeu nécessitait autant d'adresse que de force brute. Naismith établit rapidement 13 règles pour rendre ce jeu praticable.

Ce sport fut baptisé basket-ball, ce qui signifie littéralement en anglais : « ballon panier ». Le tout premier match de l'histoire eut lieu le 21 décembre 1891 et se termina sur le score de 1 à 0.

La même année, le jeu fut adapté pour être joué par des femmes.

Au début de son histoire, le basket-ball était surtout porté sur le jeu offensif et la défense était reléguée au second plan. La défense était l'aspect passif du basket-ball où les joueurs attendaient l'échec de l'adversaire.

1.1.1.2. Développement

Promu par la Young Men's Christian Association, le basket-ball devint peu à peu une activité courante dans de nombreux collèges américains. Les YMCA jouèrent un grand rôle dans la diffusion de ce sport dans le monde entier. Il fut adopté dans de

nombreux collèges et clubs sportifs. Peu avant le début de la première guerre mondiale, l'Intercollegiate Athletic Association (ancêtre de la NCAA) et l'Amateur Athletic Union se disputaient le contrôle des règles du jeu.

En 1946 est créée la National Basketball Association (NBA) afin d'organiser les rencontres entre les meilleures équipes professionnelles. En 1967, l'American Basketball Association (ABA) est lancée pour tenter de rivaliser avec la NBA, mais cette dernière finit par « l'absorber » en 1976, et devient incontestablement la ligue la plus relevée des États-Unis, et même du monde.

1.1.1.3. Extension

Peu après sa création, le basket-ball s'étend progressivement en-dehors des États-Unis et du Canada, et il atteint l'Europe. En 1932, la Fédération internationale de basket-ball amateur (FIBA) est fondée par l'Argentine, la Tchécoslovaquie, la Grèce, l'Italie, la Lettonie, le Portugal, la Roumanie et la Suisse. À l'origine, cette fédération ne supervise que les équipes d'amateurs. En 1936, le basket-ball devient une épreuve officielle des Jeux olympiques d'été. En 1950 a lieu pour la première fois le championnat du monde de basket-ball, et trois ans plus tard, la même épreuve est instaurée chez les femmes, pour lesquelles l'épreuve olympique n'arrive qu'en 1976.

En 1989, la FIBA cesse d'exclure les joueurs professionnels de ses compétitions. Peu après, la première Dream Team (littéralement : « Équipe de Rêve ») américaine, composée notamment de Michael Jordan et Magic Johnson, entre en compétition et renforce, du moins partiellement, la domination mondiale des États-Unis dans ce sport. Depuis quelques années, toutefois, une sorte de « globalisation » du basket-ball semble se mettre en place, ce qui entraîne une remise en cause de la prépondérance des États-Unis, qui sont de plus en plus souvent battus lors des compétitions internationales.

Avant 1967, le basket-ball intéresse de moins en moins de monde. Pour rendre les matchs plus attractifs, Busnel autorise en 1967 deux étrangers par équipe. 1967 est également le début de la professionnalisation du basket, qui ne s'achèvera véritablement qu'en 1990.

Si le basket-ball s'est autant diffusé en France, c'est notamment grâce à Pierre Dao, entraîneur de l'équipe française masculine en 1975. Pierre Dao ramena, d'un stage aux États-Unis, des connaissances en basket-ball que les Français n'avaient pas.

1.1.2. REGLES (2) 1.1.2.1. Matériel

Un terrain de basket-ball FIBA.

Un panier de basket-ball.

Le basket-ball se joue généralement dans un endroit couvert, par exemple un gymnase, mais il peut aussi être pratiqué sur des aires de jeu en tant que loisir, sous sa variante la plus populaire : le streetball (« basket-ball de rue »).

Le terrain est doublement symétrique (en longueur et en largeur). Ses dimensions varient, selon les pays ou les normes internationales, de 22 à 29 mètres de long sur 13 à 15 mètres de large. Aux deux extrémités du terrain se trouve un panier, formé par un anneau (ou arceau) métallique situé à 3,05 m du sol, en-dessous duquel est attaché un filet ouvert en son centre. L'arceau est fixé à un panneau rectangulaire vertical (la planche) sur lequel la balle peut rebondir lors d'un tir.

Sous chaque panier se trouve une zone trapézoidale appelée la raquette. Un arc de cercle situé à 6,25 m de chaque panier (7,23 m en NBA) représente la ligne de tirs à trois points. Cette ligne a été introduite en 1984. Le ballon standard a une masse de 650 g et un diamètre de 24 cm.

Initialement, le basket-ball se pratiquait avec un ballon de football. Les premiers ballons utilisés spécifiquement pour le basket-ball étaient marron, et à la fin des années 1950, Tony Hinkle, souhaitant concevoir un ballon qui soit plus visible chez les joueurs et chez les spectateurs, introduisit le traditionnel ballon de couleur orange.

1.1.2.2. Le jeu

Le basket-ball se pratique par deux équipes de cinq joueurs sur le terrain, avec un maximum de 5 à 7 remplaçants suivant les pays et les championnats. Le but de chaque équipe est de marquer plus de points que son adversaire en marquant des paniers et en empêchant l'équipe adverse d'en faire de même.

Un match se déroule en quatre périodes de dix minutes selon les règles FIBA, et quatre périodes de douze minutes selon les règles NBA. Le chronomètre est arrêté à chaque coup de sifflet de l'arbitre (en cas de faute, sortie...). Chaque équipe peut remplacer un ou plusieurs joueurs pendant les arrêts de jeu et les temps-morts.

Au début du match, l'engagement est effectué par l'arbitre sous la forme d'un entre-deux. Pour cela, un joueur de chaque équipe (généralement celui qui saute le plus haut) se place face à son adversaire, derrière la ligne du milieu de terrain, en direction du panier où il doit attaquer ; l'arbitre lance alors la balle au-dessus des deux joueurs et ceux-ci doivent frapper le ballon avec la main pour qu'un de leur équipier l'attrape. C'est à ce moment-là que le jeu commence.

Les joueurs doivent manipuler le ballon avec les mains. Le toucher avec une partie quelconque de la jambe de manière délibérée est interdit et constitue une violation.

Le ballon est hors-jeu dès qu'il rebondit à la limite ou en dehors du terrain, ou lorsqu'il est touché par un joueur qui mord ou dépasse les limites du terrain. Contrairement au football, ce n'est pas la position absolue du joueur ou du ballon qui compte, mais le rebond ou l'appui (un joueur peut ainsi plonger en dehors du terrain et sauver la balle, du moment qu'il lâche la balle avant de faire un pas au-delà de la limite du terrain.

Le temps de jeu étant effectif, il n'y a pas de temps additionnel comme au football ; une sonnerie retentit au moment où la dernière seconde de chaque période s'est écoulée, mais un tir réussi après la sonnerie peut être accordé si le joueur a lâché le ballon avant que la sonnerie ne retentisse.

À l'issue de la rencontre, l'équipe qui a le plus de points remporte le match. En cas d'égalité, on joue alors 5 minutes de prolongation pour départager les deux équipes, et ce quelle que soit la compétition en cours. Si au terme de la prolongation il y a à nouveau égalité, on rejoue une autre prolongation. Il n'y a ainsi jamais de match nul au basket-ball.

1.1.2.3. L'attaque

Un joueur tente de pénétrer dans la raquette (peinte en bleu) avec le ballon. Lorsqu'un joueur est en possession du ballon, il doit dribbler, c'est-à-dire faire constamment rebondir le ballon sur le sol avec les mains, pour pouvoir se déplacer avec. Si le joueur qui possède le ballon prend plus de deux appuis sans dribbler, ou s'il fait un saut complet en conservant le ballon à la retombée, il est alors sanctionné par un marcher (en anglais : traveling), et le ballon est rendu à l'équipe adverse par une remise en jeu.

Lorsqu'un joueur reprend son dribble après l'avoir arrêté, récupère le ballon après l'avoir lâché sans que celui-ci n'ait rien touché, il est sanctionné par une reprise de dribble (double dribble en anglais) et le ballon est rendu à l'équipe adverse. De même, un joueur qui a le ballon n'a pas le droit de soupeser le ballon au cours de son dribble, ce qui constitue un porter de ballon (carry) et le ballon est alors rendu à l'adversaire. La main doit en effet toujours être au-dessus du ballon.

Tout joueur peut passer le ballon a un coéquipier en le lui lançant. Lorsque le destinataire marque un panier sans dribbler, on parle de passe décisive.

Afin de marquer des points, tout joueur peut lancer le ballon dans le panier adverse. Si le ballon passe complètement à travers l'arceau, le panier est validé et rapporte un, deux, ou trois points. L'équipe adverse doit alors remettre le ballon en jeu derrière la ligne de fond.

L'équipe en attaque dispose de 8 secondes pour franchir sa moitié de terrain appelée zone arrière (auparavant fixée à 10 secondes, la limite a été baissée pour favoriser le jeu offensif). Elle a en tout 24 secondes pour tenter un tir. L'horloge des 24 secondes est réinitialisée dès qu'un tir touche l'anneau ou dès qu'un joueur adverse

contrôle le ballon sur le terrain ou commet une faute. En cas de contre ou si un tir est tenté et que la balle ne touche pas l'anneau, l'horloge continue.

Un joueur en attaque ne peut rester plus de 3 secondes d'affilée dans la zone restrictive. Les 3 secondes ne sont plus comptabilisées à partir du moment où le joueur cherche à sortir de cette zone.

Lors d'une remise en jeu, l'équipe attaquante dispose de 5 secondes pour effectuer celle-ci. Un joueur qui possède le ballon et qui arrête de dribbler a 5 secondes pour s'en débarrasser (par une passe, un tir, ou en la faisant habilement toucher par un adversaire - si le joueur adverse le soumet à une pression défensive (action de défense rapprochée)).

1.1.2.4. La défense

Les défenses ne sont pas nées toutes en même temps. Voici un ordre chronologique de l'apparition des différentes défenses essentiel au basket-ball :

La défense spontanée, intuitive, sauvage

« Les joueurs couraient dans tous les sens et sur tout le terrain, ils essayaient de prendre le ballon à l'adversaire. » Cette défense est aujourd'hui celle faite par les jeunes joueurs. + La défense individuelle stricte

Première défense organisée qui entraîne le développement de la responsabilité défensive. On découvre la ligne attaquant-panier. Cette défense permet de mettre en difficulté une équipe de même niveau. Cette défense a ses limites quand l'attaquant est très fort.

+ La défense de zone

Cette défense pose également pas mal de problèmes aux attaquants car il est difficile de pénétrer dans la raquette et les attaquants sont dans l'obligation de shooter à midistance. La zone de référence dans les années 1960 est la 2-1-2. C'est avec l'apparition des zones que la notion de jeu rapide (avant la mise en place de la défense) apparaît.

+ La défense individuelle avec prise de risque limité

C'est à ce moment là que la notion d'aide apparaît (flottement en profondeur). Les défenseurs réagissent et se placent en fonction des déplacements du porteur du ballon.

À partir de 1960, le basket-ball prend un grand tournant. Une règle essentielle change : la règle du marcher. Avant, le basketteur pouvait faire deux pas avant son dribble et deux après son dribble. Ce changement permet au défenseur de devenir plus agressif. La défense n'est plus un moment passif du basket-ball, il devient une reconquête de la balle.

Aujourd'hui, il existe principalement deux manières de défendre pour une équipe : la défense de zone et la défense individuelle. Dans la première, chacun des cinq joueurs doit couvrir une partie spécifique de la moitié du terrain, et prendre en charge un joueur adverse lorsque celui-ci pénètre dans sa zone. Jusqu'en 2001, ce type de défense était interdit en NBA. Dans une défense individuelle, chaque joueur prend en charge un adversaire et s'occupe de rester près de celui-ci tout au long de la partie. Il existe de nombreuses variantes mêlant ces deux tactiques défensives. Nous pouvons notamment parler de la zone press apparu en 1964. Bien faite, cette défense est très utile pour récupérer rapidement un maximum de ballons.

Lors d'un tir, les défenseurs ont le droit de contrer la balle tant que celle-ci est en phase ascendante vers le panier. Un contre effectué en phase descendante (en anglais : goal tending) est illicite et dans ce cas le panier est accordé.

Au basket-ball, les contacts sont généralement proscrits. En cas de choc, c'est généralement le défenseur qui est sanctionné par une faute personnelle, sauf lorsqu'il est immobile et que c'est l'attaquant qui le percute, auquel cas l'attaquant est sanctionné par un passage en force et la balle est rendue à l'autre équipe.

En cas de faute du défenseur sur dribble (contact avec le bras, obstruction), la balle est remise à l'équipe attaquante au niveau où la faute a été commise, en dehors des limites du terrain.

Quand une faute personnelle est commise sur un joueur qui tire ou s'apprête à tirer, ce joueur doit alors tirer deux lancers francs, trois s'il s'agit d'un tir à trois points, mais un seul lorsque le panier est réussi et accordé.

Lorsqu'un joueur a commis cinq fautes personnelles (six en NBA) au cours du match, il est alors remplacé et n'a plus le droit de rejouer jusqu'à la fin du match.

À chaque quart-temps, une fois qu'une équipe totalise quatre fautes, l'équipe adverse tire alors automatiquement des lancers francs à chaque nouvelle faute adverse.

Si une équipe se trouve en zone avant(moitié de terrain adverse) avec le ballon, et que ce dernier vient à revenir en zone arrière(par une passe ou un appui dans sa propre moitié de terrain), l'arbitre siffle un retour en zone. Le ballon est rendu à l'adversaire à l'endroit le plus proche de la violation, en dehors des limites du terrain.

1.1.2.5. Autres règles

Lorsqu'un tir manque la cible, les joueurs des deux équipes peuvent essayer de récupérer la possession du ballon avant ou après qu'il ne retombe au sol, c'est ce qui s'appelle un rebond.

Un défenseur peut essayer de récupérer le ballon lorsqu'un adversaire dribble, tente de le passer à un coéquipier ou tient la balle dans les mains. Lorsqu'il y parvient sans commettre de faute, il réalise une interception.

1.1.3. JOUEURS

Les cinq joueurs de chaque équipe qui débutent un match font partie du cinq majeur.

1.1.3.1. Postes

Que ce soit en attaque ou en défense, chaque joueur joue à un poste précis. Il existe de nombreuses variations et possibilités, mais le schéma de base fonctionne avec cinq postes dits « classiques » :

+ Le pivot (ex : Shaquille O'Neal) est généralement le joueur le plus grand et le plus fort. En défense, il se positionne près de son panier et protège le secteur intérieur, avec des bonnes capacités au rebond et au contre.

+ L'ailier fort (ex : Kevin Garnett) joue un rôle similaire au pivot et forme avec lui le secteur intérieur. Il est généralement plus petit que le pivot et peut évoluer plus loin du panier.

+ Le petit ailier (ex : Scottie Pippen) est un joueur extérieur, agile et rapide. Occasionnellement, il peut venir aider les intérieurs au rebond.

+ L'arrière (ex : Michael Jordan) est un joueur dont le jeu est principalement orienté à l'extérieur. Il varie son jeu en pénétrant dans la raquette et en tirant à trois points.

+ Le meneur (ex : Frédéric Fauthoux) est chargé de distribuer la balle et d'organiser le jeu en attaque. Il monte la balle depuis son propre camp et annonce les tactiques à mettre en place. En plus de bonnes capacités au dribble, il doit avoir une excellente vision du jeu pour pouvoir distribuer le ballon à ses coéquipiers.

En Europe, les postes qu'occupent les joueurs peuvent varier : il y a souvent deux pivots placés aux abords de la raquette (chargés principalement de prendre les rebonds), deux ailiers placés à l'extérieur, au niveau de la ligne des trois points (joueurs polyvalents capables d'occuper tous les postes) et un meneur chargé de distribuer le jeu.

Habituellement, les postes sont désignés par des numéros :

Meneur (en anglais : point guard) : 1

Arrière (shooting guard) : 2

Petit ailier (small forward) : 3

Ailier fort (power forward) : 4

Pivot (center) : 5

1.1.3.2. Maillots

Chaque joueur porte un maillot numéroté. La règle FIBA impose les numéros de 4 à 15 lors des compétitions internationales (soit 12 numéros, autant qu'il y a de joueurs dans une équipe) ; toutefois, en NBA, les joueurs peuvent choisir n'importe quel numéro de 0 à 99 compris (le 00 existe aussi). Ainsi, en général et dans la mesure du possible, les joueurs de NBA conservent le même numéro durant toute leur carrière, même en changeant d'équipe sauf quand un joueur le possède déjà ou quand celui-ci est retiré. Lorsque certains joueurs marquent l'histoire de leur franchise, il arrive que celle-ci décide de retirer leur numéro de la circulation pour leur rendre hommage.

Ainsi, le célèbre numéro 23 porté par Michael Jordan aux Chicago Bulls a été rendu indisponible après son départ. C'est un maillot retiré3.

1.1.4. COMPETITIONS INTERNATIONALES 1.1.4.1. Compétitions mondiales

Les championnats du monde sont organisés tous les quatre ans par la FIBA (fédération internationale).

En tant que sport olympique, le basket-ball est représenté aux Jeux olympiques d'été avec une épreuve masculine et une épreuve féminine. Historiquement, cette épreuve est largement dominée par l'équipe des États-Unis, que ce soit chez les hommes ou chez les femmes.

1.1.4.2. Compétitions continentales

Les compétitions continentales sont organisées par les différentes branches de la FIBA : FIBA Afrique, FIBA Amériques, FIBA Asie, FIBA Europe et FIBA Océanie.

+ Afrique :

· Championnat d'Afrique de basket-ball masculin

· Championnat d'Afrique de basket-ball féminin

+ Amérique :

· Championnat d'Amérique de basket-ball

+ Asie :

· Championnat d'Asie de basket-ball

+ Europe :

· Championnat d'Europe de basket-ball masculin

· Championnat d'Europe de basket-ball féminin

1.1.5. CLUBS ET FRANCHISES

À l'image d'autres sports d'origine nord-américaine, le basket-ball est un peu confus dans la distinction entre championnats et ligues professionnelles (système de franchises).

1.1.5.1. Amérique du Nord

Le championnat le plus connu dans le monde est la National Basketball Association (NBA), qui a lieu aux États-Unis (mais inclut aussi une équipe canadienne actuellement). Cette compétition édite, comme beaucoup de ligues américaines de basket-ball ses propres règles, qui diffèrent sur de nombreux points de celles dictées par la FIBA. Ces différences ont souvent pour but de favoriser un jeu porté sur le spectacle et le divertissement. Initialement réservée aux Nord-Américains, cette ligue qui constitue le basket-ball de plus haut niveau s'est peu à peu ouverte aux meilleurs joueurs étrangers, dont Drazen Petrovic fut l'un des pionniers.

Une compétition féminine a été créée sur le même modèle que la NBA, et s'appelle la Women's National Basketball Association (WNBA).

1.1.5.2. Europe

En Europe, le système est, en général, basé sur le même principe du championnat que dans la plupart des autres sports. Toutefois, à l'inverse du football, la ligue gérant l'élite professionnelle (l'ensemble du championnat étant propriété de la fédération) a davantage de poids et impose plus facilement ses choix à la fédération nationale. Ceci a été renforcé par la création de l'Union des ligues européennes de basket-ball (ULEB).

Plusieurs coupes européennes sont organisées, soit par la FIBA Europe, soit par l'ULEB, la plus prestigieuse étant l'Euroligue.

Seul le Royaume-Uni a opté pour un système de franchises avec la British Basketball League, bien que des difficultés financières et l'influence européenne l'incitent à songer à un système de promotions-relégations.

Les championnats européens de plus haut niveau ont lieu en Espagne (Liga ACB), en Italie (LegA) et en Russie (Superligue).

1.1.5.3. Asie

En Asie, les championnats sont plutôt récents et s'inspirent du système nordaméricain. Ainsi en Chine, équipes et championnats portent des noms en anglais, dans la Chinese Basketball Association. Au Japon, la B-J League tente de s'implanter un peu

de la même façon. Ces deux nations espèrent que la présence de certains de leurs joueurs en NBA (Yao Ming, Yuta Tabuse...) crée des vocations chez leurs jeunes. Au Moyen-Orient (Liban, Arabie saoudite...), le principe de championnat est sensiblement le même qu'en Europe.

1.1.5.4. Afrique

En Afrique, on retrouve le même principe qu'en Europe, mis à part le fait que les fédérations nationales ont encore le monopole sur leur propre championnat. La compétition phare est la Coupe des clubs champions.

1.1.5.5. Océanie

En Océanie, l'Australie et la Nouvelle-Zélande ont adopté le principe anglosaxon avec leur National Basketball League respective. Il semble néanmoins que la NBL australienne ait une longueur d'avance sur son homologue néo-zélandaise et possède une envie d'expansion en accueillant en son sein les New Zealand Breakers (Nouvelle-Zélnde) et les Singapore Slingers (Singapour).

1.2. LE BASKET-BALL NATIONAL 1.2.1. SUR LE PLAN NATIONAL (3)

Au niveau national le basket-ball est régi par la FEBACO, une association sans but lucratif destinée à concourir au développement du basketball sur toute l'étendue de la RDC.

Les organes de la FEDERATION sont : L'Assemblée générale, Le Conseil et le Comité directeur.

Les compétitions de la FEBACO organisées ou supervisées par elle, sur le plan national sont nombreuses :

o Les compétitions organisées par la FEBACO :

o Le championnat national : sélections provinciales

o La coupe du Congo : équipes championnes des ligues et ententes o Le challenge des écoles primaires et secondaires

o Le festival de mini basket

Les compétitions supervisées par la FEBACO

o les championnats provinciaux

o les championnats locaux

o les championnats scolaires, universitaires et militaires

Voici les compétitions à laquelle participe la FEBACO

o jeux congolais

o autres rencontres de Basket-ball initiées par le gouvernement ou le comité national olympique sportif congolais ou toute autre organisation à caractère éducatif

1.2.2. SUR LE PLAN PROVINCIAL

En province, la fédération est représentée par la ligue et les ententes urbaines. Leurs organes sont : L'Assemblée générale, le Conseil provincial et le bureau exécutif provincial.

Entente et ses organes : L'entente se compose d' ou moins deux cercles. Son ressort administratif est le district ou la ville. Chaque district ou ville ne peut comporter qu'une seule entente. (4)

Ses organes sont : L'Assemblée générale, le Conseil urbain et le Bureau Exécutif Composition du bureau exécutif:

o Président

o Vice-présidents

o 1 Secrétaire

o 1 Secrétaire adjoint

o 1 Trésorier

o 5 Membres au max

4 FEBACO, Règlements généraux sportifs, article 43

Club et ses organes (5): le club regroupe des personnes intéressées à l'encadrement de la jeunesse par la pratique du Basketball sans considération de race, de tribu, de religion ni d'idéal.

Il dispose des statuts et règlement conformes à ceux de la fédération régissant son fonctionnement.

Ses organes sont : l'Assemblée générale et le Comité Sportif.

Le comité sportif est composé de :

o 1 Président

o 1 Vice-président

o 1 Secrétaire

o 1 Secrétaire Adjoint

o 1 Trésorier

o 5 Membres

1.2.3. DU REGLEMENT DES COMPETITIONS

Selon les règlements généraux sportifs de la FEBACO, en son article 300, toute compétition de la FEBACO est régie par un règlement ad hoc comprenant obligatoirement les mentions suivantes : la période, les textes applicables, la formule, le calendrier, la qualification des équipes et des athlètes, les voies de recours, le classement et le prix.

Quant à la formule et du calendrier, les articles 306 et 307 du même document stipule que tout championnat organisé par les entités sportives de basket-ball (ligue, entente ou cercle) se déroule en autant de tours (1ère, 2ème, 3ème, 4ème) et en autant des phases (ALLER SIMPLE, ALLER et RETOUR, ALLER - RETOUR et FINAL) d'une part ; et la formule du championnat est fonction d'abord de la division (Elite, Honneur et jeunes) ensuite de la catégorie (Senior, junior, cadet, minime, benjamin) et enfin du nombre d'équipes participantes.

5 FEBACO, Op.cit, article 79

Les articles 312 et 313 des règlements généraux sportifs stipulent que le calendrier des rencontres est établi par division et doit être public et remis avec accusé de réception à chaque équipe engagée dans la compétition au plus tard 8 jours avant la date prévue pour le démarrage du championnat.

Le calendrier doit obligatoirement porter les mentions telles que la journée sportive, le jour et la date aller et retour, le terrain, les équipes opposées, l'heure, les lettres « F » ou « M » pour spécifier s'il s'agit de la version féminine ou masculine et la division.

Le calendrier est élaboré en fonction de la clé du championnat, conformément au classement général des équipes à la fin du championnat précédent.

A la fin de la phase aller, le calendrier sera renversé ; c'est-à-dire que les derniers qui étaient les derniers à être joué sont ceux-là qui vont commencer la phase retour ; et les matches iront en reculant, ainsi de suite jusqu'à ce que le dernier match de la phase retour soit le premier match du championnat (de la phase aller).

CHAPITRE DEUXIEME : ETUDE DE LA CLEF ET L'ALGORITHMIQUE 2.1. ETUDE DE LA CLEF

La FEBACO, ne reconnait que 7 types de division dans l'organisation de différents championnats de basket-ball. Il s'agit donc des divisions de 4, 6, 8, 10, 12, 14 et 16 équipes6.

Pour la division de 4 équipes, on peut noter un fait important ce que :

- pour la première journée, on peut déjà noter que l'équipe occupant le premier

rang joue contre le dernier et la deuxième joue contre l'avant dernier ;

- la deuxième journée quant à elle, montre que l'avant dernière équipe affronte

la deuxième équipe de la liste et la dernière contre la première ;

- la dernière journée c'est-à-dire la troisième nous propose les oppositions suivantes : la deuxième équipe contre la première et la troisième contre la dernière.

Pour la division de 6 équipes les faits suivants sont à remarquer :

- la première journée présente les croisements suivants : la première équipe et

l'avant dernière, la deuxième et la quatrième et la troisième contre la dernière ; - à la deuxième journée, on retiendra que l'avant dernière affronte la deuxième,

la quatrième croise la troisième et la dernière joue la première ;

- à la troisième journée prévoit que la deuxième équipe croise la première, la troisième croise la cinquième et la quatrième joue la dernière

- la quatrième journée nous propose ce qui suit : la première équipe affronte la

troisième, l'avant dernière croise la quatrième et la dernière joue la deuxième ; - à la dernière journée, on a les oppositions ci-après : la troisième joue contre la

deuxième, la quatrième contre la première et les deux dernières entre elles.

Pour la division de 8 équipes, on peut noter ce qui suit :

- première journée : la première équipe affronte l'avant dernière, la deuxième croise la sixième, la troisième contre la cinquième et la quatrième contre la dernière ;

6 Martin MUDUMIRA, Interview réalisée à Bukavu, le samedi 11 Juillet 2009 à 14h30

- deuxième journée : l'avant dernière équipe croise la deuxième, la sixième joue la troisième, la cinquième, la cinquième affronte la quatrième et la dernière croise la première

- troisième : la deuxième équipe est opposée à la première, la troisième contre la septième, la quatrième contre la sixième et la cinquième contre la dernière équipe ;

- quatrième journée : la première équipe croise la troisième, la septième affronte

la septième, la sixième contre cinquième et la dernière joue contre la huitième ; - cinquième journée : la troisième équipe affronte la deuxième équipe de la liste,

la quatrième contre la première, la cinquième joue l'avant dernière et la sixième

affronte la dernière ;

- sixième journée : la deuxième équipe croise la quatrième, la première croise la cinquième, l'avant dernière affronte la sixième et la dernière est opposée à la troisième ;

- septième journée : la quatrième joue contre la troisième, la cinquième contre la deuxième, la sixième affronte la première et la septième croise la huitième ; Pour la division à 10 équipes, les oppositions suivantes sont prévues :

- Première journée : la première contre la neuvième, la deuxième contre la huitième, la troisième contre la septième, la quatrième contre la sixième et la cinquième contre la dixième ;

- Deuxième journée : la neuvième affronte la deuxième, la huitième affronte la troisième, la septième contre la quatrième, la sixième croise la cinquième et la dixième joue la première ;

- Troisième journée : la deuxième croise la première, la troisième affronte la neuvième, la quatrième affronte la huitième, la cinquième affronte la septième et la sixième joue la dixième affronte.

- Quatrième journée : la première joue contre troisième, la neuvième croise la quatrième, la huitième croise la cinquième, la septième affronte la sixième et la dernière croise la deuxième ;

- Cinquième journée : la troisième équipe joue contre la deuxième, la quatrième contre la première, la cinquième contre la neuvième, la sixième croise la huitième et la dixième affronte la septième ;

- Sixième journée : la deuxième équipe croise la quatrième, la première affronte la cinquième, la neuvième joue contre la sixième, la huitième contre la septième et la dernière croise la troisième ;

- Septième journée : la quatrième équipe affronte la troisième, la cinquième affronte la deuxième, la sixième croise la première, la septième contre la neuvième et la huitième joue contre la dernière ;

- Huitième journée : la troisième équipe affronte la cinquième, la deuxième affronte la sixième, la première croise la septième, la neuvième contre la huitième et la dernière joue contre la quatrième ;

- Neuvième journée : la cinquième équipe joue contre la quatrième, la sixième contre la troisième, la septième contre la deuxième, la huitième croise la première et la neuvième affronte la dernière ;

Ainsi pour les divisions de 12, 14 et de 16 équipes, la logique reste la même ; seulement il sied de soulever certains faits lorsqu'on analyse de près cette clé de championnat.

En effet, Si NJ, NMJ, NTJC, NTMC, P représentent respectivement le nombre de journées du championnat, le nombre de matches prévus par journée, le nombre total de journées du championnat, le nombre total de matches du championnat et le nombre d'équipes devant participer au championnat ; la situation se présente de la manière suivante :

Pour une division à P équipes :

- NJ est égal à P - 1 ;

- Si P est pair, NJ est égal à P/2 ; dans le cas contraire, P est égal à P/2 - 1 ;

- Le NTMC de la phase ALLER est de NJ * NMJ ; ainsi le nombre total de matches de tout le championnat serait donc le double de NTMC ;

2.2. INTRODUCTION A L'ALGORITHMIQUE

Avez-vous déjà ouvert un livre de recettes de cuisine ? Avez-vous déjà déchiffré un mode d'emploi traduit directement du coréen pour faire fonctionner un magnétoscope ou un répondeur téléphonique réticent ? Si oui, sans le savoir, vous avez déjà exécuté des algorithmes. (7)

7 http://www.pise.info/algo/introduction.htm, url valide le mardi 20 novembre 2009 à 10h35

Plus fort : avez-vous déjà indiqué un chemin à un touriste égaré ? Avez-vous fait chercher un objet à quelqu'un par téléphone ? Ecrit une lettre anonyme stipulant comment procéder à une remise de rançon ? Si oui, vous avez déjà fabriqué - et fait exécuter - des algorithmes.

2.2.1. QUELQUES DEFINITIONS

Un algorithme, c'est une suite d'instructions, qui une fois exécutées correctement, conduit à un résultat donné (8).

Un algorithme est un enchainement d'opérations nécessaires pour effectuer quelque chose (9).

Selon Markov, un algorithme est tout un ensemble de règles précises qui définit un procédé de calcul destiné à obtenir un résultat déterminé à partir de certaines données initiales (10).

Un algorithme est un procédé de calcul mis en oeuvre sur un ordinateur, et qui, répété autant de fois qu'il est nécessaire, permet d'obtenir le résultat cherché (11).

Un jeu de règles ou de procédures bien défini qu'il faut suivre pour obtenir la solution d'un problème dans un nombre fini d'étapes (12).

2.2.2. DE L'ALGORITHME AU PROGRAMME

La mise au point d'un programme informatique se fait en plusieurs étapes. (13)

Il s'agit de fournir la solution à un problème, la première étape consiste donc à analyser le problème, c'est-à-dire en cerner les limites et le mettre en forme dans un langage descriptif, on parle généralement d'analyse pour décrire le processus par lequel le problème est formalisé. Le langage de description utilisé pour écrire le résultat de l'analyse est appelé algorithme. L'étape suivante consiste à traduire l'algorithme dans un langage de programmation spécifique, il s'agit de la phase de programmation.

8 http://www.pise.info/algo/introduction.htm, url valide le mardi 17 novembre 2009 à 12h07

9 Microsoft® Etudes 2008 [DVD]. Microsoft Corporation, 2007

10 Microsoft Corporation, Idem, 2007

11 "Algorithme (informatique)." Microsoft® Etudes 2008 [DVD]. Microsoft Corporation, 2007

12 D. FOURT, Informatique pratique, Glossaire des termes Informatiques, 13 http://www.commentcamarche.net/algo/algointro.php3, url valide le 12 novembre 2009 à 15h29

Le langage de programmation est l'intermédiaire entre l'humain et la machine, il permet d'écrire dans un langage proche de la machine ; mais intelligible par l'humain les opérations que l'ordinateur doit effectuer. Ainsi, étant donné que le langage de programmation est destiné à l'ordinateur, il doit donc respecter une syntaxe stricte. Un algorithme peut toutefois aboutir à plusieurs programmes.

Le programme est ensuite transformé en langage machine lors d'une étape appelée compilation. La compilation est une phase réalisée par l'ordinateur lui-même grâce à un autre programme appelé compilateur.

La phase suivante s'appelle l'édition de liens, elle consiste à lier le programme avec tous les éléments externes (généralement des librairies auxquelles il fait référence).

2.2.4. CARACTERISTIQUES D'UN ALGORITHME (14)

L'algorithme est un moyen pour le programmeur de présenter son approche du problème à d'autres personnes. En effet, un algorithme est l'énoncé dans un langage bien défini d'une suite d'opérations permettant de répondre au problème.

Un algorithme doit donc être :

+ lisible: l'algorithme doit être compréhensible même par un non-informaticien

+ de haut niveau: l'algorithme doit pouvoir être traduit en n'importe quel langage de programmation, il ne doit donc pas faire appel à des notions techniques

14 http://www.commentcamarche.net/algo/algointro.php3, url valide le 12 novembre 2009 à 15h29

relatives à un programme particulier ou bien à un système d'exploitation donné ;

+ précis: chaque élément de l'algorithme ne doit pas porter à confusion, il est donc important de lever toute ambiguïté

+ concis: un algorithme ne doit pas dépasser une page. Si c'est le cas, il faut décomposer le problème en plusieurs sous-problèmes

+ structuré: un algorithme doit être composé de différentes parties facilement identifiables

2.2.5. ALGORITHMIQUE ET PROGRAMMATION (15)

Pourquoi apprendre l'algorithmique pour apprendre à programmer ? En quoi at-on besoin d'un langage spécial, distinct des langages de programmation compréhensibles par les ordinateurs ?

Parce que l'algorithmique exprime les instructions résolvant un problème donné indépendamment des particularités de tel ou tel langage. Pour prendre une image, si un programme était une dissertation, l'algorithmique serait le plan, une fois mis de côté la rédaction et l'orthographe. Or, vous savez qu'il vaut mieux faire d'abord le plan et rédiger ensuite que l'inverse...

Apprendre l'algorithmique, c'est apprendre à manier la structure logique d'un programme informatique. Cette dimension est présente quelle que soit le langage de programmation ; mais lorsqu'on programme dans un langage (en C, en Visual Basic, etc.) on doit en plus se colleter les problèmes de syntaxe, ou de types d'instructions, propres à ce langage. Apprendre l'algorithmique de manière séparée, c'est donc sérier les difficultés pour mieux les vaincre.

A cela, il faut ajouter que des générations de programmeurs, souvent autodidactes (mais pas toujours, hélas !), ayant directement appris à programmer dans tel ou tel langage, ne font pas mentalement clairement la différence entre ce qui relève

15 http://www.commentcamarche.net/algo/algointro.php3, url valide le 12 novembre 2009 à 15h29

de la structure logique générale de toute programmation (les règles fondamentales de l'algorithmique) et ce qui relève du langage particulier qu'ils ont appris. Ces programmeurs, non seulement ont beaucoup plus de mal à passer ensuite à un langage différent, mais encore écrivent bien souvent des programmes qui méme s'ils sont justes, restent laborieux. Car on n'ignore pas impunément les règles fondamentales de l'algorithmique... Alors, autant l'apprendre en tant que telle !

Avec quelles conventions écrit-on un algorithme ?

Historiquement, plusieurs types de notations ont représenté des algorithmes.

Il y a eu notamment une représentation graphique, avec des carrés, des losanges, etc. qu'on appelait des organigrammes.

Aujourd'hui, cette représentation est quasiment abandonnée, pour deux raisons : d'abord, parce que, dès que l'algorithme commence à grossir un peu, ce n'est plus pratique du tout ;

Ensuite parce que cette représentation favorise le glissement vers un certain type de programmation, dite non structurée, que l'on tente au contraire d'éviter.

C'est pourquoi on utilise généralement une série de conventions appelée « pseudo-code », qui ressemble à un langage de programmation authentique dont on aurait évacué la plupart des problèmes de syntaxe. Ce pseudo-code est susceptible de varier légèrement d'un livre (ou d'un enseignant) à un autre. C'est bien normal : le pseudo-code, encore une fois, est purement conventionnel ; aucune machine n'est censée le reconnaître.

2.3. PRESENTATION DE NOTRE ALGORITHMIQUE

Pour clore ce chapitre, voici quelques mots supplémentaires à propos de la structure générale d'une application.

Celle-ci va couramment être formée d'une procédure principale, et de sous-procédures (qui vont au besoin elles-mémes en appeler d'autres, etc.). L'exemple typique est celui d'un menu, ou d'un sommaire, qui « branche » sur différents traitements, donc différentes sous-procédures.

L'algorithme fonctionnel de l'application est en fait le découpage et/ou la représentation graphique de cette structure générale, ayant comme objectif de faire comprendre d'un seul coup d'oeil quelle procédure fait quoi, et quelle procédure appelle quelle autre. L'algorithme fonctionnel est donc en quelque sorte la construction du squelette de l'application. Il se situe à un niveau plus général, plus abstrait, que l'algorithme normal, qui lui, détaille pas à pas les traitements effectués au sein de chaque procédure.

Dans la construction et la compréhension d'une application, les deux documents sont indispensables, et constituent deux étapes successives de l'élaboration d'un projet. La troisième et dernière étape, consiste à écrire, pour chaque procédure et fonction, l'algorithme détaillé.

Pour commencer, l'idée générale de l'application est la suivante : l'utilisateur doit saisir le nombre de clubs affilés au courant de la saison sportive ; tout en sachant que ce nombre ne peut jamais être inférieur à 4 ni supérieur à 16 ; si le nombre entré n'est pas compris dans cet intervalle, le programme retourne un message d'erreur ; si par contre, si par erreur, il saisit des données de type char (non numérique), un autre message d'erreur sera renvoyé.

Après la saisie de cette information, une fenêtre présente les informations en rapport avec le nombre de clubs, ensuite viendront des champs où l'utilisateur sera appelé à saisir les clubs un à un.

Après cette étape, le programme va procéder au croisement de ces clubs.

Etape1. Dictionnaire des données

Donc, avant méme d'écrire quoi que ce soit, les questions qu'il faut se poser sont les suivantes :

 

de quelles informations le programme va-t-il avoir besoin pour venir à bout de sa tâche ?

Ainsi pour notre petite application, nous avons besoin de : la liste de clubs

le nombre de clubs affiliés

Cette liste d'informations n'est peut-être pas exhaustive ; nous aurons vraisemblablement besoin au cours de l'algorithme de quelques variables supplémentaires (des compteurs de boucles, des variables temporaires, etc.). Mais les informations essentielles sont bel et bien là. Se pose maintenant le problème de choisir le mode de codage le plus futé.

Pour la liste des clubs à trouver, il s'agit d'un ensemble d'informations de type texte. Ces informations pourraient faire partie du corps de la procédure principale et/ou des sous procédures, et être ainsi stockées en mémoire vive, sous la forme d'un tableau de chaînes. Mais ce n'est certainement pas le plus judicieux. Toute cette place occupée risque de peser lourd inutilement, car il n'y a aucun intérét à stocker l'ensemble des clubs en mémoire vive.

De même, le nombre des clubs affiliés introduit par l'utilisateur est une information simple de type numérique, qui sera stockée dans une variable appelée neq. Pour rappel, cette information doit comprise entre 4 et 16, le nombre de zone de textes affichés qui recevront les clubs seront fonction de la valeur que prendra la variable neq ; c'est ainsi que pour neq égal 4, le formulaire de saisie de données ne présentera que 4 zones de texte. Au départ, le formulaire compte 16 zones de texte (champs) pour les 16 équipes que ne peut dépasser un championnat donné ; seulement tous ces champs sont masqués d'avance (c'est-à-dire à l'ouverture du formulaire), mais le nombre de champs visibles dépendra comme nous l'avions dit tantôt de la variable neq.

Etape 2 : l'algorithme fonctionnel

On peut à présent passer à la réalisation de l'algorithme fonctionnel, c'est-à-dire au découpage de notre problème en blocs logiques.

Le but de la manoeuvre est multiple (16):

faciliter la réalisation de l'algorithme définitif en le tronçonnant en plus petits morceaux.

Gagner du temps et de la légèreté en isolant au mieux les sous-procédures et fonctions qui méritent de l'être. Eviter ainsi éventuellement des répétitions multiples de code au cours du programme, répétitions qui ne diffèrent les unes des autres qu'à quelques variantes près.

Permettre une division du travail entre programmeurs, chacun se voyant assigner la programmation de sous-procédures ou de fonctions spécifiques (cet aspect est essentiel dès qu'on quitte le bricolage personnel pour entrer dans le monde de la programmation professionnelle, donc collective).

Dans notre cas précis, un premier bloc se détache : il s'agit de ce qu'on pourrait appeler notre récolte des données (choix du type de division). Puisque le but est de d'afficher seulement un certain nombre de champs pour la saisie des clubs affiliés, nous pouvons confier cette tâche à une procédure spécialisée (à noter que ce découpage est un choix de lisibilité, et pas une nécessité absolue ; on pourrait tout aussi bien faire cela dans le module principal).

Cette procédure principale, justement, va ensuite avoir nécessairement la forme d'une structure if, elseif,..., elseif End if : en effet , si le nombre de clubs est compris entre 4 et 16, le programme passe à l'étape suivante (qui est la saisie des données), si non le programme retourne un message d'erreur.

Ensuite, on doit procéder à la saisie des clubs, en veillant à effectuer les contrôles de saisie adéquats, il ne doit pas y avoir des champs vides. Là encore, une procédure spécialisée, TestChampVide, sera toute indiquée.

Une fois la saisie faite, il convient de passer au vif du sujet, le croisement proprement dit des clubs ; ici il s'agit des plusieurs sous procédures, les unes appellant les autres. La première procédure sera appelée CroisementAller ; dans laquelle sont

16 Christophe DARMANGEAT, Cours d'algorithmique, www.pise.info/algo/introduction.htm

appelées 15 autres sous-procédures qui traiteront les différentes journées que peut compter un championnat complet.

Enfin, une fois les croisements terminés, on doit les afficher dans le formulaire FCroisement2. On déclare à cet effet une autre procédure AffichageChamp, qui à sont tour, va faire appel à d'autres sous-procédures.

Voilà en fait, les principales procédures et sous-procédures.

Etape 3 : Algorithmes détaillés

Normalement, il ne nous reste plus qu'à traiter chaque procédure isolément. On commencera par les sous-procédures et fonctions, pour terminer par la rédaction de la procédure principale.

Procédure TypeDivision()

varable neq, NTMC, NbMatch, NbJrn en numérique

Si neq est du type numérique alors

Si neq < 4 alors

Msg "Le nombre minimum de clubs d'une division est 4 "

Fin Si

Si neq > 16 alors

Msg "Le nombre maximum de clubs d'une division est 16 "

Fin Si

Si 4 < neq < 16 alors

Si neq est paire alors

NbMatch ? neq / 2

Sinon

NbMatch ? (neq+1) / 2

Fin Si

NbJrn ? (neq - 1) * 2

NTMC ? NbJrn * NbMatch

Fin Si

Sinon

Msg "La donnée saisie n'est pas un entier! Réessayez en tapant un entier SVP! "

Fin Si

Fin

avec le type de division choisi, c'est-à-dire de trouver le nombre de journées du championnat, le nombre total de matches,...

Procédure AfficheChampSaisie ()

Tableau Club en caractère

Tableau N°M en numérique

b ? 0, a ? 0

Faire

Afficher les champs

b ? b + 1

Jusqu'à b ? neq

Pour i ? 0 à neq - 1

Afficher les numéros des équipes

i suivant

Pour a ? 0 à neq - 1

N°M(a) ? a + 1

a suivant

Fin

Etant donné que nous avions caché certains champs, cette procédure va nous

permettre d'afficher les champs en fonction du nombre d'équipes saisi par l'utilisateur (la variable neq), et de numéroter ces équipes.

A présent, passons aux croisements, nous n'allons pas présenter tous les cas possibles, c'est-à-dire de la division 4 jusqu'à la division à 16 équipes.

Voici donc quelques croisements :

Procédure Jrn1Cas4()

MJrn1(8) ? Club(2) MJrn1(9) ? Club (3)

Fin

Cette procédure sert à faire le croisement de la première journée pour une division à quatre équipes.

Procédure Jrn2Cas6()

MJrn2(0) ? Club(4) MJrn2(1) ? Club(3) MJrn2(2) ? Club(5) MJrn2(8) ? Club(1) MJrn2(9) ? Club(2) MJrn2(10) ? Club(0)

Fin

Cette autre procédure fait le croisement de la deuxième journée pour une division à six équipes.

En analysant de près, l'on se rendra compte que l'utilisation d'une boucle for, facilitera la tâche puisque l'on peut se servir des variables du type tableau et atteindre ainsi les objets grâce à leurs indices dans la dite boucle lorsque nécessaire.

Ainsi, nous aurons des procédures avec des structures suivantes :

Procédure Jrn3Cas8()

Pour i ? 0 à neq / 2

MJrn3(i) ? Club(i + 1) i suivant

MJrn3(8) ? Club(0) MJrn3(9) ? Club(6) MJrn3(10) ? Club(5) MJrn3(11) ? Club(7)

Fin

Procédure Jrn4Cas10()

Pour i ? 0 à neq / 2

MJrn4(i + 8) ? Club(i + 2)

i suivant

MJrn4(0) ? Club(1) MJrn4(0) ? Club(0) MJrn4(1) ? Club(8) MJrn4(2) ? Club(7) MJrn4(3) ? Club(6) MJrn4(4) ? Club(9)

Fin

Procédure Jrn5Cas12()

Pour i ? 0 à neq / 2

MJrn5(i) ? Club(i + 2) i suivant

MJrn5(8) ? Club(1) MJrn5(9) ? Club(0) MJrn5(10) ? Club(10) MJrn5(11) ? Club(9) MJrn5(12) ? Club(8) MJrn5(13) ? Club(11)

Fin

Procédure Jrn6Cas14()

Pour i ? 0 à (neq / 2)

MJrn6(i + 8) ? Club(i + 3)

i suivant

MJrn6(14) ? Club(2) MJrn6(0) ? Club(1) MJrn6(1) ? Club(0)

MJrn6(2) ? Club(12) MJrn6(3) ? Club(11) MJrn6(4) ? Club(10) MJrn6(5) ? Club(9) MJrn6(6) ? Club(13)

Fin

Procedure Jrn7Cas16()

Pour i ? 0 à (neq / 2) - 3

MJrn7(i + 8) ? Club(i + 4)

i suivant

MJrn7(14) ? Club(13) MJrn7(15) ? Club(3) MJrn7(0) ? Club(2) MJrn7(1) ? Club(1) MJrn7(2) ? Club(0) MJrn7(3) ? Club(14) MJrn7(4) ? Club(13) MJrn7(5) ? Club(12) MJrn7(6) ? Club(11) MJrn7(7) ? Club(15)

Fin

Nous venons de présenter seulement un cas (en terme de type de division) de procédure pour une journée sportive.

Ainsi, notre application aura à utiliser plusieurs procédures présentant la structure celles décrites ci-haut.

Procédure Jrn1()

Pour i ? 0 à (neq / 2)

MJrn1(i) ? Club(i)

i suivant

au cas où

neq ? 4

appel de la procédure Jrn1Cas4 neq ? 6

appel de la procédure Jrn1Cas6 neq ? 8

appel de la procédure Jrn1Cas8 neq ? 10

...

appel de la procédure Jrn1Cas14 neq ? 16

appel de la procédure Jrn1Cas16

FinCas

Procédure Jrn2()

au cas où

neq ? 4

appel de la procédure Jrn2Cas4 neq ? 6

appel de la procédure Jrn2Cas6 neq ? 8

appel de la procédure Jrn2Cas8 neq ? 10

appel de la procédure Jrn2Cas10 neq ? 12

appel de la procédure Jrn2Cas12 neq ? 14

appel de la procédure Jrn2Cas14 neq ? 16

appel de la procédure Jrn2Cas16

FinCas

Fin

Procédure Jrn3()

au cas où

neq ? 4

appel de la procédure Jrn3Cas4 neq ? 6

appel de la procédure Jrn3Cas6 neq ? 8

appel de la procédure Jrn3Cas8 ~

neq ? 16

appel de la procédure Jrn1Cas16

FinCas

Fin

Ainsi pour toutes les autres procédures du méme genre, c'est-à-dire Jrn4, Jrn5, Jrn6, ~, Jrn30, la procédure va garder la méme structure à une différente près.

Et maintenant la procédure principale ayant pour rôle de faire tous les croisements du championnat :

Procédure CroisementAller()

neq ? FCollect.NbEq

tableau Jrn1, Jrn2, Jrn3, Jrn4, ~ , Jrn30 en caractère

tableau MJrn1, MJrn2, MJrn3, ..., MJrn15 en caractère

appel Jrn1 appel Jrn2 appel Jrn3 ~

appel Jrn15 Fin

En fait ; il s'agit tout simplement d'une procédure qui fait appel à tous les sousprocédures des différentes journées.

CHAPITRE TROISIEME : REALISATION DE L'APPLICATION 3.1. A PROPOS DU LANGAGE DE PROGRAMMATION

Microsoft Visual Basic est l'un des langages de programmation les plus performants qui soit. Au début de l'année 1999, la communauté regroupant les adeptes du développement logiciel sous Visual Basic comptait environ 3,5 millions de membres, ce chiffre ne cessant d'augmenter.

Visual basic est utilisé par les étudiants, les dirigeants et les techniciens pour s'initier à l'écriture de programmes pratiques sous Windows, par les professionnels du monde des affaires pour écrire des macros au sein de leurs applications Office et par les développeurs expérimentés pour concevoir de puissantes applications commerciales et des outils de productivité destinés aux entreprises. (17)

Nous avons donc utilisé ce langage de programmation.

3.2. PRESENTATION DU LOGICIEL

Un programme décrit une suite d'actions, qui fait passer de la situation initiale (celle des données) à la situation finale (celle des résultats)18.

Notre petite application compte 7 formulaires au total que nous allons essayer de présenter dans cette dernière partie du travail.

Lorsque l'on double clique sur l'icône de l'apllication, la page d'accueil suivante apparait :

Image 1 : Accueil

17 M. HALVORSON, Formation a... Visual Basic 6.0, édition Dunod, février 2004, p.1

18 J. ARSAC, idem

Après 5 secondes, la page d'accueil disparaitra pour céder la place à la fenétre suivante jouant le rôle de menu général, elle se présente comme suit :

Image 2 : Menu

Un clic sur le bouton Quitter, affiche la boite de dialogue suivante. Si l'utilisateur clique sur le bouton Oui de cette boite de dialogue, le programme s'arrête.

Image 3 Quitter

Voici le code placé derrière le bouton Quitter :

a = MsgBox("Êtes-vous sûr de bien vouloir quitter ce programme", vbYesNo + vbQuestion, "TENTATIVE D'ARRÊT DU PROGRAMME")

If a = vbYes Then

End

End If

En cliquant sur Clé du championnat, l'utilisateur aura accès au formulaire de récolte des données (FCollect) que voici :

L'utilisateur est appelé à saisir les informations demandées afin d'évoluer ; il doit saisir le nombre d'équipes ainsi que la date de début du championnat ; selon le cas, les boites de dialogue suivantes peuvent être affichées:

Image 5

Image 6

Si l'utilisateur a saisi du texte dans le champ « Nombre d'équipes » ou s'il a oublié de compléter ce champ.

Si l'information saisie n'est pas une date.

 

Si l'utilisateur a saisi un entier inférieur à 4.

Image 7

 
 

Si le nombre d'équipes

introduit dépasse 16

Image 8

 

Après que les informations soient valides, l'utilisateur voit s'afficher le Frame (FrmStat) qui à l'ouverture était caché.

Image 9 : Menu

Le bouton « Contrinuer » permet de passer à l'étape suivante qui est la saisie des clubs Tous ces cas sont gérés par la portion de code ci-après :

Dim d As String

If IsNumeric(NbEq) Then

If NbEq < 4 Then

If ms = MsgBox("Le nombre minimum de clubs d'une

division est 4 ", vbOKOnly + vbCritical, "EUBABUK : Données incorrectes") = vbOK Then

FrmStat.Visible = False

End If

ElseIf NbEq > 16 Then

If ms = MsgBox("Le nombre maximum de clubs d'une

division est 16 ", vbOKOnly + vbCritical, "EUBABUK : Données incorrectes") = vbOK Then

FmClubs.Visible = False

End If

ElseIf 4 < NbEq < 16 Then FrmStat.Visible = True StNbEq = NbEq

If NbEq = 5 Or NbEq = 7 Or NbEq = 9 Or NbEq = 11 Or NbEq

= 13 Or NbEq = 15 Then

NbMatch = (NbEq + 1) / 2

Else

NbMatch = NbEq / 2 End If

Me.FrmCollect.Visible = False

NbJrn = (NbEq - 1) * 2 NTMC = NbJrn * NbMatch End If

Else

If ms = MsgBox("1. Soit la donnée saisie n'est pas un

nombre! " + vbCrLf + "2. Soit le champ en question est vide!" + vbCrLf + "" + vbCrLf + "Réesayer en tapant un nombre SVP! ", vbOKOnly + vbInformation, "EUBABUK : Données incorrectes") = vbOK Then

End If

End If

Else

MsgBox "Le champ date n'a pas été rempli correctement", vbInformation + vbOKOnly, "EUBABUK - SOFT: ERREUR DE SAISIE"

End If

Voici le formulaire de saisie des clubs apparaît.

Image 10 : Saisie des clubs

C'est derrière le bouton Croiser que sont appelées presque toutes les procédures que nous avons créées.

Comme dans le chapitre précédent, nous n'allons pas tout présenter ; elles ont été créées dans un module ; en voici donc quelques unes d'entre-elles:

Cette procédure teste s'il y a des champs vides dans le formulaire Saisie des clubs, avant de passer à l'affichage des croisements.

Sub TestRedond()

For a = 0 To neq - 1

Next a

If FmClubs.club(a) = "" Then

MsgBox "Vous avez laissé un ou plusieurs champs vides", vbInformation, "EUBABUK - Redondace des données"

Else

Call CroisementAller

FCroisement2.Show

End If

End Sub

Cette autre procédure appelle les sous procédures relatives aux croisements de la première journée et cela, selon le nombre d'équipes qui a été introduit par l'utilisateur dans le formulaire FCollect.

Sub Jrn1()

neq = FCollect.NbEq

For i = 0 To (neq / 2) FCroisement2.MJrn1(i) = FmClubs.club(i)

Next i

Select Case neq

Case Is = "4" Call Cas4

Case Is = "6" Call Cas6

Case Is = "8" Call Cas8

Case Is = "10" Call cas10

Case Is = "12" Call cas12

Case Is = "14" Call Cas14

Case Is = "16" Call cas16

End Select

La procédure suivante effectue le croisement de la première journée pour le cas où le nombre d'équipe égale à 10.

Sub Jrn1Cas10()

For i = 0 To neq / 2

FCroisement2.MJrn4(i + 8) = FmClubs.club(i + 2) Next i

FCroisement2.MJrn1(0) = FmClubs.club(1) FCroisement2.MJrn1(0) = FmClubs.club(0) FCroisement2.MJrn1(1) = FmClubs.club(8) FCroisement2.MJrn1(2) = FmClubs.club(7) FCroisement2.MJrn1(3) = FmClubs.club(6) FCroisement2.MJrn1(4) = FmClubs.club(9)

End Sub

Toutes les procédures de croisements ont la même structure que celle-ci.

Image 11 : Saisie des clubs

sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Qui vit sans folie n'est pas si sage qu'il croit."   La Rochefoucault