Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica"

Transcripción

1 Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica IE 0502 Proyecto Eléctrico UCRASM entorno de diseño de programación para ensamblador NASM con el set de instrucciones IA32 Por: Emmanuel Barrantes Chaves Ciudad Universitaria Rodrigo Facio Agosto del 2011

2 UCRASM entorno de diseño de programación para ensamblador NASM con el set de instrucciones IA32 Por: Emmanuel Barrantes Chaves Sometido a la Escuela de Ingeniería Eléctrica de la Facultad de Ingeniería de la Universidad de Costa Rica como requisito parcial para optar por el grado de: BACHILLER EN INGENIERÍA ELÉCTRICA Aprobado por el Tribunal: M.Sc. Enrique Coen Alfaro Profesor Guía Ing. Daniel Díaz Bolaños Profesor lector Ing. Diego Valverde G. Profesor lector ii

3 DEDICATORIA A Dios que me ha dado todo lo que tengo y a mis padres, soy lo que soy gracias a ellos. iii

4 RECONOCIMIENTOS Al profesor Daniel Díaz, este proyecto se finalizo gracias a el. iv

5 ÍNDICE GENERAL DEDICATORIA...III RECONOCIMIENTOS...IV NOMENCLATURA...XI RESUMEN...XII CAPÍTULO 1 : INTRODUCCIÓN...1 Objetivos...3 Objetivo general...3 Objetivos específicos...3 Metodología...4 CAPÍTULO 2: DESARROLLO TEÓRICO...5 Sistema operativo GNU/Linux Ubuntu...5 Origen...5 Proyecto GNU...9 Características Linux...11 Filosofía GNU...12 v

6 Situación actual de merado Linux...13 Ubuntu...14 C Code:: Blocks...16 Origen...17 Instalación...17 WxWidgets...19 IDE...22 Nasm...23 Instalación...26 CAPÍTULO 3: INTERFAZ GRÁFICA...28 Proyecto...28 Construcción gráfica...34 Pestañas...35 Projects...36 Symbols...37 Resources...37 Widgets...37 Editor de la barra de menú...41 vi

7 CAPÍTULO 4: CLASE Y FUNCIONES IMPLEMENTADAS...44 TRIE...44 Push...45 CheckNC...47 CheckC...47 OnQuit...47 OnAbout...48 OnClose...48 Abrir...49 Nuevo...50 Guardar...51 GuardarComo...51 CargarDicc...52 CargarReg...52 Revisarlinea...53 RevisarTodo...54 Compilar...55 vii

8 Correr...56 CompyCor...57 Check...57 CAPÍTULO 5: CONCLUSIONES Y RECOMENDACIONES...59 Conclusiones...59 Recomendaciones...60 BIBLIOGRAFÍA...61 GLOSARIO...62 ANEXOS...65 viii

9 ÍNDICE DE FIGURAS Figura 2.1 Cuota del mercado en computadoras Figura 2.2 Instalación manual...18 Figura 2.3 Instalación automática...19 Figura 3.1 Nuevo proyecto...28 Figura 3.2 proyecto wxwidgets parte Figura 3.3 proyecto wxwidgets parte Figura 3.4 proyecto wxwidgets parte Figura 3.5 proyecto wxwidgets parte Figura 3.6 proyecto wxwidgets parte Figura 3.7 proyecto wxwidgets parte Figura 3.8 proyecto wxwidgets parte Figura 3.9 Ventana del Proyecto...35 Figura 3.10 Una vez agregado wxnotebook...38 Figura 3.11 Después de agregar el wxstatictext...39 Figura 3.12 Después de agregar el wxtextctrl...40 Figura 3.13 Editor de la barra de menú...41 Figura 3.14 Editor de la barra de menú...43 Figura 4.1 Árbol binario y TRIE...45 ix

10 Figura 4.2 TRIE ejemplo después de insertar pul...46 Figura 4.3 TRIE después de la palabra pull...46 Figura 4.4 Selector de archivos...48 Figura 4.5 Selector de archivos...49 Figura 4.6 Nueva pestaña...50 Figura 4.7 Texto resaltado...54 x

11 NOMENCLATURA GNU: Es un acrónimo recursivo que significa GNU No es Unix, y se refiere al sistema operativo completo de software libre. GUI: Este acrónimo se refiera a la interfaz gráfica, Graphic User Interface por sus siglas en ingles. Transfer Protocol es un protocolo que se utiliza en todas las transacciones en la internet. NASM: Es un lenguaje de programación en ensamblador y es un acrónimo para Netwide Assembler. SO: es acrónimo utilizado para Sistema Operativo, y esto es un conjunto de programas realizando funciones en un sistema informático. xi

12 RESUMEN El proyecto se realizó con el objetivo principal de brindar una herramienta, para la programación bajo el lenguaje NASM. El programa debía presentar una interfaz gráfica que fuera amigable con el usuario y ser fácil de utilizar. Se investigó acerca del lenguaje C++ y las biblioteca wxwidgets, para poder cumplir con todos los objetivos del proyecto. Se utilizó el programa Code::Blocks, el cual resultó ser un mediador entre el lenguaje y la biblioteca. Luego de la investigación se procedió con la codificación del programa UCRASM, se realizaron pruebas exhaustivas y a su ves se realizaron las correcciones pertinentes. La aplicación fue desarrollada bajo la plataforma GNU/Linux en la distribución Ubuntu de 32 bits y Ubuntu de 64 bits. Esta sirvió como base para el desarrollo de todo el proyecto y como entorno de pruebas de la aplicación. El tipo de pruebas fueron tanto funcionales como pruebas destructivas, es decir, se probó que el programa realizara todas las funciones descritas en este documento, como probar la reacción del programa a errores intencionales. El programa tiene potencial para crecer, se le pueden realizar mejoras que salen de los objetivos de este proyecto. Se podría mejorar la interfaz gráfica, de tal manera que el programa se aún mas agradable para el usuario, también se podría expandir el programa para que no solo reconozca el set de instrucciones IA32 sino también instrucciones de 64 bits. xii

13 1 Capítulo 1 : Introducción El presente proyecto pretende desarrollar un programa que realice funciones comunes de un IDE(integrated development environment) por sus siglas en ingles, el cual es un programa que otorga al usuario una interfaz amigable para desarrollar algún lenguaje de programación, en este caso sera el lenguaje de programación ensamblador libre para la plataforma Intel x86 llamado Nasm. La utilización de editores de texto comunes con los que se escribe actualmente código para Nasm, representan un obstáculo para la programación. Estas herramientas son muy poco flexibles y no representan ninguna ayuda para la programación de este lenguaje La necesidad de sustituir los editores de texto comunes, e implementar una herramienta capaz de facilitar al usuario dicha programación es la razón que impulso este proyecto. Además en algunos cursos, del plan de estudio de la carrera Ingeniería Eléctrica con énfasis en Computadoras y Redes se utiliza este lenguaje en la realización de proyectos, tareas y exámenes para los cuales esta aplicación puede brindar una gran ayuda. El proyecto desarrollado se distribuye bajo la licencia GPL, esta licencia implica que cualquier persona es libre de utilizar, estudiar, modificar o ajustar el programa, siempre que la nueva aplicación desarrollada se distribuya bajo la misma licencia. 1

14 2 El proyecto fue elaborado en su totalidad sobre la plataforma de software libre llamada Ubuntu, el cual es una distribución de GNU/Linux. Edemas de la plataforma se utilizaron la aplicación Code::Blocks y se desarrolló en el lenguaje de programación C++. Code::Blocks es una herramienta que facilita la creación de entornos gráficos de programas, para poder hacerlos amigable con el usuario. Este tiene una licencia que permite una libre copia y distribución, la cual es GPL versión 3. La lógica del programa y sus funciones fueron implementadas en programas en C++. La aplicación desarrollada cuenta con opciones de crear, compilar y corres documentos desde el programa ya que esto representa un ahorro de tiempo, en el desarrollo y prueba del documento, además que esto representa otra mejora y un motivo mas para la utilización de este programa en vez de de un editor de texto común.

15 3 1.1 Objetivos Objetivo general Diseñar un Entorno de Desarrollo Integrado (IDE) para el lenguaje de programación ensamblador NASM Objetivos específicos Proporcionar a los usuarios una herramienta solida que permita facilitar la programación y aprendizaje del ensamblador NASM, por medio de la señalización de errores sintácticos, y marcación de instrucciones. Implementar un entorno gráfico que haga que la utilización del programa sea mas agradable para el usuario, utilizando el Entorno de Desarrollo Integrado Code::Blocks y C++. Implementar opciones de crear, compilar y correr documentos con formato asm, desde el programa y no desde la terminal de Linux, esto facilitara la manipulación y prueba de estos documentos.

16 4 1.2 Metodología Para el desarrollo de este proyecto se investigó sobre el manejo y la creación de estructuras gráficas bajo el ambiente de creación gráfico Code::Blocks, y plantillas de proyecto de WxWidgets. Se consideró que estas herramientas cumplieran todas las opciones necesarias para llevar a cabo el proyecto correctamente, de modo que no fuera necesario otro programa. Luego de implementar el entorno gráfico, se procedió a realizar la lógica detrás de ese entorno gráfico, esto es otorgando funciones a cada uno de los widgets. Como por ejemplo resaltar los comandos del lenguaje nasm con forme se fuera utilizando la barra espaciadora o la tecla enter. Para las opciones de compilar y correr los documentos, se tuvo que investigar sobre la utilización de Code::Blocks y la terminal de Linux. Una vez profundizado en el tema se crearon las opciones. Al haber terminado el programa se procedió a crear un proceso de verificación del mismo, con la intención de encontrar fallas, faltas y errores, mas conocidos como pulgas. Por cada elemento del programa se realizaron pruebas y se provocaron errores para observar como el programa reaccionaba a estos y los manejaba. Luego de este proceso se presentó el programa a compañeros estudiantes con el fin de una ultima purgación de fallas, faltas y errores. Ya que como los compañeros no conocían la estructura del programa, representan una forma de prueba no realizada con anterioridad. Después de estas pruebas se dio como finalizado el programa.

17 2 CAPÍTULO 2: Desarrollo teórico 2.1 Sistema operativo GNU/Linux Ubuntu Origen El desarrollo del sistema operativo GNU/Linux esta casi totalmente ligado al sistema UNIX. El cual empieza a mostrarse gracias al desarrollo de un proyecto iniciado en 1968, llamado MULTICS(Multiplexed Information and Computing System, sistema multiplexado de información y computación).1 En aquella época un grupo de investigadores de General Electric, AT&T Bell y el MIT(Massachussets Institute of Technology, Instituto Tecnológico de Massachussets) se unieron para desarrollar un sistema operativo que contara con los nuevos conceptos de multitarea, gestión de archivos y la interacción con el usuario. El problema con este proyecto fue que resultó ser muy ambicioso, por lo que no se logró su finalización y se abandono luego de ciertos contratiempos y retrasos.1 Después se retoma el proyecto y en 1969 conduce al desarrollo del sistema operativo UNIX, desarrollo encabezado principalmente por Ken Thompson y Dennis Ritchie junto con algunos otros investigadores que pertenecieron al proyecto MULTICS. Este sistema operativo, el cual en el momento tenia el nombre de UNICS, se implementó 5

