# Calculatrice Pour utiliser la calculatrice, exécuter le fichier `interface.py`. ## Principe de fonctionnement Il est possible d'entrer dans la barre de saisie une expression en notation préfixe, infixe ou postfixe. Pour cela, sélectionner la notation voulue dans le menu : `Notation > ... `. Pour la notation postfixe, il y a deux mode : * le mode expression, accessible par `Notation > postfixe (polonaise inversée) > mode expression` ; c'est le même mode qui est utilisé pour les autres notations. * et le mode interactif, accessible par `Notation > postfixe (polonaise inversée) > mode interactif`. Le principe de fonctionnement est alors similaire aux calculatrices NPI classiques, comme les HP : les termes sont entrés un à un. ## Fonctionnalités Les nombres entrés peuvent être entiers ou flottants, positifs ou négatifs. (Les nombres complexes ne sont pas implémentés, toutefois, en effectuant le calcul `-1 ^ 0.5 + 1 - 1`, on obtient précisément `1j`, donc il est *techniquement* possible de les employer, mais seules sont utilisables les opérations de base.) Les opérations et fonctions suivantes sont disponibles partout: `+` (addition), `-` (soustraction), `*`, `/`, `^`, `sin`, `cos`, `tan`, `asin`, `acos`, `atan`, `factorielle` (qui est en fait la fonction gamma, pour pouvoir entrer des flottants), `sqrt`. Les constantes `pi` et `e` sont disponibles. ### En notation préfixe et postixe (mode expression) Le signe `+` peut aussi être utilisé pour l'identité. Le signe `-` peut aussi être utilisé pour l'opposé. ### En notation postixe (mode interactif) L'opposé s'obtient en entrant `opp` dans la barre de saisie. La fonction factorielle peut aussi être entrée avec le signe `!`. `somme` effectue la somme de tous les termes dans la pile. `produit` effectue le produit de tous les termes dans la pile. `moy3` effectue la moyenne des 3 termes au sommet de la pile. ### En notation infixe Il n'y a pas plus de notations, mais les multiplications implicites sont comprises. Ex : `2 sin 3` est compris comme `2 * sin ( 3 )`. Sont également comprises les multiplications très implicites : `2 2` est compris comme `2 * 2`. En fait, dès qu'il manque une opération, le programme rajoute une multiplication. Pour éviter cela, il suffit d'ajouter l'opération voulue.