source: tol/TolJava/TOLJava-Ejemplos/src/com/hcarralero/toljava/ejemplos/Ejemplo04.java @ e946b884

1941-docker-image-to-testdevel
Last change on this file since e946b884 was 9887b93, checked in by Humberto Carralero <hacarralero@…>, 15 years ago

Importing TolJava

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@3900 be4846ae-f051-483a-831f-b64e7d08527f

  • Property mode set to 100644
File size: 3.9 KB
Line 
1package com.hcarralero.toljava.ejemplos;
2
3//Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
4//para este ejemplo se requieren las clases: TOLMachine, TOLMachineException, TOLVMatrix y TOLVariable.
5import com.hcarralero.toljava.TOLMachine;
6import com.hcarralero.toljava.TOLMachineException;
7import com.hcarralero.toljava.TOLVMatrix;
8import com.hcarralero.toljava.TOLVariable;
9
10/**
11 * Tercer Ejemplo de TOLJava para Consola:
12 *  1) Se crea una instancia de TOLMachine.
13 *  2) Se ejecuta una sentencia TOL para definir 3 variables de tipo VMatrix: ma, mb y mc
14 *  3) Se procesa el resultado para determinar si se produjo algún error.
15 *  4) Se obtiene la variable "mc" definida en TOL y de ella se toma la matriz de sus valores.
16 *  4) Se recorre la matriz obtenida y se muestra por pantalla.
17 *
18 * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
19 * @version 1.0
20 * @see com.hcarralero.toljava.TOLMachine, com.hcarralero.toljava.TOLVariable
21 */
22public class Ejemplo04 {
23
24    /**
25     * @param args los argumenetos de la línea de comandos.
26     */
27    public static void main(String[] args) {
28        //Se crea una instancia de la clase TOLMachine.
29        TOLMachine tm= new TOLMachine();
30        //En una cadena se almacena el código TOL que se ejecutará; en este caso
31        //el código es para definir las variables tipo VMatrix: ma, mb y mc.
32        String code= "VMatrix ma= Rand(4, 3, 0, 1); VMatrix mb= SetCol( [[2,3,4,7]] ) | SetCol( [[1,5,7,9]] ) | SetCol( [[3,2,0,1]] ); VMatrix mc=ma+mb;";
33        Object res[]= tm.execute(code);
34        //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
35        //El resultado es un arreglo de cadenas.
36        System.out.println();
37        if (res==null) {
38            //Si el resultado es nulo, entonces se ha producido un error en el acceso a TOL.
39            System.out.println("ERROR ACCEDIENDO A TOL->execute");
40        } else {
41            //Se ha logrado acceder al intérprete y ejecutar el código.
42            int ne= 0;
43            try {
44                //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
45                ne= Integer.parseInt((String)res[0]);
46                if (ne>0) {
47                    //El intérprete de TOL reportó al menos un error.
48                    System.out.println("Se ha(n) detectado "+ne+" error(es)");
49                } else {
50                    //El intérprete de TOL no reportó errores.
51                    System.out.println("No se han detectado errores");
52                    //Se obtiene de TOL la variable mc y se muestra por pantalla.
53                    TOLVariable varmc= tm.getVariable("mc");
54                    //Se hace cast al valor de la variable para convertirlo al tipo correcto: VMatrix.
55                    TOLVMatrix valmc= (TOLVMatrix)varmc.getValue();
56                    //Se obtiene el número filas y el de columnas de la matriz.
57                    int rows= valmc.getRows();
58                    int cols= valmc.getColumns();
59                    double values[][]= valmc.getValues();
60                    for (int i= 0; i<rows; ++i) {
61                        //Se cambia de línea antes de cada fila
62                        System.out.println();
63                        for (int j= 0; j<cols; ++j) {
64                            //Se imprime cada celda de la matriz
65                            System.out.print(values[i][j]+"\t");
66                        }
67                    }
68                }
69            } catch (NumberFormatException ex) {
70                //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
71                System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
72            } catch (TOLMachineException ex) {
73                //Se ha producido un error en el acceso a la Máquina Virtual de TOL.
74                System.out.println("Error accediendo a TOL: "+ex.getMessage());
75            }
76        }
77    }
78   
79}
Note: See TracBrowser for help on using the repository browser.