18 6 por primera vez en una computadora DEC PDP-7. El nombre UNIC( Uniplexed Information and Computing System, sistema uniplexado de información y computación) hace referencia a su predecesor el proyecto MULTICS, solo que en este proyecto solo podía soportar dos usuarios simultáneamente. En 1970 el nombre sufre un cambio y pasa a llamarse UNIX, nombre con el que este sistema operativo es conocido actualmente. Al inicio el código de UNIX estaba escrito en lenguaje ensamblador, sin embargo esto representaba una poca portabilidad, o sea era difícil de trasladar este sistema operativo a diferentes computadoras y el código dependía del tipo de maquina. Para 1973 Dennis Ritchie, uno de los creadores del lenguaje C, junto con Ken Thompson crearon un proyecto para escribir de nuevo el código de UNIX pero esta vez en el lenguaje C. Esto aumento bastante su atractivo ya que fue el primer sistema operativo en ser escrito en un lenguaje de alto nivel. Gracias a esto era posible portar el sistema operativo a diferentes computadoras realizando pocas modificaciones, lo único que se requería era hacer una compilación en la maquina destino. Debido a su creciente demanda los laboratorios Bell, cambiaron la forma en que se distribuía este sistema operativo, ya que paso de ser de forma gratuita y con el objetivo principal de la investigación, a ser de forma oficial concediendo licencias a los usuarios. Hasta en 1974 los laboratorios Bell empezó a utilizar UNIX de forma masiva. La Universidad de California en Berkeley, comenzó a aportar nuevas características al sistema operativo convirtiéndolo en un estándar En 1975 Ken Thompson creo su propia

19 7 versión del sistema operativo llamada BSD(Berkeley Software Distribution, distribución de software de Berkeley). Bill Joy y Chuck Haley, estudiantes graduados, fueron los principales contribuidores a esta nueva versión, aportaron el editor de texto vi y el editor de texto ex, un compilador en Pascal y el Shell C entre otras. Gracias a esto BSD paso a ser el principal competidor con los laboratorios Bell.1 BSD pasa a ser la base de un proyecto de la DARPA(Defense Advanced Research Projects Agency, Proyectos de Investigación Avanzada del Departamento de Defensa) a finales de los años setenta. Fue en 1982 que se realiza el primer lanzamiento de una versión comercial del sistema operativo UNIX, por los laboratorios Bell y esta versión posee el nombre de Sistema III. En 1983 AT&T presenta el sistema operativo UNIX Sistema V versión 1, además AT&T prometió a sus usuarios total compatibilidad con las próximas versiones de sus sistemas UNIX. BSD versión 4.2 es lanzada por Berkeley en 1983, su principal característica, era que podía manejar conexiones con protocolos TCP/IP, protocolos que todavía se utilizan. Esta característica produjo un gran impacto en la demanda, produjo que esta versión fuera adoptada por varios fabricantes de computadoras, como por ejemplo Sun MicroSystems compañía fundada por Bill Joy, lo que luego da lugar a SunOS. En 1980 sale al mercado una versión llamada XENIX introducida por Microsoft, la cual dio un gran aporte ya que permitió un acercamiento de UNIX a las plataformas PC.

20 8 Después en 1987 Microsoft y AT&T hacen una fusión de XENIX con UNIX Sistema V, dando como resultado la versión 3.2 de UNIX Sistema V. Lo que permitió que un sistema UNIX estuviera disponible para una gran variedad de computadoras. Sin embargo todas estas diferentes versiones de UNIX provocaban muchos problemas de incompatibilidad, debido a sus grandes diferencias, lo que hacia que los programadores tuvieran que crear distintas versiones de sus programas para cada una de las versiones de UNIX. Gracias a esto los laboratorios Bell intentan hacer una unificación, para poder aumentar la portabilidad de los programas en las distintas versiones de UNIX, en la década de los ochenta. El objetivo era tomar lo mejor de cada una de las mejores versiones de la época, y hacer un solo sistema operativo. Se tomó UNIX Sistema V(AT&T), XENIX(Microsoft), SunOS(Microsystems), formando UNIX Sistema V versión 4, y con esto se minimizo las versiones a dos, Sistema V y BSD. Una organización independiente formada por usuarios del sistema UNIX llamada /usr/group, tenia como objetivo principal aumentar la portabilidad de los programas para UNIX. En 1985 esta organización publica el estándar POSIX(Portable Operating System Interface for Computer Environment, Interfaz de Sistema Operativo Portable para Entornos de Computadoras).

21 9 Actualmente existen versiones diferentes de UNIX como: Solaris: Creado por Sun Microsystems, esta basada en la versión de UNIX Sistema V versión 2. Es soportada por las plataformas Power PC, Intel y SPARC. AIX: Basada en la versión UNIX Sistema V versión 3 y BSD 4.3, soportada por plataformas IBM y Power PC. A/UX: Versión de la Apple de UNIX. HP-UX: Creada por Hewlett-Packard, basada en la versión UNIX Sistema V versión 2. IRIX: Basada en al versión UNIX Sistema V versión 4, realizada por Silicon Graphics. SCO UNIX: Realizada por Santa Cruz Operation (SCO), basada en la versión UNIX Sistema V versión 3.2. Linux: Inicio como un proyecto de Linus Torvalds en la universidad de Helsinki al inicio de los años noventa Proyecto GNU Conforme aumentaba la popularidad de UNIX en el mercado, así iban terminando sus distribuciones gratuitas, la ultima empresa en dar distribuciones gratuitas fue AT&T. AT&T facilitaba el sistema UNIX gratuitamente a las Universidades, con el objetivo de su estudio, ya que a AT&T no se le permitía estar en el mercado de las computadoras. El

22 10 código fuente dejó de aportarse junto con el sistema UNIX, esto fue el detonante que llevo a Andrew Tannenbaum a programar su propio clon de UNIX, el cual fue llamado Minix. El objetivo principal de este clon era la pedagogía, ya que Andrew Tannenbaum lo utilizaba en su clases en la Universidad Libre de Ámsterdam. Este clon cumplía con varias características tales como no ser excesivamente complejo pero contar con las ultimas novedades de la tecnología, que existiera la posibilidad que los estudiantes pudieran disponer de él en sus casas. Sin embargo esto solo cubría las necesidades de la Universidad Libre de Ámsterdam, y como UNIX dejo de ser gratuito las organizaciones tenían que pagar por él. Por lo que se inició el proyecto GNU, con el cual se deseaba crear un sistema portable, gratuito, avanzado, que facilitara el código fuente al publico y con un aspecto similar a UNIX. Los programas de este proyecto se debía distribuir con la licencia GPL(General Public License, Licencia Pública General), la cual daba a los usuarios la capacidad de distribuir copias sin ningún tipo de problema, además de la posibilidad de modificar el código fuente con la condición de mantener el copyright del programa. Los programas del proyecto GNU son parecidos a los programas comerciales y en muchos casos los superan en calidad, gracias a la Internet estos programas se han difundido y con esto se facilita la creación de los mismos, ya que miles de voluntarios alrededor del planeta llevan a cabo este proyecto. Linus Torvalds creo un pequeño núcleo a partir de algún clon de UNIX como un proyecto de investigación, al inicio de los años noventa. Luego de pulir su diseño

23 11 distribuyó su versión bajo al licencia GPL, invitando a la personas a probarlo y mejorarlo. Coloco en uno de los foros de Usenet el siguiente mensaje: Echa de menos aquellos días de Minix 1.1, cuando los hombres eran hombres y escribían sus propios controladores de dispositivos? No tiene ningún proyecto interesante y se muere de ganas de hincarle el diente a un sistema operativo que pueda modificar para ajustarlo a sus propias necesidades? Encuentra frustrante que todo funcione en su sistema operativo? Ya no pasa noches en vela intentando configurar un ridículo programa? Entonces este mensaje puede ser justamente para usted Características Linux Linux posee varias ventajas sobre los otros sistemas actuales como por ejemplos: Es muy consistente: quiere decir que la manera en que se utiliza no varia mucho de función en función, por ejemplo las ordenes siempre tienen la misma sintaxis. Dispone de aplicaciones muy potentes. Es estable y robusto: independiza los procesos diferentes de tal forma que si uno deja de funcionar no obstruya el correcto funcionamiento de los demás. Es muy compatible con el trabajo con redes de computadoras. Portabilidad: se puede utilizar en diferentes plataformas.

24 12 Aprovechamiento de los recursos: con pocos recursos Linux puede dar excelentes resultados. Amplia documentación: que cubre todas las secciones del sistema, además se puede obtener ayuda de otros usuarios por medio de Internet Filosofía GNU El pilar principal que sostiene la filosofía GNU es la licencia Copyleft. Existen usuarios que toman un programa regido bajo la licencia de software libre, modifican un poco o nada el programa, y lo comercializan como software privativo. El objetivo principal del método Copyleft es impedir que ocurran casos como el mencionado anteriormente. Copyleft es un método general para hacer que los programas redistribuidos, ya sean modificados o no, deban ser distribuidos con total libertad, tal y como el creador del programa original lo distribuyo, o sea el nuevo programa debe contar con la misma libertad del programa padre. Copyleft garantiza esta libertad de los programas.1 El nombre Copyleft se deriva de la intención del mismo, o sea que va en dirección contraria a lo que es el Copyright. Copyright quita la libertad a los usuarios, por otro lado Copyleft otorga esta libertad, como se observa siguen direcciones contrarias. Todas las licencias están diseñadas de tal manera que se puedan copiar fácilmente a los nuevos programas. Solo se debe incluir una copia de la licencia, sin modificar, en la documentación del nuevo programa.

25 Situación actual de merado Linux Linux presenta presenta crecimiento en algunos sectores del mercado actual, sin embargo esta todavía por debajo del dominante del mercado, Windows. En la Figura 2.1 se observa la distribución del mercado de los sistemas operativos para el año 2008, se puede ver que Linux es dueño del tercer tercer lugar en el mercado. El dominio del mercado, por parte de Windows, se debe a los siguientes aspectos: La costumbre: Muchos usuarios no desean probar nuevos sistemas operativos, por lo engorroso que representa aprender a utilizar uno nuevo. Al perfil de los usuario: Existen usuarios que simplemente por sus empleos o estudios, no tienen otra opción mas que utilizar Windows. Educación: A los estudiantes tanto de primaria como secundaria e inclusive a los universitarios se les enseña a trabajar bajo Windows. Esto esta cambiando por lo menos para los estudiantes universitarios. Juegos: Los juegos representan una parte importante en el mercado de computadoras, y existen muchos que no se pueden portar a otros sistemas operativos, por lo que los usuarios deben utilizar Windows para jugar con ellos.6

