# ALGORITHMIQUE ## les "bases" comment compter, binaire, décimal octet, hexa ## Variables : mettre une valeur dans une boite en lui donnat un nom s'écrit : ``` var a entier; a=2; ``` *Note* : zéro s'écrit avec un O barré : `0` Types de variables possibles : - boolean / booléen / bool : vrai / faux - entier / integer / int : 1 ... 3 .... 2345 .... valeur max pour l'ordinateur - décimal / float : 0,3 ... 1,2 ... 56,2345 .... valeur max pour l'ordinateur - alphanumérique / chaine / string : "bonjour", "a123", ... Par convention on mets des guillements autour. Il existe souvent des variables prédéfinies (fonction des langages) qui ne peuvent être changée, on appelle alors ces variables des **constantes**. Pi est un bon exemple. Exemple en JavaScript : ``` Math.PI ``` Exemple en PHP ``` M_PI ``` Au dela des variables simple il existe des variables structurés comme les listes ou les piles (que nous ne détaillerons pas ici). La plus communément utilisée est le tableau. Un tableau est série de boite avec un seul nom. On écrira / lira dans un tableau en référençant les cases de celui si par un index numérique commençant à 0. on l'initialisera avec une liste de valeurs entre crochets; ``` var tab tableau; tab = [32,12,234,98,6,8,29,15,1053,14,34]; afficher tab[0]; /* donne 32 */ afficher tab[3]; /* donne 98 */ tab[1]=639; /* le tableau deviens [32,639,234,98,6,8,29,15,1053,14,34] */ ``` ## Opérateurs Un opérateur est un symbole qui utilise ou des opérandes et vaut quelque chose. - Opérateurs d'affectation : =, ++, --, +=, -= - Opérateurs artimétiques binaires : +, *, /, - - Opérateur artimétiques unaire : - - Opérateurs conditionnels ou logiques binaires : <, >, ≤, ≥, et, ou, == - Opérateurs conditionnel unaire : ! Pour les opérateur d'affectations : - = permet de mettre une valeur dans une variable. - Les opérateurs unaires -- et ++ correspondent respectivement à ```i=i-1``` et ```i=i+1``` - Les opérateurs unaires -= et += permettre d'incrémenter d'une valeur donnée. i-=3 et i+=5 correspondent respectivement à ```i=i-3``` et ```i=i+5```. i++ et i-- peuvent donc aussi s'écrire respectivement ```i-=1``` et ```i+=1``` **Note** : un utilisera * pour multiplier pour ne pas le confondre avec un X minuscule. ## structures un structure est une technique "d'embranchement". ### structures conditionelles - si alors sinon ``` si (condition) alors _action 1_ sinon _action 2_ fin si ``` - selon cas ``` selon reponse cas "bonjour" _action 1_ fin cas cas "merci" _action 2_ fin cas cas par defaut _action 3_ fin cas fin selon ``` ### structures itératives - pour Cette structure permet d'éxécuter une nombre de fois donnée une action Il y a 3 choses à préciser, la valeur de départ, la condition de fin et la méthode d'incrément. Exemple pour la multiplication par addition ``` variable opD,opG,resultat entier; resultat = 0; opD=2; opG=3; pour i=0; i<opD; i++ resultat = resultat+opG; fin pour; afficher resultat; ``` - tant que exécuter des actions tant qu'une condition est respectée. ``` variable choix chaine; choix = "oui" tant que choix == "oui" faire _action 1_ _action 2_ afficher "continuer ?"; lire choix; fin tantque; ``` - faire tant que (do-while) exécuter des actions tant qu'un condition est respectée, mais au moins une fois ``` variable choix chaine; faire _action 1_ _action 2_ afficher "continuer ?"; lire choix; tant que choix == "oui"; ``` ## instructions : un instruction est un élément de programmation "standard" dans la majorité des languages. Par convention on terminera une instruction par ; ### afficher affiche le résultat (sur un écran par exemple) ``` afficher "bonjour"; var a entier; a=2; afficher a; ``` ### lire lire la saisie d'un utilisateur ``` var reponse chaine; lire reponse; afficher reponse; ``` ## commentaires Comme en css ou en javascript, par convention nous utiliserons /* */ pour les commentaires en pseudo code. ## exemples Calculer la surface d'un carré ou d'un rond ``` var dim entier; var surface décimal; var type chaine; afficher "Carré ou rond ?"; lire type; Si type == "carré" alors afficher "coté du carré ? " lire dim; afficher "surface : " afficher dim*dim; Sinon si type == "rond" alors afficher "rayon du rond ? " lire dim; afficher "surface : " afficher PI * dim * dim; Sinon afficher "rond ou carré uniquement"; Fin si; ```