Maple interface

Project : imaple

Screen Shot


I Présentation de Maple
- Présentation générale et caractéristiques
o Les différents logiciels mathématiques
o Caractéristiques graphiques
- Le langage Maple
o Affectation des variables
o Procédures et fonctions
o boucles
- Performances et limitations
o plus de 2500 fonctions usuelles
o rapidité de calcul
o une syntaxe « barbare »
o un programme en ligne de commande
- Cmaple.exe

II Interface logiciel avec le C++
- La fonction pipe
- Quelques caractéristiques du C++
o un langage orienté object
o le polymorphisme
o l’héritage
- Windows.h
o Structure des pages Windows

III Le logiciel
- Capture d’écran
- Structure

Bibliographie

Annexe
- Le fichier source du programme




Maple est un logiciel orienté vers le calcul mathématique formel. Cette application est maître dans le domaine théorique et calculatoire. Elle reste donc largement répandu en université et couramment utilisé par les enseignants de mathématique

- Présentation générale et caractéristique

o Les différents logiciels mathématiques

Voici deux autres logiciels orientés vers le calcul mathématique

Matlab

Matlab est un environnement de calcul numérique orienté vers des applications professionnelles, largement connu et utilisé dans l'industrie.

Mathematica

Mathematica est un système logiciel modulaire dans lequel le noyau qui effectue les calculs est séparé de l’interface frontale qui traite les informations avec l’utilisateur

o Caractéristiques graphiques

Interface

L’interface de Maple se présente sous la forme d’un éditeur de texte sur lequel il est possible d’ouvrir des feuilles de calcul ( appelé woksheet ) afin d’exécuter des requêtes. Une fois une fonction définie, elle peut être représentée graphiquement, intégrée, dérivée ou évaluée grâce à un menu sur le click-droit. D’autre fonctions sur disponibles sur la barre d’outil tel que des outils pour modifier un tracé de courbe ou un graphique (zoom, déplacer, changer les repère), pour importer des images (ou autre document flash, power point, words…).

Latex

Latex est un petit programme additionnel de Maple permettant de représenter les diverses fonctions mathématiques sous la forme d’image et de les exporter sur la feuille de calcul. C’est cet outil qui génère les tracés de courbe et permet l’utilisation des symboles mathématiques

Graphisme 2d

Voici deux exemples de la fonction plot:

restart;
with(plots):
plot( sin(x), x=0..infinity );


Graphisme 3d

restart;
with(plots):
animate3d(cos(t*x)*sin(t*y),x=-Pi..Pi, y=-Pi..Pi,t=1..2);
fieldplot3d([2*x,2*y,1],x=-1..1,y=-1..1,z=-1..1,grid=[5,5,5]) ;



Expression mathématique

Latex permet également d’utiliser les symboles mathématiques

Int(sqrt(x)*exp(-x^2)*ln(x),x = 0 .. infinity);



Exportation html

Maple offre également la possibilité d’exporter une fonction vers une page html incluant les images crées avec latex. ( utile pour la publication de ses recherches )

- Le langage Maple

Le langage Maple est un langage linéaire un peu particulier puisqu’il a du être adapté aux équations mathématiques. Quelqu’une de ses particularités sont détaillés si dessous.

o Affectation des variables

X : = 5 ;

o Procédures et fonctions

Les procédures sont des fonctions admettant en entrée une unique variable

restart;

f := proc(x) x^2 end;
f := proc(x) x^2 end
f(a+b);
2
(a + b)
a := 3; b := 4.5;
a := 3
b := 4.5
f(a+b);
56.25

la fonction ici réalisé est la fonction carré

o boucle

Comme tout langage de software, Maple offre la possibilitée de réaliser des boucles

for i from 6 by 2 to 100 do print(i) od;
afficher les nombres de 6 à 100 par pas de 2

- Performance et limitation

o plus de 2500 fonctions usuelles

Le nombre de fonctions mathématiques répertoriées par Maple est relativement important. De plus, ce logiciel nous permet de redéfinir les fonctions à notre convenance ou d’en recréer d’autre. Voici une liste non exhaustive de fonctions utilisées par Maple :

Fonctions trigonométriques

sinus cosinus tangente secante cosecante cotangente
direct sin cos tan sec csc cot
hyperbolique sinh cosh tanh sech csch coth
inverse arcsin arccos arctan arcsec arccsc arccot
Hyperbolique inverse arcsinh arccosh arctanh arcsech arccsch arccoth
intégrale Si Ci
Hyperbolique intégrale Shi Chi

