| |
Programmation C |
|
Fonctions :
Un programme C comprend habituellement plusieurs fonctions personnelles,
dont au moins une, nommée
main.
main
est la fonction principale de tout programme C. C'est par elle que débute
toujours l'exécution du programme. Un programme C peut être considéré comme une
collection de fonctions ; les fonctions,
main
comprise, peuvent être disposées dans un ordre quelconque. Nous avons jusqu'ici
utilisé des fonctions standards, livrées avec le compilateur, dont le code n'est
pas écrit par le programmeur, mais inséré dans le programme par l'éditeur de
liens. A la différence d'une procédure, une fonction retourne une valeur.
Déclaration d'une fonction
Pour utiliser une variable, il faut préalablement déclarer son nom et son
type. Il en va de même pour les fonctions, avec cependant quelques informations
supplémentaires. Une déclaration de fonction fournie les informations suivantes
:
- La classe de mémorisation de
la fonction
- Le type de la valeur
renvoyée par la fonction
- Le nom de la fonction
- Les paramètres (arguments)
qui sont passés à la fonction pour y être traités
- Les locales et externes
utilisées par la fonction
- D'autres fonctions invoquées
par la fonction
- Enfin, les instructions à
exécuter
Pour déclarer une fonction, on
dispose de deux syntaxes. La plus récente correspond au standard ANSI. la plus
ancienne se rencontre encore quelquefois. Voici uniquement la dernière syntaxe.
<classe de mémoire> <type>
<nom>(<parametres>)
{
<définitions de variables locales>
<définitions de variables externes>
<fonctions supplémentaires invoquées par la fonction>
<instructions : corps de la fonction>
}
Note : Seul ce qui apparaît en
gras et souligné est obligatoire pour une déclaration de fonction. C'est à dire
que seul le nom est obligatoire.
- Classe de mémoire :
Il s'agit de la portée de la fonction. Cette indication peut être omise. Si la
classe de mémorisation est
static,
la fonction ne pourra être utilisée dans d'autres modules que celui où elle
est définie. Par défaut, la classe est
extern,
c'est à dire qu'il s'agit d'une entité globale, et qu'elle ne doit pas être
définie à l'intérieur d'une autre fonction : la déclaration d'une fonction
extern
doit obligatoirement se faire en dehors de la fonction
main.
- type : Il s'agit du
type de donnée renvoyée par la fonction
- nom : Nom de la
fonction lors de son appel.
- parametres : Lors de
l'appel d'une fonction, il est possible de transmettre une ou plusieurs
valeurs, appelé paramètres.
- Les variables utilisées en
plus des paramètres de la fonction doivent bien sur être déclarées. La
déclaration des variables doit se faire au début du corps de la fonction.
- Corps de la fonction
: Il s'agit des instructions à réaliser lors de l'appel de la fonction
Appel d'une fonction
L'appel d'une fonction se fait de la manière suivante :
NomFonction(<parametres>);
Note : les paramètres sont
optionnels.
Exemple : la fonction cubique :
Voici un exemple de fonction
calculant le cube d'un nombre :
#include <stdio.h>
#include <system.h> // pour getche();
double cube(double VAR)
{
return (VAR*VAR*VAR);
}
main()
{
double x;
printf("Entrez un reel :\t");
scanf("%lf",&x);
printf("\n\nLe cube de %f est : %f",x,cube(x));
getche();
}
|
Voici le résultat à l'écran :

Nous allons maintenant réaliser
une fonction convertissant une chaîne de caractères en majuscules ou en
minuscules selon le choix de l'utilisateur. Voici le programme :
#include <stdio.h>
#include <system.h> // pour getche();
traitement (char Chaine[255], int Choix)
{
int i;
i = 0;
while(Chaine[i])
{
if((Choix==49) && (Chaine[i]>=97) && (Chaine[i]<=122))
{
Chaine[i] = Chaine[i] - 32;
}
else if((Choix==50) && (Chaine[i]>=65) && (Chaine[i]<=90))
{
Chaine[i] = Chaine[i] + 32;
}
i++;
}
return (Chaine);
}
main()
{
char Nom[255];
int Menu;
printf("Entrez Votre Nom :\t");
scanf("%s",Nom);
printf("\nAppuyez sur 1 pour convertir en Majuscules");
printf("\nAppuyez sur 2 pour convertir en Minuscules");
printf("\nAppuyez sur n'importe quelle touche pour ne rien faire\n\nVotre Choix : \t");
Menu = getche();
printf("\nVoici votre Nom apres conversion : %s",traitement(Nom,Menu));
getche();
}
|
Voici un exemple de fonctionnement
de ce programme. Nous avons entré JEAN-Marc et demandé de traduire cette chaîne
en minuscules. Comme vous pouvez le constater, le programme ne traduit
uniquement les majuscules en minuscules, et laisse inchangé les autres
caractères, comme le tiret (-) et les minuscules.

| [
<< Page précédente
|
| |
Page suivante >>
] |
|