2
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
4
<!ENTITY kappname "&rocs;">
5
<!ENTITY package "rocs">
6
<!ENTITY % addindex "IGNORE">
7
<!ENTITY % Catalan "INCLUDE">
9
<!ENTITY apiConsole SYSTEM "apiConsole.docbook">
10
<!ENTITY apiDatastructure SYSTEM "apiDatastructure.docbook">
11
<!ENTITY apiGraphstructure SYSTEM "apiGraphstructure.docbook">
12
<!ENTITY apiLinkedListstructure SYSTEM "apiLinkedListstructure.docbook">
13
<!ENTITY apiRootedTreestructure SYSTEM "apiRootedTreestructure.docbook">
15
<!ENTITY chapterImportExport SYSTEM "chapterImportExport.docbook">
17
<book id="rocs" lang="&language;">
21
>El manual de &rocs;</title>
31
>tomaz.canabrava@gmail.com</email
38
>Cord-Landwehr</surname
41
>cordlandwehr@kde.org</email
44
&traductor.Antoni.Bella;
51
>Tomaz Canabrava</holder
57
>Andreas Cord-Landwehr</holder
63
>1.10.0 &kde; 4.12</releaseinfo>
66
>&FDLNotice;</legalnotice>
70
>&rocs; és una eina de teoria de grafs pel &kde;. </para>
79
>matemàtiques</keyword>
92
<chapter id="introduction">
96
>En aquest capítol oferim una visió general de les principals característiques i el flux de treball de &rocs;. Per al lector impacient, que vol començar a utilitzar immediatament &rocs;, li suggerim que almenys llegeixi <xref linkend="introduction-nutshell"/> i que utilitzi <xref linkend="scripting"/> com a referència a l'hora d'escriure algorismes. </para>
98
<sect1 id="introduction-goals">
100
>Objectius, destinataris i flux de treball</title>
102
>&rocs; és un IDE per a la teoria de grafs per a tothom interessat en el disseny i anàlisi d'algorismes de graf. Això inclou explícitament</para>
106
>professors, que volen demostrar algorismes als seus estudiants,</para
110
>estudiants, que volen entendre i veure com es realitza el seu algorisme,</para
114
>i tothom, que està interessat en les estructures de dades i algorismes.</para
119
>Per a tots aquests usuaris, &rocs; ofereix una manera fàcil d'utilitzar l'editor d'estructura de dades per a crear estructures de dades, un motor per crear scripts de gran abast per executar algorismes i diverses eines d'ajuda per a les vostres simulacions i experiments. </para>
122
>El flux de treball típic quan s'utilitza &rocs; és començar creant un graf amb l'editor visual de grafs. Ho podeu fer ja sigui a mà, afegint elements de dades i la seva connexió, o utilitzant un dels generadors d'estructura de dades (si estan disponibles per al dorsal d'estructura de dades actualment seleccionat). Els generadors d'estructura de dades es poden trobar a <menuchoice
124
>Document de graf</guimenu
128
>Genera el graf</guimenuitem
130
>. A més, podeu assignar valors als elements de l'estructura de dades, ja sigui a mà o utilitzant <menuchoice
132
>Document de graf</guimenu
136
>Assigna valors</guimenuitem
138
>. Finalment, podeu escriure el vostre algorisme en JavaScript i executar-lo amb l'estructura de dades que acabeu de crear. Tots els canvis que realitzi el vostre l'algorisme a l'estructura de dades seran directament visibles en l'editor visual de grafs. </para>
142
>Una captura de pantalla de &rocs;.</screeninfo>
145
<imagedata fileref="rocs-screenshot.png" format="PNG"/>
149
>Una captura de pantalla de &rocs;</phrase>
155
<sect1 id="introduction-nutshell">
157
>&rocs; en poques paraules</title>
159
>En aquesta secció proporcionem una visió general compacta dels elements centrals de &rocs;. Expliquem els conceptes importants de les estructures de dades, dorsals de les estructures de dades i tipus d'elements. La comprensió d'aquests conceptes és útil per entendre com es creen i es modifiquen les estructures de dades en &rocs;. </para>
161
>En general &rocs; treballa amb projectes: En obrir &rocs; es crea un projecte buit i el podeu substituir carregant o important un altre projecte. En sí, un projecte consisteix en <emphasis
162
>documents de graf</emphasis
169
>Documents de graf i dorsals d'estructura de dades</title>
171
>Un document de graf representa el contingut d'una pissarra en blanc a l'editor visual de grafs. En sí, un document de graf pot contenir diverses estructures de dades alhora, però només un dorsal d'estructura de dades. Els dorsals d'estructura de dades estan presents en diversos tipus de graf (grafs en general, llistes enllaçades, arbres arrelats) i proporcionen característiques addicionals als seus tipus de graf específic. Això pot posicionar automàticament els elements, jocs d'icones especials o un conjunt ampliat de funcions d'script per utilitzar en els vostres algorismes. (Per a més detalls veure la secció corresponent del manual). És possible canviar el dorsal de l'estructura de dades d'un document de graf, tot i que es pot perdre la informació (&pex;, les arestes d'un cercle en un graf general no seran afegides a un d'arbre, si canvieu al dorsal d'arbre arrelat). </para>
173
>Els documents de graf també formen la base per a definir el tipus d'apuntador i els tipus de dades. </para>
178
>Estructures de dades</title>
180
>Les estructures de dades són la base de tot el treball en &rocs;. Podeu afegir una o diverses a un document de graf, afegir elements de dades (nodes, dades) i apuntadors a elles i modificar-los mitjançant scripts. Per això, cada estructura de dades té el seu nom únic pel qual es pot accedir des dels scripts. Segons el dorsal de l'estructura de dades triat, pot passar que no es puguin modificar arbitràriament les estructures de dades (&pex;, un arbre mai podrà contenir un cicle). El dorsal de l'estructura de dades està determinat pel dorsal d'estructura de dades associat amb el document de graf corresponent que conté l'estructura de dades. </para>
185
>Tipus d'apuntadors</title>
187
>Amb els tipus d'apuntador podeu definir els diferents tipus d'apuntadors que s'utilitzaran en les vostres estructures de dades. És a dir, un tipus d'apuntador pot obtenir un disseny individual (essencialment un color), de manera que serà fàcil accedir des dels vostres scripts als apuntadors només d'un tipus específic. Els casos típics d'ús d'apuntadors poden ser la implementació dels meta-arestes a les vostres estructures de dades que visualitzen les relacions entre els elements de dades (&pex;, visualitzar els interessos de comunicació). Però, a més, si els vostres scripts han d'identificar tipus específics d'arestes (&pex;, les arestes dels arbres i la creu en l'algorisme de cerca de primera profunditat), els tipus d'apuntador poden ser una manera elegant d'implementar-ho. </para>
192
>Tipus de dades</title>
194
>En diversos problemes d'estructura de dades, un conjunt d'elements de dades s'han de separar en grups de diferents tipus (&pex;, problemes d'agrupament o de cobertura). O és útil per a l'execució d'un algorisme per especificar un tipus d'element de dades per expressar un tipus específic (&pex;, per a la cerca primer en amplada). Per als casos d'ús d'aquest tipus podeu definir tipus de dades. Cada tipus de dades té la seva pròpia icona i podeu accedir als tipus de dades d'algun tipus fàcilment des dels vostres scripts. </para>
199
>Propietats dinàmiques</title>
201
>Cada element de dades i l'apuntador poden tenir moltes propietats. Algunes d'aquestes propietats són per omissió del dorsal d'estructura de dades. Per a més detalls consulteu la documentació del dorsal d'estructura de dades. Per afegir propietats addicionals als elements de dades i apuntadors, hi podeu afegir <emphasis
202
>propietats dinàmiques</emphasis
203
>. Cada propietat dinàmica s'identifica pel seu nom i pot contenir qualsevol valor associat amb ella. El nom ha de començar amb una lletra (a-z o A-Z) i només pot contenir lletres, nombres i «_». Si intenteu utilitzar qualsevol caràcter no vàlid en el nom de la propietat, la propietat no serà canviada. </para>
205
>Per afegir propietats dinàmiques, utilitzeu els diàlegs <guilabel
206
>Propietats de l'element de dades</guilabel
208
>Propietats de l'apuntador</guilabel
209
> des dels menús contextuals dels respectius elements o les funcions de l'script, com s'explica a <xref linkend="scripting-data-structure"/>. </para>
211
>També podeu utilitzar els scripts. Només necessitareu utilitzar la <literal
212
>add_property</literal
213
> amb el nom i el valor de la vostra propietat. Després d'això, podreu utilitzar el node/pointer.propertyName per establir/obtenir els valors. </para>
215
>Heus aquí un exemple de com utilitzar les propietats dinàmiques amb el dorsal d'estructura de dades «Graf». <programlisting
216
>nodes = myGraph.list_nodes()
217
for (var i = 0; i < nodes.length; ++i ){
218
nodes[i].add_property("MyProperty", 0)
220
nodes[0].MyProperty = 2
221
nodes[1].MyProperty = nodes[0].MyProperty + 2
227
<sect1 id="introduction-tutorial">
229
>Guia d'aprenentatge</title>
231
>En aquesta secció volem crear un projecte d'exemple per explorar algunes de les característiques més importants de &rocs;. L'objectiu és crear un graf i un script que il·lustri un algorisme d'aproximació a 2 simple per al problema <emphasis
232
>cobertura de vèrtexs mínima</emphasis
233
>. En aquest problema s'han de trobar un subconjunt de nodes del graf C de mida mínima, de manera que cada aresta del graf estarà connectada a almenys un node de C. Se sap que aquest problema és NP-complex i volem il·lustrar com trobar una aproximació de factor 2 cercant una coincidència en el graf donat (en el que segueix utilitzarem la terminologia comuna per als algorismes de graf: un graf és l'estructura de dades, els nodes són els elements de dades i les arestes són els apuntadors). </para>
235
>El nostre objectiu és visualitzar la correspondència de les coincidències i la cobertura de vèrtexs mínima. Per això, volem especificar dos tipus d'apuntadors, un per mostrar les arestes coincidents i un per mostrar arestes comunes, així com dos tipus de dades que utilitzarem per distingir els nodes continguts en C i els que no estan continguts en C. </para>
239
>Generar un graf</title>
241
>Per al dorsal d'estructura de dades <quote
243
>, &rocs; ofereix una eina d'ajuda que pot generar grafs. Anem a <menuchoice
245
>Document de graf</guimenu
249
>Genera el graf</guimenuitem
251
>. Cal que generem un <guilabel
252
>Graf aleatori</guilabel
253
> amb 30 nodes, 90 arestes i amb 1 llavor (la llavor és la llavor inicial per al generador de grafs aleatoris; si s'utilitza la mateixa llavor diverses vegades es tornaran a reproduir els mateixos grafs). Finalment, modificarem el nom del graf en el plafó de l'estructura de dades i cridarem al graf <literal
260
>Crear els tipus</title>
262
>Utilitzarem el botó <guibutton
263
>Propietats</guibutton
264
> a la barra del selector de documents per obrir el diàleg de propietats per als tipus de dades i d'apuntador del document de graf actual. Per al tipus de dades afegirem un nou tipus anomenat «C», el qual obtindrà automàticament l'ID <literal
266
>. Per aquest tipus seleccionarem la imatge del servidor com a icona. A més, canviarem a la pàgina tipus d'apuntador i afegirem un nou tipus d'apuntador anomenat «coincident». Això ens durà automàticament a l'ID <literal
268
> i establirem el color a blau. </para>
275
>Per acabar, hem d'implementar l'algorisme d'aproximació. Per això utilitzarem la següent implementació: </para>
277
>var E = testgraph.list_edges(); // conjunt d'arestes sense processar
278
var C = new Array(); // arestes coincidents
281
var e = E[0]; // prenem la primera aresta e={u,v}
284
e.set_type(1); // establim l'aresta com a coincident
285
E.shift(); // eliminem «e» (és a dir, E[0]) des de la llista d'arestes
286
C.push(u); // afegim «u» a «C»
287
C.push(v); // afegim «v» a «C»
289
// marquem «u,v» com a nodes en «C»
293
// eliminem de «E» totes les arestes adjacents a «u» o «v»
294
var adjacent = u.adj_edges();
295
for (var i=0; i < adjacent.length; i++) {
296
var index = E.indexOf(adjacent[i]); // troba l'índex
298
E.splice(index, 1); // l'elimina si ja s'ha trobat
301
var adjacent = v.adj_edges();
302
for (var i=0; i < adjacent.length; i++) {
303
var index = E.indexOf(adjacent[i]); // troba l'índex
305
E.splice(index, 1); // l'elimina si ja s'ha trobat
309
Console.log("Vertex Cover conté " + C.length + " nodes.");
315
>Executar l'algorisme</title>
317
>Finalment volem executar l'algorisme. Per això podem iniciar l'execució amb el botó <guibutton
319
> al plafó de control de l'script. </para>
324
<chapter id="user-interface">
326
>La interfície d'usuari de &rocs;</title>
328
<sect1 id="user-interface-all">
330
>Elements generals de la interfície d'usuari</title>
332
>La interfície d'usuari es divideix en diverses parts lògiques que es presenten en la següent captura de pantalla. </para>
335
>Elements de la &IGU; de la interfície de &rocs;.</screeninfo>
338
<imagedata fileref="rocs-interfaces.png" format="PNG"/>
342
>Elements de la &IGU; de la interfície de &rocs;.</phrase>
349
>Selector de documents</term>
352
>En aquesta barra de menú superior haureu de seleccionar el document actual i l'estructura de dades. Des d'on també és possible crear i eliminar estructures de dades així com accedir a les propietats de l'estructura de dades. </para
357
>Editor visual de grafs</term>
360
>Aquesta és la pissarra en blanc on es poden crear i modificar les estructures de dades. Feu clic dret a la pissarra, en els elements de dades, o en els apuntadors per obrir els menús contextuals. Podeu utilitzar les eines de la <emphasis
361
>barra d'eines Editor visual de grafs</emphasis
362
> per modificar els elements a la pissarra de l'editor visual de grafs.</para
367
>La barra d'eines Editor visual de grafs</term>
370
>Aquesta barra d'eines proporciona totes les eines per a l'editor visual de grafs. Utilitzeu els botons <inlinemediaobject
372
><imagedata fileref="hi22-action-rocsadddata.png" format="PNG"/></imageobject
375
>Afegeix element</guibutton
376
> o <inlinemediaobject
378
><imagedata fileref="hi22-action-rocsaddedge.png" format="PNG"/></imageobject
381
>Afegeix connexió</guibutton
382
> per crear nous elements o per connectar elements, respectivament. S'afegeixen nous elements de dades a l'estructura de dades que es troba seleccionada a la barra <emphasis
383
>Selector de documents</emphasis
384
>. Recordeu que tant els botons <guibutton
385
>Afegeix element</guibutton
387
>Afegeix connexió</guibutton
388
> tenen menús per a seleccionar el tipus dels elements que seran creats. Per a més detalls, veure <xref linkend="user-interface-toolbars"/>. </para
393
>Barra lateral</term>
396
>A la dreta, trobareu la barra lateral que proporciona diverses eines per al vostre flux de treball: <itemizedlist>
399
>Tipus d'element: Aquest estri us permet accedir directament a l'apuntador i als tipus de dades disponibles.</para
403
>Diari: Cada projecte disposa del seu propi diari que es pot utilitzar per, &pex;, anotar tasques, resultats o observacions.</para
407
>Manual: Podeu obrir aquest estri per obtenir accés directe al manual i a través seu a la documentació dels scripts.</para
411
>API per a crear scripts: Per obtenir accés directe a la documentació dels scripts, podeu obrir aquest estri.</para
419
>Editor d'scripts</term>
422
>En aquest editor de text podeu escriure algorismes com s'explica en detall en <xref linkend="scripting"/>. Podeu treballar sobre diversos documents d'script simultàniament utilitzant diverses pestanyes. Si l'script conté canvis sense desar a la pestanya apareixerà el símbol d'un disc. </para
427
>Sortida de l'script</term>
430
>Aquesta àrea de text bé mostra informació de depuració o la sortida de l'script del vostre algorisme, depenent de la preferència indicada a la part superior d'aquest estri. Si l'script retorna un error, automàticament es presentarà la sortida de depuració. </para
438
>Aquí trobareu els controls per a l'execució d'scripts. Podeu executar l'script que està obert a l'editor d'scripts prement <guiicon
440
>. Mentre s'executa l'script, és possible aturar l'execució prement el botó <guiicon
442
>. Tingueu en compte que l'execució amb <guibutton
444
> sols s'aturarà a les paraules clau específiques (veure <xref linkend="scripting"/>). </para
450
<sect1 id="user-interface-toolbars">
452
>Barres d'eines</title>
454
>Hi ha diferents barres d'eines per a l'editor visual de grafs que us permeten accedir a les funcions amb un sol clic. Per omissió, es mostren les següents barres d'eines:</para>
458
>Barra d'eines principal</para
462
>Barra d'eines d'alineació</para
466
<sect2 id="user-interface-toolbars-main">
468
>Barra d'eines principal</title>
471
>barra d'eines principal</emphasis
472
> es compon de les següents accions. El fer clic sobre una acció significa que el punter del ratolí aplica aquesta acció a la pissarra de l'editor visual de grafs:</para>
478
<imagedata fileref="hi22-action-rocsselectmove.png" format="PNG"/></imageobject>
482
>: Per a seleccionar elements, o bé feu clic sobre l'espai sense utilitzar a la pissarra, manteniu premut el ratolí i dibuixeu un rectangle que contingui alguns elements de dades i/o apuntadors per a seleccionar aquests elements o en cas contrari feu clic directament sobre un element sense seleccionar per seleccionar-lo. Si feu clic sobre un element o conjunt d'elements seleccionats, respectivament, els podreu moure mantenint premut el ratolí i movent-lo. També és possible moure els elements seleccionats amb les tecles del cursor.</para
488
<imagedata fileref="hi22-action-rocsadddata.png" format="PNG"/></imageobject>
491
>Afegeix element</guilabel
492
>: Feu clic sobre una posició arbitrària a la pissarra de l'editor visual de grafs per crear un nou element de dades que pertanyi a l'estructura de dades actualment seleccionada. Si manteniu premut el punter del ratolí sobre el botó, es mostrarà un menú des d'on es podran seleccionar (només si hi ha diferents tipus de dades) els tipus de dades dels nous elements de dades creats.</para
498
<imagedata fileref="hi22-action-rocsaddedge.png" format="PNG"/></imageobject>
501
>Afegeix connexió</guilabel
502
>: Feu clic sobre un element de dades, manteniu premut el ratolí i dibuixeu una línia cap a un altre element de dades al qual assenyali l'apuntador/aresta. Aquesta acció només té èxit si el graf actual permet afegir aquesta aresta (&pex;, en un graf no dirigit no podreu afegir múltiples arestes entre dos elements de dades). Si manteniu premut el punter del ratolí sobre el botó, es mostrarà un menú des d'on es podran seleccionar (només si hi ha diferents tipus d'apuntador) els tipus d'apuntador dels nous elements de dades creats.</para
504
<!--FIXME no different pointer names here -->
509
<imagedata fileref="hi22-action-rocsdeletedata.png" format="PNG"/></imageobject>
513
>: Feu clic sobre un element per eliminar-lo. Si elimineu un node, totes les arestes adjacents també s'eliminaran.</para
519
<imagedata fileref="hi22-action-rocszoom.png" format="PNG"/></imageobject>
523
>: Feu clic sobre la pissarra, manteniu premut el &BER; i dibuixeu un rectangle. La pissarra s'ampliarà a la zona seleccionada. Utilitzant també la roda del ratolí per apropar o allunyar. Un doble clic amb el &BER; restaura el zoom original.</para
528
<sect2 id="user-interface-toolbars-alignment">
530
>Barra d'eines d'alineació</title>
532
>Podeu afegir l'opcional <emphasis
533
>barra d'eines d'alineació</emphasis
534
>. En prémer sobre una acció en aquesta barra d'eines tindrà un efecte directe en els nodes seleccionats:</para>
540
<imagedata fileref="hi22-action-rocsaligntop.png" format="PNG"/></imageobject>
544
>: Alinea els elements de dades a la posició vertical de l'element de dades més superior. Això només afecta a les posicions verticals.</para
550
<imagedata fileref="hi22-action-rocsalignvmiddle.png" format="PNG"/></imageobject>
554
>: Alinea els elements de dades a la posició vertical donada pel centre de totes les posicions verticals dels elements de dades seleccionats. Això només afecta a les posicions verticals.</para
560
<imagedata fileref="hi22-action-rocsalignbottom.png" format="PNG"/></imageobject>
564
>: Alinea els elements de dades a la posició vertical de l'element de dades més inferior. Això només afecta a les posicions verticals.</para
570
<imagedata fileref="hi22-action-rocsalignleft.png" format="PNG"/></imageobject>
574
>: Alinea els elements de dades a la posició horitzontal de l'element de dades més a l'esquerra. Això només afecta a les posicions horitzontals.</para
580
<imagedata fileref="hi22-action-rocsalignhmiddle.png" format="PNG"/></imageobject>
584
>: Alinea els elements de dades a la posició horitzontal de l'element de dades més superior. Això només afecta a les posicions horitzontals.</para
590
<imagedata fileref="hi22-action-rocsalignright.png" format="PNG"/></imageobject>
594
>: Alinea els elements de dades a la posició horitzontal de l'element de dades més a la dreta. Això només afecta a les posicions horitzontals.</para
600
<imagedata fileref="hi22-action-rocsaligncircle.png" format="PNG"/></imageobject>
604
>: Alinea els elements de dades en un cercle de diàmetre igual que la distància màxima entre els elements de dades. Els elements de dades estan col·locats en la mateixa seqüència que la proposta per vista des del centre de gravetat d'aquests elements de dades.</para
610
<imagedata fileref="hi22-action-rocsaligntree.png" format="PNG"/></imageobject>
613
>Minimitza els creuaments d'arestes</guilabel
614
>: Torna a organitzar els elements de dades seleccionats per a minimitzar el nombre de connexions creuades (aplicació de l'algorisme Fruchterman-Reingold).</para
620
<sect1 id="user-interface-documents">
622
>Treballar amb documents de graf</title>
624
>Un projecte de &rocs; conté un o múltiples documents de graf que es poden editar amb l'editor visual de grafs. A més, cada document pot contenir un nombre arbitrari d'estructures de dades. En aquest cas, totes les estructures de dades d'un document utilitzen el mateix dorsal per a l'estructura de dades. En aquesta secció explicarem com canviar entre els documents i la manera de crear-ne de nous. </para>
626
<sect2 id="user-interface-documents-selector">
628
>La barra selector de documents</title>
630
>La barra selector de documents s'utilitza per seleccionar el document de graf i també l'estructura de dades. Quan utilitzeu les eines de l'editor visual de grafs per crear elements d'estructures de dades, els nous elements creats s'afegiran automàticament a l'estructura de dades actual. A més, aquesta barra ofereix accés directe a eliminar els ja existents o crear noves estructures de dades dins del document actual. </para>
637
<imagedata fileref="hi22-action-rocsnew.png" format="PNG"/></imageobject>
641
>: Aquesta acció crea una nova estructura de dades utilitzant un patró de nomenclatura automàtica proposta pel dorsal de l'estructura de dades. L'estructura de dades creada s'afegirà al document de graf seleccionat. </para
647
<imagedata fileref="hi22-action-rocsdelete.png" format="PNG"/></imageobject>
651
>: Aquesta acció elimina l'estructura de dades que es troba seleccionada en el selector d'estructura de dades per al document actual. </para
657
<imagedata fileref="hi22-action-rocsproperties.png" format="PNG"/></imageobject>
660
>Propietats</guilabel
662
>Document de graf</guilabel
663
>: Obre un diàleg que permet accedir a les propietats del document, així com als tipus de dades i d'apuntador del document. </para
669
<imagedata fileref="hi22-action-rocsproperties.png" format="PNG"/></imageobject>
672
>Propietats</guilabel
674
>Estructura de dades</guilabel
675
>: Obre un diàleg que permet accedir a les propietats de l'estructura de dades. </para
681
>La barra d'eines principal</screeninfo>
684
<imagedata fileref="document-selector.png" format="PNG"/>
688
>La barra selector de documents.</phrase>
694
<sect2 id="user-interface-documents-menu">
696
>Crear i importar documents de graf</title>
698
>Per crear un nou document de graf o afegir un d'existent al projecte, utilitzeu <menuchoice
702
>Projecte nou</guimenuitem
706
>Document de graf</guimenu
708
>Importa un graf</guimenuitem
710
>. També podreu importar documents de graf des d'aplicacions de tercers (per a això, veure <xref linkend="import-export"/>). </para>
717
<chapter id="scripting">
719
>Escriure i executar algorismes en &rocs;</title>
722
>&rocs; utilitza internament el motor per a la creació d'scripts QtScript, el qual és un motor específic de JavaScript. Això significa que tots els algorismes que implementeu hauran d'utilitzar JavaScript. Com funciona JavaScript i com escriure codi no està cobert per aquest manual, encara que s'explica com accedir a les estructures de dades, elements de dades i apuntadors de les estructures de dades del motor per crear scripts. Atès que mai utilitzareu l'objecte d'estructura de dades bàsica, sinó el proporcionat pel dorsal d'estructura de dades utilitzat actualment, la funcionalitat de l'estructura de dades s'estén pel dorsal corresponent i haureu de fer una ullada a la funcionalitat especialitzada. Sobretot, els dorsals d'estructura de dades utilitzant la terminologia comuna del vostre domini (nodes i arestes en els grafs, les fulles i les arrels en els arbres, &etc;) </para>
724
>És important saber que els canvis fets pel motor per a la creació d'scripts es reflecteixen directament en les propietats a la pissarra de l'editor visual de grafs. Per tant, els scripts en realitat modifiquen les estructures de dades. </para>
727
<sect1 id="scripting-controls">
729
>Controlar l'execució de l'script</title>
734
>Incloure fitxers</title>
736
>Els vostres documents d'script poden incloure altres scripts. Això pot ser útil per reduir la mida dels documents d'script i millorar la llegibilitat. Utilitzant <menuchoice
738
>Document d'script</guimenu
740
>Inclusions possibles</guimenuitem
742
> obtindreu una llista de fitxers d'script que ja vénen amb &rocs; i que podeu incloure. Podeu incloure un fitxer d'script amb la següent ordre: </para>
744
>include_script(string path); // camí relatiu o absolut a un fitxer d'script
748
<sect2 id="scripting-output">
750
>Sortida de l'script</title>
752
>Durant l'execució d'un algorisme, la sortida de depuració i del programa es mostren a la <emphasis
753
>depuració i sortida de l'script</emphasis
754
>. Si el motor per a la creació d'scripts detecta un error de sintaxi, l'error també es mostrarà com a missatge de depuració. Tingueu en compte que tots els missatges del programa també es mostraran a la sortida de depuració (com a text en negreta). </para>
756
>Podeu controlar el text que es mostrarà a la sortida de l'script mitjançant les següents funcions: </para>
758
>Console.log(string message); // mostra el missatge com a sortida de l'script
759
Console.debug(string message); // mostra el missatge com a sortida de depuració
763
<sect2 id="scripting-controlling">
765
>Controlar l'execució de l'script</title>
767
>Hi ha diferents modes d'execució per als vostres scripts. </para>
769
>Podeu controlar el text que es mostrarà a la sortida de l'script mitjançant les següents funcions: </para>
775
<imagedata fileref="rocs-control-engine-run.png" format="PNG"/></imageobject>
779
>: Executa l'script fins finalitzar.</para
785
<imagedata fileref="rocs-control-engine-step.png" format="PNG"/></imageobject>
789
>: Executa l'script fins que finalitza un pas. Un pas finalitza quan l'script crida la funció <literal
790
>interrupt()</literal
793
>interrupt(); // finalitza un pas
800
<imagedata fileref="rocs-control-engine-debug.png" format="PNG"/></imageobject>
804
>: Executa l'script en mode de depuració. Això obre el diàleg de depuració de QtScript.</para
810
<imagedata fileref="rocs-control-engine-stop.png" format="PNG"/></imageobject>
814
>: Atura l'execució de l'script (sols disponible si s'executa un script).</para
822
<chapter id="scripting-API">
824
>L'API per a la creació d'scripts</title>
826
>Cada dorsal proporciona un conjunt especial de funcions i propietats de les seves estructures de dades i els seus elements. Però cada dorsal també proporciona les propietats i funcions definides per l'estructura de dades base. </para>
827
&apiDatastructure; &apiGraphstructure; &apiLinkedListstructure; &apiRootedTreestructure; &apiConsole; </chapter>
830
&chapterImportExport;
833
<chapter id="credits">
835
>Crèdits i llicència</title>
840
>Copyright del programa:</para>
844
>Copyright 2008 Ugo Sangiori (ugorox AT gmail.com)</para
848
>Copyright 2008-2012 Tomaz Canabrava (tcanabrava AT kde.org)</para
852
>Copyright 2008-2012 Wagner Reck (wagner.reck AT gmail.com)</para
856
>Copyright 2011-2013 Andreas Cord-Landwehr (cordlandwehr AT kde.org)</para
861
>Copyright de la documentació:</para>
865
>Copyright de la documentació 2009 &Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail;</para
869
>Copyright de la documentació 2009 Tomaz Canabrava (tcanabrava AT kde.org)</para
873
>Copyright de la documentació 2011-2013 Andreas Cord-Landwehr (cordlandwehr AT kde.org)</para
878
>Traductor de la documentació: &credits.Antoni.Bella;</para
880
&underFDL; &underGPL; </chapter>
882
<appendix id="installation">
884
>Instal·lació</title>
886
<sect1 id="getting-rocs">
888
>Com obtenir el &rocs;</title>
889
&install.intro.documentation; </sect1>
891
<sect1 id="compilation">
893
>Compilació i instal·lació</title>
894
&install.compile.documentation; </sect1>
897
&documentation.index;
902
sgml-minimize-attributes: nil
903
sgml-general-insert-case: lower