Autre fonction définie par une intégrale
Li - Logarithme intégral
Ei - Exponentielle intégrale

Logarithme , exponentielle, factorielle et racine carrée
ln - logarithme naturel
log - logarithme sur une base arbitraire
log10 - log de base 10
exp - fonction exponentiel
factorial - fonction factoriel ( x ! )
sqrt - racine carrée

Séquentiel
max, min - maximum/minimum of a sequence of real values
round - l’entier le plus proche d’un nombre
ceil - l’entier inférieur le plus proche d’un nombre

Complexe
argument - argument d’un nombre complexe
conjugate - calcul le conjugué d’un nombre complexe
Im - partie imaginaire d’un nombre complexe
Re - partie réelle d’un nombre complexe
Polar - représentation des nombres complexe en coordonnés polaire
abs - valeur absolue

Fonction Eulérienne
Beta - fonction Beta
GAMMA - Gamma and incomplete Gamma functions

Zeta - Fonction Zeta de Riemann and Hurwitz

Fonction Erreur
erf - fonction erreur
erfc - fonction erreur complémenté
erfi - fonction erreur imaginaire

Dirac - fonction Dirac
Heaviside - fonction Porte

Autre fonction :
Jacobienne, Kelvin, Bessel, Kummer, Legendre, LerchPhi, Lommel, Meijer, Lamber, Weber, Weierstras, Whittaker

o rapidité de calcul

Un des logiciels le plus rapide sur le marché.

o output et input

Les fichiers Maple sont enregistrés aux formats *.mws et *.txt. Le logiciel enregistre également dans le fichier les résultats (avantage pour la publication mais inconvénient pour la réutilisation du code).

o une syntaxe « barbare »

La syntaxe utilisée par Maple présente une grande féxibilité pour l’utilisation ou l’élaboration de fonctions mathématiques .Toutefois, l’utilisation de ce logiciel pour les personnes non-habituées représente une réelle difficulté. De plus il est difficile de lire les fichiers msw pour un utilisateur ne connaissant pas la syntaxe.

o un programme en ligne de commande

Un avantage et un inconvénient de ce programme est l’interprétation des résultats en ligne de commande.

- Cmaple.exe

Il existe une alternative à l’utilisation de Maple version Windows : cmaple.exe. Ce programme utilise la base de calcul de Maple et fonction en mode dos



Le C est un langage système (donc permettant d’accéder à un niveau de ressource dis bas permettant l’accès aux disque dur, à la mémoires vive, aux registre ,aux ports…) et un langage évolué (utilisant une syntaxe interprétée et donc plus facile d’écriture) créé dans les années 1970 par un ingénieur du nom de Dennis Ritchie.
Le C++ ( baptisé C with classes) est né en 1980

- Quelques caractéristiques du C++

Ce langage a révolutionné l’informatique

o Un langage orienté object

Les premiers langages de software étaient généralement constitués d’une suite d’instructions s’exécutant de manière linéaire. (nous avons vu l’année précédente un exemple avec l’assembleur. C’est également le cas de Maple). Cette approche linéaire, bien que simple à mettre en œuvre, a très rapidement montré ses limites. En effet les programmes monolithiques de ce type ne se prêtent pas à l’écriture de grosses applications et ne favorisent pas la réutilisation du code. L’approche procédurale (ou modulaire) consiste à découper un programme en une série de fonctions. Dans le cas de l’approche procédurale, un programme correspond à l’assemblage de plusieurs fonctions qui s’appellent entres-elle. Ce qui n’est pas le cas de Maple puisqu’il n’existe pas de fonction principale et l’exécution est en ligne de commande. Le C++ passe de la software procédurale à la software orientée object.
Le terme object est parfois abusivement employé pour désigner ce que l’on appelle en C++ une classe (un moule, un gabarit correspondant à la déclaration d’un type de donné).
Un programme qui utilise l’approche object s’appuie sur trois techniques fondamentales qui sont :

L’encapsulation

permettant de réunir au sein d’une même entité les variables et les fonctions. Cette technique s’accompagne d’un système de protection qui permet de contrôler l’accès aux donnés. Cela signifie qu’il est possible de cacher le fonctionnement interne d’une classe.

l’héritage

permettant de réutiliser les classes existantes. Grâce à cette technique, il est possible de définir des arborescences de classes (générales vers spécialisées).

