Documente Academic
Documente Profesional
Documente Cultură
Algorithmique
- Lalgorithme est une mthode pour rsoudre un problme - Le programme est le codage lisible par lordinateur de cette mthode - Avant dcrire un programme, il est ncessaire davoir un algorithme * Il s'agit donc de fournir la solution un problme, la premire tape consiste donc analyser le problme, c'est--dire en cerner les limites et le mettre en forme dans un langage descriptif, on parle gnralement d'analyse pour dcrire le processus par lequel le problme est formalis. * Le langage de description utilis pour crire le rsultat de l'analyse est appel algorithme. * L'tape suivante consiste traduire l'algorithme dans un langage de programmation spcifique, il s'agit de la phase de programmation.
Algorithmique
L'algorithme est un moyen pour le programmeur de prsenter son approche du problme d'autres personnes. En effet, un algorithme est l'nonc dans un langage bien dfini d'une suite d'oprations permettant de rpondre au problme. Un algorithme doit donc tre : - lisible: l'algorithme doit tre comprhensible mme par un non-informaticien - de haut niveau: l'algorithme doit pouvoir tre traduit en n'importe quel langage de programmation, il ne doit donc pas faire appel des notions techniques relatives un programme particulier ou bien un systme d'exploitation donn - prcis: chaque lment de l'algorithme ne doit pas porter confusion, il est donc important de lever toute ambigut - concis: un algorithme ne doit pas dpasser une page. Si c'est le cas, il faut dcomposer le problme en plusieurs sous-problmes - structur: un algorithme doit tre compos de diffrentes parties facilement identifiables
compilateur
tant donn que chaque type dordinateur a son propre langage machine spcifique, donc pour un langage haut niveau il faut autant de compilateurs (ou dinterprteurs) quil y a de types dordinateurs (x86 comme Intel ou AMD, Mac, Sun, etc.) ou de systmes d'exploitations.
Haut niveau : proche de lhomme, vocabulaire et syntaxe plus riches - Python, Rebol, Ruby - Php, Perl, Tcl - C++, Java - Pascal - C, Fortran - Assembleur - Langage machine Bas niveau : proche de la machine, instructions lmentaires
On distingue habituellement deux grandes familles de langages de programmation: - les languages orients procdures (=langages fonctionnels ou procduraux) - les languages orients objets (=languages objets)
Les premiers langages utiliss en informatique sont dit impratifs . Il ne s'agit ni de langages procduraux ni de langages objets. Ils sont dsutes mme si quelques langages de ce type existent encore aujourd'hui. Un langage impratif organise le programme sous forme d'une srie d'instructions, regroupes par blocs et comprenant des sauts conditionnels permettant de revenir un bloc d'instructions si la condition est ralise. Les langages impratifs structurs souffrent nanmoins d'un manque de souplesse tant donn le caractre squentiel des instructions. Il ont t remplacs par les langages fonctionnels.
Interprtation et compilation
Les langages informatiques peuvent tre soit : - des langages interprts - des langages compils. Langages interprts Un langage informatique est par dfinition diffrent du langage machine. Il faut donc le traduire pour le rendre intelligible du point de vue du processeur. Un programme crit dans un langage interprt a besoin d'un programme auxiliaire (l'interprteur) pour traduire au fur et mesure les instructions du programme. Les langages interprts sont moins rapides que les compils mais plus souples car on n'a pas besoin recompiler si on fait des modifications.
Interprtation et compilation
Langage compil Un programme crit dans un langage dit compil va tre traduit une fois pour toutes par un programme annexe, appel compilateur, afin de gnrer un nouveau fichier qui sera autonome, c'est--dire qui n'aura plus besoin d'un programme autre que lui pour s'excuter; on dit d'ailleurs que ce fichier est excutable. Un programme crit dans un langage compil a comme avantage de ne plus avoir besoin, une fois compil, de programme annexe pour s'excuter. De plus, la traduction tant faite une fois pour toute, il est plus rapide l'excution. Toutefois il est moins souple qu'un programme crit avec un langage interprt car chaque modification du fichier source il faudra recompiler le programme pour que les modifications prennent effet. Un programme compil a pour avantage de garantir la scurit du code source. En effet, un langage interprt, tant directement intelligible (lisible), permet n'importe qui de connatre les secrets de fabrication d'un programme et donc de copier le code voire de le modifier. Il y a donc risque de non-respect des droits d'auteur. D'autre part, certaines applications scurises ncessitent la confidentialit du code pour viter le piratage
Interprtation et compilation
Langages intermdiaires Certains langages appartiennent en quelque sorte aux deux catgories (LISP, Java, Python, ..) car le programme crit avec ces langages peut dans certaines conditions subir une phase de compilation intermdiaire vers un fichier crit dans un langage qui n'est pas intelligible (donc diffrent du fichier source) et non excutable (ncessit d'un interprteur). Par exemple, les applets Java, petits programmes insrs parfois dans les pages Web, sont des fichiers qui sont compils mais que l'on ne peut excuter qu' partir d'un navigateur.
Lisp, Prolog Langages utiliss en intelligence artificielle qui traitent de essentiellement de listes. Scheme Scheme est une version modernise de Lisp. Les fonctions rcursives sont fortement utilises Fortran Un des premier langages, toujours utilis pour des tches mathmatiques. Il dispose d'une large bibliothque mathmatique.
int i = 4 ; type entier (entier : type prdfini int : mot cl du langage) Ici on dclare la variable i et on lui assigne la valeur 4 String s = Bonjour ; type chane La variable contient la chane Bonjour . Cette variable s est considre (lors de la dclaration) comme une chane mme si on lui assigne plus tard des entiers. Les variables sont des adresses mmoires. La dclaration consiste rserver un espace mmoire cette adresse (avec taille variable selon le type), l'assignation consiste mettre des donnes dans cet espace rserv.
Les priorits des oprateurs: Dans chaque langage il existe gnralement des priorits d'valuation des oprateurs, afin que l'ordinateur sache dans quel sens valuer les oprateurs lorsque plusieurs d'entre eux sont prsents dans une mme expression
Branchement conditionnel : - if then else ( si alors sinon) Les instructions du bloc "si" ne sont excutes que si la condition est vrifie. Les instructions du bloc "sinon" sont excutes seulement dans le cas contraire. - switch case
instructions
instructions
Boucle conditionnelle : - while do ou do while ( fait tant que ) Boucle inconditionnelle - For
Une condition est une expression boolenne. Elle est vrifie si elle vaut vrai (true). Oprateurs relationnels : <, <=, >, >=, =, /= ; et (and), ou (or), non (not); ou exclusif (xor); et alors (and then), ou sinon (or else); dans (in), dehors (not in)
La dcomposition du code en tches et sous- tches, le rend plus modulaire. Le programme est plus clair, plus lisible, plus aisment modifiable Les fonctions cachent les dtails dimplmentation : il suffit de savoir ce quelles font et non comment elles le font
Les procdures sont semblables aux fonctions, mais ne retournent rien (pas de donnes renvoyes)