26 14 Figura 2.1 Cuota del mercado en computadoras11 En cuanto a servidores Linux(Apache) domina el mercado, en los últimos 14 años Linux a llegado a alcanzar el 72% de consumo, mientras que Windows lo máximo que alcanzó fue el 36% Ubuntu Ubuntu es un sistema operativo basado en otro sistema operativo de Linux, Debian, Ubuntu también tiene como núcleo a Linux. La empresa Canonical da soporte técnico a Ubuntu. Esta empresa es privada y fue fundada por Mark Shuttleworth.9 Una ves que Linux se estableció en el año 2004, el software libre todavía no era una opción para todos los usuarios, es por esto que Mark Shuttleworth junto con un grupo de diseñadores del proyecto Debian, construyeron un entorno de Linux fácil de utilizar para todo tipo de usuarios, llamado Ubuntu. Ubuntu viene de una palabra antigua de África que

27 15 significa Igualdad/Lealtad a los demás, también quiere decir Soy lo que soy, por lo que todos son.9 Una diferencia fundamental entre Ubuntu y las versiones comerciales de Linux, es que Ubuntu no divide el esfuerzo en una versión comercial de alta calidad y una versión gratis de una calidad pobre. La primera versión de Ubuntu fue la 4.10 llamada Warty Warthog fue liberada en Octubre del 2004, el siguiente año se vio un gran crecimiento en la comunidad de Ubuntu. Hoy en día Ubuntu es libre y seguirá siendo así, además Ubuntu esta creciendo no solo en el mercado de software para computadores sino para otros tipos de sistemas como teléfonos celulares. 2.2 C++ C es un lenguaje compilado, evoluciono de BCPL y B. BCPL.BCPL fue desarrollado por Martin Richards en 1967, y su objetivo principal era tener un lenguaje para escribir software y crear compiladores para sistemas operativos. BCPL y B. BCPL tenían como característica principal el que sus datos no tuvieran tipo, o sea que todas las variables poseían el mismo tamaño en memoria, por lo que era responsabilidad del programador tratar el dato de la manera que mas le conviniera.2 C fue derivado de B por Dennis Ritchie en En sus inicios se dio a conocer porque fue el lenguaje con el que se desarrollo UNIX, actualmente todos los sistemas están escritos en lenguaje C y/o C++. Uno de sus atractivos es la portabilidad, esto es gracias a

28 16 que C es independiente del Hardware, puede ser compilado en casi todas las computadoras. A finales de los años setenta, ya se había establecido un C tradicional, sin embargo conforme se expandía C en las diferentes plataformas, lo cual producían problemas de compatibilidad, por lo que en 1983 se creo el comité técnico X3J11 bajo el American National Standard Committee on Computer and Information Processing, con la intención de definir un estándar no ambiguo. En 1989 aprobaron el estándar que se conoce como ANSI/ISO 9899:1990. C++ fue diseñado por Bjarne Stroustrup en 1983 en los Laboratorios Bell, y es un superconjunto del lenguaje C. Aporto nuevas características que hacen mas atractivo el lenguaje C, la principal es que adhiere la capacidad de llevar a cabo la programación orientado a objetos Code:: Blocks Code::Blocks es un programa, de código abierto, que facilita la creación de interfaces gráficas para códigos escritos en C/C++. Code::Blocks fue desarrollado bajo el lenguaje C++. Este programa presenta herramientas para crear y modificar ventanas, botones, menús, paneles, etiquetas y todas aquellas partes de un programa con las que interactúa el usuario.

29 Origen Los diseñadores de Code::Blocks presentaron dos versiones, la versión 1.0rc1, la cual fue presentada el 25 de Julio del 2005 y la versión 1.0rc2, la cual fue presentada el 25 de Octubre del Sin embargo la segunda versión no fue bien recibida por los usuarios, por lo que en ves de presentar una versión final, los diseñadores optaron por presentar actualizaciones diarias llamadas "nightly builds"(construcciones nocturnas), esto permitía a los usuarios proporcionar comentarios o quejas de la actualizaciones, y se podían corregir para la siguiente actualización, esto produjo la sensación de que el proyecto estaba estancado, es decir se había quedado en una versión definitiva. El 28 de febrero del 2008, se presento la primera versión estable, esta versión fue la 8.02, el nombre se debe a la fecha de presentación, el 8 corresponde al año y el 02 corresponde al mes. Actualmente la versión disponible de Code::Blocks es la versión Instalación Existen varias alternativas para la instalación, de las cuales solo se explicaran dos, descargando el instalador de la pagina oficial, la cual es y utilizando Centro de software de Ubuntu. Para llevar a cabo la instalación con la primera opción se debe visitar la pagina oficial de Code::Blocks en la sección de descargas, se selecciona la sección de archivos binarios, luego se busca el archivo comprimido

30 18 codeblocks-xx.xx-1-debian-yyyyy.tar.bz2 (XX.XX representa la versión de Code::Blocks, YYYY representa el tipo de plataforma en el que se desea instalar Code:Blocks. Si se desea instalar en 32-bits se usa i386, si se desea instalar en 64-bits se utiliza amd64 ). Una vez terminada la descarga, se debe descomprimir el archivo, obteniendo una carpeta llamada amd64 dentro de la cual existen varios archivos.deb, solo se le debe dar doble click a cada uno de los archivos. Se desplegara una ventana del Centro de software de Ubuntu como en la Figura 2.2. Otra forma instalar los archivos.deb, es utilizando una terminal, posicionarse en el directorio donde se encuentran los archivos.deb y ejecutar el comando sudo dpkg -i *deb, con esto automáticamente se instalaran todos los archivos.deb. Figura 2.2 Instalación manual Existe una forma de instalación automática, solo se debe ingresar al programa Centro de software de Ubuntu, buscar programas por el nombre Code::Blocks, dar click en

31 19 el botón que dice Más información aparece una ventana similar a la de la Figura 2.3, para finalizar solo se da click al botón Instalar y se espera a que la instalación finalice. Figura 2.3 Instalación automática WxWidgets WxWidgets es un conjunto de bibliotecas de C++ que permite desarrollar y crear interfaces gráficas para aplicaciones, tanto para Windows, Linux y UNIX en arquitecturas de 32 bits y 64 bits, como para arquitecturas de celulares como Windows Mobile y iphone SDK.12 WxWidgets representa una forma sencilla de crear interfaces gráficas para aplicaciones en distintas plataformas, la facilidad que presenta es que la aplicación siempre va a tener widgets que combinan con la configuración gráfica de la plataforma, por ejemplo

32 20 si el usuario le cambia los colores a todas las ventanas, la ventana de la aplicación también cambiara de color. Las principales características que ofrece wxwidgets son la ayuda en línea, la programación de redes, subir y guardar imágenes en una variedad de formatos y soporte de base de datos. El proyecto wxwidgets nace en 1992 por Julian Smart en el Artificial Intelligence Applications Institute(Instituto de las Aplicaciones de la Inteligencia Artificial) de la Universidad de Edinburgh.9 Conforme pasó el tiempo, una pequeña pero entusiasta comunidad de los usuarios de wxwidgets, se estableció aportando contribuciones y reparaciones, las contribuciones mas grandes eran por parte de los usuarios de plataformas Mac. WxWidgets fue obteniendo mas y mas usuarios alrededor del mundo. Estos usuarios pertenecían al sector tanto comercial, gubernamental como industrial, estos pensaban que wxwidgets ofrecía un mejor producto, un mejor soporte que los productos comerciales de la época En 1996 wxwidgets se estanco un poco, Julian dejó el Artificial Intelligence Applications Institute para ser un consultor independiente, después de eso se liberaron pocas versiones. Lo que parecía un avance incontenible de Java estaba produciendo dudas con respecto al futuro de las bibliotecas de C++. Gracias a muchas contribuciones el código de wxwidgets llego a verse cansado y con necesidad de un replanteamiento. Al inicio de 1997 se dio este replanteamiento, comprometiéndose a hacer de wxwidgets lo

33 21 suficientemente flexible para las futuras y actuales tendencias, con mas widgets y un mejor uso de C++.9 Ya para el final de 1997 Julian Smart empezó a distribuir CD-ROMs de wxwidgets. Para versión wxwidgets se observa los impresionantes atributos de la clase wxhtml de Vaclav Slavik, incluía impresión y vista. WxHTML daba acceso a una forma fácil ver texto con formato, además daba la capacidad de presentar reportes. Para instalar wxwidgets solo es necesario instalar Code::Blocks ya que, wxwidgets es parte fundamental de Code::Blocks. O si se desea se puede utilizar el programa Gestor de Paquetes Synaptic, en la barra de búsqueda escribir wxwidgets e instalar los siguientes paquetes(x.x representa la versión a instalar): wxx.x-headers libwxgtkx.x-0 wx-common libwxgtkx.x-dev libwxgtkx.x-dbg libwxbasex.x-0 libwxbasex.x-dev libwxbasex.x-dbg

34 IDE Un IDE es un programa que da herramientas a los desarrolladores de software para facilitar su labor al programar. Comúnmente un IDE debe contar con cuatro características las cuales son: Un editor de código fuente. Un compilador o interprete. Herramientas para la ejecución automática. Una herramienta para encontrar errores en el código. Los primeros sistemas de programación se realizaban con tarjetas programadas, y cintas magnéticas entre otros. Es por esto que cuando sale la primera consola o terminal también aparece el primer IDE, el cual se controlaba desde terminal. El primer lenguaje de programación en ser creado con un IDE fue Dartmouth BASIC. Este IDE tenia la capacidad para editar y crear archivos, compilación, ejecución y herramienta para encontrar errores, a pesar de que este IDE se manejaba vía comandos a través de la terminal y no como los IDEs actuales que poseen interfaces gráficas.10 Maestro I es el nombre del primer IDE del mundo, fue creado por Softlab Munich en Maestro I fue el líder en el mundo durante los años setenta, hoy en día se puede encontrar un Maestro I en el museo de información y tecnología de Arlington. Otro IDE en ser de los primeros en el mundo fue Softbench.9 Algunos IDEs que se pueden encontrar actualmente en la red son:

