Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Les remarques
Les opérateurs
Référence des fonctions
Les premiers pas
Des exemples de programmes
Les variables, les opérateurs et les expressions
Les données
Les fonctions standards
Exécution d'Algae
Préface
Notes légal
Dictionnaire
Recherche

Les données

Les entités sont les objets de base (constantes et variables) d'Algae. Elles contiennent des membres et des éléments. Les membres contiennent des informations sur l'entité, comme le nombre de lignes d'une matrice. Les éléments d'une entité, s'il en existe, contiennent des données telles que la valeur d'un scalaire. Il existe cinq classes :

Classes Description
`scalar' La structure de données « scalaire » contient un seul élément, sa valeur, qui peut avoir l'un des types de données décrits ci-dessus. Ses membres sont :
Membre Description
`class' La chaîne de caractères «scalaire».
`type' Le type (comme «integer» ou «real»).
Notez qu'un scalaire n'est pas la même chose qu'un vecteur ou une matrice à un élément.
`vector' L'entité «vecteur» contient un tableau unidimensionnel d'éléments. Ses membres sont :
Membre Description
`class' La chaîne de caractères `"vector"'.
`type' Le type (comme `"integer"' or `"real"').
`density' Soit «dense» soit «sparse».
`ne' Le nombre d'éléments.
`nn' Le nombre d'éléments non zéros.
`eid' Les étiquettes des éléments.
Les étiquettes des éléments d'un vecteur sont elles-mêmes un vecteur.
`matrix' La structure de données « matrice » contient des tableaux bidimensionnels d'éléments. Elle contient zéro ou plusieurs lignes et colonnes. Les membres d'une matrice sont :
Membre Description
`class' La chaîne de caractères `"matrix"'.
`type' Le type (comme `"integer"' ou `"real"').
`symmetry' L'un des termes `"general"', `"symmetric"', ou `"hermitian"'.
`density' L'un des termes `"dense"', `"sparse"' ou `"sparse_upper"'.
`nr' Le nombre de lignes.
`nc' Le nombre de colonnes.
`nn' Le nombre d'éléments non zéros. Pour les matrices avec une densité «sparse_upper», ce nombre n'inclut pas les éléments sur la diagonale, étant tous entreposés.
`rid' Les étiquettes des lignes.
`cid' Les étiquettes des colonnes.
Les étiquettes des lignes et des colonnes d'une matrice sont des vecteurs. Le vecteur d'étiquettes de lignes comporte le même nombre d'éléments que sa matrice comporte de lignes, et il en va de même pour l'étiquette des colonnes.
`table' L'objet `table' est comme un compartiment pouvant contenir n'importe quel nombre d'autres objets. Plusieurs fonctions renvoient des tables. Par exemple, la fonction eig renvoie une table qui contient les valeurs des matrices et des vecteurs. Les entités contenues dans une table en sont membres, elles peuvent donc être extraites à l'aide de l'opérateur . Ainsi, eig(A).values ??renvoie les valeurs propres de `A'.
`function' Les fonctions sont des entités comme les scalaires et les matrices, et peuvent être utilisées de la même manière. Les fonctions ont deux membres : «class», étant «function», et «ilk», étant soit «user», soit «builtin».

Les classes scalaire, vectorielle et matricielle sont connues collectivement sous le nom de tableaux. Ce sont les seules classes continuant des éléments, et toutes ont le type de membre spécifiant le type de données. Il existe quatre types :

Type Description
`integer' Sur la plupart des machines, il s'agit d'un entier 32 bits, comme 42 ou -273.
`real' Il s'agit d'un nombre à virgule flottante comme 3,1415. Il est entreposé en 64 bits sur la plupart des machines.
`complex' Il s'agit d'un nombre complexe comportant à la fois des parties réelles et imaginaires.
`character' Il s'agit d'une chaîne de caractères telle que «Bonjour».

Les constantes scalaires sont spécifiées de manière similaire à celle utilisée dans d'autres langages de programmation. Les constantes numériques peuvent être données sous forme décimale, comme «32» ou «32,0», ou sous forme de notation scientifique, comme «3,2E1». Dans cette dernière notation, les lettres «e» et «E» peuvent être utilisées de manière interchangeable pour préfixer l'exposant. Les espaces blancs (espace, tabulation,...) sont bien sûr importants dans ce contexte, de sorte que « 1,2e+3 » (1200,0) n'est certainement pas la même chose que « 1,2e +3 » (4,2).

Une constante `character' est une séquence d'un ou plusieurs caractères entourés de guillemets doubles correspondants. Dans les guillemets, le caractère barre oblique inverse peut être utilisé pour introduire des «séquences d'échappement» pour les caractères inhabituels comme la nouvelle ligne. Par exemple, la chaîne de caractères `"\""' est une chaîne de caractères contenant un seul caractère (le guillemet double droit). Les séquences d'échappement suivantes peuvent être utilisées :

