[demos] GUI/Dialogs/x_dialog & x_mdialog did not manage Cancel button
[scilab.git] / scilab / modules / core / help / fr_FR / types / typeof.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) 2008 - INRIA
5  * Copyright (C) 2015 - 2017 - Samuel GOUGEON
6  *
7  * Copyright (C) 2012 - 2016 - Scilab Enterprises
8  *
9  * This file is hereby licensed under the terms of the GNU GPL v2.0,
10  * pursuant to article 5.3.4 of the CeCILL v.2.1.
11  * This file was originally licensed under the terms of the CeCILL v2.1,
12  * and continues to be available under such terms.
13  * For more information, see the COPYING file which you should have received
14  * along with this program.
15  *
16  -->
17 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
18           xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
19           xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
20           xmlns:scilab="http://www.scilab.org" xml:id="typeof" xml:lang="fr">
21     <refnamediv>
22         <refname>typeof</refname>
23         <refpurpose>type explicite ou code de surcharge d'un objet Scilab</refpurpose>
24     </refnamediv>
25     <refsynopsisdiv>
26         <title>Syntaxe</title>
27         <synopsis>
28             t  = typeof(object)
29             oc = typeof(object, "overload")
30         </synopsis>
31     </refsynopsisdiv>
32     <refsection role="parameters">
33         <title>Paramètres</title>
34         <variablelist>
35             <varlistentry>
36                 <term>object</term>
37                 <listitem>
38                     <para>un objet Scilab quelconque</para>
39                 </listitem>
40             </varlistentry>
41             <varlistentry>
42                 <term>t</term>
43                 <listitem>
44                     <para>texte (un ou plusieurs mots séparés): nom du type de
45                         <varname>object</varname>
46                     </para>
47                 </listitem>
48             </varlistentry>
49             <varlistentry>
50                 <term>oc</term>
51                 <listitem>
52                     <para>mot (sans espace) : nom du code à utiliser pour
53                         surcharger une function devant traiter ce type
54                         d'<varname>object</varname>.
55                     </para>
56                 </listitem>
57             </varlistentry>
58         </variablelist>
59     </refsection>
60     <refsection role="description">
61         <title>Description</title>
62         <para>
63             <code>t = typeof(object)</code> retourne une des expressions texte suivantes :
64         </para>
65         <table>
66             <tr>
67                 <td>
68                     <emphasis role="bold">string</emphasis>
69                 </td>
70                 <td>
71                     <varname>object</varname> est une matrice ou hypermatrice de
72                     <link linkend="strings">caractères</link> et/ou de textes.
73                 </td>
74             </tr>
75             <tr>
76                 <td>
77                     <emphasis role="bold">boolean</emphasis>
78                 </td>
79                 <td>
80                     <varname>object</varname> est une
81                     <link linkend="matrices">matrice ou hypermatrice booléenne</link>.
82                 </td>
83             </tr>
84             <tr><td colspan="2">
85                     <emphasis role="bold">int8</emphasis> ou
86                     <emphasis role="bold">int16</emphasis> ou
87                     <emphasis role="bold">int32</emphasis> ou
88                     <emphasis role="bold">int64</emphasis> ou
89                     <emphasis role="bold">uint8</emphasis> ou
90                     <emphasis role="bold">uint16</emphasis> ou
91                     <emphasis role="bold">uint32</emphasis> ou
92                     <emphasis role="bold">uint64</emphasis>
93                 </td>
94             </tr>
95             <tr>
96                 <td> </td>
97                 <td>
98                     <varname>object</varname> est une matrice ou hypermatrice d'entiers
99                     [positifs ou signés] encodés sur
100                     8, 16, 32 or 64 bits (voir <link linkend="inttype">inttype</link>).
101                 </td>
102             </tr>
103             <tr>
104                 <td>
105                     <emphasis role="bold">constant</emphasis>
106                 </td>
107                 <td>
108                     <varname>object</varname> est une matrice ou hypermatrice
109                     de nombres
110                     décimaux réels ou complexes.
111                 </td>
112             </tr>
113             <tr>
114                 <td>
115                     <emphasis role="bold">polynomial</emphasis>
116                 </td>
117                 <td>
118                     <varname>object</varname> est une matrice ou hypermatrice de
119                     <link linkend="poly">polynômes</link> à coefficients
120                     réels ou complexes.
121                 </td>
122             </tr>
123             <tr>
124                 <td>
125                     <emphasis role="bold">rational</emphasis>
126                 </td>
127                 <td>
128                     <varname>object</varname> est une matrice ou hypermatrice de
129                     <link linkend="rational">fractions rationelles</link>
130                     (telle qu'une matrice de transfert), à coefficients décimaux
131                     réels ou complexes.
132                 </td>
133             </tr>
134             <tr>
135                 <td>
136                     <emphasis role="bold">handle</emphasis>
137                 </td>
138                 <td>
139                     <varname>object</varname> est un
140                     <link linkend="graphics_entities">handle</link> (identifiant)
141                     graphique. Le (sous)type d'élément graphique
142                     (Figure, Axes, Polyline, Compound, etc) est indiqué
143                     par leur attribut <literal>.type</literal>. Voir les
144                     exemples ci-après.
145                 </td>
146             </tr>
147             <tr>
148                 <td>
149                     <emphasis role="bold">list</emphasis>
150                 </td>
151                 <td>
152                     <varname>object</varname> est une
153                     <link linkend="list">liste</link> simple.
154                 </td>
155             </tr>
156             <tr>
157                 <td>
158                     <emphasis role="bold">st</emphasis>
159                 </td>
160                 <td>
161                     <varname>object</varname> est une
162                     <link linkend="struct">structure</link>
163                     ou un nD-tableau de structures.
164                 </td>
165             </tr>
166             <tr>
167                 <td>
168                     <emphasis role="bold">ce</emphasis>
169                 </td>
170                 <td>
171                     <varname>object</varname> est une
172                     <link linkend="cell">cell</link> ou un nD-tableau de cells.
173                 </td>
174             </tr>
175             <tr>
176                 <td>
177                     <emphasis role="bold">boolean sparse</emphasis>
178                 </td>
179                 <td>
180                     <varname>object</varname> est une matrice booléenne creuse.
181                     <warning>Hypermatrices booléennes creuses non supportées.</warning>
182                 </td>
183             </tr>
184             <tr>
185                 <td>
186                     <emphasis role="bold">sparse</emphasis>
187                 </td>
188                 <td>
189                     <varname>object</varname> est une
190                     <link linkend="sparse">matrice creuse</link>
191                     de nombres décimaux réels ou complexes.
192                     <warning>Hypermatrices numériques creuses non supportées.</warning>
193                 </td>
194             </tr>
195             <tr>
196                 <td style="white-space:nowrap">
197                     <emphasis role="bold">"Matlab sparse"</emphasis>
198                 </td>
199                 <td>
200                     <varname>object</varname> est une matrice numérique creuse
201                     au format Matlab
202                     (voir <link linkend="mtlb_sparse">mtlb_sparse()</link>).
203                 </td>
204             </tr>
205             <tr>
206                 <td>
207                     <emphasis role="bold">fptr</emphasis>
208                 </td>
209                 <td>
210                     <varname>object</varname> est une primitive Scilab,
211                     aussi appelée <emphasis role="italic">gateway</emphasis>
212                     (code C, C++ ou Fortran compilé).
213                 </td>
214             </tr>
215             <tr>
216                 <td>
217                     <emphasis role="bold">function</emphasis>
218                 </td>
219                 <td>
220                     <varname>object</varname> est une
221                     <link linkend="function">function</link>
222                     écrite en langage Scilab.
223                     Voir aussi <link linkend="deff">deff</link>.
224                 </td>
225             </tr>
226             <tr>
227                 <td>
228                     <emphasis role="bold">library</emphasis>
229                 </td>
230                 <td>
231                     <varname>object</varname> est une
232                     <link linkend="library">bibliothèque</link>
233                     de functions écrites en langage Scilab et compilées.
234                 </td>
235             </tr>
236             <tr>
237                 <td>
238                     <emphasis role="bold">pointer</emphasis>
239                 </td>
240                 <td>
241                     <varname>object</varname> est un pointeur, par exemple
242                     utilisé par <link linkend="lufact">lufact</link>.
243                 </td>
244             </tr>
245             <tr>
246                 <td>
247                     <emphasis role="bold">implicitlist</emphasis>
248                 </td>
249                 <td>
250                     <varname>object</varname> est une liste implicite avec
251                     un index formel polynomial, utilisée en indexation.
252                     Voir  <link linkend="dollar">n:$</link> et
253                     <link linkend="colon">: (colon)</link>
254                 </td>
255             </tr>
256             <tr>
257                 <td>
258                     <emphasis role="bold">listdelete</emphasis>
259                 </td>
260                 <td>
261                     est retourné par
262                     <function>
263                         typeof(<literal>null()</literal>)
264                     </function>
265                     .
266                     Voir  <link linkend="null">null()</link>.
267                 </td>
268             </tr>
269             <tr>
270                 <td>
271                     <emphasis role="bold">void</emphasis>
272                 </td>
273                 <td>est le typeof des éléments de list() indéfinis.
274                 </td>
275             </tr>
276             <tr>
277                 <td colspan="2"></td>
278             </tr>
279             <tr><td colspan="2">
280                     <emphasis role="bold italic">Listes typées T-Lists ou M-Lists :</emphasis>
281                 </td>
282             </tr>
283             <tr><td colspan="2">
284                     Si l'<varname>object</varname> est une
285                     <link linkend="tlist">tlist</link>
286                     ou une <link linkend="mlist">mlist</link>,
287                     <function>typeof</function>
288                     retourne le nom du type défini pour la liste, lequel est
289                     enregistré dans le premier élément de la liste.
290                 </td>
291             </tr>
292             <tr>
293                 <td colspan="2"></td>
294             </tr>
295             <tr><td colspan="2">
296                     <emphasis role="bold italic">Types de T-List ou M-List
297                         prédéfinis et réservés :
298                     </emphasis>
299                 </td>
300             </tr>
301             <tr>
302                 <td>
303                     <emphasis role="bold">dir</emphasis>
304                 </td>
305                 <td>
306                     <varname>object</varname> est la réponse d'une instruction
307                     <link linkend="dir">dir(..)</link>. Les champs définis
308                     sont <literal>name</literal>, <literal>date</literal>,
309                     <literal>bytes</literal>, et <literal>isdir</literal>.
310                 </td>
311             </tr>
312             <tr>
313                 <td>
314                     <emphasis role="bold">state-space</emphasis>
315                 </td>
316                 <td>
317                     <varname>object</varname> est une réprésentation d'état
318                     d'un système dynamique (voir <link linkend="syslin">syslin</link>).
319                 </td>
320             </tr>
321             <tr>
322                 <td>
323                     <emphasis role="bold">program</emphasis>
324                 </td>
325                 <td>
326                     <varname>object</varname> est une liste descrivant le code interne d'une fonction
327                     compilée écrite en Scilab (voir <link linkend="macr2tree">macr2tree</link>).
328                 </td>
329             </tr>
330             <tr>
331                 <td>
332                     <emphasis role="bold">cblock</emphasis>
333                 </td>
334                 <td>
335                     <varname>object</varname> est un bloc de colonnes de mêmes hauteurs mais de
336                     types de contenus différents, tel que produit par
337                     <link linkend="mfscanf">mfscanf</link>.
338                 </td>
339             </tr>
340             <tr>
341                 <td>
342                     <emphasis role="bold">XMLDoc</emphasis>
343                 </td>
344                 <td>
345                     <varname>object</varname> est un pointeur de document XML
346                     ouvert créé avec
347                     <link linkend="xmlRead">xmlRead</link>,
348                     <link linkend="xmlReadStr">xmlReadStr</link>,
349                     <link linkend="htmlRead">htmlRead</link>, ou
350                     <link linkend="htmlReadStr">htmlReadStr</link>.
351                     D'autres typeof d'objets XML sont disponibles et réservés.
352                 </td>
353             </tr>
354             <tr>
355                 <td>
356                     <emphasis role="bold">H5Object</emphasis>
357                 </td>
358                 <td>
359                     <varname>object</varname> est un identifiant de fichier
360                     HDF5 ouvert avec
361                     <link linkend="h5open">h5open</link>.
362                     D'autres typeof d'objets HDF5 sont disponibles et réservés :
363                     Voir <link linkend="h5objects">HDF5 Objects</link>.
364                 </td>
365             </tr>
366             <tr>
367                 <td>
368                     <emphasis role="bold">uitree</emphasis>
369                 </td>
370                 <td>
371                     <varname>object</varname> est un arbre graphique interactif,
372                     ou un composant (branche, feuille) d'un tel arbre, créé
373                     avec une des fonctions dédiées. Voir par exemple
374                     <link linkend="uiCreateNode">uiCreateNode</link>.
375                 </td>
376             </tr>
377             <tr>
378                 <td colspan="2">
379                   <emphasis role="bold italic">Types de T-list réservés utilisés par Xcos</emphasis> :
380                 </td>
381             </tr>
382             <tr>
383                 <td>
384                   <link linkend="scicos_block"><emphasis role="bold">Block</emphasis></link>
385                 </td>
386                 <td><varname>object</varname> est un bloc Xcos.
387               </td>
388             </tr>
389             <tr>
390               <td>
391                 <link linkend="scicos_cpr"><emphasis role="bold">cpr</emphasis></link>
392               </td>
393               <td>
394                 <varname>object</varname> est une liste contenant les résultats de la compilation
395                 d'un schéma Xcos.
396               </td>
397             </tr>
398             <tr>
399               <td>
400                 <link linkend="scicos_diagram"><emphasis role="bold">diagram</emphasis></link>
401               </td>
402               <td>
403                 <varname>object</varname> est une liste définissant un schéma Xcos : paramètres
404                 initiaux, références  aux blocs, liens interbloc et étiquettes texte le composant...
405               </td>
406             </tr>
407             <tr>
408               <td>
409                 <link linkend="scicos_graphics"><emphasis role="bold">graphics</emphasis></link>
410               </td>
411               <td><varname>object</varname> est une liste affectée au champ
412                   <literal>.graphics</literal> d'un bloc.
413               </td>
414             </tr>
415             <tr>
416               <td>
417                 <link linkend="scicos_link"><emphasis role="bold">Link</emphasis></link>
418               </td>
419               <td>
420                 <varname>object</varname> est une liste définissant et paramétrant un lien entre 2
421                 blocs Xcos.
422               </td>
423             </tr>
424             <tr>
425               <td>
426                 <link linkend="scicos_model"><emphasis role="bold">model</emphasis></link>
427               </td>
428               <td>
429                 <varname>object</varname> est une liste affectée au champ <literal>.model</literal>
430                 d'un bloc.
431               </td>
432             </tr>
433             <tr>
434               <td>
435                 <link linkend="scicos_params"><emphasis role="bold">params</emphasis></link>
436               </td>
437               <td>
438                 <varname>object</varname> est une liste contenant les paramètres de configuration
439                 d'un schéma Xcos.
440               </td>
441             </tr>
442             <tr>
443               <td>
444                 <emphasis role="bold">scsopt</emphasis>
445               </td>
446               <td>
447                 <varname>object</varname> est une liste contenant les options graphiques
448                 d'édition d'un schéma Xcos.
449               </td>
450             </tr>
451             <tr>
452               <td>
453                 <link linkend="scicos_sim"><emphasis role="bold">scs</emphasis></link>
454               </td>
455               <td>
456                 <varname>object</varname> est une liste contenant les résultats statiques de la
457                 compilation d'un schéma Xcos.
458               </td>
459             </tr>
460             <tr>
461               <td>
462                 <link linkend="scicos_state"><emphasis role="bold">xcs</emphasis></link>
463               </td>
464               <td>
465                 <varname>object</varname> est une liste contenant les résultats dynamiques
466                 évoluant au cours d'une simulation Xcos.
467               </td>
468             </tr>
469             <tr>
470               <td>
471                 <emphasis role="bold">Text</emphasis>
472               </td>
473               <td>
474                 <varname>object</varname> est une liste définissant une étiquette de texte dans
475                 un schéma Xcos.
476               </td>
477             </tr>
478         </table>
479     </refsection>
480     <refsection role="examples">
481         <title>Exemples</title>
482         <programlisting role="no-scilab-exec"><![CDATA[
483 // Caractères et textes
484 t = ["a" "Hello"   "à é è ï ô û ñ"
485      "1" "Bonjour" "указывает тип объекта"
486      ";" "Chao"    "オブジェクトの型"
487     ]
488 typeof(t)
489
490 // Booléens
491 typeof(%t)
492 typeof("abc"=="def")
493 hm = grand(2,2,2,"uin",0,9)<5
494 typeof(hm)
495
496 // Entiers encodés
497 [ typeof(uint8(%pi))  typeof(int8(-%pi))
498   typeof(uint16(%pi)) typeof(int16(-%pi))
499   typeof(uint32(%pi)) typeof(int32(-%pi))
500   typeof(uint64(%pi)) typeof(int64(-%pi))
501 ]
502
503 // Nombres décimaux
504 n = 1:0.3:2
505 typeof(n)
506 hm = grand(2,2,2,"uin",0,9)
507 typeof(hm)
508
509 // Décimaux entiers
510 n = 1:7
511 typeof(n)
512
513 // Nombres complexes
514 n = [%i 1-%i %pi - 3*%i]
515 typeof(n)
516
517 // "constant" spéciale
518 typeof([])   // empty matrix
519
520 // Polynômes
521 n = [ %z (1-%z)^2]
522 typeof(n)
523 n = [ 3*%i + %z (1-%i*%z)^2]
524 typeof(n)
525
526 // Fractions rationnelles (polynomiales)
527 r = [%s/(1-%s) (1+%s)^2/(1-%s)]   // à coefficients réels
528 typeof(r)
529 r = [%s/(%i-%s) (%i+%s)^2/(1-%s)] // à coefficients complexes
530 typeof(r)
531
532 // Matrices creuses
533 // ----------------
534 w = sprand(100,100,0.001)
535 typeof(w)     // numérique
536 typeof(w==w)  // booléenne
537 //x = mtlb_sparse(sprand(10,10,0.1));
538 //typeof(x)
539
540 // Functions et bibliothèques écrites en Scilab
541 // --------------------------------------------
542 deff('y=f(x)','y=2*x');  // Function en langage Scilab
543 f(%pi)
544 typeof(f)
545 typeof(cosd)    // écrite en Scilab
546
547 typeof(corelib) // Bibliothèque de functions en langage Scilab
548
549 typeof(sin)     // Fonctions primitives non éditables
550 mysin = sin;
551 mysin(%pi/2)
552
553 // Identifiants graphiques
554 // -----------------------
555 clf
556 plot2d()
557 typeof(gcf())
558 // Le type graphique de l'objet graphique est indiqué par l'attribut "type" :
559 gcf().type
560 gca().type
561 gce().type
562
563 close(gcf())
564
565 // Conteneurs de données hétérogènes
566 // ---------------------------------
567 // Liste simple
568 L = list(%pi, %t, %z, %s/(1-%s), "Bonjour", sin, cosd, list("list_in_list", 432));
569 typeof(L)
570
571 // Tableau de cells
572 C = {%pi, %t, %z ; %s/(1-%s), "Bonjour", list("list_in_list", 432) }
573 typeof(C)
574
575 // (Tableau de) Structures
576 S.num = %pi;
577 S.b = %t;
578 S(2).t = "Bonjour"
579 typeof(S)
580
581 // Indices formels génériques
582 // --------------------------
583 typeof($)
584 typeof(:)    // équivalent à "eye()"  (tous les éléments)
585 typeof(3:$)
586
587 // Typeof de deletion ou d'éléments indéfinis
588 // ------------------------------------------
589 typeof([])      // matrice vide
590 typeof(null())
591 L = list(%pi, ,"hey!")
592 typeof(L(2))   // élément indéfini
593
594 // typeof de T-Listes ou M-listes à façon :
595 // --------------------------------------
596 L = tlist(['myLongTypeOf','a','b'], 18, 'Scilab');
597 typeof(L)
598
599 // Typeof de T-List ou M-list prédéfinis réservés
600 // ----------------------------------------------
601 typeof(dir())  // listage du contenu d'un dossier
602 //
603 c = macr2tree(sind); // Code interne d'une macro Scilab
604 typeof(c)
605 fieldnames(c)'
606 c.name
607 //
608 doc = xmlReadStr("<root><a att=""foo"">Hello</a></root>");
609 typeof(doc)
610 xmlDelete(doc)
611 //
612 x = 1;
613 save(TMPDIR + "/x.sod", "x"); // Les fichiers SOD d'enregistrement d'objets
614 //                            //  Scilab sont au format HDF5
615 a = h5open(TMPDIR + "/x.sod");
616 typeof(a)
617 h5close(a)
618  ]]></programlisting>
619     </refsection>
620     <refsection role="see also">
621         <title>Voir aussi</title>
622         <simplelist type="inline">
623             <member>
624                 <link linkend="type">type</link>
625             </member>
626             <member>
627                 <link linkend="inttype">inttype</link>
628             </member>
629             <member>
630                 <link linkend="overloading">overloading</link>
631             </member>
632             <member>
633                 <link linkend="isreal">isreal</link>
634             </member>
635             <member>
636                 <link linkend="strings">strings</link>
637             </member>
638             <member>
639                 <link linkend="poly">poly</link>
640             </member>
641             <member>
642                 <link linkend="rlist">rlist</link>
643             </member>
644             <member>
645                 <link linkend="null">null</link>
646             </member>
647             <member>
648                 <link linkend="sparse">sparse</link>
649             </member>
650             <member>
651                 <link linkend="issparse">issparse</link>
652             </member>
653             <member>
654                 <link linkend="mtlb_sparse">mtlb_sparse</link>
655             </member>
656             <member>
657                 <link linkend="syslin">syslin</link>
658             </member>
659             <member>
660                 <link linkend="dir">dir</link>
661             </member>
662             <member>
663                 <link linkend="XMLObjects">XML Objects</link>
664             </member>
665             <member>
666                 <link linkend="h5objects">HDF5 Objects</link>
667             </member>
668         </simplelist>
669     </refsection>
670     <refsection role="history">
671         <title>Historique</title>
672         <revhistory>
673             <revision>
674                 <revnumber>6.0</revnumber>
675                 <revdescription>
676                     <itemizedlist>
677                         <listitem>Ajout de l'option "overload". </listitem>
678                         <listitem>Ajout des typeof "uint64" et "int64". </listitem>
679                         <listitem>Suppression du typeof "hypermat". Toute hypermatrice
680                             de type "simple" homogène est désormais encodée de manière
681                             native.
682                         </listitem>
683                         <listitem>typeof "listdelete" ajouté (tel que retourné pour null()).</listitem>
684                         <listitem>typeof() peut désormais être appliquée aux éléments non définis
685                           des listes. Le nouveau typeof "void" est retourné.
686                         </listitem>
687                         <listitem>Ajout des typeof "listdelete" et "void".</listitem>
688                         <listitem>Le typeof des T-lists et M-lists était limité à 8 caractères.
689                             Les noms de types peuvent maintenant être plus longs.
690                         </listitem>
691                         <listitem>
692                             Typeof "size implicit" renommé en "implicitlist" (<literal>1:$</literal>)
693                         </listitem>
694                         <listitem>Page d'aide revue.</listitem>
695                     </itemizedlist>
696                 </revdescription>
697             </revision>
698         </revhistory>
699     </refsection>
700 </refentry>