35 23 C/C++: NetBeans, Bloodshed, Kdevelop y Eclipse CDT. Python: Komodo, NetBeans, PyCharm, WingIde, PyScripter, Pyshield y IEP. Perl: Epic, Open Perl IDE, Optiperl, Kephra, Gvim y Emacs. Java: Jcreator, IntelliJIDEA, NetBeans, Jedit, NEDit y BlueJ. Masm: Winasm y Radasm. 2.5 Nasm Netwide Assembler o Nasm es un lenguaje ensamblador, creado con la intención de aportar mas portabilidad y modularidad. Soporta todas las extensiones de arquitectura x86 conocidas, como por ejemplo x86 64, también soporta macros. Soporta varios tipos de formatos de archivos tales como.out, elf, COFF, Mach O. Fue diseñado para que la sintaxis fuera sencilla de entender, muy parecida a la sintaxis de Intel, un poco menos complejo. Nasm surgió de la necesidad de tener un lenguaje ensamblador que cumpliera con aspectos que los lenguajes ensamblador de la época no podían satisfacer. En ese momento estaba el lenguaje a86, era un buen ensamblador pero no era gratis, tenia el problema de que no tenia compatibilidad con 32-bit a menos que se pagara esta opción, y solo sirve para Windows. Gas es otro ensamblador de la época el cual era gratis y soportado tanto para Windows como para Linux, pero su corrección de errores era mínima, tenía una sintaxis no atractiva y no tenia una compatibilidad adecuada con 16-bits.

36 24 El as86, fue ensamblador de la época que no satisfacía las necesidades. Tenia el problema de que no existía suficiente documentación. Masm era un ensamblador caro, malo y que solo se ejecuta en Windows. Tasm contaba con una sintaxis que era esencialmente Masm, ya que Tasm se esforzaba por tener compatibilidad con Masm lo que significaba muchas directivas y tramites. Además era caro y solo se podía utilizar bajo la plataforma Windows. Los problemas anotados anteriormente hicieron que creciera la necesidad de un ensamblador que fuera gratis, con una sintaxis sencilla y que corriera en ambas plataformas Windows y Linux. El lenguaje NASM posee una licencia de software libre llamada BSD license. La cual permite la redistribución del código fuente, ya sea con o sin modificación, siempre y cuando cumpla con las siguientes reglas: La redistribución del código fuente debe conservar el siguiente aviso copyright, Copyright the NASM Authors All rights reserved. Se debe adjuntar la siguiente renuncia: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR

37 25 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 4 Lo cual significa: Este este software es proporcionado por los derechos de autor y colaboradores "tal cual" y ninguna garantía expresa o implícita, incluyendo, pero no limitada, a las garantías de comercialización y aptitud para un propósito particular es rechazada. En ningún caso el propietario del copyright o los colaboradores son responsables por daños directos, indirectos, accidentales, especiales, ejemplares, o derivados (incluyendo sin limitar, a la obtención de bienes o servicios, la pérdida de uso, de datos o de beneficios, o interrupción), como en cualquier teoría de responsabilidad, ya sea contrato, estricta responsabilidad, o agravio (incluyendo negligencia) derivados de alguna manera a partir del uso de este software, incluso si se ha advertido de la posibilidad de tales daños.

38 Instalación A continuación se explican los pasos para tener una versión estable de Nasm instalada en Linux. Se debe descargar, de la pagina oficial de Nasm un archivo comprimido llamado nasm XXX.tar.gz donde XXX significa el numero de la versión que esta en el archivo. Una vez descargado, se descomprime en el directorio /usr/local/src, una vez descomprimido se creara una carpeta con el nombre nasm XXX. Una ventaja de la configuración de Nasm es que es automática, por lo que nada mas se debe abrir una terminal, cambiar de directorio hacia la carpeta nasm XXX con el siguiente comando: cd /usr/local/src/nasm XXX (Recordar cambiar XXX por la versión que se va a utilizar) Luego se ejecuta el script configure con el siguiente comando:./configure Lo que hace este script es encontrar el mejor compilador de C para construir Nasm y preparar los makefiles correspondientes. Después de la autoconfiguración se debe escribir la palabra make en la terminal para construir los archivos binarios nasm y ndisasm. Para finalizar se debe escribir el comando: make install

39 27 El cual instalara los archivos binario en /usr/local/bin e instalara manuales nasm.1 y ndisasm.1 en /usr/local/man/man1. Y con esto ya se puede tener Nasm instalado en Linux.

40 3. CAPÍTULO 3: Interfaz gráfica La interfaz gráfica representa una parte muy importa de este proyecto, esta es la que permite que el programa sea amigable con el usuario. La interfaz gráfica se llevó a cabo por medio de Code::Blocks y wxwidgets, herramientas útiles en la creación de interfaces gráficas para aplicaciones. En este capitulo se explicara como se desarrolló la interfaz paso a paso. 3.1Proyecto Para crear un proyecto nuevo, se debe abrir el programa Code::Blocks, en la barra de menú seleccionar la pestaña que dice New, luego seleccionar Project, aparecerá una ventana igual a la Figura 3.1. En esta ventana aparecen las opciones de widgets con los que sea desea trabajar, en este caso es wxwidgets entonces se selecciona el icono con el nombre wxwidgets project. Figura 3.1 Nuevo proyecto 28

41 29 En la primer ventana(figura 3.2) aparece solo es un mensaje de bienvenida, para avanzar es necesario dar clic en el botón Next. Figura 3.2 proyecto wxwidgets parte 1 La ventana siguiente es para seleccionar la versión de wxwidgets con la que se va a trabajar, en la ventana se mostraran las versiones de wxwidgets que se tienen instaladas en el computador. Figura 3.3 proyecto wxwidgets parte 2

42 30 Para este proyecto se seleccionó la versión 2.8.x porque era la ultima versión estable disponible en el momento de crear el proyecto. En la Figura 3.4 se observa la siguiente ventana en aparecer, en esta se deben llenar los datos del proyecto las casillas corresponden a el titulo del proyecto, ubicación del proyecto (carpeta en donde se va a guardar la carpeta que contiene todos los archivos para el proyecto), nombre del archivo del proyecto y en la ultima casilla se presenta la ubicación del nombre del archivo del proyecto. Los cambios realizados en las primeras 3 casillas modifican automáticamente a la ultima. Figura 3.4 proyecto wxwidgets parte 3 La cuarta ventana en aparecer se llena con información del autor de la aplicación, llenar las casillas en esta ventana es opcional, por lo que se puede avanzar a ala siguiente ventana al darle clic en Next. La información que se escriba en esta ventana(figura 3.5)

43 31 será colocada al inicio de cada código fuente que sera creado al finalizar la creación del proyecto. Figura 3.5 proyecto wxwidgets parte 4 En la Figura 3.6 se puede ver la ventana siguiente se debe seleccionar una entre los dos tipos de interfaz gráfica de usuario(gui por sus siglas en ingles), para este proyecto se seleccionó wxsmith ya que es la GUI que soporta más widgets. Además hay que seleccionar el tipo de aplicación que se va crear, existen dos posibilidades tipo Dialog y tipo Frame. Para este proyecto se utilizo tipo Frame, debido a que el uso de este tipo hace que la ventana ya tenga la base de un menú, en la sección 3.2 se dará mas detalles al respecto.

44 32 Figura 3.6 proyecto wxwidgets parte 5 En la siguiente ventana(figura 3.7) no se debe modificar absolutamente nada, sin embargo para mas información en esta ventana se selecciona el compilador, la dirección en donde se creara el ejecutable final y la dirección en donde se crearan los archivos.o, los cuales son archivos temporales de la compilación.

45 33 Figura 3.7 proyecto wxwidgets parte 6 En la ultima ventana no se debe cambiar nada, en este ventana se habilitan opciones avanzadas, pero esto es para los diseñadores mas experimentados, las necesidades de este proyecto se satisfacen con las opciones por defecto. La ventana se presenta en la Figura 3.8.

46 34 Figura 3.8 proyecto wxwidgets parte 7 Al darle clic al botón Finish se crearan en la carpeta seleccionada en la Figura 3.4 los siguientes archivos: XXX.cbp, XXX.depend, XXX.layout, XXXApp.cpp, XXXApp.h, XXXMain.cpp, XXXMain.h. Dentro de un carpeta llamada wxsmith debe haber un archivo llamado XXXframe.wxs. Si se encuentran todos estos archivos el proyecto se creo correctamente. Recordar que en ves de XXX debe estar el nombre del proyecto, para efectos de este proyecto de ahora en adelante se cambiaran las XXX por UCRASM. 3.2Construcción gráfica Una de las razones del porque se eligió wxsmith en ves de wxformbuilder en la ventana de la Figura 3.6, es que wxsmith trae un pequeño menú por defecto, en esta

47 35 sección se explicara como manipular la ventana del proyecto y como mejorar el menú que esta incluido en wxsmith. Una vez creado el proyecto se abrirá una ventana similar a la mostrada en la Figura 3.9. En la cual se denotan cuatro rectángulos de colores rojo, azul, verde y amarillo, estos rectángulos muestran las partes principales que se utilizaron en la creación de este proyecto Figura 3.9 Ventana del Proyecto Pestañas En la Figura 3.9 se puede observar tres pestañas, encerradas en un rectángulo rojo, las cuales son : Projects, Symbols, Resources.

48 Projects En esta pestaña se encuentran los códigos fuente de C++ utilizados en la construcción del proyecto. UCRASMApp.cpp contiene el programa que empieza toda la parte gráfica en este código fuente no se debe modificar nada. En UCRASMMain.cpp representa el programa principal del proyecto, contiene las definiciones de las funciones que se utilizan en el programa, inicialmente solo tiene el constructor, el destructor, la función OnQuit y la función OnAbout. En el constructor de la clase no se debe escribir nada entre el texto //(*Initialize(UCRASMFrame) y //*) ya que todo lo que se escriba ahí, se borrara la próxima ves que se actualicen los widgets. En el constructor también se guardan la definición de los widgets. UCRASMApp.h y UCRASMMain.h son los códigos fuentes las cabeceras de UCRASMApp.cpp y UCRASMMain.cpp respectivamente, esto significa que en ellos se guarda la declaración de las clases y de las funciones de cada clase, UCRASMFrame es la clase que se declara en UCRASMMain.h y UCRASMApp es la clase que se declara en UCRASMApp.h. Por último se encuentra UCRASMframe.wxs es un código fuente que no se puede modificar manualmente, conforme se hacen cambios en los widgets se va actualizando este archivo.

49 Symbols Se pueden ver las funciones que se definen y las variables en esta pestaña. Es una forma de accesar a esta información mas rápidamente, en caso de que el código sea muy largo, así se evita perdidas de tiempo. Para brincar a la declaración nada mas se da doble clic sobre el nombre de la variable o función, y en la pantalla se desplegara el código en donde se declara Resources En la Figura 3.9 se observa donde se selecciona los widgets encerrado por un rectángulo amarillo, esta junto con la pestaña Resources se utilizan para crear y modificar la interfaz gráfica Widgets Para empezar a crear la interfaz gráfica se debe abrir el archivo, que se encuentra en la pestaña Projects, llamado UCRASMframe.wxs, al darle doble clic la parte derecha cambiara y se presenta como la parte derecha de la Figura 3.9, donde hay un rectángulo con un fondo blanco con puntos, este es el marco de trabajo. Además se mostrará el seleccionador de widgets, el cual aparece encerrado por un rectángulo amarillo(figura 3.9), tiene varias pestañas con diferentes tipos de widgets. Luego se debe dar clic en la pestaña Resources.