Séquence d'échappement Description
\a Signal sonore "bip"
\b Retour arrière
\e Échappement
\f Saut de page
\n Nouvelle ligne
\r Retour chariot
\t Tabulation
\v Tabulation verticale
\ooo Nombre octal
\xhh Nombre hexadécimal

La séquence d'échappement \ooo se compose d'une barre oblique inverse suivie d'un, deux ou trois chiffres octaux, étant utilisés pour spécifier la valeur du caractère souhaité. Par exemple, \33 est le caractère d'échappement ASCII (qui est également donné par \e). De même, la séquence \xhh se compose d'une barre oblique inverse suivie de « x », suivi d'un ou deux chiffres hexadécimaux, qui spécifient la valeur du caractère souhaité. Par exemple, \x1b spécifie également le caractère d'échappement ASCII.

Si le caractère suivant la barre oblique inverse n'est pas l'un de ceux spécifiés ci-dessus, alors ce caractère est pris au sens littéral. Par exemple, \" spécifie le caractère guillemet double, et non la fin de la constante de caractère.

Les matrices peuvent être générées en spécifiant leurs éléments entre parenthèses. Les virgules séparent les éléments dans les lignes et les points-virgules séparent les lignes. Ainsi, [1,2;3,4] spécifie la matrice :

[ 1  2 ]
[ 3  4 ]

Un vecteur peut être généré en utilisant l'une des formes «i:j» ou «i:j:k». Il est obtenu en commençant par la valeur «i» et en incrémentant de «k» (ou de 1 si la première forme est utilisée) tout en restant entre «i» et «j», inclus. (Notez que ce n'est pas le même format utilisé par MATLAB.) Par exemple, [1:8:2] est identique à [1,3,5,7]. Tous les éléments d'une matrice ont le même type (`integer', `real',...); la conversion sera effectuée automatiquement si possible.

Les termes entre parenthèses peuvent être des constantes, des variables ou des expressions. Par exemple, [1+2,3] est identique à [3,3]. Des matrices peuvent être impliquées, à condition que leurs dimensions soient appropriées. Par exemple, si la variable «A» est définie comme étant égale à la matrice carrée «[1,2 ; 3,4]», une nouvelle colonne pourrait lui être ajoutée avec l'expression [A,[5 ; 6]] pour obtenir :

[ 1  2  5 ]
[ 3  4  6 ]

Les matrices peuvent être partitionnées en spécifiant les numéros de ligne et de colonne souhaités entre parenthèses. Par exemple, si «A» est une matrice précédemment définie, alors A[1;1] spécifie un scalaire ayant la valeur de l'élément de la première ligne et de la première colonne de «A». Le point-virgule entre parenthèses sépare les spécificateurs de ligne des spécificateurs de colonne.

Les membres des structures de données sont référencés à l'aide de l'opérateur membre «.». Par exemple, le nombre de lignes d'une matrice est entreposé dans le membre nr, donc A.nr renvoie le nombre de lignes de la matrice A. L'opérateur membre associe la gauche à la droite, de sorte que A.type.type renvoie la chaîne de caractères «character».



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Dimanche, le 15 décembre 2024