Seance2c TMIRI
Seance2c TMIRI
Seance2c TMIRI
Prototype de la fonction
type_retour nom_fonction (type_arg nom–1,..., type_arg nom–n);
Définition de la fonction
type_retour nom_fonction (type_arg nom–1, ..., type_arg nom–n);
{
/* instructions; */
}
Définition d’une fonction
Lors de leur définition ou de leur utilisation les fonctions sont distinguées des
variables par la présence des parenthèses ouvrantes et fermantes.
Une fonction contient :
– une interface ;
– un corps de fonction qui est en fait un bloc d’instructions.
{ Corps
int c; Bloc
c= a + b;
return C;
}
Fig Structure d’une fonction
L’interface complète d’une fonction contient :
– la déclaration du type de retour et du nom de la fonction ;
– une parenthèse ouvrante ;
– la déclaration des types et des noms des paramètres ;
– une parenthèse fermante.
Déclarer une fonction
printf("Celsius\tFarenheit\n");
for(d = start; d <= end; d += step, lines++)
printf("%.1lf\t%.1lf\n", d, d * 1.8 + 32);
return lines;
}
Valeur renvoyée
Appeler une fonction
IMPORTANT: cette instruction spécifie comment la fonction est définie
#include <stdio.h>
void main(void)
{
int combien; Le compilateur attend des
double end = 100.0; doubles; les conversions sont
automatiques
combien = print_table(1.0,end,3);
print_table(end, 200, 15);
}
Règles de visibilité des variables
Les variables ne peuvent être utilisées que là où elles sont déclarées
double func(int x);
int glob=0; // variable globale
void main(void)
{
int i = 5, j, k = 2; //lacales à main
glob++;
func (i);
func (k);
}
double func(int v)
{
double d, f =v; //lacales à func
glob++;
f += glob;
return f;
}
Le tableau suivant donne des exemples de définitions de fonctions en C.
Exercice
Ecrire un programme en C avec une fonction qui permet de
calculer le cube d’un nombre
Fonctionnement
La Figure représente un programme qui appelle trois fonctions. Les
fonctions peuvent être appelées autant de fois que nécessaire et dans
n’importe quel ordre.
char other[] = “Al Hoceima"; ‘A' ‘l' 32 ‘H' ‘o’ ‘c' ‘e' ‘i' ‘m' ‘a' 0
char characters[7] = "No null"; 'N' 'o' 32 'n' 'u' 'l' 'l'
Pas de ‘\0’
Entrées/Sorties Standards
• getchar() : lire un caractère sur entrée standard (valeur -1 = EOF = fin)
• putchar() : écrire un caractère sur sortie standard
Exemple: Copie de Input sur Output.
main(){
char c; main(){
c = getchar(); char c;
while (c != EOF) { while ( (c=getchar())!= EOF)
putchar(c); putchar(c);
c = getchar(); }
}
}
• Fichiers stdin et stdout: Tout programme lit ou écrit sur ces fichiers (défaut clavier et écran).
Affichage à l'écran des strings
• Soit caractère par caractère, avec le format “%c” ou putchar,
• ou, plus simplement, avec le format “%s” ou puts .
int i = 0;
last_name[3] = ‘\0’; Min
}
while(last_name[i] != '\0') printf("%s\n", last_name);
printf("%c", last_name[i++]); puts(last_name);
printf("\n");
Saisie des strings
char texte[30];
printf("ENTRER UN TEXTE: ");
scanf("%s", texte); //est équivalent à gets(texte);
#include <stdio.h>
#include <string.h>
Affectation de strings :
Les strings peuvent être void main(void) {
initialisés avec “=”,
char who[] = "Tony Bloot";
mais pas affectés avec “=”
(ce sont des tableaux!) who = "John Minor";
strcpy(who, "John Minor");
}