50 38 Lo primero que se agrega es un widget llamado wxnotebook, se encuentra en la pestaña Standard en el seleccionador de widgets, esto se logra dando clic en el botón del wxnotebook y luego dar clic en el marco de trabajo. El widget wxnotebook lo que permite es que se almacenan otros widgets en forma de pestañas. Tiene que verse como en la Figura 3.10 Figura 3.10 Una vez agregado wxnotebook Luego se agrega el widget wxstatictext que se encuentra en la pestaña Standard en el seleccionador de widgets, de la misma manera que se hizo con el wxnotebook, nada mas que en ves de darle clic al escritorio de trabajo se le da al wxnotebook. El wxstatictext se utiliza para mostrar los errores sintácticos que haya a la hora de compilar. A este widget se le cambian ciertas características, esto se hace modificando las casillas que se encuentran encerradas en un rectángulo verde en la Figura 3.9, llamado

51 39 manejador. Se da clic en el widget al que se le quiere modificar las características, el manejador cambia dependiendo del widget seleccionado. Se le debe borrar la casilla Label, esto hace que al iniciar el programa no aparezca nada escrito en el widget wxstatictext, en la casilla Page name se cambia por Build Log, esto le cambia el nombre permanentemente a la pestaña del widget wxstatictext, y en la casilla Foreground se cambia default por Active window caption, esto hace que el texto que se escriba aparezca de diferente color. Después de esto debe quedar iguala ala Figura 3.11 Figura 3.11 Después de agregar el wxstatictext Para finalizar la interfaz gráfica se le agrega un widget wxtextctrl que se encuentra en la pestaña Standard en el seleccionador de widgets, se hace de la misma manera que con el wxstatictext. wxtextctrl es el widget que da la opción de editar texto,sin embargo por defecto es una entrada de texto de una sola línea por lo que hay que

52 40 modificarle ciertas características. En el manejador se modifican las siguientes casillas: la casilla Text se debe borrar, la casilla Page name se debe cambiar el contenido por Code, se le debe dar clic a la casilla Hidden de tal forma que se agregue un check en esa casilla, y en la casilla Style se deben activar las opciones: wxte_multiline, wxte_rich, wxte_rich2, wxhscroll, wxvscroll. Estas características lo que permiten es cambiar una entrada de texto de solo una línea por una entrada de texto multilínea, que soporte mucho texto, o sea que la longitud máxima sea muy grande, además permiten que en caso de que el texto es mas grande que la ventana aparezcan barras vertical y horizontal que permitan al usuario moverse por el texto. Luego de agregar la entrada de texto y modificarle las características debe observarse como en la Figura 3.12 Figura 3.12 Después de agregar el wxtextctrl

53 Editor de la barra de menú Para modificar el menú que por defecto ya esta en el proyecto por haber elegido wxsmith, se le debe dar doble clic al icono izquierdo que aparece encerrado por un rectángulo azul en la Figura 3.9, en ese momento se despliega una ventana nueva igual a la de la Figura 3.13, donde se muestra al lado izquierdo los menús y botones que existen, y al lado derecho muestra las características de esos menús y botones. Figura 3.13 Editor de la barra de menú Para agregar un ítem nuevo se da clic en el botón New, con los botones que contienen flechas y están arriba del botón New, se cambia la posición del ítem en la barra de menú. Con las flechas arriba y abajo, se modifica la posición vertical dentro de la barra de menú, y con las flechas derecha e izquierda se modifica el ítem, es decir se decide si el ítem es un menú o un botón. Por ejemplo si a un menú se le mueve hacia la derecha el

54 42 menú se convierte en un botón, y si a un botón se le mueve hacia la izquierda se convierte en menú. Cuando se agrega un ítem se le debe crear un Id, eso se logra escribiendo un nombre en la casilla que dice Id, además en la casilla que dice Label se llena con el nombre que se desee para el ítem. La casilla Accelerator da la facilidad de escribir una secuencia de teclas que aceleren un botón, por ejemplo para este proyecto en vez de tener que buscar en el menú el botón New con solo presionar la tecla F2 se ejecuta la misma función. Para este proyecto se agregaron dos menús: Options y Build. También se agregó el botón Refresh en el menú Options, los botones Check Compile Run Compile and Run en el menú Build y los botones New, Open, Save, SaveAs..., Close, Exit en el menú File. En la Figura 3.14 se muestra el menú finalizado.

55 43 Figura 3.14 Editor de la barra de menú

56 4. CAPÍTULO 4: Clase y funciones implementadas Además de la interfaz gráfica el programa tenia que tener código que se ocupara de manera la parte lógica detrás de la interfaz gráfica, manejar la función de los menús, que se resaltará el código que se escribiera en la entrada de texto, que se imprimiera la salida en Build Log en caso de errores, etc. Se tuvieron que crear funciones que manejaran toda la lógica, estas funciones se encuentran declaradas en UCRASMMain.h y definidas en UCRASMMain.cpp. Fue necesario implementar una clase especial llamada TRIE, es una clase que sirve principalmente para hacer un diccionario 4.1TRIE TRIE es una estructura de datos que sirve para almacenar cadenas de letras, su nombre viene de la palabra recuperación en ingles(retrieval). Su estructura es muy similar a la de un árbol binario, la diferencia es que un nodo(una unidad de almacenamiento de una estructura de datos) de un TRIE puede tener mas de dos hijos. En la Figura 4.1 se muestra las dos estructuras, la del lado izquierdo es el árbol binario y la otra es el TRIE. En el TRIE de la Figura 4.1 se pueden formar 3 palabras con el mismo inicio pusha, pushs, pushf, además se observa que el ultimo nodo h tiene 3 hijos, en realidad un nodo de un TRIE puede tener hasta 26 hijos ya que este es el número de letras disponibles en el alfabeto. 44

57 45 Figura 4.1 Árbol binario y TRIE Para utilizar el TRIE se creó las funciones Push, CheckC y CheckNC Push Push guarda una palabra en el TRIE, por ejemplo si desea guardar la palabra pull en el TRIE de la Figura 4.1. Se verifica si la p ya esta en el TRIE, como sí esta se verifica si la u también esta en el TRIE pero tiene que estar después de la p en el TRIE, luego se verifica si la l esta en el TRIE después de pu como no esta se crea un nodo con contenido l la Figura 4.2 muestra como esta el TRIE después de insertar la l.

58 46 Figura 4.2 TRIE ejemplo después de insertar pul Para la otra l de la palabra pull ocurre un caso especial, ya que es la ultima letra de la palabra, entonces al crear el nodo para la l se le agrega una característica, llamada final, que indica si el nodo es el ultimo nodo de alguna palabra esto con el objeto de que p, pu y pul no representen palabras. En la Figura 4.3 se observa la palabra pull ya almacenada en el TRIE. Figura 4.3 TRIE después de la palabra pull

59 CheckNC Esta función verifica si una palabra se encuentra en el TRIE pero sin tomar en cuenta mayúsculas y minúsculas. Por ejemplo se desea saber si la palabra push esta en el TRIE de la Figura 4.3. Primero se verifica que se encuentre la letra p, como esta se verifica que ese nodo tenga un hijo con la letra u, y a su ves que el ultimo tenga un hijo con la letra s, por ultimo se verifica si el nodo s tenga un hijo con la letra h y que además tenga la característica final activada, por lo tanto push si se encuentra, pero si se buscara la palabra pus sucedería que el nodo s no tiene la característica final activada por lo que pus no es una palabra valida en el TRIE CheckC Esta función actúa de forma similar a CheckNC con la diferencia que si la palabra a verificar esta en minúscula y aunque su semejante en mayúscula esta en el TRIE, esta función diría que no se encuentra la palabra. O sea si se busca push y en el TRIE esta PUSH, se diría que push no se encuentra en el TRIE. 4.2OnQuit Esta es una función sencilla, es llamada cada vez que el usuario presiona el botón Exit del menú File ó el usuario presiona las teclas Alt + F4. Cuando la función es

60 48 llamada ejecuta el comando exit(0). exit es una función de la biblioteca cstdlib y lo que hace es terminar el programa normalmente, o sea sin dar ninguna alerta de error. 4.3OnAbout Es llamada cuando el usuario presiona el botón About en el menú Help ó cuando el usuario presiona la tecla F1. La función lo que hace es mostrar en una nueva ventana el mensaje Made by Emmanuel Barrantes with wxwidgets Linux-Unicode build, la ventan tiene como titulo Credits. En la Figura 4.4 se observa la ventana que aparece al ser llamada esta función. Figura 4.4 Selector de archivos 4.4OnClose OnClose es llamada cuando el usuario presiona el botón Close en el menú File ó cuando el usuario presiona las teclas Alt + X ó cuando el usuario presiona el botón con una x, que sirve por lo general para cerrar ventanas. La función verifica que pestaña el usuario esta tratando de cerrar, si la pestaña es la Build Log la función termina

61 49 el programa, en caso de que sea cualquier otra pestaña la función cierra dicha pestaña y el programa se sigue ejecutando. 4.5Abrir Esta función se llama cuando el usuario presiona el botón Open en el menú File ó cuando el usuario presiona las teclas Alt + O. Al ser llamada esta función desplegara una ventana donde el usuario puede seleccionar cualquier archivo, la cual se observa en la Figura 4.5. Figura 4.5 Selector de archivos Una vez seleccionado el archivo se abre en modo lectura, luego se crea una pestaña nueva en el widget wxnotebook y la función toma el nombre del archivo para cambiar el

62 50 titulo de dicha pestaña, después copia todo el contenido del archivo en la nueva pestaña. Al final llama a la función RevisarTodo y cierra el archivo. 4.6Nuevo Sencillamente esta función crea una nueva pestaña vacía en el widget wxnotebook, y como titulo de la pestaña se escribe la palabra nuevo. Para llamar a esta función, el usuario debe presionar el botón New en el menú File ó debe presionar la tecla F2. La Figura 4.6 muestra el resultado luego de haberse ejecutado esta función. Figura 4.6 Nueva pestaña

63 51 4.7Guardar Esta función verifica en cual pestaña se esta intentando guardar el contenido, en caso de que sea la pestaña Build Log, la función no realiza ninguna acción, si la pestaña es una pestaña nueva, no existe un archivo destino en donde se va a guardar el contenido de la pestaña, por lo que se despliega una ventana para seleccionar el nombre con el que se va a guardar la pestaña nueva. En caso de que la pestaña no sea nueva, es decir una pestaña producida por una función Abrir, dicho de otra manera una pestaña que se haya guardado con anterioridad, lo que significa que ya se tiene el nombre del archivo destino donde se va a guardar el contenido de la pestaña. En cualquiera de las opciones anteriores, una vez que se tiene el nombre del archivo destino, se copia el contenido de la pestaña en el archivo, y se cambia el nombre de la pestaña por el nombre del archivo destino. Para llamar a esta función el usuario puede presionar el botón Save en el menú File ó puede presionar las teclas Alt + S. 4.8GuardarComo Para esta función no importa cual pestaña se vaya a guardar, se puede guardar tanto una pestaña normal o la pestaña Build Log. Una vez llamada, la función despliega una ventana donde el usuario debe elegir, el nombre con el que se va a guardar el contenido de la pestaña, luego de que se seleccione, se cambia el titulo de la pestaña por el nombre del

