Académique Documents
Professionnel Documents
Culture Documents
fonctions
Procédures et fonctions
• Pour la résolution d’un problème complexe,
• Il est préférable de décomposer le problème en des
sous problèmes.
• Pour chacun de ces sous problèmes on écrit un sous
programme qui sera appelé par l’algorithme principal.
• Un sous programme peut être une procédure ou une
fonction.
• Un sous programme (fonction ou procédure) est spécifié
par un nom, un type de retour et éventuellement une
liste de paramètres.
Procédures et fonctions
• Paramètres formels
Paramètres déclarés dans l’algorithme principal et qu’on
spécifie lors de l’appel d’un sous-programme
• Paramètres effectifs
Paramètres déclarés dans le sous-programme Formel
Exemple
void main ()
{int a; void pair (int b)
printf("Saisir un entier"); {if (b%2==0)
Effectif scanf("%d",&a); printf("%d est pair", b);}
pair(a);}
Procédures
Algorithme Exemple
Procédure Nom (paramètres formels) Procédure pair (a :entier)
Déclaration des variables locales Début
Début Si a mod 2 =0 alors
Liste des actions ecrire(a, " est pair")
Fin Fin si
Fin
Langage C Exemple
void Nom (paramètres formels) void pair (int a)
{ Déclaration des variables locales; {if (a%2==0)
actions; printf("%d est pair", a);
} }
Fonctions
Exemple
Algorithme Fonction pair (a :entier) : booleén
fonction Nom (paramètres formels) : Type retour
Début
Déclaration des variables locales
Si a mod 2 =0 alors
Début
retourner vrai
Liste des actions
sinon retourner faux
retourner resultat
Fin si
Fin
Fin
Langage C Exemple
int pair (int a)
type Nom (paramètres formels)
{if (a%2==0)
{ Déclaration des variables locales;
return 1;
actions;
else
return resultat; }
return 0;}
Procédures et fonctions :Types des
paramètres formels
• Paramètres données (in): ils ne changent pas de
valeur dans le sous programme. Leurs valeurs sont
plutôt utilisées.
• Mémorisation
Le nom d'une chaîne est le représentant de l'adresse du premier
caractère de la chaîne. Pour mémoriser une variable qui doit être capable
de contenir un texte de N caractères, nous avons besoin de N+1 octets en
mémoire:
char TXT[10] = "BONJOUR !";
Chaînes constantes
• 'x' est un caractère constant, qui a une valeur numérique:
'x' a la valeur 120 dans le code ASCII.
• La comparaison se fait lettre par lettre sachant que La chaîne vide "" précède
toutes les autres chaînes et le caractère vide '' précède tous les autres
caractères.
• isspace(<c>) si <c> est un signe d'espacement (' ', '\t', '\n', '\r', '\f’)
• tolower(<c>) retourne <c> converti en minuscule si <c> est une majuscule
• toupper(<c>) retourne <c> converti en majuscule si <c> est une
minuscule
Tableaux de chaînes de caractères
• Déclaration
char tableau_chaine[taille_tableau][taille_chaine];
• Exemple
char JOUR[7][9];
char JOUR[7][9]= {"lundi", "mardi", "mercredi", "jeudi",
"vendredi", "samedi", "dimanche"};
int i = 2;
printf("Aujourd'hui, c'est %s !\n", JOUR[i]);
Application
Lesquelles des chaînes suivantes sont initialisées correctement ? Corrigez les
déclarations fausses et indiquez pour chaque chaîne de caractères le nombre
d'octets qui sera réservé en mémoire.
a) char a[] = "un\ndeux\ntrois\n";
b) char b[12] = "un deux trois";
c) char c[] = 'abcdefg';
d) char d[10] = 'x';
e) char e[5] = "cinq";
f) char f[] = "Cette " "phrase" "est coupée";
g) char g[2] = {'a', '\0'};
h) char h[4] = {'a', 'b', 'c'};
i) char i[4] = "'o'";