Manejo de Arreglos en LabView

  • Crear y llenar automáticamente un arreglo de 5 x 5 con números del 1 al 5.
  • Obtener la primera Fila de arreglo y mostrarla como columna.
  • Cambiar los valores de los elementos 1,2,3,4,5 x 6,7,8,9,10
  • En un nuevo VI, agregamos un ciclo WHILE LOOP y dentro 2 ciclos FOR uno dentro de otro. Como lo que queremos es hacer que se cree un arreglo de 2 dimisiones de 5×5 y que automáticamente se llene con números del 1 al 5 entonces crearemos 2 constantes con valor de 5 una para ciclo FOR en la N color azul y también una SUMA (ADD). Crearemos una constante de valor 1 para la primera entrada de la SUMA y la segunda entrada la uniremos a “Loop Iteration” es la “i” q esta abajo, y la salida de la suma la unimos al clico FOR y nuevamente al otro cilco FOR, así como se muestra en la imagen.

    En nuestro panel frontal agregamos un RealMatrix.ctl que se encuentra en Modern\Array,Matrix&Cluster\RealMatrix.ctl lo cambiamos a indicador y lo unimos con el cliclo FOR.

    Corremos el programa y nuestro arreglo debe ser una arreglo de 5×5 y se ha llenado con números del 1 al 5.

    Queremos extraer la primera fila de nuestro Array, es decir donde están los números 1,2,3,4,5 y que nos muestre los elementos en otro Array pero esta vez en forma de columna. Usaremos un Reshape Array que se encuentra en Programming\Array\Reshape Array y lo agrandamos para q tenga 2 diemciones.

    La primera entrada la uniremos al hilo que va del ciclo FOR al RealMatrix, en la siguiente entrada crearemos una constante de valor 5 y en la otra una constante de valor 1, la primera nos mostrara los elementos del 1 al 5 y la segunda nos lo mostrara en una columna. En el panel Frontal insertamos un Array que se encuentra en Modern\Array, Matrix&Clusters\Array y le pondremos dentro un control numérico, lo alargaremos hasta tener 2 dimensiones y 5 elementos que son los que queremos mostrar. En el diagrama de bloques lo cambiaremos a indicador y lo uniremos a la salida del Reshape Array.

    Corremos el programa y debemos ver algo asi:

    Ahora para hacer que los números del segundo Array sean 6,7,8,9,10 solo hay que sumarle 5 a cada uno, agregamos una SUMa (ADD) y su primera entrada la uniremos al hilo q va al sungo Array, en la segunda entrada de la suma crearemos una constante y la salida será otro Array.

    Eso es todo. No te olvides comentar.
    Cortesía de:

  • @Fausto
  • @Chucho
  • @Uribe
  • @Waldo’s (yo) xD
  • Arreglo en Labview. Apagar y encender leds en un arreglo en Labview

    Este es un ejercicio con arreglos que nos dejaron como tarea, me pase toda la tarde y todo la noche buscando como diablos hacer encender y apagar un determinado led dentro de un arreglo en Labview., que por cierto al final no lo logre.

    En un arreglo de 10 led’s, hacer que se encienda y apague un determinado led por medio de un control numérico, es decir si yo quiero encender el led número 8 que lo pueda hacer usando un control numérico, del mismo modo apagar el led que yo quiera.

    En un nuevo VI en el panel Fontal agregamos un array, hacemos clic derecho sobre el panel frontal\Modern\Array Matrix & Cluster\Array y también 2 controles numéricos uno se llamara Encender y el otro Apagar.

    Pondremos uno led a nuestro arreglo, hacemos clic derecho sobre el panel frontal\Leds\Round Led y lo ponemos dentro de nuestro array. Ahora nos posicionamos sobre nuestro array hasta que se seleccione el led y aparezcan los cuadros azules como se muestra en la imagen, ahora hacemos clic sobre el cuadro azul al que apunta la flecha roja y lo arrastramos hace abajo para aumentar el número de índice(elementos) del array, en este ejemplo usaremos 10 led’s.

    Ahora nos vamos a nuestro Diagrama de Bloques y agregamos un Array Constant . Clic derecho sobre el diagrama de bloques\Programming\Array\Array Constant.

    Ahora agregaremos una constante falsa, hacemos clic derecho sobre el diagrama de bloques\Arithmetic & Comparison\Boolean\False Constant y la pondremos en dentro de nuestro Array Constant , pondremo un 9 donde está el cero y hacemos clic sobre la T o la F si queremos cambiarlo, pero lo dejaremos como False y uniremos nuestro Array Constant con nuestro Array.

    Ahora agregamos un While Loop y un Event Structure. Para agregarlas hacemos clic derecho sobre el Diagrama de Bloques\Programming\Structures y ahí se encuentran las 2 estructuras. Ahora crearemos una constante del event Structure sobre el icono del reloj azul en la esquina y le pondremos el valor de 1000 que ser el retardo. Ahora hacemos clic derecho sobre nuestros controles\Representation\I32 (Long), para que maneje valores enteros debes tener algo como el de la imagen.

    Sobre el Timeout hacemos clic derecho\Add Event Case de la ventana seleccionamos “Encender” y “Value Change” OK. Como se muestra en la imagen.

    Arrastramos nuestro control “Encender” dentro del Event Structure, después agregamos un Case Structure (ya sabemos donde están las estructuras), después agregamos un Not Equal? Que esta en \Arithmetic & Comparison\Comparison\ Not Equal?. Ahora uniremos el control “Encender” al Not Equal? en el primer hilo, en el segundo hilo hacemos clic derecho\Create\Constant la dejaremos en cero, y la salida la uniremos al signo de interrogación del Case Structure, por ultimo haremos una unión del hilo que une a “Encender” y al Not Equal? con el Case Structure. Te tiene que quedar como la imagen.

    Ahora crearemos 2 dos variables locales del array clic derecho\Create\Local Variable, las pondremos dentro del Case Structure, en una de ellas hacemos clic derecho\Change to Read observa que una tiene un marco más grueso que la otra. Agregamos un decremento en \Arithmetic & Comparison\Numeric\Decrement. Agregamos un Replace Array Subset que esta en Programming\Array\Replace Array Subset . Unimos el cuadro azul con la entrada del decremento, la primera variable local del array con la primera entrada del array subset, la salida del decremento con la segunda entrada del array subset y en la última entrada de array subset crearemos una constante clic derecho\create\constant y la ponemos en True, por ultimo unimos la salida del array subset con el otra variable local del array. Debes tener algo como el de la imagen.

    Ahora corre tu programa, en el control encender escribe el numero del led que quieres encender. El otro control no hace nada. De tarea te queda programar el control de apagado.

    Gracias a la Profe Venecia.
    Materia: Interfaz.

    Bajate la revista Linux+ Febrero 2010

    Contenido:

  • Infraestructuras de Clave Pública (KPI) en GNU/Linux
  • CAINE & DEFT Distribuciones Forenses GNU/Linux
  • Introducción al desarrollo de aplicaciones web con Mono
  • Clonación automática de equipos con FOG
  • Reciclando hardware obsoleto con GNU/Linux
  • KnowledgeTree, del papel al byte
  • LyX: escribe tus artículos científicos con estilo
  • Linux en el instituto, segunda parte
  • Joomla: Ventajas e inconvenientes de utilizar Joomla en tu página Web
  • AXiS Virtual en Android: Un instrumento musical de nueva generación
  • Descargar de aquí.
    Via: http://lpmagazine.org/es/

    Ejemplo: incorporar datos en MySQL con LOAD DATA

    Bueno en la práctica se suele disponer para las tablas de ficheros de texto delimitados por tabulaciones que usan el separador de columna predeterminado y cuyas líneas suelen concluir en el par de caracteres retorno de carro y nueva línea. Por lo tanto la sintaxis de lectura de los datos de este tipo de ficheros para la tabla seria la siguiente.

    LOAD DATA LOCAL INFILE “ruta_de_archivo_txt” INTO TABLE nombre_de_la_tabla LINES TERMINATED BY “\r\n”;

    Para este ejemplo disponemos de 2 archivos TXT uno llamado plantilla y el otro posterior. Crearemos una base de datos llámala como tu quieras. Y crearemos 2 tablas, por simplicidad no habrá ninguna restricción ni llave foránea.
    CREATE TABLE PLANTILLA (
    NOMBRE CHAR(30) NOT NULL,
    EDAD NUMERIC,
    ALOJAMIENTO CHAR(20));

    CREATE TABLE POSTERIOR(
    NOMBRE CHAR(30) NOT NULL,
    DIRECCION CHAR(20));

    Entramos a MySQL:

    mysql> LOAD DATA LOCAL INFILE “ruta_de_archivo_txt” INTO TABLE nombre_de_la_tabla LINES TERMINATED BY “\r\n”;

    Después para asegurarnos ha salido bien hacemos un SELECT a ambas tablas, asi como se muestra en la imagen.

    Incorporar datos externos a las tablas MySQL con LOAD DATA

    La sentencia SQL LOAD DATA lee los registro de un archivo y los carga como un volumen en una tabla. Esta sentencia es más rápida que INSERT. Sus sintaxis general es la siguiente:

    LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE “nombre_fichero”
    [IGNORE | REPLACE]
    INTO TABLE nombre_de_tabla
    Opciones_importacion
    [IGNORE n LINES]
    [(Lista_columnas)]

    LOW_PRIORITY retrasa la sentencia hasta que ningún usuario este leyendo la tabla. LOCAL hace que el cliente lea el archivo en el host del cliente y envié su contenido por la red al servidor. IGNORE provoca que las filas que duplican valores en un índice único sean ignoradas, mientras que REPLACE provoca que sean remplazadas.

    Las opciones de importación pueden tener la siguiente sintaxis:

    [FIELDS
    [TERMINATED BY ‘cadena’ ]
    [OPTIONALITY] ENCLOSED BY ‘caracter’]
    [ESCAPED BY ‘caracter’]]
    [LINES TERMINATED BY ‘cadena’]

    Si se usa FIELDS hay que especificar TERMINATED BY, ENCLOSED BY O ESCAPED BY. FIELDS siempre debe preceder a LINES.

    LINES TERMINATED BY especifica un carácter o caracteres que significan el final de las líneas. Si no se especifican ni FIELDS ni LINES, los valores por defecto quedaran como si se hubiesen especificado de la siguiente manera:

    FIELDS
    TERMINATED BY ‘\t’
    ENCLOSED BY ‘’
    ESCAPED BY ‘\\’
    LINES TERMINATED BY ‘\n’

    El conjunto de caracteres que se puede utilizar es el siguiente:

    Bajate la revista Linux+ enero 2010

    Jajajaja salio el dia 12 =D jajajaj pero noo se porque lo vine a publicar hasta ahora jajajaj uds. disculpen. jajajajaja…

    Contenido:

  • Interfaces gráficas con SDL
  • Make: compilación inteligente
  • Programando con inteligencia (artificial)
  • Theremín Virtual: Un instrumento musical de nueva generación
  • Herramientas forenses para la adquisición de datos
  • Analisis de soportes de datos con herramientas de código libre
  • DNS: Domain Name System
  • Juegos
  • Linux en el instituto: Implementación de un servidor
  • Esclavos de ordenadores nuevos
  • Descargar de aquí .
    Via: http://lpmagazine.org/es/

    Creación de bases de datos con SQL, ejercicio propuesto y resuelto, con código

    Consideremos la Base de Datos (BD) EMPLEADOS que contiene información correspondiente a una sencilla aplicación de procedimientos de pedidos para una pequeña empresa de distribución. Consta de 5 tablas:

    CLIENTES: Contiene una fila por cada uno de los clientes de la empresa. Sus campos son NUMCLIE (numero de cliente), EMPRESA, REPCLIENTE (numero de empleado del representante que atiende al cliente) y LIMCREDITO (limite de crédito).

    REPVENTAS: Que contiene una fila por cada uno de los 10 vendedores de la empresa. Sus campos son NUMEMPL (numero de empleado), NOMBRE, EDAD, OFICINAREP (numero de oficina de representación del vendedor), TITULO, CONTRATO, DIRECTOR, CUOTA (ventas previstas) y VENTAS (ventas realizadas).

    OFICINAS: Que contiene una fila por cada una de las 5 oficinas en las que trabajan los vendedores. Sus campos son OFICINA (numero de oficina), CIUDAD, REGION, DIR (numero del empleado del director), OBJETIVO (ventas anuales previstas) y VENTAS (ventas anuales realizadas).

    PRODUCTOS: Que contiene una fila por cada uno de los productos disponibles para su venta. Sus campos son IDEFAB (identificador del fabricante), IDPRODUCTO (identificador del producto), DESCRIPCION, PRECIO, EXISTENCIA.

    PEDIDOS: Que contiene una fila por cada pedido ordenado por un cliente. Por simplicidad se supone que cada pedido se refiere a un solo producto. Sus campos son NUMPEDIDO (numero de pedido), FECHAPEDIDO (fecha del pedido), CLIE (numero de cliente), REP (numero de empleado del representante), FAB (identificador del fabricante), PROUCTO (identificador de producto), CANT (cantidad) e IMPORTE.

    A primera vista tanto la columna OFICINA como la columna CIUDAD podrían servir como clave primaria para la tabla, pero si la empresa se amplia y abre 2 oficinas de venta en la misma ciudad, la columna ciudad ya no podría servir como clave primaria. En la práctica “numero de ID” tales como el numero de la oficina, el número de empleados y los números de clientes se eligen con frecuencia como clave primaria.

    La tabla PRODUCTOS es un ejemplo donde la clave primaria debe ser una combinación de columnas. La columna ID_FAB identifica al fabricante en la tabla y la columna ID_PRODUCTO identifica el número de producto del fabricante. La columna ID_PRODUCTO podría ser buena clave primaria, pero no hay nada que impida que dos fabricantes diferentes utilicen el mismo número para sus productos, por lo tanto debe utilizarse una combinación de las columnas ID_FAB e ID_PRODUCTO

    Claves foráneas

    En nuestra BD la columna OFICINA_REP es una clave foránea para la tabla OFICINA. Aunque es una columna en la tabla REPVENTAS, los valores que esta columna contiene son número de oficina. Coinciden con los valores de la columna OFICINA, que es la clave primaria para la tabla OFICINA. Juntas una clave primaria y una foránea crean una relación padre/hijo. Por la misma razón la columna DIR de la tabla OFICINA es una clave foránea para la tabla REPVENTAS, ya que los valores que esta columna contiene son número de empleados que coinciden con valores de la columna NUM_EMPL que es clave primaria en la tabla REPVENTAS. En idéntica situación está la columna REP_CLIE de la tabla CIENTES que también es una clave foránea para la tabla RPVENTAS, ya que los valores que esta columna contiene son números de empleados que coinciden con valores de la columna NUM_EMPL.

    Una tabla puede contener más de una clave foránea si está relacionada con más de una tabla adicional. En nuestra BD podemos definir 3 claves foráneas en la tabla PEDIDOS.

    Columna CLIE es una clave foránea para la tabla CIENTES, que relacionada cada pedido con el cliente que la remitió.

    Columna REP es una clave foránea para la tabla REPVENTAS que relaciona cada pedido con el vendedor que la tomo

    Las columnas FAB y PRODUCTO juntas son claves foráneas compuestas para la tabla PRODUCTOS, que relaciona cada pedido con el producto solicitado.

    Descargar Codigo SQL

    Introducción de registros en las tablas con SQL

    En caso de nuevas filas de datos a tablas ya existentes la sentencia básica es INSERT. La sentencia INSERT agrega una o más filas nuevas a una tabla. Tratada de forma simplificada la sentencia INSERT tiene la siguiente forma:

    INSERT [ LOW_ PRIORITY | DELAYED ] [ INGNORE ] [ INTO ] nombre_tabla
    [ ( lista_columnas ) ] VALUES ( valores_de_datos )

    lista_columnas es una lista separada por comas “,” de los nombres de las tablas que se pueden utilizar para especificar las columnas para la que se suministran los datos. Si no se especifica lista_columnas, todas las columnas de las tabas reciben datos. Si lista_columna no enumero toda las columnas de la tabla, se inserta NULL en las colunmas que no estén en la lista. Todas las columnas no citadas en la lista de columnas deben permitir valores NULL o tener un campo predeterminado asignado. Los valores_de_datos deben corresponder con la lista de columnas. El numero de valores de datos debe ser el mismo que el numero de columnas y el tipo de datos, precisión y escala de cada valor de dato debe coincidir con los de la columna correspondiente. Si lista_columna no se especifica la sintaxis completa es:

    INSERT [ LOW_PRIORITY | DELAYED ] [ INGNORE ] [ INTO ] nombre_tabla
    VALUES ( valores_de_datos )

    LOW_PRIORITY hace q INSERT espere a que ningún cliente este leyendo la tabla. DELAYED hace que las filas se sitúen en una cola para insertarlas posteriormente. INGNORE evita que se dupliquen valores de claves únicas sin error.

    Como ejemplo completo de construcción de tablas de una base de datos e inserción de sus registros, se presenta a continuación la sintaxis SQL completa para crear la base de datos EDUCA. El diseño completo de las relaciones existentes entre tablas y las restricciones de integridad son el corazón de una base de datos.

    Codigo SQL del diagrama anterior.

    Fuente: MySQL para Windows y Linux 2a edición.
    Autor: César Pérez.
    Edit.: Alafaomega Ra-Ma.

    Creacion de tablas mediante SQL de MySQL

    Las tablas son las estructuras de datos básicas en cualquier base de datos relacional. Una tabla es una colección organizada de registros (o filas), todas ellas con los mismos atributos (columnas o campos). Las columnas de la tabla describen la estructura de la misma y las restricciones de integridad describen los datos que son validos dentro de la misma. La sentencia SQL para la creación de tablas en MySQL es CREATE TABLE que tiene la siguiente sintaxis básica:

    CREATE [TEMPORARY] TABLE [IF NO EXISTS] nombre_tabla
    ( definición de columnas,…)
    [ opciones de tabla ]
    [ [IGNORE | REPLACE] ] sentencia de selección.

    La parte de la sentencia CREATE TABLE definición de columnas tiene la siguiente sintaxis:

    { nombrer_columna tipo_de_datos
    [ NOT NULL | NULL ] [DEFAULT valor_predeterminado ]
    [ AUTO_INCREMENT ] [ PRIMARY KEY ] [ referencia ]
    PRIMARY KEY ( columna_indice )
    KEY [ nombre_indice ] (columna_indice )
    INDEX [ nombre_indice ] (columna_indice )
    UNIQUE [ INDEX ] [ nombre_indice ] (columna_indice )
    [ CONSTRAINT nombre ] FOREING KEY [ nombre_indice ] (columna_indice ) [ referencia ]
    CHECK ( expresión) }

    La parte de la sentencia CREATE TABLE referencia tiene la siguiente sintaxis:

    REFERENCES nombre_tabla [ ( columnas_indice) ]
    [ ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT } ]
    [ ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT } ]
    [ MATCH FULL | MATCH PARTIAL

    TEMPORARY indica que la tabla que se crea solamente existe hasta que finalice la conexión del índice actual. IF NOT EXISTS provoca que no se cree la tabla si existe otra con el mismo nombre y que no haya errores.

    NULL | NOT NULL son palabras claves que determinan si se permiten o no valores nulos (NULL) en la columna. NULL no es estrictamente una restricción, pero se puede especificar de la misma manera que NOT NULL. DEFAULT indica el valor predeterminado para la columna. AUTO_INCREMENT se usa solamente para columnas de tipo entero indica que su valor se incrementa en 1 y se va incrementando de unidad en unidad. PRIMARY KEY es una restricción que exige la integridad de entidad para una o varias columnas dadas a través de un índice único. Sólo se puede crear una restricción PRIMARY KEY por cada tabla. UNIQUE es una restricción que proporciona la integridad de entidad para una o varias columnas dadas a través de un índice único. Una tabla puede tener varias restricciones UNIQUE.

    CONSTRAINT es una palabra clave opcional que indica el principio de la definición de una restricción PRIMARY KEY, NOT NULL, FOREING KEY o CHECK. Las restricciones son propiedades que exigen la integridad de los datos y pueden crear índices para la tabla y sus columnas. El argumento nombre es el nombre de una restricción. El nombre de la restricción debe ser único en la base de datos.

    FOREING KEY …REFERENCES es una restricción que proporciona integridad referencial para los datos de la columna o columnas. Las restricciones FOREING KEY requieren que cada valor de la columna existe en la columna de referencia correspondiente de la tabla a la que se hace referencia. Las restricciones FOREING KEY pueden hacer referencia sólo a columnas que sean PRIMARY KEY o UNIQUE en la tabla de referencia o a columnas a las que se haga referencia en UNIQUE INDEX en la tabla de referencia. El argumento nombre_indice es el nombre de la restricción FOREING KEY, el argumento columna_indice es una columna o lista de columnas de la tabla actual a la que hace referencia la restricción FOREING KEY. El argumento nombre_tabla es el nombre de la tabla externa a la que hace referencia la restricción FOREING KEY y el argumento columnas_indice es una columna o lista de columnas de la tabla externa a la que referencia la restricción FOREING KEY. INDEX y KEY son sinónimos y establecen índices que pueden contener valores duplicados de modo que el índice se basa en las columnas citadas en columnas_indice y cada una de ellas debe ser una columna de nombre_tabla.

    ON DELETE { CASCADE | NO ACTION } especificada que acción tiene lugar en una fila de la tabla creada, si esa fila tiene una relación referencial y la fila a la que hace referencia se elimina de la tabla primaria. El valor determinado es NO ACTION. Si se especifica CASCADE y se elimina una fila de la tabla primaria, también se elimina la fila de la tabla desde donde se hace referencia. Si se especifica NO ACTION, SQL Server genera un error y se deshace la acción de eliminación en la tabla primaria.

    ON UPDATE { CASCADE | NO ACTION } especifica que acción tiene lugar en una fila de la tabla creada; si esa fila tiene una relación referencial y la fila a la que se hace referencia se actualiza en la tabla primaria. El valor predeterminado es NO ACTION. Si se especifica CASCADE la fila se actualiza en la tabla de referencia si esa fila se actualiza en la tabla primaria. Si se especifica NO ACTION SQL Server genera un error y se deshace la acción de actualización en la fila de la tabla primaria. CHECK es una restricción que exige la integridad del dominio al limitar los valores posibles que se pueden escribir en una o varias columnas.

    Fuente: MySQL para Windows y Linux 2a edición.
    Autor: César Pérez.
    Edit.: Alafaomega Ra-Ma.