Il est souhaitable, pour diverses raisons, de décomposer un problème en plusieurs sous-tâches, et de programmer ces sous-tâches comme des blocs indépendants. C’est le concept de la programmation modulaire qui utilise des sous-programmes. En langage C, il y a une seule sorte de sous-programmes : les fonctions. On commence d’abord avec l’écriture et les appels des fonctions. On verra plus tard les avantages de la programmation modulaire. A)Fonction naturelle avec return Une fonction « naturelle » est un sous-programme permettant de calculer et de « retourner » (avec return) un seul résultat de type simple (float, char et int dans le cadre du cours IFT 1810) à partir (fréquemment) d’une liste de paramètres (des données).Supposons que la variable c contienne un ‘b’ minuscule, alors c + ‘A’ – ‘a’ vaut 98 + 65 – 97 = 66 (le langage C fait la conversion automatique pour interpréter certains résultats quand il y a un conflit de types). Quel est le caractère dont l’ordre est 66? C’est la lettre ‘B’ en majuscule. La fonction retourne cette lettre comme résultat de la conversion. Exemple 4 : fonction qui retourne vrai ou faux comme résultat Écrire une fonction permettant de retourner vrai (1) ou faux (0) selon qu’un caractère est une voyelle ou non.
Écrire une instruction utilisant cette fonction pour afficher les 20 consonnes en majuscules à l’écran.La fonction suivante permet de calculer le prix total à payer d’un article taxable à partir du prix de l’article. Dans le calcul du prix total à payer, on a besoin des informations intermédiaires. On les déclare « localement » à l’intérieur de cette fonction. Ce genre de fonction est semblable à « Sub » en Visual Basic (ou « Procedure en PASCAL). Elle réalise une ou quelques tâches (trier, chercher, compter-afficher, calculer, etc.). Certains livres présentent la fonction principale comme fonction qui retourne un entier comme résultat :Cette manière permet d’éviter des avertissements (warning) à la compilation (au lieu d’en-tête main tout court). Cette méthode n’est pas très compréhensible pour les débutants en programmation. Il est préférable d’utiliser une fonction de type void :Le nom de la fonction ne contient pas de résultat de retour comme en PASCAL. Il faut utiliser le résultat retourné dans un bon contexte (affichage, affectation, comparaison, …). L’instruction « return » provoque la fin de la fonction. On revient ensuite à l’endroit où la fonction a été appellée. Il doit avoir au moins une instruction « return » dans la fonction.
Dans l’en-tête, on ne peut pas regrouper les paramètres de même type Supposons que la variable c contienne un ‘b’ minuscule, alors c + ‘A’ – ‘a’ vaut 98 + 65 – 97 = 66 (le langage C fait la conversion automatique pour interpréter certains résultats quand il y a un conflit de types). Quel est le caractère dont l’ordre est 66? C’est la lettre ‘B’ en majuscule. La fonction retourne cette lettre comme résultat de la conversion. Exemple 4 : fonction qui retourne vrai ou faux comme résultat Écrire une fonction permettant de retourner vrai (1) ou faux (0) selon qu’un caractère est une voyelle ou non. Écrire une instruction utilisant cette fonction pour afficher les 20 consonnes en majuscules à l’écran. Réaliser un programme permettant de : déclarer et remplir d’un tableau d’au maximum 10 000 entiers avec des valeurs aléatoires entre 500 et 30 000 afficher le contenu partiel du tableau : les 10 ers et les 5 derniers éléments du tableau déterminer et afficher la valeur minimale et maximale du tableau trier le tableau en ordre croissant afficher le contenu partiel du tableau : les 7ers et les 3 derniers éléments du tableau après le tri.