le polymorphisme

s’appliquant aux fonctions membres des classe et permettant à deux objects de réagir différemment au même appel d’une méthode (pour des types différant par exemple).

- Windows.h

Windows.h est une librairie d’entête (.h) permettant de réaliser des applications windows.

- la fonction pipe

Une fonction intéressante du C++ est la fonction pipe permettant d’ouvrir un programme (dans notre cas cmaple.exe), de lui transférer des arguments en ligne de commande ici –c « read(fichier_transfert) » commandant à Maple d’ouvrir un fichier texte et de l’exécuter. Le résultat de la requête est retourné par la fonction print() de Maple.
Nous avons à présents tous les outils pour réaliser une interface de contrôle à Maple


- Capture d’écran

Sur cette capture d’écran on peux voir les deux principaux dialogues du logiciel : l’interface permettant d’éditer le texte Maple avant d’envoyer la requête, la calculette permettant de rendre le langage Maple transparent (ou presque) à l’utilisateur et la fenêtre résultat du calcul. On peut également remarquer le fichier créé transfert_in dans lequel est enregistrer la requête envoyé à Maple


- Sa structure

Imaple est constitué de 5 fichiers

o Imaple.dev :

Fichier projet du programme. Ce fichier n’est pas indispensable puisqu’il est créé par Dev C++ (le compilateur utiliser pour ce projet) lors de la première compilation du programme

o main.cpp :

Fichier source principal du programme . Ce fichier contient la majorité des fonctions utilisées pour le logiciel.
Il comprend entre autre le point d’entrée de l’application avec la fonction WinMain (qui correspond à la fonction main() pour Borland C++ et pour le C en exécution dos) ainsi que les deux procédures DialogProc et WindowProc recevant les messages envoyés par exemple par les boutons. Les deux procédures correspondent aux deux fenêtres interface Maple et calculette et possèdent chacune leur handle (boucle fermer testant l’existence d’un message msg d’entrée) Ce fichier comprend également la définition des classes du logiciel (icône, curseur, background …) ainsi que la déclaration de la fonction transfert_maple() permettant de créer le pipe entre le logiciel et cmaple.exe

o res.rc :

fichier ressource du projet. Ce fichier comprend essentiellement le template de la boite de dialogue calculette.

Dans le dossier includes
o ressources.h :

Fichier comportant les fonctions : CreateWindows, CreateButton, CreateStatic, CreateEdit permettant respectivement de créer la fenêtre principale, les boutons, le texte et une boite d’édition. Ces fonctions ont été réalisées dans un souci de meilleur lisibilité du programme principal.

o define.h :

Fichier contenant les variables statiques interprétées par le pré-procésseur . Leurs valeurs ne peuvent pas être changées. Ces variables sont écrites en MAJUSCULE et sont remplacer avant la compilation par leur valeur attribuées.

o app_winedi.ico :

fichier icône du programme

o app_ediwin.cur :

Curseur utilisé dans le programme

Les autres fichier sont créés lors de la compilation et ne sont pas indispensable. On trouve entre autre
- main.o fichier object relatif au lien lors de la compilation
- projet01_private.rc ressource privé du compilateur
- projet01_private.res
- Makefile.win
- Le fichier transfert_in est créé par le programme et correspond à la requête envoyé à maple
Attention pour cette version du programme ( V 1.2 ) le dossier interface maple v1.2 doit obligatoirement être dans le dossier BIN.WNT de maple pour fonctionner correctement.


Livre :
Le langage C++ collection CampusPress, 425 pages, écrit par Stéphane Dupin
Site Internet :
Ressources ou fichiers sources de quelques programmes :
o http://www.CPPfrance.com
o http://www.softwareworld.com
o http://www.planet-source-code.com
forum
o http://www.developpez.com
tutorial
o http://perso-iti.enst-bretagne.fr/~brunet/Cours/Tutorial_C++/index.html
L’aide du logiciel Maple (relativement complète)


Download
documentation
software (exe)

angelfires a écrit le   2009/01/22 à 13 h 04
La MFC est la librairie graphique utilise par windows cependant elle n'est pas indispensable. Il en existe d'autre : Win32, QT, Labview, X11, GTK ...
fathi a écrit le   2009/01/15 à 12 h 42
bonjour,
j'ai besoin de document indiqunat l'utilisation de MFC pour faire une application.
merci d'avance
[Write a comment (2)]

contact - link to this site