Obligement - L'Amiga au maximum

Jeudi 25 mai 2017 - 23:59  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Programmation : C - structure d'un programme
(Article écrit par Batchman et extrait d'A-News (Amiga News) - juin 1989)


Dans la lignée de Chorizo Kid, je reprends l'initiation au langage C car vous êtes nombreux à nous en demander. Il s'agit ici de vous apprendre à programmer en C. Mais on ne fait pas de bons programmes sans bons algorithmes. Voyez donc pour ça les articles d'ASD de mon compère (je rappelle qu'ASD ne signifie pas "Alcool, Sexe et Drogue" mais "A Soigneusement Déboguer").

Structure des programmes C

Nous parlerons cette fois-ci de la structure des programmes C mais pour ne pas trop en dire à la fois, nous aborderons plus tard la compilation séparée. Nous considérons donc le cas où un programme est contenu en entier dans un fichier.

Qu'est-ce qu'un programme C ? Un ensemble de déclarations, C tout. Ces déclarations peuvent être de variables ou de fonctions. Parmi celles-ci, une est particulière, c'est la fonction "main" qui constitue l'ossature du programme.

Tout de suite, un exemple psycho-socio-pédagogique ayant pour but d'insérer dans la société informatisée à l'aube du XXIe siècle le Yéti le plus récalcitrant au langage C.

C

Si vous voulez un Batchman-minitip, ce n'est même pas la peine de taper ce programme pour voir s'il marche. De toute façon, vous ne verriez rien. Mais c'est un bon exemple de début pour étudier la structure. Nous y trouvons :
  • Une déclaration de variable : int i;.
  • Une déclaration de fonction : main. Cette fonction doit toujours exister pour qu'un exécutable soit produit.
La structure d'un programme C n'est pas plus compliquée que ça. Mais il y a généralement plus de variables et de fonctions... Chorizo Kid me souffle que ça marcherait aussi avec i=6 : il ira loin ce petit... Ah, s'il m'avait écouté et qu'il ait fait des études...

"main" est la fonction appelée quand on lance le programme ; c'est elle qui contient les appels à d'autres fonctions.

Les variables déclarées hors de toute fonction sont globales, c'est-à-dire qu'elles sont visibles depuis n'importe quelle partie du programme. En d'autres termes, vous pouvez les citer dans n'importe quelle fonction. Vous pouvez aussi leur donner une valeur initiale. Par exemple :

C

...permet de déclarer un entier qui contient la valeur 7 quand le programme est lancé.

Les fonctions

Voyons maintenant ce qu'est une fonction : il s'agit d'un morceau de votre programme qui contient des instructions, reçoit des arguments ou paramètres et retourne une valeur. Exemple :

C

Ceci est la déclaration de la fonction qui calcule le carré d'un entier. Les instructions de cette fonction sont x*x. L'argument reçu est l'entier "x". La valeur retournée est l'entier carré qui vaut "x". Dans d'autres fonctions, on peut appeler celle-ci comme une variable, en lui donnant un paramètre (exemple : surface = Pi*carré(rayon);).

Tout ceci est fort simple. Mais on peut aussi avoir des déclarations à l'intérieur d'une fonction. Les déclarations de fonctions sont ici interdites mais on peut avoir des variables locales : elles ne pourront être utilisées qu'à l'intérieur de cette fonction-là. Ceci pour la bonne raison qu'elles sont dynamiques, c'est-à-dire qu'elles n'existent pas avant, sont créées lorsque l'on rentre dans la fonction, et détruites quand on en sort. "A quoi ça sert ?" me dira le béotien moyen ? C'est vrai que l'on pourrait s'en passer mais c'est plus rigoureux pour écrire des programmes proprement. Exemple :

C

Voici un exemple de fonction utilisant une variable dynamique : c'est "y". j'espère que vous l'aviez reconnue. C'est juste un exemple car il est évident que cette fonction est moins efficace que la précédente (comptez le nombre d'opérations effectuées). Une fonction peut donc contenir des déclarations et des instructions, éventuellement mélangées.

Hors de cette fonction, parler de la variable "y" n'a aucun sens. Elle est allouée sur la pile lorsque la fonction "carré" est appelée. A l'intérieur de la fonction, vous pouvez utiliser cette variable pour tous vos délires. Encore plus fort, vous pouvez avoir plusieurs variables "y" à l'intérieur de fonctions différentes : ceci ne posera pas de problème car chacune est locale à sa fonction. Donc, la variable "y" de "carré()" n'aura rien de commun avec la variable "y" de "cube()", par exemple.

Autre conséquence de la destruction d'une variable locale lorsque l'exécution de la fonction est terminée : sa valeur n'est pas conservée. En d'autres termes, la valeur de "Y" lorsqu'on entre dans la fonction "carré" n'est pas forcément la même qu'à la fin du précédent appel de cette fonction (nous verrons plus tard que ce n'est pas une règle absolue mais il faut bien débuter).

Je ne sais pas si j'ai convaincu Frédéric Autechaud mais les règles qui définissent la structure d'un programme C sont simples, comme vous venez de le voir. Ces bases nécessaires étant posées, je vous parlerai la prochaine fois des types de données.


[Retour en haut] / [Retour aux articles]