Accueil
 COURS INFORMATIQUE
 Cours Algorithmique
 Cours ASP
 Cours CSS
 Cours HTML
 Cours PHP / MySQL
 Cours Réseaux
 Cours SQL
 Cours Visual Basic
 ARTICLES
  Conception de sites
  Droit & Internet
  e-commerce
  Société
  Strategies du web
  Technologies Web
  Marketing Web
 LIVRES
  ASP/ASP.Net
  C/C++/C#
  Conception de sites
  DHTML/CSS
  Gestion de Projet
  HTML/Internet
  Java/JSP/J2EE
  JavaScript/VbScript
  Juridique
  Marketing/Stratégie
  PHP/Linux/Unix
  Réseaux
  XML/XHTML/XSL
 NETALYA RECOMMANDE
Reussir un projet de site web

Cours d'algorithmiqueCours d'algorithmique N°7 : les fonctions prédéfinies

Auteur : Christophe Darmangeat

Infinite Menus, Copyright 2006, OpenCube Inc. All Rights Reserved.

Certains traitements ne peuvent être effectués par un algorithme, aussi savant soit-il.

C’est par exemple le cas du calcul du sinus d’un angle : pour en obtenir une valeur approchée, il faudrait appliquer une formule d’une complexité à vous glacer le sang. Aussi, que se passe-t-il sur les petites calculatrices que vous connaissez tous ? On vous fournit quelques touches spéciales, dites touches de fonctions, qui vous permettent par exemple de connaître immédiatement ce résultat. Sur votre calculatrice, si vous voulez connaître le sinus de 35°, vous taperez 35, puis la touche SIN, et vous aurez le résultat.

Tout langage de programmation propose ainsi un certain nombre de fonctions ; certaines sont indispensables, car elles permettent d’effectuer des traitements qui seraient sans elles impossibles. D’autres servent à soulager le programmeur, en lui épargnant de longs algorithmes.

1. Structure générale des fonctions

Reprenons l’exemple du sinus. Les langages proposent généralement une fonction SIN. Si nous voulons stocker le sinus de 35 dans la variable A, nous écrirons :

A ï Sin(35)

Une fonction est donc constituée de trois parties :

  • le nom proprement dit de la fonction. Ce nom ne s’invente pas ! Il doit impérativement correspondre à une fonction proposée par le langage.
  • deux parenthèses, une ouvrante, une fermante
  • une liste de valeurs, indispensables à la bonne exécution de la fonction. Ces valeurs s’appellent des arguments, ou des paramètres. Certaines fonctions exigent un seul argument, d’autres deux, etc. et d’autres encore aucun. A noter que même dans le cas de ces fonctions n’exigeant aucun argument, les parenthèses restent obligatoires. Le nombre d’arguments nécessaire pour une fonction donnée ne s’invente pas : il est fixé par le langage. Par exemple, la fonction sinus a besoin d’un argument (logique, c’est la valeur de l’angle). Si vous essayez de l’exécuter en lui donnant deux arguments, ou aucun, cela déclenchera une erreur à l’exécution. Notez également que les arguments doivent être d’un certain type, et qu’il faut respecter ces types.

2. Les fonctions de texte

Une catégorie privilégiée de fonctions est celle qui nous permet de manipuler des chaînes de caractères. Nous avons déjà vu qu’on pouvait facilement " coller " deux chaînes l’une à l’autre avec l’opérateur de concaténation &. Mais ce que nous ne pouvions pas faire, et qui va être maintenant possible, c’est pratiquer des extractions de chaînes (moins douloureuses, il faut le noter, que les extractions dentaires).

Tous les langages, je dis bien tous, proposent peu ou prou les fonctions suivantes, même si le nom et la syntaxe peuvent varier d’un langage à l’autre :

Len(chaîne)renvoie le nombre de caractères d’une chaîne
Mid(chaîne, n1, n2) renvoie un extrait de la chaîne, commençant au caractère n1 et faisant n2 caractères de long.
Left(chaîne, n) renvoie les n caractères les plus à gauche dans chaîne.
Right(chaîne, n) renvoie les n caractères les plus à droite dans chaîne