64 52 archivo elegido. El usuario puede utilizar esta función si presiona el botón SaveAs... en el menú File ó puede presionar las teclas Alt + Shift + S. 4.9CargarDicc Esta función busca un archivo llamado Instrucciones que debe estar en la misma carpeta en donde se encuentra el ejecutable UCRASM. Si no lo encuentra lo crea, en él debe encontrarse el repertorio de instrucciones IA32 del lenguaje ensamblador, debe haber solo una instrucción por línea y las instrucciones deben estar en mayúscula. La función toma todas las instrucciones del archivo Instrucciones y las guarda en una variable llamada Diccionario, esta variable es del tipo TRIE, es decir la función ejecuta el comando push que tiene la clase TRIE, y luego cierra el archivo Instrucciones. El usuario no puede utilizar esta función, cada vez que se inicia el programa por si solo se llama a esta función CargarReg Similar que la función CargarDicc, solo que en ves de cargar instrucciones esta función carga los registros del set de instrucciones IA32. De igual manera que en la función CargarDicc esta función busca en la carpeta donde se encuentra el ejecutable, el archivo se llama Registros, en él se debe encontrar los registros, uno por línea, y en mayúscula. Si el archivo no existe la función lo crea.

65 53 Los registros que se encuentran en el archivo Registros se guardan en una variable llamada Registros y también es del tipo TRIE al final de la función se cierra el archivo Registros. Al igual que en la función CargarDicc esta función nunca es llamada por el usuario, solo se llama una vez al inicio del programa Revisarlinea Es la función que se encarga de resaltar las instrucciones, registro y comentarios. Si el usuario hace algún tipo cambio en el texto de alguna de las pestañas, se llamara automáticamente a la función, el usuario no puede llamar a la función directamente, solo a través de los cambios que haga en el texto. Al inicio la función creara unas variables que contiene diferentes colores, estos colores se utilizaran para cambiar el color de las palabras, solo se cambiaran las palabras que estén en el diccionario. Estos colores son rojo, azul y verde. Luego se obtiene la línea en donde el usuario haya realizado un cambio, se separan las palabras de la línea por medio de los espacios y se almacenan. Si se encuentra un ; esto significa que es un comentario por lo que se almacena todo el resto como una sola palabra. Luego se evalúa palabra por palabra de la línea, primero se verifica si es una instrucción, un registro, o comentario. En caso de que sea alguna de estas opciones se cambia el tipo de letra y el color dependiendo de lo que sea la palabra, si es una instrucción se cambia por azul, si es un registro se cambia por rojo, y si es cualquier otra palabra se cambia el color por negro. En la Figura 4.7 se observa un ejemplo como queda resaltado el

66 54 texto en una pestaña, en la Figura se observa que después de un ; sin importar el texto que haya queda de color verde. Figura 4.7 Texto resaltado 4.12 RevisarTodo Esta función es llamada cuando se abre un archivo, el objetivo es revisar todo el texto que se acaba de abrir para ver si hay instrucciones, registro y/o comentarios. LA función recorre línea por línea y ejecuta la función revisar línea. El usuario sí puede utilizar manualmente esta función, solo debe presionar el botón Refresh que se encuentra en el menú Options.

WINDOWS. Iniciando Windows. El mouse

WINDOWS. Iniciando Windows. El mouse Windows es un sistema operativo, cuyo nombre lo debe al principal elemento de trabajo, la ventana - en inglés window -. Este tiene características como: Multitarea: durante una sesión de trabajo, es posible

Más detalles

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno.

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno. Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos

Más detalles

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

Tutorial: Primeros Pasos con Subversion

Tutorial: Primeros Pasos con Subversion Tutorial: Primeros Pasos con Subversion Introducción Subversion es un sistema de control de versiones open source. Corre en distintos sistemas operativos y su principal interfaz con el usuario es a través

Más detalles

2_trabajar con calc I

2_trabajar con calc I Al igual que en las Tablas vistas en el procesador de texto, la interseccción de una columna y una fila se denomina Celda. Dentro de una celda, podemos encontrar diferentes tipos de datos: textos, números,

Más detalles

Módulo 1 El lenguaje Java

Módulo 1 El lenguaje Java Módulo 1 El lenguaje 1.1 Presentación de es un lenguaje de programación desarrollado por la empresa Sun Microsystems en 1991 como parte de un proyecto secreto de investigación llamado Green Proyect, con

Más detalles

WINDOWS 2008 5: TERMINAL SERVER

WINDOWS 2008 5: TERMINAL SERVER WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

V i s i t a V i r t u a l e n e l H o s p i t a l

V i s i t a V i r t u a l e n e l H o s p i t a l V i s i t a V i r t u a l e n e l H o s p i t a l Manual de Restauración del PC Septiembre 2011 TABLA DE CONTENIDOS SOBRE EL SOFTWARE... 3 CONSIDERACIONES ANTES DE RESTAURAR... 4 PROCEDIMIENTO DE RECUPERACION...

Más detalles

MACROS. Automatizar tareas a través del uso de las macros.

MACROS. Automatizar tareas a través del uso de las macros. OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar

Más detalles

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este Manual para usuarios USO DE ONEDRIVE Universidad Central del Este Contenido 1. QUÉ ES Y PARA QUÉ SIRVE OFFICE 365?... 3 1.1 CÓMO ENTRAR A LA PLATAFORMA DE OFFICE 365 DE LA UCE?... 3 ONEDRIVE... 5 2. QUÉ

Más detalles

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto INFORMÁTICA INFORMÁTICA 1 Sesión No. 4 Nombre: Procesador de Texto Contextualización La semana anterior revisamos los comandos que ofrece Word para el formato del texto, la configuración de la página,

Más detalles

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation. WINDOWS Windows, Es un Sistema Operativo. Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation. Dentro de los tipos de Software es un tipo de software de Sistemas. Windows

Más detalles

Manual de uso de la Consola de Administración para usuarios Administradores.

Manual de uso de la Consola de Administración para usuarios Administradores. Manual de uso de la Consola de Administración para usuarios Administradores. I. ACCESO A LA CONSOLA DE ADMINISTRACIÓN 1. Para acceder a la consola de administración abra desde Internet Explorer la dirección

Más detalles

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición. Microsoft Word Microsoft Word es actualmente (2009) el procesador de textos líder en el mundo gracias a sus 500 millones de usuarios y sus 25 años de edad. Pero hoy en día, otras soluciones basadas en

Más detalles

Utilización del sistema operativo GNU/ Linux en las netbooks

Utilización del sistema operativo GNU/ Linux en las netbooks Utilización del sistema operativo GNU/ Linux en las netbooks El sistema operativo es la pieza de software básica de un sistema, que permite manejar los recursos de la computadora, abrir programas, manejar

Más detalles

Microsoft Access proporciona dos métodos para crear una Base de datos.

Microsoft Access proporciona dos métodos para crear una Base de datos. Operaciones básicas con Base de datos Crear una Base de datos Microsoft Access proporciona dos métodos para crear una Base de datos. Se puede crear una base de datos en blanco y agregarle más tarde las

Más detalles

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar

Más detalles

Guía para la Automatización de Documentos en. Microsoft Word

Guía para la Automatización de Documentos en. Microsoft Word UNIVERSIDAD SAN CARLOS DE GUATEMALA CENTRO UNIVERSITARIO DE SAN MARCOS USAC-CUSAM Guía para la Automatización de Documentos en Microsoft Word ID Y ENSEÑAD A TODOS 2015 PRESENTACIÓN El Instituto de Investigaciones

Más detalles

Sistemas Operativos de Red

Sistemas Operativos de Red Sistemas Operativos de Red Como ya se sabe las computadoras están compuestas físicamente por diversos componentes que les permiten interactuar mas fácilmente con sus operarios y hasta comunicarse con otras

Más detalles

MANUAL DE SHAREPOINT 2013. Por: Área de Administración de Aplicaciones.

MANUAL DE SHAREPOINT 2013. Por: Área de Administración de Aplicaciones. MANUAL DE SHAREPOINT 2013 Por: Área de Administración de Aplicaciones. Indice 1. Tipos de Cuentas de Usuario... 2 2. Compatibilidad con exploradores de Internet... 2 3. Como acceder a un sitio de SharePoint

Más detalles

Creación de un Gráfico con OpenOffice.org Calc Presentación de los Datos Asistente para Gráficos

Creación de un Gráfico con OpenOffice.org Calc Presentación de los Datos Asistente para Gráficos Creación de un Gráfico con OpenOffice.org Calc Los gráficos elaborados con OpenOffice.org son de gran importancia para ver la tendencia de los datos. Es una herramienta de análisis que permite mostrar

Más detalles

Procedimiento para realizar la configuración de Internet Explorer y usar el Sistema de reservaciones Go! Res versión 4.x

Procedimiento para realizar la configuración de Internet Explorer y usar el Sistema de reservaciones Go! Res versión 4.x Procedimiento para realizar la configuración de Internet Explorer y usar el Sistema de reservaciones Go! Res versión 4.x Ayuda en línea: http://globallearningcenter.wspan.com/méxico/pdfs/documentation/configuración%20internet%2

Más detalles

Procedimiento para realizar la Configuración de Internet Explorer y usar el Sistema de reservaciones Go! Res versión 4.x

