RiA - Research in Action, un'idea per l'alternanza scuola lavoro
(Liceo scientifico G.B. Grassi di Latina)
Blockly, A JavaScript library for building visual programming editors.
...
...
JavaScript
Python
PHP
Lua
Dart
XML
1011011231194503.16410501100110011abc{textVariable}abc{textVariable}{textVariable}abcabcabcabc5{listVariable}{listVariable}{listVariable}{listVariable},100500#ff0000#3333ff0.5CreateCompleteGraphCrea un grafo completo con un numero di nodi pari a vertex e il peso di ogni lato pari a weight.
Il grafo è rappresentato da una lista - complete_graph - con un elemento per ogni vertice. Ogni elemento della lista è a sua volta una lista - graph_row - in cui ogni elemento elenca il peso dei collegamenti del vertice con ogni altro vertice (un peso pari a zero indica la mancanza di un collegamento).
Ogni lato del grafo è impostato a weight.
Utilizza SetGraphLink
Parametri:
vertex: il numero dei nodi del grafo
weight: il peso di ogni lato del grafo
Valore restituito:
il grafo sotto forma di lista di liste come descritto in precedenza
complete_graphi110vertex1INSERTLASTcomplete_graph05vertexi110vertex1jADD1i1WHILELTEjvertexNEQweight0kweightk1100complete_graphijkj1complete_graphCreateCompleteDGraphCrea un grafo completo con un numero di nodi pari a vertex e il peso di ogni lato pari a weight.
Il grafo è rappresentato da una lista - complete_graph - con un elemento per ogni vertice. Ogni elemento della lista è a sua volta una lista - graph_row - in cui ogni elemento elenca il peso dei collegamenti del vertice con ogni altro vertice (un peso pari a zero indica la mancanza di un collegamento).
Ogni lato del grafo è impostato a weight.
Parametri:
vertex: il numero dei nodi del grafo
weight: il peso di ogni lato del grafo
Valore restituito:
il grafo sotto forma di lista di liste come descritto in precedenza
complete_graphi110vertex1INSERTLASTcomplete_graph05vertexi110vertex1jADD1i1WHILELTEjvertexNEQweight0kweightk1100complete_graphijkcomplete_graphjikj1complete_graphCreateRandomGraphCrea un grafo con un numero di nodi pari a vertex creando collegamenti tra nodi con probabilità pari a chance.
Il grafo è rappresentato da una lista - complete_graph - con un elemento per ogni vertice. Ogni elemento della lista è a sua volta una lista - graph_row - in cui ogni elemento elenca il peso dei collegamenti del vertice con ogni altro vertice (un peso pari a zero indica la mancanza di un collegamento).
Ogni lato del grafo è impostato a weight.
Parametri:
vertex: il numero dei nodi del grafo
weight: il peso di ogni lato del grafo, se nullo il peso è deciso casualmente nell'intervallo [1,100]
chance: probabilità dell'esistenza di un collegamento
Valore restituito:
il grafo sotto forma di lista di liste come descritto in precedenza
random_graphi110vertex1INSERTLASTrandom_graph05vertexi110vertex1jADD1i1WHILELTEjvertexLTE1100chanceNEQweight0kweightk1100random_graphijkj1random_graphCreateRandomDGraphDescribe this function...random_graphi110vertex1INSERTLASTrandom_graph05vertexj1WHILELTEjvertexLTE1100chanceNEQweight0kweightk1100random_graphijkj1random_graphGraphIsConnetedControlla se un grafo è connesso.
Analizza i nodi uno alla volta e controlla a quali nodi è collegato eliminando questi ultimi dalla lista di quelli ancora da visitare. Se al termine la lista di quelli da visitare è vuota il grafo è connesso.
Utilizza GetGraphLink
Parametri:
graph: il grafo da controllare
Valore restituito:
true se il grafo è connesso, false in caso contrario
tovisitpossibleiAggiunge tutti i nodi tranne il primo alla lista dei nodi da visitare (nodi ancora non raggiunti da nessun cammino)1210graph1INSERTLASTtovisitiINSERTFIRSTLa lista possibili contiene via via i nodi collegati al nodo attuale ma che sono ancora da visitare. Inizialmente contiene solo il primo nodo.possible1WHILEControlla i cammini a partire dai nodi nella lista possibili.possibleactualGET_REMOVEFIRSTpossiblepControlla se il nodo attuale è collegato ai nodi ancora da visitare (che non sono stati raggiunti da nessun cammino). Se collegato, il nodo viene inserito nella lista dei nodi ancora da visitare.tovisitNEQgraphpactual0INSERTLASTpossiblepkFIRSTtovisitpactualGET_REMOVEFROM_STARTtovisitktovisitTRUEFALSEGetGraphVertexGradeDescribe this function...actualGETFROM_STARTgraphvertexgrade0pactualNEQp0grade1gradeDoesExistEulerianPathControlla se esiste un cammino euleriano nel grafo specificato: controlla se il numero dei nodi di grado dispari è 0 (per cui esiste anche un circuito euleriano) o 2.
Parametri:
graph il grafo da controllare
Valore restituito:
true se esiste un cammino euleriano, false altrimenti
chance0iConta i nodi di grado dispari110graph1ODD0graphichance1OREQchance2EQchance0TRUEFALSEDoesExistEulerianRingControlla se esiste un circuito euleriano nel grafo specificato: controlla se il numero dei nodi di grado dispari è 0.
Parametri:
graph il grafo da controllare
Valore restituito:
true se esiste un circuito euleriano, false altrimenti
chance0iConta i nodi di grado dispari110graph1ODD0graphichance1EQchance0TRUEFALSEGraphRowToStringTrasforma i collegamenti di uno specifico nodo in una stringa del tipo [ peso del collegamento al nodo 1, peso del collegamento al nodo 2, ...]. Il peso è nullo se il nodo non è collegato.
Parametri:
graph_row: una lista con i collegamenti del nodo specificato a tutti gli altri nodi
Valore restituito:
la rappresentazione in forma di stringa del grafo, se il nodo specifico non ha collegamenti restituisce '[]'.
graph_rowrow_stringngraph_rowrow_stringn, row_stringFROM_STARTFROM_ENDrow_string13[row_string]GraphToStringTrasforma un grafo in una stringa del tipo [ lista collegamenti al nodo 1], [lista collegamenti al nodo 2], ...].
Ogni lista dei collegamenti è una lista del tipo [ peso del collegamento al nodo 1, peso del collegamento al nodo 2, ...]. Il peso è nullo se il nodo non è collegato.
Parametri:
graph: il grafo da trasformare in stringa
Valore restituito:
la rappresentazione in forma di stringa del grafo, se il grafo è vuoto restituisce '[]'.
graph[]graph_stringmgraphgraph_stringm, graph_stringFROM_STARTFROM_ENDgraph_string13[graph_string]SetGraphLinkDescribe this function...SETFROM_STARTGETFROM_STARTgraphstart_nodeend_nodeweightSETFROM_STARTGETFROM_STARTgraphend_nodestart_nodeweightSetDGraphLinkDescribe this function...SETFROM_STARTGETFROM_STARTgraphstart_nodeend_nodeweightGetGraphLinkDescribe this function...graphGTstart_nodeend_nodekend_nodeend_nodestart_nodestart_nodekgraph_rowGETFROM_STARTgraphstart_nodeGETFROM_STARTgraph_rowend_nodeGetDGraphLinkDescribe this function...graphgraph_rowGETFROM_STARTgraphstart_nodeGETFROM_STARTgraph_rowend_node