Introduction au langage C/Fonctions de base
Apparence
Introduction
[modifier | modifier le wikicode]- Nous allons présenter la notion de fonction.
- Tous les codes présentés ici peuvent être testés.
La fonction main()
[modifier | modifier le wikicode]- C'est la fonction principale.
Code source
[modifier | modifier le wikicode]- Elle retourne un entier matérialisé par le int.
- Cela se passe avec la fonction return(0);
- Pour nous, elle n'aura pas d'argument donc (void) en paramètre.
/* ------------------------------ */
/* save as c01.c */
/* ------------------------------ */
#include <stdio.h>
#include <math.h>
/* ------------------------------ */
int main(void)
{
return 0;
}
Présentation pour déclarer une fonction
[modifier | modifier le wikicode]- On déclare les fonctions. (dans des fichiers h)
- On pose la fonction main(). (dans un fichier c)
- On pose le code des fonctions. (dans des fichiers c)
- On créé un fichier make (ou un projet) pour créer l'exécutable.
- Ici on mettra tout dans un seul fichier c.
Code source
[modifier | modifier le wikicode]- La fonction "addition()" retourne la somme de deux entiers.
- On remarque que le corps de la fonction est vide. (Excellent)
- Tous se passent dans la fonction return(x+y);
/* ------------------------------ */
/* save as c01.c */
/* ------------------------------ */
#include <stdio.h>
#include <math.h>
/* ------------------------------ */
int addition(int, int);
/* ------------------------------ */
int main(void)
{
printf("1 + 2 = %d\n", addition(1,2));
printf("2 + 2 = %d\n", addition(2,2));
return 0;
}
/* ------------------------------ */
int addition(int x, int y)
{
return(x+y);
}
Code source
[modifier | modifier le wikicode]- Le code est devant la fonction main() à la place de la déclaration de la fonction.
- Ici, on a associé une chaine de caractère à la fonction.
/* ------------------------------ */
/* save as c01.c */
/* ------------------------------ */
#include <stdio.h>
#include <math.h>
/* ------------------------------ */
double f(double x){return( pow(x,2.));}
/* ------------------------------ */
char feq[] = "x**2";
/* ------------------------------ */
int main(void)
{
double a = 2.0;
printf(" f : x-> %s\n\n", feq);
printf(" f(%.0f) = %6.1f\n", a, f(a));
printf("\n\n Press return to continue.\n");
getchar();
return 0;
}
Les fonctions et les fractions
[modifier | modifier le wikicode]- Les fonctions nous permettent d'initialiser, d'imprimer des structures.
Code source
[modifier | modifier le wikicode]- Une fois la structure déclarée, la meilleure méthode d'initialisation est de créer une fonction.
- Ici, init_f();
- Il faut naturellement une fonction pour imprimer une structure.
- Ici, p_f();
/* ------------------------------ */
/* save as c01.c */
/* ------------------------------ */
#include <stdio.h>
#include <math.h>
/* ------------------------------------ */
typedef struct
{
double n;
double d;
}fraction,
*pfraction;
/* ------------------------------------ */
fraction init_f(
double f_n,
double f_d)
{
fraction ft;
ft.n = f_n;
ft.d = f_d;
return (ft);
}
/* ------------------------------------ */
fraction init_f2(
double f_n,
double f_d)
{
fraction ft={f_n,f_d};
return (ft);
}
/* ------------------------------------
Le dénominateur négatif est traité dans une autre fonction.
*/
void p_f(
fraction f)
{
if( f.n==0) printf("0");
else if(f.d==1 && f.n==1) printf("1");
else if(f.d==1 && f.n> 0) printf("%.0f",f.n);
else if(f.d==1 && f.n< 0) printf("(%.0f)",f.n);
else printf("(%.0f/%.0f)",f.n,f.d);
}
/* ------------------------------------ */
int main(void)
{
fraction a = {4,3};
fraction b = init_f (1,1);
fraction c;
fraction d;
c = init_f (-1,1);
d = init_f2(4,5);
printf("\n\n a : ");p_f(a);
printf("\n\n b : ");p_f(b);
printf("\n\n c : ");p_f(c);
printf("\n\n d : ");p_f(d);
printf("\n\n");
printf("\nPress return to continue.\n");
getchar();
return 0;
}
Conclusion
[modifier | modifier le wikicode]Un nom pour vos fonctions
[modifier | modifier le wikicode]- Le plus difficile sera de trouver un nom pertinent à votre fonction.
- Lisez du code et choisissez ce qui vous plaît.
- Utiliser le nom des fonctions du c comme exemple.
Les lettres accentuées
[modifier | modifier le wikicode]- Éviter les lettres accentuées.
- Dans les printf();
- Pour nom de fonctions
- Dans les commentaires.
- Cela ne se passe pas correctement si l’on change de système d'exploitation, ou de pays.
- Que ce soit en c ou en Maple.
Information technique
[modifier | modifier le wikicode]Voir Programmation C/Fonctions et procédures sur Wikilivres .