Procedimiento para realizar la Configuración de Internet Explorer y usar el Sistema de reservaciones Go! Res versión 4.x Procedimiento para realizar la Configuración de Internet Explorer y usar el Sistema de reservaciones Go! Res versión 4.x Ayuda en línea (al momento de la publicación del presente manual solo esta disponible

Más detalles

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe

Más detalles

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS ARCHIVOS ANEXOS Son los documentos, hojas de cálculo o cualquier archivo que se anexa a las carpetas, subcarpetas, hallazgos u otros formularios de papeles de trabajo. Estos archivos constituyen la evidencia

Más detalles

Haga clic en los recuadros donde indica la mano y regrese al inicio del capítulo al hacer clic en el título de la sección donde se encuentra

Haga clic en los recuadros donde indica la mano y regrese al inicio del capítulo al hacer clic en el título de la sección donde se encuentra Cómo gestiono el Plan Anual de Adquisiciones de mi Entidad en el SECOP II? Crear equipo Crear Plan Anual de Adquisiciones Publicar Plan Anual de Adquisiciones Modificar Plan Anual de Adquisiciones Buscar

Más detalles

Administración de la producción. Sesión 2: Sistema Operativo (Microsoft Windows XP)

Administración de la producción. Sesión 2: Sistema Operativo (Microsoft Windows XP) Administración de la producción Sesión 2: Sistema Operativo (Microsoft Windows XP) Contextualización El sistema operativo es el programa principal de la computadora que controla los procesos informáticos

Más detalles

Manual de Instalación Declaración y Liquidación Modelos 110-111

Manual de Instalación Declaración y Liquidación Modelos 110-111 Manual de Instalación Declaración y Liquidación Modelos 110-111 GNU/Linux Ubuntu 11.10 Fedora 16 OpenSuSe 11.4 Irontec S.L. 2012 Este manual esta desarrollado por la empresa Irontec: Internet y Sistemas

Más detalles

Tareas básicas en OneNote 2010 Corresponde a: Microsoft Office OneNote 2010

Tareas básicas en OneNote 2010 Corresponde a: Microsoft Office OneNote 2010 areas básicas en OneNote 2010 - OneNote - Office.com http://office.microsoft.com/es-ar/onenote-help/tareas-basicas-en-onenote... 1 de 3 23/04/2012 10:40 p.m. Soporte / OneNote / Ayuda y procedimientos

Más detalles

COLEGIO COMPUESTUDIO

COLEGIO COMPUESTUDIO COLEGIO COMPUESTUDIO ÁREA: TECNOLOGIA E INFORMATICA DOCENTE: WILLY VIVAS LLOREDA ESTUDIANTE: CLEI: III GUIA N 5 N SESIONES: NUCLEO TEMÁTICO: UNIDAD: 2 Sistema operativo (Windows) OBJETIVO: Comprender el

Más detalles

MANUAL DE LA APLICACIÓN HELP DESK

MANUAL DE LA APLICACIÓN HELP DESK CASAMOTOR MANUAL DE LA APLICACIÓN HELP DESK Desarrollado por: NOVIEMBRE, 2012 BOGOTÁ D.C. - COLOMBIA INTRODUCCIÓN Este documento es el manual de la aplicación de Help Desk de Casamotor, producto desarrollado

Más detalles

Operación de Microsoft Word

Operación de Microsoft Word Generalidades y conceptos Combinar correspondencia Word, a través de la herramienta combinar correspondencia, permite combinar un documento el que puede ser una carta con el texto que se pretende hacer

Más detalles

Guía de administración de Huddle Versión 2.3

Guía de administración de Huddle Versión 2.3 Guía de administración de Huddle Versión 2.3 Contenido: Explicando las Licencias de Administrador de Huddle 3 Administradores de Espacio de trabajo: Pestaña de propiedades 4 Propiedades de Espacio de trabajo

Más detalles

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO www.ubs-systems.com Teléfono: 91 3681185 UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO Unidesys Versión 2011 1 CONTENIDO 1 INTRODUCCIÓN 3 2 FUENTES DE DATOS 4 3 INSTALACIÓN DEL

Más detalles

Manual del Usuario. Sistema de Help Desk

Manual del Usuario. Sistema de Help Desk Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos

Más detalles

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 3: sistemas operativos

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 3: sistemas operativos TEMA 1: SISTEMAS INFORMÁTICOS Parte 3: sistemas operativos Qué vamos a ver? Qué tipos de sistemas operativos existen principalmente Las distintas formas de instalar un sistema operativo En qué consiste

Más detalles

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de: Gemelo Backup Online DESKTOP Manual DISCO VIRTUAL Es un Disco que se encuentra en su PC junto a las unidades de discos locales. La información aquí existente es la misma que usted ha respaldado con su

Más detalles

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10 CONCEPTOS BASICOS Febrero 2003 Página - 1/10 EL ESCRITORIO DE WINDOWS Se conoce como escritorio la zona habitual de trabajo con windows, cuando iniciamos windows entramos directamente dentro del escritorio,

Más detalles

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS Objetivo: El propósito de esta guía es indicarle como configurar un entorno moodle de prácticas en

Más detalles

Proyecto Fortalecimiento de las capacidades TIC en PyMEs y Gobiernos Locales mediante el uso de software libre Manual de Instalación Openbravo POS

Proyecto Fortalecimiento de las capacidades TIC en PyMEs y Gobiernos Locales mediante el uso de software libre Manual de Instalación Openbravo POS Proyecto Fortalecimiento de las capacidades TIC en PyMEs y Gobiernos Locales mediante el uso de software libre Elaborado por Setiembre, 2011 Este documento se desarrolló en el marco del Proyecto Fortalecimiento

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

Más detalles

1. La nueva interfaz del programa

1. La nueva interfaz del programa 1. La nueva interfaz del programa 13 1. La nueva interfaz del programa 1.1 La interfaz del nuevo Flash CS4 Al acceder por primera vez a Adobe Flash CS4 llama la atención la nueva disposición de las paletas,

Más detalles

Guía N 1: Fundamentos básicos(i)

Guía N 1: Fundamentos básicos(i) 1 Guía N 1: Fundamentos básicos(i) Objetivos Generales: Ver una breve descripción de las capacidades más comunes de Excel Objetivos específicos: Descripción de los elementos de un libro: Hojas, iconos,

Más detalles

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

AGREGAR COMPONENTES ADICIONALES DE WINDOWS INSTALACIÓN DE IIS EN WINDOWS XP El sistema está desarrollado para ejecutarse bajo la plataforma IIS de Windows XP. Por esta razón, incluimos la instalación de IIS (Servidor de Web) para la correcta ejecución

Más detalles

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2) 1. Qué es un sistema operativo?...2 2. Funciones de los sistemas operativos...2 3. Windows...2 3.1. La interfaz gráfica...2 3.2. La administración y los usuarios...3 3.3. El sistema de archivos...3 3.4.

Más detalles

Firewall Firestarter. Establece perímetros confiables.

Firewall Firestarter. Establece perímetros confiables. Firewall Firestarter Qué es un Firewall? Un muro de fuego (firewall en inglés) es una parte de un sistema o una red que está diseñada para bloquear el acceso no autorizado, permitiendo al mismo tiempo

Más detalles

Formularios. Formularios Diapositiva 1

Formularios. Formularios Diapositiva 1 Formularios Crear un formulario utilizando el Asistente para formularios Modificación en vista Diseño Adición de Controles a un Formulario Adición de un Subformulario a un formulario Formularios Diapositiva

Más detalles

Notas para la instalación de un lector de tarjetas inteligentes.

Notas para la instalación de un lector de tarjetas inteligentes. Notas para la instalación de un lector de tarjetas inteligentes. Índice 0. Obtención de todo lo necesario para la instalación. 3 1. Comprobación del estado del servicio Tarjeta inteligente. 4 2. Instalación

Más detalles

Guía de inicio rápido a

Guía de inicio rápido a Guía de inicio rápido a Office 365 para pequeñas empresas La experiencia web La experiencia de aplicaciones de escritorio La experiencia móvil Ayuda y comunidad de Office 365 Microsoft Office 365 para

Más detalles

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable

Más detalles

Una computadora es un dispositivo electrónico, operando bajo el control de las instrucciones almacenadas en su propia unidad de memoria.

Una computadora es un dispositivo electrónico, operando bajo el control de las instrucciones almacenadas en su propia unidad de memoria. Informáticas I 1. Sistemas Operativos Para comprender el concepto de sistemas operativos y entender los diferentes tipos de ventanas disponibles lo primero que tenemos que cubrir algunas definiciones básicas.

Más detalles

Switch to Click. Versión 1.5

Switch to Click. Versión 1.5 Switch to Click Versión 1.5 Objetivo 2 Forma de uso 2 Acción de los switches 3 Conexión del switch 3 Seleccionar, agregar y eliminar usuarios 4 Recomendaciones de uso 5 Requerimientos técnicos 5 Copyright

Más detalles

Guía Práctica para el Uso del Servicio de Software Zoho CRM

Guía Práctica para el Uso del Servicio de Software Zoho CRM Guía Práctica para el Uso del Servicio de Software Zoho CRM Parte 4 Modificación de las Listas Estándar del Sistema Modificación del Menú Principal del Sistema Importación de información al Sistema Adición

Más detalles

Arquitectura del sistema operativo GNU/Linux. Luis Eduardo Sepúlveda R.

Arquitectura del sistema operativo GNU/Linux. Luis Eduardo Sepúlveda R. Arquitectura del sistema operativo GNU/Linux Luis Eduardo Sepúlveda R. Núcleo de un sistema operativo. Funciones más importantes: Administración de la memoria. Administración de los procesos Control de

Más detalles

Guía Rápida de Inicio

Guía Rápida de Inicio Guía Rápida de Inicio 1. Acerca de esta Guía Esta guía le ayudará a instalar y dar los primeros pasos con BitDefender Security for SharePoint. Para disponer de instrucciones detalladas, por favor, diríjase

Más detalles

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo INDICE Cómo crear una cuenta en ARQA? 4 Cómo tener un grupo en ARQA? 5 Secciones y funcionalidades de los grupos 6 Muro del Grupo 6 Compartir Textos 8 Compartir Imágenes 9 Compartir videos 10 Compartir

Más detalles

Comisión Nacional de Bancos y Seguros

Comisión Nacional de Bancos y Seguros Comisión Nacional de Bancos y Seguros Manual de Usuario Capturador de Pólizas División de Servicios a Instituciones Financieras Mayo de 2011 2 Contenido 1. Presentación... 3 1.1 Objetivo... 3 2. Descarga

Más detalles

Bienvenida. Índice. Prefacio

Bienvenida. Índice. Prefacio Bienvenida Intel Learning Series Theft Deterrent Agent se ejecuta en el equipo Intel Learning Series classmate PC del alumno, diseñado especialmente para la máxima seguridad. El software Intel Learning

Más detalles

SIIGO Pyme. Templates. Cartilla I

SIIGO Pyme. Templates. Cartilla I SIIGO Pyme Templates Cartilla I Tabla de Contenido 1. Presentación 2. Qué es un Template? 3. Qué Aspectos se Deben Tener en Cuenta Antes de Diseñar o Modificar un Template? 4. Cuáles son las Formas que

Más detalles

Trabajar con diapositivas

Trabajar con diapositivas Trabajar con diapositivas INFORMÁTICA 4º ESO POWERPOINT Una vez creada una presentación podemos modificarla insertando, eliminando, copiando diapositivas, Insertar una nueva diapositiva.- Para insertar

Más detalles

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS Escritorio remoto - 1 - Escritorio Remoto...- 3 - Definición de Escritorio Remoto... - 3 - Habilitar Escritorio Remoto... - 4 - Instalación del

Más detalles

Internet Information Server

Internet Information Server Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en