Enfin, souvent on dispose également de :

Trouve(chaîne1, chaîne2) renvoie un nombre correspondant à la position de chaîne2 dans chaîne1. Si chaîne2 n’est pas comprise dans chaîne1, la fonction renvoie zéro.

Exemples :

Len("Bonjour, ça va ?")vaut16
Len("")vaut0
Mid("Zorro is back", 4, 6)vaut"o est a"
Mid("Zorro is back", 12, 1)vaut"r"
Left("Et pourtant…", 8)vaut"Et pourt"
Right("Et pourtant…", 4)vaut"t…"
Trouve("Un pur bonheur", "pur")vaut3
Trouve("Un pur bonheur", "techno")vaut0

Il existe aussi dans tous les langages une fonction qui renvoie le caractère correspondant à un code Ascii donné (fonction Asc), et Lycée de Versailles (fonction Chr) :

Asc("N")vaut78
Chr(63)vaut"?" 

Avec tout çà, on va faire des miracles.

3. Deux fonctions classiques

Une fonction extrêmement répandue est celle qui permet de récupérer la partie entière d’un nombre :

Après :A ï Ent(3,228)A vaut 3

Cette fonction est notamment indispensable pour effectuer le célébrissime test de parité (voir exercice dans pas longtemps).

Une autre fonction classique , car très utile, est celle qui génère un nombre choisi au hasard.

Tous les programmes de jeu, ou presque, ont besoin de ce type d’outils, qu’il s’agisse de simuler un lancer de dés ou le déplacement chaotique du vaisseau spatial de l’enfer de la mort piloté par l’infâme Zorglub, qui veut faire main basse sur l’Univers (heureusement vous êtes là pour l’en empêcher, ouf).

Mais il n’y a pas que les jeux qui ont besoin de générer des nombres aléatoires. La modélisation (physique, géographique, économique, etc.) a parfois recours à des modèles dits stochastiques (chouette, encore un nouveau mot savant !). Ce sont des modèles dans lesquels les variables se déduisent les unes des autres par des relations déterministes (autrement dit des calculs), mais où l’on simule la part d’incertitude par une " fourchette " de hasard.

Par exemple, un modèle démographique supposera qu’une femme a en moyenne x enfants au cours de sa vie, mettons 1,5. Mais il supposera aussi que sur une population donnée, ce chiffre peut fluctuer entre 1,35 et 1,65 (si on laisse une part d’incertitude de 10%). Chaque année, c’est-à-dire chaque série de calcul des valeurs du modèle, on aura ainsi besoin de faire choisir à la machine un nombre au hasard compris entre 1,35 et 1,65.

Dans tous les langages, cette fonction existe et produit le résultat suivant :

Après :Toto ï Alea()0 =< Toto < 1

Il est indispensable d’apprendre à manier cette fonction, alors autant que ce soit fait :


Nous vous informons que ce cours constitue une œuvre protégée en France par le Code de la Propriété Intellectuelle, et à l’étranger par les conventions internationales en vigueur sur le droit d’auteur. La violation de l’un des droits d’auteur de l’œuvre est un délit de contrefaçon. Il est donc interdit, à titre privé ou public, de reproduire, copier, vendre, revendre ou exploiter, que ce soit dans un but commercial ou purement gratuit, ce cours, sauf accord exprès et préalable de son auteur.


Google
 
 RESSOURCES GRATUITES
 Caractères spéciaux
 Code Couleurs HTML
 Compresseur images
 Générateur Méta Tags
 Références HTML
 Scripts : ASP
 Scripts : Java Scripts
 PRATIQUE / OUTILS
 Salons Informatiques
 Astuces Windows
 Offres d'Emploi Web
 Syndication Contenu
 TÉLÉCHARGEMENTS
 Utilitaires système
 Logiciels pratiques
 Jeux & démos
 INFOS SITE
 Contacts
 Mentions légales
 NewsList
 Qui sommes-nous ?
 PARTENAIRES
 Jeux et Jouets
 Murielle Cahen
 Cours d'anglais
 Droit NTIC
 Directeur Internet
 Australie