Banière du site

[koala01.free.fr]->Tutoriaux->Principes de Programmation

Introduction

Les buts de cette section.

Pour un code propre

Quel que soit le langage de programmation utilisé il y a très facilement moyen de rendre le code créé parfaitement incompréhensible.

Si l'idée peut parraître tentante, dans le but de se rendre indispensable dans une équipe, ou plus simplement pour «protéger ses sources», il s'agit en réalité d'un très mauvais plan.

Cette page explique pourquoi, et les moyens d'y remédier.

Les générations de langage

Brève historique de l'évolution des langages.

Termes en Vrac

Pour savoir de quoi on parle.

Un peu de méthode

Il faut un minimum de méthode pour programmer.

Les opérateurs

Tout ce qu'il faut pour les différentes opérations.

Les variables

Le but de tout programme est de gérer des informations.

Pour gérer ces informations, il faut utiliser des couples de noms et de valeurs nommés variables.

Cette page leur est consacrée.

Le flowchart

Le «flowchart» est sûrement la plus connue des méthodes pour créer un algorithme de programmation.

En voici le principe.

Mon premier flowchart

Cette page présente la mise en oeuvre d'un premier flowchart.

Le nassi-chneiderman

Une méthode très utile pour la création d'algorithme, et pourtant trop méconnue, est le nassichneiderman.

Cette page lui est dédiée.

Un premier nassichneiderman

Voici un premier exemple de nassichneiderman.

Les tableaux

Les types de variables simples dont on dispose sont très souvent insufisants.

La première manière de disposer de variables correspondant à nos attentes est souvent l'utilisation de tableaux…

Cette page leur est consacrée.

Les variables structurées

Il est souvent nécessaire de pouvoir combiner plusieurs types de données de manière à pouvoir les utiliser au sein d'une seule et unique variable propre au programmeur.

La combinaison de différents types de données permet de créer des variables que l'on appelle «variables structurées», ou encore «types de variable personnalisés».

Cette page traîte de leur utilité et de leur utilisation.

Les routines ou sous-programme

Routine est un terme générique qui correspond à «sous-programme».

Ce terme reprend tout tronçon de programme écrit de manière à ce qu'il puisse être appelé de n'importe quel endroit de l'application pour en éviter la réécriture à chaque fois qu'un code similaire doit être effectué.

La récursivité
La récursivité est sans doute l'un des concepts que la plupart des gens ont le plus de mal à comprendre
Les pointeurs

Les pointeurs sont des entités assez particulières.

Ils sont en effet en mesure de garder l'adresse mémoire à laquelle trouver une variable d'un type précis.

Leur utilisation permet énormément de choses, et cette page tente de vous les expliquer.

Retour sur les structures

Il est parfaitement possible d'introduire un pointeur dans une structure

Maintenant que nous avons une idée à peu près précise de ce que sont les pointeurs, voyons un peu comment s'y prendre pour les gérer dans les structures

La gestion dynamique des tableaux

Voici quelques pages, j'ai tenté de vous initier à l'utilisation de tableaux.

Si vous avez lu toutes les pages de ce tutorial, vous devriez en connaître suffiemment pour pouvoir vous attaquer à la gestion dynamique des tableaux.

C'est donc le moment de nous y attaquer

La Pile

Le système est simple, le premier élément auquel on peut accéder est le dernier élément à avoir été ajouté, un peu comme une pile de caisse dans un supermarché.

Il est impossible d'arriver à retirer une caisse avant d'avoir retiré la caisse qui se trouve au dessus d'elle (du moins, si on veut éviter de toutes les faire tomber).

La File

Le système est tout aussi simple: le premier élément auquel on accède est le premier élément qui a été rajouté selon le principe de ce qui se passe dans la file d'attente pour passer aux caisse…

On entre dans la file par la gauche et on en sort par la droite (ou inversément).

La liste chainée

Très similaire à la deuxième solution (la file).

on accepte simplement l'idée qu'un élément puisse s'introduire entre deux éléments qui attendent leur tour (il y a souvent des gens sympas qui,voyant que vous n'avez qu'une boite de soupe, vous laissent passer avant eux).

L'avantage que l'on peut entre autre en tirer, c'est qu'il devient possible de trier les données qu'on obtient alors qu'on est encore à l'&eactue;tape d'acquisition…

Une fois cette étape terminée, nous disposerons donc de données parfaitement triées.

Pour le reste, cela fonctionne comme une file.

La liste doublement chaînée

La liste doublement chaînée est une liste chainée un peu particulière: chaque élément contient non seulement un pointeur vers l'élément suivant, mais aussi un pointeur vers l'élément précédent…

L'avantage que l'on en tire est qu'on peut parcourrir la chaine dans les deux sens, ce qui peut accélérer la recherche de manière assez spectaculaire (pour autant que la liste soit correctement triée).

La Liste Circulaire

Ajoutez l'histoire du serpent qui se bouffe la queue à une liste chaînée, et vous obtiendrez une liste circulaire.

Ce n'est donc rien de plus qu'une liste pour laquelle le dernier élément de la liste renvoie au premier… Mais ça peut présenter des avantages un clin d'oeil

Les Arbres Binaires

Si cette méthode est utilisable, et qu'elle est correctement mise en oeuvre, c'est sans aucun doute celle qui permet de trouver un élément donné le plus rapidement… du moins sans avoir à recourrir à un algorithme trop compliqué

L'idée est simple: pour chaque élément on pren un pointeur vers l'élément plus grand et un autre vers l'élément plus petit.

[koala01.free.fr]->Tutoriaux->Principes de Programmation

Copyright (©) 2005 (Philippe Dunski)

Ce cours est libre, vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU publiée par la Free Software Foundation (version 2 ou bien toute autre version ultérieure choisie par vous).

Ce cours est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU pour plus de détails.

Cependant, l'auteur apprécierait grandement que vous lui fassiez part de toute modification apportée à son contnu

Vous pouvez le contacter par mail à l'adresse koala01@free.fr

Vous pouvez trouver une adaptation française de la licence GNU/GPL à l'URL http://www.linux-france.org/article/these/gpl.html