Más detalles

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A Usuario Propietario: Gerencia de Informática Usuario Cliente: Todos los usuarios de ANDA Elaborada por: Gerencia de Informática,

Más detalles

Capítulo 6. Desarrollo del Software

Capítulo 6. Desarrollo del Software Capítulo 6. Desarrollo del Software Introducción El objetivo principal de la presente tesis como su título lo describe, es la animación de las tramas de comunicación principales de WCDMA. Para lograr dicho

Más detalles

Introducción a los sitios de SharePoint en Office 365

Introducción a los sitios de SharePoint en Office 365 Introducción a los sitios de SharePoint en Office 365 Universidad Central del Este Contenido 1. QUÉ ES UN SITIO SHAREPOINT?... 3 2. CÓMO INGRESAR AL ÁREA DE SITIOS?... 3 3. DESCRIPCIÓN GENERAL DEL ÁREA

Más detalles

Módulo I - Word. Iniciar Word... 2. Finalizar Word... 3. Definición de elementos de pantalla... 4. Escribir texto en un documento... 5. El cursor...

Módulo I - Word. Iniciar Word... 2. Finalizar Word... 3. Definición de elementos de pantalla... 4. Escribir texto en un documento... 5. El cursor... Módulo I - Word Índice Iniciar Word... 2 Finalizar Word... 3 Definición de elementos de pantalla... 4 Escribir texto en un documento... 5 El cursor... 5 Control de párrafos... 5 Nuevos párrafos... 5 Abrir

Más detalles

Requisitos mínimos. ANEXO I: Certificado digital

Requisitos mínimos. ANEXO I: Certificado digital Página 1 de 16 ANEXO I: Certificado digital Requisitos mínimos Sistema Operativo o Windows 2000 / XP / Vista / 7 / Server 2003 / Server 2008 y superiores o Linux 2.6 (Guadalinex y Ubuntu) y superiores

Más detalles

Guía de uso del Cloud Datacenter de acens

Guía de uso del Cloud Datacenter de acens guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar

Más detalles

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: Descripción del ambiente de trabajo Entrar y salir de la aplicación Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: A través del botón :

Más detalles

UF0513 Gestión auxiliar de archivo en soporte convencional o informático

UF0513 Gestión auxiliar de archivo en soporte convencional o informático UF0513 Gestión auxiliar de archivo en soporte convencional o informático Tema 1. Sistemas operativos habituales Tema 2. Archivo y clasificación de documentación administrativa Tema 3. Base de datos Tema

Más detalles

Tobii Communicator 4. Introducción

Tobii Communicator 4. Introducción Tobii Communicator 4 Introducción BIENVENIDO A TOBII COMMUNICATOR 4 Tobii Communicator 4 permite que las personas con discapacidades físicas o comunicativas utilicen un equipo o dispositivo para comunicación.

Más detalles

Practica 1 Instalación del SGBD. Ing. María Elena Reyes Castellanos. Miguel Ángel Garduño Córdova Isaac Méndez Hernández

Practica 1 Instalación del SGBD. Ing. María Elena Reyes Castellanos. Miguel Ángel Garduño Córdova Isaac Méndez Hernández Investigación Practica 1 Instalación del SGBD Catedrático: Alumnos: Ing. María Elena Reyes Castellanos Miguel Ángel Garduño Córdova Isaac Méndez Hernández 1 ÍNDICE DE GENERAL INDICE DE TABLAS Y FIGURAS

Más detalles

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc COMBINACIÓN DE CARTAS Y CORRSPONDENCIA vbnmqwertyuiopasdfghjklzxcvbnmqw ertyuiopasdfghjklzxcvbnmqwertyuiop

Más detalles

Introducción al Mundo GNU/Linux

Introducción al Mundo GNU/Linux Pequeña Introducción a algunas características del Mundo GNU/Linux y el Software Libre Slide 1 Nota de Copyright 2005 Diego Chaparro. Algunos derechos reservados. Este trabajo se distribuye bajo la licencia

Más detalles

Organizándose con Microsoft Outlook

Organizándose con Microsoft Outlook Organizándose con Microsoft Outlook Objetivo: Identificar herramientas para organizar los correos electrónicos, administrar tiempos por medio de la agenda y comunicarse con los demás. Destrezas técnicas

Más detalles

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario Apéndice 5 Manual de usuario de ColeXión ColeXión 1.0 Manual de usuario Índice 1. Qué es ColeXión?... 2 2. Requerimientos del sistema... 3 3. Instalación de ColeXión... 3 4. Creación de un nuevo esquema...

Más detalles

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows Lo primero que hay que tener en cuenta para poder hacer nuestro primer programa en C++ es que necesitamos ciertas herramientas

Más detalles

GUÍA DE USUARIO: GOOGLE DRIVE

GUÍA DE USUARIO: GOOGLE DRIVE GUÍA DE USUARIO: GOOGLE DRIVE Google Drive es una herramienta telemática de la web 2.0 que permite el trabajo virtual de forma colaborativa. En Google Drive podemos encontrar una barra de navegación en

Más detalles

Tutoriales sobre Moodle. EOI de Murcia. 0. Instrucciones para el volcado de cursos entre profesores

Tutoriales sobre Moodle. EOI de Murcia. 0. Instrucciones para el volcado de cursos entre profesores Tutoriales sobre Moodle. EOI de Murcia 0. Instrucciones para el volcado de cursos entre profesores Se juntan las parejas que quieren compartir cursos con otro profesor para realizar el volcado. Ej. Antonio

Más detalles

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS. 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Arquitectura de computadoras Lugar de ejecución: Lab. de arquitectura de computadoras, edif. de electrónica. Tema: INSTALACIÓN Y PARTICIONAMIENTO

Más detalles

Antivirus PC (motor BitDefender) Manual de Usuario

Antivirus PC (motor BitDefender) Manual de Usuario Antivirus PC (motor BitDefender) Manual de Usuario Índice 1. Introducción... 3 2. Qué es Antivirus PC?... 3 a. Eficacia... 3 b. Actualizaciones... 4 3. Requisitos técnicos... 4 a. Conocimientos técnicos...

Más detalles

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS 1. Introducción Los ambientes de aprendizaje acompañados de trabajos colaborativos como estrategia se revierten en actividades de diferente índole (análisis de videos,

Más detalles

Nota: Se puede tener un acceso directo definido o podemos entrar a través de la

Nota: Se puede tener un acceso directo definido o podemos entrar a través de la Objetivo: explotar la información eventual en línea, utilizando libros y hojas con una estructura inicial con opción a modificarse de acuerdo a la necesidad del usuario. Después de haber instalado la herramienta

Más detalles

Manual del Profesor Campus Virtual UNIVO

Manual del Profesor Campus Virtual UNIVO Manual del Profesor Campus Virtual UNIVO Versión 2.0 Universidad de Oriente UNIVO Dirección de Educación a Distancia INDICE 1. Campus Virtual. 03 1.1 Accesos al Curso 04 1.2 Interfaz del Curso...06 1.3

Más detalles

CESDE ESCUELA DE PROCESOS TECNOLOGICOS E INDUSTRIALES AMBIENTES COLABORATIVOS WORDPRESS

CESDE ESCUELA DE PROCESOS TECNOLOGICOS E INDUSTRIALES AMBIENTES COLABORATIVOS WORDPRESS WORDPRESS Es un sistema de gestión de contenido CMS (siglas en del inglés de Content Management System) enfocado a la creación de blogs o bitácoras digitales para web. Es como un cuaderno donde se puede

Más detalles

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema Sistema de Gestión Portuaria Uso General del Sistema Uso General del Sistema Página 1 de 21 Contenido Contenido... 2 1.Ingreso al Sistema... 3 2.Uso del Menú... 6 3.Visualizar Novedades del Sistema...

Más detalles

Administrar El Usuario Mediante Windows NT

Administrar El Usuario Mediante Windows NT Administrar El Usuario Mediante Windows NT Administración de usuarios El Administrador de usuarios es la utilidad estándar que ofrece Windows NT. Como su nombre indica, se encarga de la administración

Más detalles

PUCV - Pontificia Universidad Católica de Valparaíso

PUCV - Pontificia Universidad Católica de Valparaíso PUCV - Pontificia Universidad Católica de Valparaíso INICIO IBM QUICKR IBM Quickr es un software de colaboración en equipos, el cual permite compartir archivos e información de forma instantánea y directa

Más detalles

Diseño de formularios

Diseño de formularios Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Diseño de formularios Introducción a las bases de datos Tema 5 El aspecto de los formularios Se puede modificar a voluntad el aspecto

Más detalles

POWER POINT. Iniciar PowerPoint

POWER POINT. Iniciar PowerPoint POWER POINT Power Point es la herramienta de Microsoft Office para crear presentaciones que permiten comunicar información e ideas de forma visual y atractiva. Iniciar PowerPoint Coloque el cursor y dé

Más detalles

Guía Rápida de uso de ZBox Backup Configuración y uso del servicio de respaldo en la nube.

Guía Rápida de uso de ZBox Backup Configuración y uso del servicio de respaldo en la nube. ZBox Backup Guía Rápida de uso de ZBox Backup Configuración y uso del servicio de respaldo en la nube. v 2014100701 1. Introducción Para comenzar a utilizar el servicio de respaldo de ZBox lo primero que

Más detalles

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

Más detalles

Sistema para el control y tramitación de documentos SITA MSc. María de la Caridad Robledo Gómez y Ernesto García Fernández.

Sistema para el control y tramitación de documentos SITA MSc. María de la Caridad Robledo Gómez y Ernesto García Fernández. Sistema para el control y tramitación de documentos SITA MSc. María de la Caridad Robledo Gómez y Ernesto García Fernández. CITMATEL Ave 47 e/18 A y 20, Playa, Ciudad de La habana, CP 10300 Cuba. E mail:

Más detalles

Activación de un Escritorio Remoto

Activación de un Escritorio Remoto Activación de un Escritorio Remoto La activación de un Escritorio Remoto se realiza en dos fases, en la primera se habilita a un Usuario de un ordenador para que pueda admitir una conexión remota, la segunda

Más detalles

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana EXCEL PRÓLOGO Microsoft Excel es una hoja de cálculo de gran capacidad y fácil uso. Excel no solo es una hoja de calculo, sino también tiene capacidad para diseñar bases de datos (listas) de forma totalmente

Más detalles

Acronis Backup & Recovery 11 Guía de inicio rápido

Acronis Backup & Recovery 11 Guía de inicio rápido Acronis Backup & Recovery 11 Guía de inicio rápido Se aplica a las siguientes ediciones: Advanced Server Virtual Edition Advanced Server SBS Edition Advanced Workstation Server for Linux Server for Windows

Más detalles

TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE)

TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE) 1. Introducción. TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE) El Explorador es una herramienta indispensable en un Sistema Operativo ya que con ella se puede organizar y controlar los contenidos (archivos

Más detalles