TEMARIO COMPUTACIÓN- MODULO 2.

Page 1


Página 1 de 292


Página 2 de 292

Promoción 2022 Sexto Computación “A” ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

Diego René Almengor Carrillo Karen Mishel Alvarado Nájera Mónica Julisa Barrera Rodriguez Emanuel Eduardo Beltran Gómez Cindi Fabiola Benito Sarceño Pablo Ismael Berganza Mendoza Erwin Fernando Blanco Melendres Alexsandro Daniel Camel de la Cruz Kevin Daniel Cárcamo Rodas Yásmin Abigail Carrillo Vargas Diego Armando Castellanos De La Cruz Josue David Chitay Culajay Astrid Daniela Colindres Fuentes Pablo Andrés Contreras Cantoral Josué Arnoldo Cujá Jerónimo Williams Ismael Alfredo Culajay Guamuch José Javier Culajay Patzán Robinson Daniel Dávila Alba Edwin Sebastian de León yas Brandon Uwe Diaz Ac Eldan André Escobar Asturias José Daniel Garcia Cubur Wiliam de Jesus González Pisabaj William Alejandro Guzmán Juárez Francisco Estuardo Pérez López Dylan Luis José Solares Monzón

Sexto Computación “B” ● Pablo Andrés Hernández Ramírez ● Alvaro Miguel Angel Ico Tiul ● Andrés Ixcajoc López ● Dwight Pablo Miguel Jongezoon Ordóñez ● Herbert José Leal Sinay ● Andy Giovanny Letran Tomás ● Keneth Alexander López Barrios ● Diego Fernando López Gómez ● Herbert Noé Mayca de los Santos ● Donován Alexander Monge Picón ● Jonatan Samuel Andres Monzon Nimatuj ● Cristofer Javier Morales de León ● Maria Fernanda Morales Lima ● Luis David Ortíz Fernández ● Carlos Fabio Andrés Paz Hernández ● Dina Rebeca Perez Bátres ● José Javier Petzey Coquix ● Daniel Estuardo Puluc Patzán ● Fernando José Raxón Pirir ● Devin Miguel Reyes Quiñonez ● William Leonardo Salvador Dealtán ● Pablo Andrés Sarceño Jacinto ● Diego Pablo Solares Zuleta ● Andrés Alexander Tobar Muñoz ● Angel Andres Velásquez de León ● Gabriel Orlando Xanté Mejía


Página 3 de 292

Centenario Somasco en América Cien años de la comunidad somasca en América, aquel lejano 5 de octubre de 1921 en el cual tuvimos el arribo en el puerto de la libertad, en el vecino país del Salvador, el que significa el primer apostolado somasco. Posteriormente en 1927 comenzaron las obras en Guatemala. Pensar que tenemos ya en este año 2022 más de 100 años de nosotros también ser partícipes de una obra que sigue hasta el día de hoy creciendo y expandiéndose, un mensaje de perseverancia que nos muestra que no todo llega rápidamente, pero que en algún momento todo da sus frutos. Solamente Dios sabe qué es lo que hace y cómo lo hace, cuál es el rumbo de las cosas, de su corazón nacen las cosas que son buenas, la ayuda, la sabiduría, la inteligencia, solo vienen de él, sus planes para todos en los que en él confían, serán siempre de bendición. El es el que da las herramientas para que podamos salir adelante, siempre interfiere en todo lo que nos pasa en el día a día, en cada hora, en cada minuto, cada instante de nuestras vidas está planeado desde mucho antes de que nosotros conociéramos el primer instante de vida. Eso significa la comunidad, una comunidad que significó una luz, una muestra de que el amor divino, que la mano de Dios aún está con nosotros y que seguirá estando, de la mano de todos aquellos colaboradores y de todos aquellos corazones que están conectados con la espiritualidad, que son verdaderos devotos a la obra verdaderamente cristiana, que mucha falta hace en estos tiempos tan difíciles. Una comunidad que ha hecho muchas obras de bien para la sociedad, fundando instituciones educativas, seminarios, con el fin siempre de acercar más a las personas a Jesús, que es la verdadera visión y vocación que siempre se ha querido plasmar y transmitir hacia cada persona que está involucrada en esta obra masiva de devoción, caridad y trabajo. Lo que representó San Jerónimo a partir de su conversión, y que demostró toda su vida a partir de aquella experiencia propia que tuvo con la Virgen María. Su virtud es llevar el mensaje de salvación a partir de la ayuda hacia aquellos que más lo necesitan.


Página 4 de 292

La pandemia que vivimos en estos últimos dos años, sin duda significó muchas cosas perdidas, familias que perdieron trabajo, que están pasando angustias económicas, incluso familias en dónde muchos miembros ya no están, suena como un mensaje pesimista, pero es la verdadera realidad en la cual nos encontramos viviendo, pero cuando hacemos algo, por ayudar a alguien más estamos contribuyendo al propósito de nuestras vidas. Cuando empezamos a ver más allá de lo que nuestra perspectiva común ve, cuando dejamos de centrarnos en lo que pasamos, o a aún con problemas, luchas externas e internas, podemos ver aquellas realidades en las que nosotros, podemos intervenir, y quizá no cambiemos la realidad de la persona, hay situaciones realmente difíciles pero, sí podemos dar una palabra incluso que venga del corazón, y dar ánimo nuevamente a una persona. Porque la obra de caridad es algo más allá que ser llamado propiamente un santo, porque la caridad está en cada uno de aquellos corazones dispuestos a sacrificar algo, por servir, por ayudar a los demás. Porque la caridad requiere de intencionalidad también, el deseo y el sentido del deber, de dar sin esperar recibir nada a cambio, realmente eso es lo que completa una verdadera conversión, porque si recibimos la salvación, y la misericordia de Cristo, cómo no tener misericordia de aquellos que alguna vez fuimos nosotros. El Centenario Somasco en América, significa más que solo 100 años, significan años de trabajo, de sacrificio, de cambios, de una transformación que incluso todos buscamos a diario. Quizá lo más significativo más allá de toda la historia que engloba estos cien años de la Comunidad Somasca en América, tenemos un proyecto de vida que busca reunir a todas aquellas personas marginadas, necesitadas, dirigirse a los niños, como el mismo Jesús lo haría en su tiempo. Resulta más que grata su presencia en América y propiamente en Guatemala, y deseamos que así como tenemos un centenario se sigan cumpliendo más y más años de nuevos retos, pero sobre todo de practicar el amor al prójimo, el mensaje de salvación por medio de las obras.


Página 5 de 292

Introducción A lo largo de este trabajo como alumnos del 6to grado en bachiller industrial y perito con especialidad en computación, daremos a conocer cada uno de los temas vistos e impartidos por nuestros docentes en el ciclo escolar 2021 que corresponde al quinto grado de nuestra especialidad ya antes mencionada. Explicaremos y daremos a conocer en cada tema que en este documento se presenta, cada uno de los aspectos, características, aplicaciones y utilidades de dichos temas, tratando de dejar claro cada uno de ellos. Abarcando de una manera clara y directa todo lo visto en ese ciclo escolar, principalmente orientado a la programación en Visual basic, programación orientada a objetos enJava, conexiones a bases de datos, Introducción a HTML entre muchos otros temas que serán de apoyo y guía para retroalimentar y fomentar en los estudiantes el correcto desarrollo de aplicaciones y proyectos que necesiten de estos tipos de software, lenguajes y conocimientos.


Página 6 de 292

Justificación El motivo por el cual todos los estudiantes realizamos la recopilación de toda la información que se presenta en este documento, es principalmente para que cada uno de nosotros tenga acceso a un medio de estudio y retroalimentación de todos los temas comprendidos, no solamente este año, sino también para un ámbito laboral y profesional que como futuros graduandos no estamos lejos a alcanzar, Cada uno podrá estudiar y repasar para mejorar y poner en práctica cada una de nuestras habilidades adquiridas a lo largo de todo este ciclo escolar. Ya que será información que no solo nos servirá este año, sino que si nos esmeramos y ponemos empeño en cada una de las prácticas y competencias en cada tema, vamos a adquirir los conocimientos necesarios que nos servirán en un grado de educación superior universitaria y a lo largo de toda nuestra vida laboral.


Página 7 de 292

Temas Quinto grado Tecnología vocacional II Capítulo I 1.

Visual Studio.Net POO. Y REPORTERÍA DE DATOS .NET. 1.1

Formularios de Windows

1.2

Controles de Windows

1.3

Diferencias entre Access y SQL

1.4

Conexión SQL Server 2014

1.5

CRUD

1.6

Codificación Avanzada

1.7

Anti-Errores y Try Catch

1.8

Enlace a SQL Server

1.9

Diseño de Reporte

1.10

Campos calculados

1.11

Instalación de ReportView

1.12

Instalación de Crystal Report

1.13

ReportView

1.14

Relacionar y Diseñar

1.15

Impresión de reportes

1.16

Crystal Report

1.17

Diferencias entre ReportView y Crystal Report

1.18

Impresión de Reportes

Capítulo II 1. Java 1.1.

Entorno de trabajo de ide’s

1.2.

Introducción de Java


Página 8 de 292

1.3.

¿Qué es Java?

1.4.

Instalar Java IDE’s

1.5.

Variables de entorno

1.6.

Estructura general de un p

1.7.

Salida de datos en consola

1.8.

Compilador primario de Java

1.9.

Variables e identificadores

1.10.

Tipos de datos

1.11.

Constantes

1.12.

Operadores lógicos, aritméticos y relacionales

1.13.

Aritméticos

1.14.

Lógicos

1.15.

Relacionales

1.16.

Expresiones

1.17.

Reglas de prioridad

1.18.

Entrada de datos en consola

1.19.

Clases buffered

1.20.

Clase scanner

1.21.

Sentencias condicionales 1.22.1. Simple y doble 1.22.2. Múltiples o anidadas 1.22.3. Switch Case

1.22.

Estructuras de repetición 1.23.1. While 1.23.2. Do While y For 1.23.3. Repetitivas anidadas

1.23.

Vectores y matrices 1.24.1. Arreglos 1.24.2. Unidimensionales 1.24.3. Bidimensionales

1.24.

Métodos

1.25.

Procedimientos

1.26.

Funciones

1.27.

Parámetros


Página 9 de 292

1.28.

Parámetros por valor

1.29.

Parámetros por R

1.30.

Funciones 1.30.1.

Funciones con cadena

1.30.2.

La clase String, Compare To

1.30.3.

IndexOf y Length

1.31.

Replace y Split

1.32.

Substring, Trim y Value

1.33.

Equals y La clase Math

Capítulo III 1.

Java POO Swing

1.1. Programación Orientada a Objetos 1.2. Estructura de un clase 1.3. Atributos y Ámbitos de variables 1.4. Métodos accesores (get y set) 1.5. Colaboración de clases 1.6. Herencia 1.7. Polimorfismo 1.8. Sobrecarga de métodos 1.9. Arreglos de objetos 1.10. Swing introduction 1.11. Java JButton 1.12. Java JLabel 1.13. Java JTextField 1.14. Java JTextArea 1.15. Java JPasswordField 1.16. Java JCheckBox 1.17. Java JRadioButton 1.18. Java JComboBox 1.19. Java JTable, Java JList 1.20. Java JOptionPane 1.21. Java JScrollBar 1.22. Java JMenuItem & JMenu 1.23. Java JPopupMenu


Página 10 de 292

1.24. Java JCheckBoxMenuItem 1.25. Java JProgressBar 1.26. Java JColorChooser 1.27. Java JTabbedPane 1.28. Java JSlider open link 1.29. Java JSpinner, Java JDialog, JPanel 1.30. Java JFileChooser 1.31. Java JToggleButton 1.32. Java JToolBar, JViewport 1.33. Java JFrame, JComponent 1.34. Java JDesktop, JEditorPane, JScrollPane, JSplitPane y JTextPane.

Capítulo IV 1.

HTML Introducción 1.1.

Editores HTML

1.2.

HTML básico

1.3.

HTML Elementos

1.4.

Atributos HTML

1.5.

HTML Encabezamientos

1.6.

HTML Párrafos

1.7.

formato HTML

1.8.

Estilos HTML

1.9.

Citas HTML

1.10.

Comentarios

1.11.

HTML enlaces

1.12.

HTML Imágenes

1.13.

Tablas HTML

1.14.

HTML Listas

1.15.

Bloques HTML

1.16.

Clases HTML

1.17.

formularios HTML


Página 11 de 292

1.18.

HTML Iframes

1.19.

HTML color Nombres

1.20.

HTML Cabeceras

1.21.

HTML Audio/Video

1.22.

Definiendo mi sitio

1.23.

Paleta de objetos, títulos de páginas, texto

1.24.

Reglas, grillas, código HTML, imagen

1.25.

Tablas, capas

1.26.

Vínculos web

1.27.

Formularios

1.28.

Listas

Quinto Grado Análisis de sistemas Capítulo I 1.

SQL(Structured Query Language) 1.1.

Instalación de SQL Server 2014

1.2.

Configurar SQL Server

1.3.

Sintaxis SQL

1.4.

Comentar código

1.5.

SQL SELECT

1.6.

SQL SELECT DISTINCT

1.7.

SQL Y,O, No

1.8.

SQL Ordenar Por

1.9.

SQL Insertar y actualización

1.10.

Select de SQL Top

1.11.

SQL mínimo y máximo

1.12.

Conde SQL, Media, Suma

1.13.

SQL como Crear SQL DB

1.14.

SQL comodines y Check

1.15.

alias de SQL Inner Join

1.16.

SQL Left Join y Right Join

1.17.

SQL Full Join

1.18.

SQL Self Join, Union


Página 12 de 292

1.19.

SQL Group By y Any, All

1.20.

SQL Procedimientos

1.21.

SQL Comentarios en db

1.22.

SQL de copia de seguridad de DB

1.23.

SQL Crear la tabla y DROP

1.24.

Modificar tabla y restricciones

1.25.

SQL no nulos y únicos

1.26.

SQL de clave principal

1.27.

SQL de clave externa

1.28.

Inyecciones SQL

1.29.

SQL predeterminado

1.30.

SQL incremento automático

1.31.

alojamiento SQL

Capitulo II 1.

GNU/LINUX en un entorno de trabajo 1.1.

Introducción

1.2.

Objetivo

1.3.

Créditos

1.4.

Licencia

1.5.

Notación y convenciones

1.6.

¿Qué son Unix y

1.7.

Unix, Linux y GNU?

1.8.

Directorios y comandos 1.8.1.

Archivos y directorios

1.8.2.

El árbol de directorios

1.8.3.

Directorio de trabajo

1.8.4.

Refiriéndose al directorio

1.8.5.

Primeros pasos en Linux

1.8.6.

Moviéndonos por el entorno

1.8.7.

Viendo el contenido de los directorios

1.8.8.

Creando directorios

1.8.9.

Copiando archivos

1.8.10.

Moviendo archivos

1.8.11.

Borrando archivos y directorios

1.8.12.

Viendo el contenido de archivos


Página 13 de 292

1.8.13.

Obteniendo ayuda en línea

1.8.14.

Sumario de comandos básicos

1.8.15.

Operaciones sobre directorios

1.8.16.

Operaciones sobre arc

1.9.

1.8.16.1.

Otras utilidades

1.8.16.2.

Caracteres comodín

SHELL 1.9.1.

Comunicación entre p.

1.9.2.

Entrada y salida estándar

1.9.3.

Redirigiendo la E y S.

1.9.4.

Redirección no Destructiv

1.9.5.

Permisos de archivos

1.9.6.

Tipos de permisos

1.9.7.

Interpretando los permisos de archivos

1.9.8.

Programación del shell

1.9.9.

Administración del S.

1.9.10.

Distribuciones de Linux.

Capítulo III 1.

Conectar Java con MySQL en Apache NetBeans 1.1.

Instalación de MySQL Workbench 8

1.2.

Instalación de Wamp o Xamp

1.3.

JDBC con MySQL

1.4.

Formularios de registros

1.5.

Consultas

1.6.

Formularios con consultas

1.7.

Consulta de tabla de MySQL

1.8.

Leer resultados

1.9.

Baja y modificación de datos de una tabla de MySQL

1.10.

Generar comentarios en Código

1.11.

Estructura de datos

1.5.1. Árboles binarios 1.5.2. Teoría de grafos 1.5.3. Tipos de árboles binarios 1.5.4. Recorridos en profu. 1.5.5. Recorridos en preorden


Página 14 de 292

1.5.6. Recorridos en post-órden 1.5.7. Recorridos en in-órden 1.5.8. Listas, colas y pilas 1.5.9. Adecuación al entorno 3.6. Estructuras dinámicas 3.7. Listas tipo pila 3.8. Listas tipo cola 3.9. Problemas de aplicación 3.10. Listas genéricas 3.11. Listas genéricas ordenadas 3.12. Listas genéricas ordenadas doblemente encadenadas 3.13. Listas genéricas circulares 3.14. Recursividad: conceptos 3.15. Problemas donde conviene aplicar la recursividad 3.16. Implementación de Java 3.17. Ejemplos de la vida cotidiana

Capitulo IV 1.

Entorno de marketing digital y publicidad en internet 1.1.

Teoría del color

1.2.

Composición

1.3.

Combinación

1.4.

Psicología

1.5.

Teoría del consumidor

1.6.

Mercado

1.7.

Grupo

1.8.

Segmento

1.9.

Teoría de los mercados

1.10.

Oferta

1.11.

Demanda

1.12.

Precio

1.13.

Teoría del conocimiento

1.14.

Dato

1.15.

Información

1.16.

Conocimientos

1.17.

MARKETING DIGITAL

1.17.1.

Panorama digital


Página 15 de 292

1.17.2.

SEO-SEM

1.17.3.

Fundamentos

1.17.4.

Display

1.17.5.

Community

1.17.6.

Manager

1.17.7.

Marketing Mobile

1.17.8.

E-commerce

1.18.

PUBLICIDAD

1.19.

CSS introducción

1.19.1.

CSS Sintaxis

1.19.2.

CSS Selectores

1.19.3.

CSS implementar

1.19.4.

CSS fondos

1.19.5.

CSS texto

1.19.6.

CSS fuentes

1.19.7.

Vínculos de CSS

1.19.8.

CSS Listas

1.19.9.

Tablas CSS

1.19.10.

Caja CSS Modelo

1.19.11.

Border CSS

1.19.12.

Esquema CSS

1.19.13.

Margen CSS

1.19.14.

CSS Navigation Bar

1.19.15.

CSS galería de imágenes

1.19.16.

CSS imagen opacidad


Página 16 de 292


Página 17 de 292

Quinto Grado Análisis de Sistemas Capítulo I 1.

SQL (Structured Query Language) 1.1.

Instalación SQL server 2014

1.2.

Configuración SQL server

1.3.

Sintaxis SQL

1.4.

Comentar código

1.5.

SQL SELECT

1.6.

SQL SELECT DISTINCT

1.7.

SQL Y, O, No

1.8.

SQL Ordenar Por

1.9.

SQL Insertar y actualización

1.10.

Select de SQL Top

1.11.

SQL mínimo y máximo

1.12.

Conde SQL, Media, Suma

1.13.

SQL como Crear SQL DB

1.14.

SQL comodines y Check

1.15.

alias de SQL Inner Join

1.16.

SQL Left Join y Right Join

1.17.

SQL Full Join

1.18.

SQL Self Join, Union

1.19.

SQL Group By y Any, All

1.20.

SQL Procedimientos

1.21.

SQL Comentarios de db

1.22.

SQL de copia de seguridad DB

1.23.

SQL Crear la tabla y DROP

1.24.

Modificar tabla y restricciones

1.25.

SQL no nulos y único

1.26.

SQL de clave principal

1.27.

SQL clave externa

1.28.

Inyecciones SQL


Página 18 de 292

1.29.

SQL predeterminado

1.30.

SQL incremento automático

1.31.

alojamiento SQL

Capítulo II 1.

GNU/Linux en un entorno de trabajo 1.1.

Introducción

1.2.

Objetivo

1.3.

Créditos

1.4.

Licencia

1.5.

Notación y convenciones

1.6.

¿Qué son Unix y

1.7.

Unix, Linux y GNU

1.8.

Directorios y comandos

1.9.

1.8.1.

Archivos y directorios

1.8.2.

El árbol de directorios

1.8.3.

Directorio de trabajo

1.8.4.

Refiriéndose al directorio

1.8.5.

Primeros pasos en Linux

1.8.6.

Moviéndonos por el entorno

1.8.7.

Viendo el contenido de los directorios

1.8.8.

Creando directorios

1.8.9.

Copiando archivos

1.8.10.

Moviendo archivos

1.8.11.

Borrando archivos y directorios

1.8.12.

Viendo el contenido de archivos

1.8.13.

Obteniendo ayuda en línea

1.8.14.

Sumario de comandos básicos

1.8.15.

Operaciones sobre directorios.

1.8.16.

Operaciones sobre arc.

1.8.16.1.

Otras utilidades

1.8.16.2.

Caracteres “comodín”

SHELL 1.9.1.

Comunicación entre p.

1.9.2.

Entrada y salida estándar


Página 19 de 292

1.9.3.

Redirigiendo la E y S.

1.9.4.

Redirección no Destructiva

1.9.5.

Permisos de archivos

1.9.6.

Tipos de permisos

1.9.7.

Interpretando los permisos de archi.

1.9.8.

Programación del shell

1.9.9.

Administración del S.

1.9.10.

Distribuciones de Linux

Capítulo III 1.

Conectar Java con MySQL en Apache NetBeans 1.1.

Instalación de Mysql Workbench 8

1.2.

Instalación de Wamp o Xamp

1.3.

JDBC con MySQL

1.4.

Formularios de registros

1.5.

Consultas

1.6.

Formularios con consultas

1.7.

Consulta de tabla de MySQL

1.8.

Leer resultados

1.9.

Baja y modificación de datos de una tabla de MySQL

1.10.

Generar comentarios en Código

1.11.

Estructura de datos. 1.11.1.

Árboles binarios

1.11.2.

Teoría de grafos

1.11.3.

Tipos de árboles binarios

1.11.4.

Recorridos en profu.

1.11.5.

Recorridos en pre-orden

1.11.6.

Recorridos en post orden

1.11.7.

. Recorridos en in orden.

1.11.8.

3.5.8. Listas, Colas y Pilas

1.11.9.

3.5.9. Adecuación al entorno

1.12.

Estructuras dinámicas

1.13.

Litas tipo Pila

1.14.

Litas tipo Cola

1.15.

Problemas de aplicación


Página 20 de 292

1.16.

Listas genéricas

1.17.

Listas genéricas ordenadas

1.18.

Listas genéricas doblemente encadenadas

1.19.

Listas genéricas circulares

1.20.

Recursividad: Conceptos

1.21.

Problemas donde conviene aplicar la recursividad

1.22.

Implementación Java

1.23.

Ejemplos de la vida cotidiana

Capítulo IV 1.

Teoría del color

2.

Composición

3.

Combinación

4.

Psicología

5.

Teoría del consumidor

6.

Mercado

7.

Grupo

8.

Segmento

9.

Teoría de los mercados

10.

Oferta

11.

Demanda

12.

Precio

13.

Teoría del conocimiento

14.

Dato

15.

Información

16.

Conocimientos

17.

MARKETING DIGITAL

18.

17.1.

Panorama digital

17.2.

SEO-SEM

17.3.

Fundamentos

17.4.

Display

17.5.

Community

17.6.

Manager

17.7.

Marketing Mobile

17.8.

E-Commerce

PUBLICIDAD


Página 21 de 292

19.

CSS Introducción 19.1.

CSS Sintaxis

19.2.

CSS Selectores

19.3.

CSS implementar

19.4.

CSS Fondos

19.5.

CSS Texto

19.6.

CSS Fuentes

19.7.

Vínculos de CSS

19.8.

CSS Listas

19.9.

Tablas CSS

19.10.

Caja CSS Modelo

19.11.

Border CSS

19.12.

Esquema CSS

19.13.

Margen CSS

19.14.

CSS Navigation Bar

19.15.

CSS Galería de imágenes

19.16.

CSS Imagen opacidad


Página 22 de 292

Quinto Grado Tecnología vocacional II


Página 23 de 292

Capítulo I 1.1. Formularios de Windows Por: Robinson Dávila Windows Forms o formularios Windows es el nombre dado a la interfaz de programación de aplicación gráfica (API) que se incluye como parte de Microsoft .NET Framework, que proporciona acceso a los elementos de la interfaz de Microsoft Windows nativas envolviendo la API de Windows existente en código administrado.

Características: ·

Puede ejecutarse sin alterar el Registro.

·

Velocidad de respuesta más rápida posible para aplicaciones interactivas.

·

Basado en un modo de intercambio de mensajes Win32 en el lado cliente.

·

Requiere el .NET Framework ejecutándose en la máquina cliente.

·

Seguridad basada en código y basada en roles.

Ventajas y desventajas ·

Es uno de los lenguajes más utilizados, así que es muy sencillo encontrar

información, documentación y fuentes para los proyectos. ·

Tiene acceso a casi toda la API de Windows y puede usar la plataforma de

sistemas de Windows. · ·

Pese a ser una programación orientada a objetos, tiene un soporte escaso. Para crear aplicaciones multi-hilo, es necesario realizar llamadas a la API de

Windows.

1.2. Controles Windows


Página 24 de 292

Windows Forms ofrece controles y componentes que realizan una serie de funciones. Entre los mas utilizados están: ·

DataGridView

·

TextBox

·

Label

·

LinkLabel

·

StatusStrip

·

ProgressBar

·

WebBrowser

·

ComboBox

·

PictureBox

·

CheckBox

·

RadioButton

·

DateTimePicker

·

Button

·

GroupBox

Imagen: Ejemplo del diseño de un formulario


Página 25 de 292

Fuente: https://rjcodeadvance.com/disenar-interfaz-grafico-de-usuario-moderno-con-c-ywindows-form/

Controles de Windows Form Los controles de Windows Forms son componentes reutilizables que encapsulan la funcionalidad de la interfaz de usuario y se usan en aplicaciones del lado cliente basadas en Windows.

Imagen: Ejemplo de utilización de controles en un Windows Form Fuente: https://www.incanatoit.com/2014/11/formularios-controles-programacion-csharp-net.html

1.3. Diferencias entre Access y SQL Por: Edwin de León Access es una base de datos que se puede usar en aplicaciones pequeñas y puede estar seguro de que no será utilizada por muchos usuarios al mismo tiempo. Las bases de datos son muy propensas a los cortes de energía, lo que a veces provoca la pérdida permanente de tablas o incluso bases de datos completas. Está diseñado de tal manera que cualquier usuario puede ingresar, cambiar, eliminar registros fácilmente, lo que no debería ser el caso cuando se trata de información de la empresa. SQL Server, por el contrario, es una base de datos más potente con todos los parámetros necesarios para controlar el acceso a ella, y la integridad de la información está más garantizada que Access. SQL cuenta con un sistema de respaldo en disco o mediante transacciones que permite restaurar la información en caso de falla de energía o por un error durante el proceso de actualización o por cualquier otro motivo.


Página 26 de 292

1.4. Conexión SQL Server Inicie SQL Server Management Studio. La primera vez que ejecute SSMS se abrirá la ventana Conectarse al servidor. Si no se abre, puede abrirla manualmente seleccionando Explorador de objetos > Conectar > Motor de base de datos.

1. Aparecerá el cuadro de diálogo Conectar con el servidor.

2. Una vez cumplimentados todos los campos, seleccione Conectar. También puede modificar otras opciones de conexión seleccionando Opciones. Como ejemplos de las opciones de conexión tiene la base de datos a la que se está conectando, el valor de tiempo de espera de conexión y el protocolo de red. En este artículo se usan los valores predeterminados para todos los campos. 3. Para comprobar que la conexión de SQL Server se ha realizado correctamente, expanda y explore los objetos en el Explorador de objetos, donde se muestran el nombre del servidor, la versión de SQL Server y el nombre de usuario. Estos objetos son diferentes según el tipo de servidor.

1.5. Crud Codificación Avanzada


Página 27 de 292

Por: Brandon Diaz Para iniciar lo que es un crud debemos tener un proyecto de Visual basic, y colocar nuestros elementos como los son los botones y los textbox que se utilizaran además de la Datagridview para la visualización de los datos. Una vez hecho esto tenemos que crear una nueva clase en la cual colocaremos los códigos de conexión hacia la base de datos, como primer punto debemos importar la biblioteca que se utilizara la cual es Imports System.Data.OleDb.

Imagen ejemplo importe de librería Fuente: https://aprendamosdeprogramacion.wordpress.com/2016/10/04/clase-sencilla-para-agregarleer-actualizar-y-eliminar-datos-en-access-mysql-y-sqlite-con-visual-basic-net/

Luego de esto debemos declarar la variable que contendrá la conexión con la base de datos con el comando:

Imagen ejemplo de la declaración de la base de datos Fuente: https://aprendamosdeprogramacion.wordpress.com/2016/10/04/clase-sencilla-para-agregarleer-actualizar-y-eliminar-datos-en-access-mysql-y-sqlite-con-visual-basic-net/

Ya con esto hecho ponemos en marcha lo que sería el primer el primer proceso el cual será para revisar si la conexión se realiza exitosamente utilizando lo que es un try catch para que nos diga dónde está el error, de la siguiente manera:

Imagen ejemplo de verificación de conexión Fuente: https://aprendamosdeprogramacion.wordpress.com/2016/10/04/clase-sencilla-para-agregarleer-actualizar-y-eliminar-datos-en-access-mysql-y-sqlite-con-visual-basic-net/

Luego en la misma clase declaramos un Subproceso que se llamará consulta el cual nos permitirá realizar la consultas a nuestra base de datos y poder mostrar el resultado de manera ordenada


Página 28 de 292

Imagen ejemplo del proceso consulta Fuente: https://aprendamosdeprogramacion.wordpress.com/2016/10/04/clase-sencilla-para-agregarleer-actualizar-y-eliminar-datos-en-access-mysql-y-sqlite-con-visual-basic-net/

Luego de esto tendremos que crear un subproceso el cual contendrá el código con el cual se realizarán las operaciones que se le solicitarán a la base de datos, dicho código se le mostrará a continuación:

Imagen ejemplo del proceso operaciones Link: https://aprendamosdeprogramacion.wordpress.com/2016/10/04/clase-sencilla-para-agregarleer-actualizar-y-eliminar-datos-en-access-mysql-y-sqlite-con-visual-basic-net/

Ya con esto Podemos proceder a la creación de los botones para que realicen las funciones en el form donde pondremos nuestras operaciones tendremos que importar la biblioteca ya antes mencionada, y también declarar una variable para llamar la clase.

Ejemplo de la declaración variable para la clase Link: https://aprendamosdeprogramacion.wordpress.com/2016/10/04/clase-sencilla-para-agregarleer-actualizar-y-eliminar-datos-en-access-mysql-y-sqlite-con-visual-basic-net/

Boton conexion


Página 29 de 292

Para comprobar que haga la conexión correctamente entraremos en el botón de nuestro proyecto que lo llamamos conexión, dentro de este botón colocaremos “nombre de la variable de la clase”. “proceso que se quiere utilizar”

Ejemplo del código de botón conexión Link: https://aprendamosdeprogramacion.wordpress.com/2016/10/04/clase-sencilla-para-agregarleer-actualizar-y-eliminar-datos-en-access-mysql-y-sqlite-con-visual-basic-net/

Boton Busqueda En el botón de búsqueda colocaremos lo siguiente:

Ejemplo de código de botón búsqueda Link: https://aprendamosdeprogramacion.wordpress.com/2016/10/04/clase-sencilla-para-agregarleer-actualizar-y-eliminar-datos-en-access-mysql-y-sqlite-con-visual-basic-net/

Boton ingresar Luego para el botón de agregar se utiliza el siguiente código: Dim Sql As String = "Insert Into Clientes (Id, Nombres, Apellidos) Select "& TxtId.Text &", '"& TxtNombres.Text &"', '"& TxtApellidos.Text &"'"Obj.operaciones(DGTabla, Sql) Cambiando los nombres a los que nosotros les coloquemos. Boton Actualizar Luego pasamos al código del botón de actualizar y colocaremos lo siguiente: Dim Sql As String = "Update Clientes Set Nombres='"& TxtNombres.Text &"', Apellidos='"& TxtApellidos.Text &"' where Id="& TxtId.Text &"" Obj.operaciones(DGTabla, Sql) Boton Delete Con esto terminaríamos lo que es el botón de actualizar, proseguiremos con el botón de Delete, para ello se utilizara el código de.


Página 30 de 292

Dim Sql As String = "Delete * From Clientes Where Id="& TxtId.Text &"" Obj.operaciones(DGTabla, Sql)

1.7. Anti Errores Por: Eldan André Escobar Asturias Tal y como dice su nombre son una serie de algoritmos que previenen posibles errores cometidos en el ingreso de datos. A continuación, daré una breve guía de cómo realizar un anti errores, Los anti errores son normalmente usados en los textbox como medida de prevención ante el ingreso de datos indeseados o no acertados. Código de un programa Anti Errores Procedemos a darle una función a un textbox con la opción keypress y luego introducir un if con la condición de los términos que no queremos que sean ingresados.

Imagen: Código aplicado a un programa en Visual Studio. Fuente: Archivos locales.

Ejecución del programa Anti Errores Comprobamos la funcionalidad del programa creado y nos aseguramos de que no haya errores.

Imagen: Ejecución del programa con Anti Errores. Fuente: Archivos locales.

1.7.1 Try Catch


Página 31 de 292

Try se utiliza cuando se desean prever excepciones en el transcurso de la ejecución de un programa. Es necesario, ya que ahí se colocan las instrucciones que se desean realizar pese a la excepción, posteriormente se usa un Catch donde se especifica la excepción que se sabe que puede ocurrir. Aplicación Procederemos a escribir el código para que detecte cualquier anomalía en la conexión con la base de datos y luego lo probaré para estar seguro.

Imagen: Ejemplo de programa con Try Catch. Fuente: Archivos locales.

1.8. Enlace a SQL Server En el archivo creado, haremos lo siguiente: · Cuando se despliegue el IDE, Abra el menú “Proyecto” y en el submenú que se abre, elija “Agregar nuevo elemento”. · En la nueva ventana, elija “Base de Datos Local”. · Dé clic en “Nueva conexión”. · Dé clic en “Cambiar” y elija “Archivo de base de datos SQL” y luego dé clic en “Aceptar”. · En la siguiente ventana, da clic en el botón “Examinar” para navegar hasta el archivo donde tiene almacenada la base de datos. · Luego dé clic en “Abrir” y se mostrará la ventana, pero ya con la base de datos de Access en la casilla correspondiente que dice Nombre del archivo de la base de datos. · De clic en Aceptar, y le aparecerá una ventana con una advertencia en la cual debe contestar “Sí”. · Ponga un Check en las casillas de verificación de tablas y vistas. · Luego de clic en “Finalizar”.


Página 32 de 292

Imagen: Menú para agregar nuevo elemento. Fuente: https://www.aulafacil.com/uploads/cursos/6674/27942_5800.es.png

Imagen: Menú para seleccionar el tipo de elemento. Fuente: https://www.aulafacil.com/uploads/cursos/6674/27945_5802.es.png

Imagen: Conexión de base de datos. Fuente: https://www.aulafacil.com/uploads/cursos/6674/27948_5806.es.png

1.9. Diseño de reportes


Página 33 de 292

Por: José Garcia Se usa el diseño de reportes para crear informes paginados de Reporting Services y solución de informes completos. El diseñador de informes proporciona una interfaz gráfica en la que se puede definir orígenes de datos, conjuntos de datos y consultas, posiciones de diseño del informe para las regiones de datos, campos y características interactivas como parámetros y conjuntos de informes que funcionan conjuntamente. Ventajas ·

Organiza los informes y elementos relacionados en un contenedor.

· Soluciones de informe de prueba que incluyen informes y elementos relacionados localmente. ·

Implementa conjuntamente los elementos relacionados.

·

Mantiene un conunto de copias para los informes y elementos relacionados.

·

Después de la implementación los informes publicados se pueden modificar.

Informes paginados

·

Agregar un nuevo proyecto de informe.

·

Agregar un proyecto de asistente para informes.

·

Agregar un nuevo elemento de tipo de informe.

·

Agregar un elemento existente.

·

Importar un informe de Microsoft Access.

1.10. Campos calculados Los campos calculados proporcionan la capacidad de definir campos en un objeto cuyo valor se calcula a partir de los valores de otros campos. Estos otros campos pueden existir en el mismo objeto o en otro objeto relacionado, estos cálculos estarán disponibles en la aplicación, así como para fines de creación de informes.


Página 34 de 292

Imagen: Ejemplo de la implementación de un Report Fuente: https://3.bp.blogspot.com/-C-HNn7fUgA/UjPyY5223LI/AAAAAAAADkw/8KKGx3dEi1g/s1600/1.png

Limitaciones de los campos calculados Existe una limitación en el tamaño del valor del atributo de cálculo que puede almacenar la aplicación, el atributo en cuestión es el de ecuación donde la ecuación nivelada compleja puede ser muy larga. Hay un límite de 20.000 bytes en el tamaño del texto centrado, teniendo en cuenta que la aplicación soporta caracteres multibyte y así que puede que esto no sea equivalente a 20.000 caracteres.

Imagen: Ejemplo de los campos calculados Fuente: https://support.content.office.net/es-es/media/14c18b8e-47dc-40b3-8c12-0c11b0d5eb3f.png

1.11. Instalación de ReportView Por: Wiliam González


Página 35 de 292

Los reportes son parte importante de una aplicación, al instalar rdlc en Visual Studio 2019 permite generar en aplicaciones ASP.Net. Microsoft RDLC permite la creación y diseño de reportes para proyectos ASP.Net y Windows Form desde Visual Studio. Es una herramienta de generación de reportes gratuita en comparación con Crystal Reports, herramienta con la misma función. Desde la versión de Visual Studio 2017, los reportes rdlc no viene incluido por defecto, esto provoco algunos problemas con los proyectos que lo utilizan. Los reportes RDLC quedo como un complemento que se debe instalar desde el administrador de extensiones. Pasos para Instalar Abrimos o creamos un proyecto web en ASP.Net en Visual Studio 2019, de la barra de herramientas seleccionamos Extensiones. Clic en la opción de Administrador de Extensiones.

Imagen: Administrador de Extensiones Fuente: https://www.kyocode.com/2019/05/instalar-rdlc-visual-studio-2019/

De las secciones seleccionamos En línea, en el buscador escribimos Report, descargamos las dos primeras extensiones.

Imagen: Selector de Extensiones Fuente: https://www.kyocode.com/2019/05/instalar-rdlc-visual-studio-2019/

Configurar rdlc en ASP.Net Hay que agregar un reporte en un proyecto web de ASP.Net para terminar con todo el proceso de instalación y configuración. Abrimos o creamos un proyecto ASP.Net, damos clic derecho sobre la sección de referencias y seleccionamos Agregar referencias.


Página 36 de 292

Imagen: Referencias del Proyecto Fuente: https://www.kyocode.com/2019/05/instalar-rdlc-visual-studio-2019/

Abrimos Extensiones de la sección de Assemblies, buscamos y seleccionamos los tres ensamblados Microsoft.ReportViewer… Aceptamos los elementos seleccionados, estos se agregan a tu proyecto.

Imagen: Control de Referencias Fuente: https://www.kyocode.com/2019/05/instalar-rdlc-visual-studio-2019/

Por último, agregamos un reporte RDLC en el proyecto abierto, clic derecho sobre el proyecto y agregamos un nuevo ítem. Ya que no hay una sección específica de reportes, buscamos el archivo Report en la sección raíz Visual Basic. Seleccionamos Report (este archivo tiene la terminación .rdlc), agregamos un nombre y aceptamos.

Imagen: Agregar un Nuevo Reporte Fuente: https://www.kyocode.com/2019/05/instalar-rdlc-visual-studio-2019/

Después de unos segundos se despliega la pantalla de diseño de reportes rdlc.


Página 37 de 292

Imagen: Diseño de Reporte Fuente: https://www.kyocode.com/2019/05/instalar-rdlc-visual-studio-2019/

1.12. Instalación de Crystal Report Crystal Reports para Visual Studio ahora se conoce como Crystal Reports Developer Edition para Visual Studio. También se conoce como CR para VS (CrforVs). Crystal Reports actualmente es compatible con Visual Studio 2019, Visual Studio 2017, Visual Studio 2015, Visual Studio 2013, Visual Studio 2012, Visual Studio 2010. Antes de Visual Studio 2010, Crystal Reports se instalaron junto con Visual Studio. A partir de Visual Studio 2010, Crystal Reports ya no se instalan con Visual Studio. Crystal Reports para Visual Studio debe descargarse e instalarse por separado desde el sitio web de SAP Crystal Reports. Sap Crystal Reports es de uso y descarga gratuitos. Pasos para Instalar Comenzamos la instalación el cual empieza a descomprimir algunos archivos necesarios para la instalación.


Página 38 de 292

Imagen: Setup de Crystal Report Fuente: https://giovannidotnet.wordpress.com/2011/03/19/instalacin-de-crystal-report-en-visual-studio2010/

Elegimos el lenguaje a instalar, Visual Studio no debe estar activo.

Imagen: Idiomas Fuente: https://giovannidotnet.wordpress.com/2011/03/19/instalacin-de-crystal-report-en-visual-studio2010/

Inicio de la instalación.

Imagen: Inicio de Instalación Fuente: https://giovannidotnet.wordpress.com/2011/03/19/instalacin-de-crystal-report-en-visual-studio2010/

Aceptamos el acuerdo de licencia de instalación


Página 39 de 292

Imagen: Términos de Condición Fuente: https://giovannidotnet.wordpress.com/2011/03/19/instalacin-de-crystal-report-en-visual-studio2010/

Inicio de la instalación

Imagen: Instalación Fuente: https://giovannidotnet.wordpress.com/2011/03/19/instalacin-de-crystal-report-en-visual-studio2010/

Finalmente, la instalación termina y ya tenemos listo Crystal Report en Visual Studio 2010


Página 40 de 292

Imagen: Finalizada Instalación Fuente: https://giovannidotnet.wordpress.com/2011/03/19/instalacin-de-crystal-report-en-visual-studio2010/

Finalmente podemos Abrir Visual Studio 2010 y encontraremos que ya está instalado Crystal Report.

Imagen: Agregando Crystal Report al Proyecto Fuente: https://giovannidotnet.wordpress.com/2011/03/19/instalacin-de-crystal-report-en-visual-studio2010/

1.13. ReportViewer Por: William Juarez Report Viewer es una herramienta que podemos aplicar en nuestras aplicaciones de Visual Basic y esta nos ayuda a tener un control y darle un interfaz gráfica a nuestros datos de una base de datos pero en Visual o también nos da muchas opciones de


Página 41 de 292

poder descargar nuestro diseño en formatos PDF,txt hasta la opción de poderlo imprimir, es una gran herramienta para nuestros programas y que nos logran facilitar y agregarle mas cosas a nuestros programas.

Imagen: Ejemplo de un Diseño de Un reporte Fuente: http://sitepanama585.weebly.com/uploads/1/2/4/0/124066560/121309379.jpg

Beneficio de Un ReportViewer •

Procesa eficientemente los datos. Este puede realizar operaciones como filtrar, agregar, segregar y ordenar datos.

Soporta una variedad de formas para presentar datos en listas, tablas , gráficos y matrices

Permite especificar tipo de letra , color , estilo de bordes , fondo de imágenes para hacer el reporte más atractivo.

Permite la interacción en reportes. Se puede añadir además mapa de documentos , bookmarks, ordenamiento interactivo.

permite imprimir y ver una vista previa de la que estaría por imprimirse

permite importar documentos de Excel, Word, PDF

Propiedades de un ReportViewer ·

Entre las propiedades del ReportViewer podemos destacar las siguientes: SizeToReportContent: Determina si el área del informe tiene un tamaño fijo o si equivale al tamaño del contenido del informe.

·

Propiedades de la categoría “Barra de herramientas”: Hace que se muestre u oculte cualquier botón del ReportViewer flechas de navegación, botón imprimir.

·

AsyncRendering: Determina si el informe se representa asincrónicamente a partir del resto de la página.


Página 42 de 292

Imagen: Ejemplo de un Diseño de Un reporte Fuente: https://www.gitmedio.com/wp-content/uploads/2018/05/Como-crear-reporte-conreportviewer-C.Net_.png

1.14. Relacionar y Diseñar Por: Francisco Pérez Para la relación y diseño requerimos cierto paradigmas; dentro de visual basic se crean conjuntos relacionados entre sí, como tablas y bases todo esto nos da una guía de que hacer con las comparaciones dentro de los bucles y problemas donde también son necesarios un orden numérico o textual para el cliente, si bien este es resultado de la comparación correcta la expresión hará una interacción mucho más amigable con el usuario que utilice nuestro programa donde se le denomina que camino seguir desde primer punto, el diseño siempre lleva un orden, donde especialmente debemos decirle cómo desplazarse y que mejor que implementar bases de datos y un entorno programado Relación entre variables Una variable local es aquella que se declara con un procedimiento, en una estructura la variable depende de sí comparte datos con otra, sino esta se declara para contener datos dentro de ella, como por ejemplo estructuras de repetición o de acción donde las más utilizadas son estas: ·

Boolean

·

Long

·

Decimal, texto o dato entero

Consultas Cuando se genera una lista de consultas a una sección se le denomina un rango depende del uso que se le quiera a esta misma dado esto la consulta verficica los objetos que contenemos dentro de una variable y que queremos hacer Ejemplo exacto de esto es la consulta en un programa de universidad, al Programa se le implementa una BD de inserción de notas, esta misma genera los datos ingresados en una base de datos. -Para consultar solo debemos ir al apartado y buscar lo que necesitamos y a esto se le genera un reporte-


Página 43 de 292

Interacciones y Eventos En visual manejaremos el patrón de diseño general, todo el núcleo debe contener los elementos antes mencionados, todo esto debe tener acciones específicas donde conste de varias ventanas y formularios para saltar entre ellos, estos son los puntos de interacción como el posicionamiento de las “herramientas, variables y objetos”.

Imagen: Ejemplo elementos de relación y diseño Fuente: https://2016-eucaristico-informatica-11.blogspot.com/2016/02/modulo-y-procedimiento.html

1.15. Impresión de reportes ·

En el proceso de reportes se usará el “DATA-REPORT” implementando con la herramienta del Reportviewer; los cuales construyen el entorno donde trabajar, esta estructura permite el manejo de ambiente en programación con visual basic.

·

La impresión del reporte nos debe contener los elementos extra con los que nosotros le hemos permitido interactuar al usuario -Agregar o eliminar- De no ser disponibles las alternativas mínimas son la de selección de los conceptos que fueron agregados antes Bases de datos


Página 44 de 292

Imagen: Impresión de un reporte de productos (con tablas) Fuente: https://es.stackoverflow.com/questions/146197/dise%C3%B1o-de-impresion-reportview-c

1.16. Crystal Reports Por: Dylan Solares Crystal Reports es un producto con un amplio historial de uso, con más de 10 versiones a sus espaldas, lo que hace de él una tecnología muy probada y estable. A lo largo de todas esas versiones ha ido ampliando sus funcionalidades y haciéndose compatible tanto a diferentes sistemas operativos (Microsoft y Linux), como a entornos de desarrollo (Microsoft .NET y Java), como a otros productos y tecnologías con las que multiplicar sus funcionalidades. Crystal Reports siempre ha destacado por su facilidad de uso, de tal manera que usuarios no técnicos (simplemente con conocimientos ofimáticos relativamente avanzados) han podido utilizarlo, lo que redunda en múltiples beneficios, como su rápida línea de aprendizaje, o el no depender de los departamentos de informática. Y todo ello unido a una enorme funcionalidad y flexibilidad que permite hacer cualquier tipo de informe, accediendo a cualquier fuente de datos; si sumamos a todo esto que además se integra con herramientas de desarrollo hace que se convierta en una verdadera solución de reporting empresarial.

Orígenes El producto fue originalmente creado por Crystal Services Inc., la que generó las versiones diez hasta la treinta. La compañía fue más tarde adquirida por Seagate Software, la que entonces fue renombrada como Crystal Decisions, y generó las versiones cuarenta hasta la noventa. Crystal Decisions fue adquirida en el último mes del año de dos mil tres por Business Objects, la que ha producido las versiones diez y once (XI), y hoy en día la versión doce (dos mil ocho). Business Objects fue adquirida el ocho de octubre de dos mil siete por SAP. Los usuarios, al instalar Crystal Reports en un equipo y emplearlo para escoger filas y columnas concretas de una tabla de datos compatibles, pueden organizar los datos en el informe en el formato que precisen. En el momento en que el diseño está completo, el informe se puede guardar/salvar como un fichero con extensión rpt. Se puede acceder de nuevo al informe reabriendo exactamente el mismo, y poder


Página 45 de 292

refrescar los datos. Si la fuente de base de datos se ha actualizado, el informe se refrescará reflejando estas actualizaciones. Campos de enunciado SQL Éstos son como fórmulas, mas escritos en SQL, y no en el lenguaje de fórmula de Crystal Reports. Los enunciados de SQL son utilizados, entre otras muchas cosas, para conseguir un conjunto concreto de datos de una base de datos, pudiendo ordenar, reunir y escoger datos, basándose en campos de enunciados SQL. Los campos de enunciado SQL, son útil en el momento de optimizar el desempeño de los informes, en tanto que las labores que ejecutan se efectúan por norma general en el servidor de la base de datos, en contraposición con una fórmula regular que en ocasiones se ejecuta en el equipo local. Tanto la sintaxis Crystal (nativa de Crystal Reports), como la sintaxis Basic dejan progresar y detallar las fórmulas de tal modo que sería bastante difícil o bien imposible hacerlo con SQL. En ciertas circunstancias, no obstante, la creación y el empleo de campos de enunciados SQL puede apresurar el proceso de los informes. Campos de parámetro Sirven para pedir al usuario de un informe que especifique información. De este modo se crear un campo de factor. Los factores son como preguntas que el usuario precisa contestar antes que se produzca el informe. La información que escribe el usuario, o bien la manera en que responde, determina lo que aparece en el informe. Los factores pueden ser creados con datos fijos (estáticos), activos si los datos experimentan cambios, o bien en forma de catarata, donde le usuario del informe elige de una lista desplegable aquello que quiere ver.

Campos de Fórmula Si se quieren desplegar datos que son valores calculados, deberá crear un campo de fórmula y ponerlo en el informe, similarmente a lo precedente (arrastrar hasta el sitio deseado, o bien introducirlo). Se cuenta con un extenso fantasma de fórmulas libres para la creación de estas. Las que pueden ser programadas o bien creadas conforme el lenguaje crystal, integrado al programa, o, usando la sintaxis de Basic (Visual Basic).

Fuentes de información e Imagen Link: https://www.paraisodigital.org/internet/crystal-reports.html


Página 46 de 292

https://es.wikipedia.org/wiki/Crystal_Reports

1.18. Diferencia de Crystal Reports y ReportViewer Crystal Reports es la “Mejor opción” que el usuario ve como el motor de informes “hecho por terceros” y resulta estar sobrecargado, repleto de errores y requisitos de licencia. Report Viewer no necesita de licencia, tampoco posee tantos errores una variedad de opciones limitada. Otras diferencias de Crystal Reports y ReportViewer Crystal Report: Es muy poderoso, pero tiene un precio; es complejo y no siempre hace lo que quieres. Crystal Reports: Muy bueno para diseñar, fácil, intuitivo, pero para hacer un cambio tenemos que hacer completamente todo. Report Viewer: Es un control de gama media, ya que viene incorporado con visual studio por lo que no hay que pagar por él, es fácil e intuitivo. Report Viewer: Es de gama media pero su forma de crear es fácil e intuitiva, a diferencia de Crystal, no es necesario eliminar todo el reporte para cambiar algo. Crystal Reports: El archivo de reportes de Crystal Reports es *,rpt. CrystalReportViewer pertenece al namespace CrystalDecisions.Windows.Forms Report Viewer: El control ReportViewer usa archivos *,rdlc. ReportViewer pertenece al namespace Microsoft.Reporting.WinForms.

Link: https://prezi.com/p/k24mqgb85usy/difencia-entre-crystal-y-viewer/

1.19. Imprimir un reporte Después de guardar un informe en un servidor de informes, puede ver e imprimir el informe desde un explorador, el portal web de Reporting Services o cualquier aplicación que use para ver un informe exportado. Antes de guardar un informe, puede imprimirlo desde su vista previa.


Página 47 de 292

Cuando imprime un informe, puede especificar el tamaño del papel que se va a usar. El tamaño del papel determina el número de páginas de un informe y los datos del informe que caben en cada página. El tamaño del papel solamente afecta a los informes presentados con representadores de saltos de página forzados: PDF, Imagen e Imprimir. El establecimiento del tamaño del papel no tiene ningún efecto en otros presentadores. Para más información, vea Comportamientos de la representación (Generador de informes y SSRS). Desde la barra de herramientas del visor de informes del portal web de Reporting Services o en la vista previa del Generador de informes, puede exportar un informe a un representante de saltos de página manuales o hacer clic en el botón Imprimir para imprimir una copia del informe. Es posible que necesite establecer el tamaño del papel u otras propiedades de configuración de página. Use el cuadro de diálogo Propiedades del informe para cambiar las propiedades de configuración de página, incluyendo el tamaño del papel. Puede especificar los márgenes de impresión de la página en dos ubicaciones diferentes: en modo de diseño y en modo de ejecución. ● Modo de diseño. Al establecer los márgenes de página en modo de diseño, esta configuración se guarda en la definición de informe al guardar el informe. ● Modo de ejecución. Al establecer los márgenes de página en modo de ejecución, esta información no se guarda en la definición de informe. La siguiente vez que imprima el informe, recibirá la configuración de la definición de informe, a menos que indique de nuevo sus márgenes de impresión. Para imprimir un informe en el Generador de informes ● Abra un informe. ● En la pestaña Inicio, haga clic en Ejecutar. ● (Opcional) Haga clic en Diseño de impresión para ver el aspecto que tendrá el informe cuando se imprima. ● (Opcional) Haga clic en Configurar página para configurar el papel, la orientación y los márgenes. ● Haga clic en Imprimir. ● En el cuadro de diálogo Imprimir , seleccione una impresora y especifique otras opciones de impresión. Para imprimir un informe desde una aplicación de explorador web ● En el portal web de Reporting Services, vaya al informe que quiere imprimir. Abra el informe. ● En la barra de herramientas que se encuentra en la parte superior del informe, haga clic en Imprimir. ● En el cuadro de diálogo Imprimir , seleccione una impresora y haga clic en Imprimir.


Página 48 de 292

Fuentes: Link https://docs.microsoft.com/es-es/sql/reporting-services/report-builder/print-a-reportreport-builder-and-ssrs?view=sql-server-ver15

Capítulo II Variables de entorno Por: Alexsandro Camel

Variable dinámica que puede afectar al comportamiento de los procesos en ejecución en un ordenador, Son parte del entorno en el que se ejecuta un proceso. Por ejemplo, un proceso en ejecución puede consultar el valor de la variable de entorno TEMP para descubrir una ubicación adecuada para almacenar archivos temporales, o la variable HOME o USERPROFILE para encontrar la estructura de directorios propiedad del usuario que ejecuta el proceso.

MS-DOS y Windows Es posible acceder al valor de una variable, ya sea tanto para consultarlo como para modificarlo, tanto dentro de scripts como desde la línea de comandos. La forma en que se accede al contenido de una variable varía para cada sistema operativo. En el caso de sistemas Unix, depende del intérprete de comandos (o shell) que se use, pues este es el encargado del manejo de las variables de entorno.

UNIX / GNU/Linux En varias interfaces texto de Unix y Linux, como por ejemplo en bash, se muestra el valor de una variable mediante:


Página 49 de 292

Imagen: muestra el valor de una variable mediante. Fuente: https://es.wikipedia.org/wiki/Variable_de_entorno#UNIX_/_GNU/Linux

2.7 Salida de datos en consola Por: Alexsandro Camel

Una forma fácil de crear una nueva clase con Eclipse es, botón derecho del ratón sobre src - New – Class.

Imagen: Forma fácil de crear una nueva clase con Eclipse Fuente: http://www.edu4java.com/es/java/entrada-salida-consola.html

Dar el nombre de la clase “ConsoleOutput” y seleccionar si queremos el método main. Oprimir finish. Borrar el comentario TODO en el método main y escribir “syso”, luego apretar la tecla Ctrl y la barra de espacios conjuntamente. si todo salió bien


Página 50 de 292

“syso” se convirtió en “System.out.println();”. Ctrl-espacio suele dar ayuda en muchas ocasiones.

2.7.1 Salida de Datos por consola La salida de datos por consola, nos debe ser algo familiar, ya que en algunas páginas vistas hasta ahora en el curso, a aparecido la sentencia que nos permite realizar esta acción, que és:

System.out.println ( ) ;

2.7.2De momento Ya que no hemos tocado o visto las clases ni los objetos, ni los métodos, no explicaremos nada más acerca de esta sentencia. La utilizaremos tal cual, cuando sea necesario en los ejercicios o aplicaciones que vayamos viendo en el apartado de «JAVA BASICO».

2.8 Compilador primario de Java Por: Alexsandro Camel

Programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar.

2.8.1 Funcionamiento del compilador Compilador de java es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina).

Imagen: Proceso del Funcionamiento. Fuente: http://www.buscaminegocio.com/cursos-de-java/compilador-de-

java.html#:~:text=Un%20compilador%20de%20java%20es,m%C3%A1quina%20ser%C3%A1%20capaz%20de%2 0interpretar.


Página 51 de 292

2.8.2 Tipos de anális de código Entre las fases de análisis se describen el Análisis léxico, Análisis sintáctico y Análisis semántico se encuentra la de síntesis que consiste en generar el código objeto equivalente al programa fuente genera código objeto cuando el programa fuente está libre de errores de análisis, lo cual no quiere decir que el programa se ejecute correctamente, ya que un programa puede tener errores de concepto o expresiones mal calculadas.

Imagen: Proceso del Funcionamiento. Fuente: http://www.buscaminegocio.com/cursos-de-java/compilador-de-

java.html#:~:text=Un%20compilador%20de%20java%20es,m%C3%A1quina%20ser%C3%A1%20capaz%20de%2 0interpretar.

2.8.3 El compilador del JDK Es por ello que al igual que en todos los lenguajes de programación, así como java es una de las herramientas de desarrollo incluidas en el JDK. Realiza un análisis de sintaxis del código escrito en los ficheros fuente de Java con extensión *.java, de no encontrar errores en el código genera los ficheros compilados con extensión *.class y en otro caso mostraría la línea o líneas erróneas.

Imagen: Logo del compilador. Fuente: http://www.buscaminegocio.com/cursos-de-java/compilador-de-

java.html#:~:text=Un%20compilador%20de%20java%20es,m%C3%A1quina%20ser%C3%A1%20capaz%20de%2 0interpretar.


Página 52 de 292

2.8.4 Función del compilador La función de un compilador es convertir un programa escrito un en lenguaje como Java a un lenguaje que la computadora pueda entender. Los programas en Java se convierten en códigos de bytes. El comando para llamar al compilador es javac nombreprograma.java, donde el nombre del compilador es javac y nombreprograma.java es el nombre del archivo que contiene el código de nuestro programa.

Imagen: Función del compilador. Fuente: http://www.buscaminegocio.com/cursos-de-java/compilador-de-

java.html#:~:text=Un%20compilador%20de%20java%20es,m%C3%A1quina%20ser%C3%A1%20capaz%20de%2 0interpretar

2.9 Variables e identificadores Por: Kevin Cárcamo Un identificador es un nombre que identifica a una variable, a un método o función miembro, a una clase. Ciertas reglas que debe seguir un identificador: ● ● ● ● ●

Todos los identificadores han de comenzar con una letra, el carácter subrayado (_) o el carácter dólar ($). Puede incluir, pero no comenzar por un número No puede incluir el carácter espacio en blanco Distingue entre letras mayúsculas y minúsculas No se pueden utilizar las palabras reservadas como identificadores

Además de estas restricciones, hay ciertas convenciones que hacen que el programa sea más legible, pero que no afectan a la ejecución del programa. La primera y fundamental es la de encontrar un nombre que sea significativo, de modo que el programa sea lo más legible posible. El tiempo que se pretende ahorrar eligiendo nombres cortos y poco significativos se pierde con creces cuando se revisa el programa después de cierto tiempo. Tipo de identificador

Convención

Ejemplo


Página 53 de 292

nombre de una clase nombre de función nombre de variable nombre de constante

Comienza por letra mayúscula comienza con letra minúscula comienza por letra minúscula

String, Rectangulo, CinematicaApplet calcularArea, getValue, setColor area, color, appletSize

En letras mayúsculas PI, MAX_ANCHO

2.9 Tipos de datos Por: Kevin Cárcamo En JAVA los tipos de variable se clasifican en: primitivos y de objeto.

2.9.1 Primitivos Lista de tipos de datos primitivos en JAVA Tipo Tamaño Valor mínimo Valor máximo byte 8 bits -128 127 short 16 bits -32768 32767 int 32 bits -2147483648 2147483647 long 64 bits -9223372036854775808 9223372036854775807 float 32 bits -3.402823e38 3.402823e38 double 64 bits -1.79769313486232e308 1.79769313486232e308 chart 16 bits '\u000' '\ufff'

2.9.2 De Objeto ● ● ● ●

Tipos de la biblioteca estándar de Java: String, Scanner, ArrayList, etc. Tipos definidos por el programador: Cliente, Estudiante, Carro, etc. arrays: elementos tipo vector o matriz. Tipos envoltorio o wrapper: Byte, Short, Integer, Long, Float, Double, Character, Boolean.

2.11 Constantes Por: Kevin Cárcamo Una constante desde el punto de vista de la programación es un dato cuyo valor no cambia durante la ejecución del programa, en otras palabras, una vez que a


Página 54 de 292

una constante se le asigna un valor, este no podrá ser modificado y permanecerá así durante toda la ejecución del programa. Las constantes son útiles para datos o atributos para los cuales el valor no tiene por qué cambiar, Con esto podremos evitar modificaciones en nuestro sistema que puedan causar problemas durante la ejecución del mismo.

2.11 Operadores Lógicos, Aritméticos y Relacionales Por: Kevin Cárcamo 2.11.1. Operadores Lógicos En Java disponemos de los operadores lógicos habituales en lenguajes de programación como son “es igual”, “es distinto”, menor, menor o igual, mayor, mayor o igual, and (y), or (o) y not (no). OPERADOR

DESCRIPCIÓN

==

Es igual

!=

Es distinto

<, <=, >, >= Menor, menor o igual, mayor, mayor o igual &&

Operador and (y)

||

Operador or (o)

!

Operador not (no)

2.11.2. Operadores Aritméticos Los operadores aritméticos en Java son los operadores que nos permiten realizar operaciones matemáticas: suma, resta, multiplicación, división y residuo. Los operadores aritméticos en java son:

Operador +

Descripción

* / %

Operador de resta Operador de multiplicación Operador de división Operador de residuo

Operador de Suma. Concatena cadenas para la suma de String

2.11.3. Operadores Relacionales Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa.


Página 55 de 292

Operador nombre

ejemplo

significado

<

menor que

a<b

a es menor que b

>

mayor que

a>b

a es mayor que b

==

igual a

a==b

a es igual a b

!=

no igual a

a!=b

a no es igual a b

<=

menor que o igual a

a<=5

a es menor que o igual a b

>=

mayor que o igual a

a>=b

a es menor que o igual a b

2.1Entorno de Trabajo IDE´S Por: Yasmin Carrillo Un entorno de desarrollo integrado (IDE) es un sistema de software para el diseño de aplicaciones que combina herramientas comunes para desarrolladores en una sola interfaz de usuario gráfica (GUI). Generalmente, un IDE cuenta con las siguientes características: 2.1.1 Editor de código fuente: editor de texto que ayuda a escribir el código de software con funciones como el resaltado de la sintaxis con indicaciones visuales, el relleno automático específico para el lenguaje y la comprobación de errores a medida que se escribe el código. 2.1.2 Automatización de compilaciones locales: herramientas que automatizan tareas sencillas y repetitivas como parte de la creación de una compilación local del software para su uso por parte del desarrollador, como la compilación del código fuente de la computadora en un código binario, el empaquetado de ese código y la ejecución de pruebas automatizadas. 2.1.3 Depurador: programa que sirve para probar otros programas y mostrar la ubicación de un error en el código original de forma gráfica.

Imagen: Ejemplo de entorno de trabajo

Fuente:https://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado#/media/Archivo:Anjuta-2.0.0-2.png

2.2 Introducción a JAVA Por: Yasmin Carrillo Java es un lenguaje de programación creado por Sun Microsystems para poder funcionar en distintos tipos de procesadores. Su sintaxis es muy parecida a la de C o C++, e incorpora como propias algunas características que en otros lenguajes son extensiones: gestión de hilos, ejecución remota, etc. Cuando se programa con Java, se dispone de antemano de un conjunto de clases ya implementadas. Estas clases (aparte de las que pueda hacer el usuario) forman parte del propio lenguaje (lo que se conoce como API (Application Programming Interface) de Java).

2.3 ¿Que es Java?


Página 56 de 292

Por: Yasmin Carrillo Java es una tecnología que se usa para el desarrollo de aplicaciones que convierten a la Web en un elemento más interesante y útil. Java no es lo mismo que javascript, que se trata de una tecnología sencilla que se usa para crear páginas web y solamente se ejecuta en el explorador.

Imagen de java

Fuente:https://www.genbeta.com/desarrollo/java-es-realmente-tan-inseguro-o-laalarma-social-le-esta-dando-mala-fama

2.4 Instalación de Java Por: Yasmin Carrillo La instalación de Java es sumamente sencilla, solo tienes que seguir los pasos a continuación. 1.- Primero que todo nos dirigimos a la web de descarga de Java. 2.- Ahora damos clic en el archivo descargado. En caso de que te pida permisos de administrador clicamos a “Si“. 3.- Damos clic a “Instalar” y esperamos mientras se descarga e instala.

4.- Ahora solo damos clic en “Cerrar”. Instalación de NetBeans NetBeans es uno de los mejores IDE’s gratuitos tanto para iniciados, como para avanzados, es por esto que es el IDE con el que vamos a trabajar durante este curso. Cómo instalar NetBeans 1.- Nos dirigimos al enlace de la web oficial de NetBeans. 2.- Elegimos el sistema operativo e idioma con el cual vamos a trabajar.


Página 57 de 292

3.- Damos clic en “Download” justo en la primera columna de izquierda a derecha.

4.- Una vez se termine de descargar le damos clic al archivo. En caso de que nos pida permisos de administrador para iniciar la instalación clicamos en “Si”. 5.- Clic en “Next”, luego marcamos la casilla y damos clic nuevamente en “Next”.

6.- Clic en “Next” nuevamente, esperamos a que cargue y finalmente clicamos en “finish”.

2.17. Reglas de prioridad Por: Diego Castellanos

A la hora de definir código en el proceso de construcción de un desarrollo es necesario tener claras las siguientes reglas: Realizar un código claro, eficiente y estructurado que facilite un posible mantenimiento del mismo. ●

Producir un código con el menor número de errores posibles (de preferencia ninguno). ●

Realizar un código en base a un estándar de construcción que facilite la reutilización de componentes en la construcción. ●

del mismo.

Documentar con eficiencia el código para facilitar la compresión


Página 58 de 292

Tener en cuenta las cuestiones de rendimiento a la hora de programar, intentando encontrar soluciones que minimicen el consumo de recursos del sistema. ●

2.18. Entrada de datos en consola Por: Diego Castellanos

Para solicitar datos por teclado se puede crear un objeto de la clase Scanner. Mediante ese objeto se puede llamar/invocar a los métodos que permiten capturar datos tanto numéricos como textuales. Utilizaremos el método scanner y para este primero necesitaremos importar su respectiva librería con el código “import java.util.Scanner” y luego necesitamos crear un objeto de la clase Scanner gracias al cual podemos utilizar todos los métodos disponibles en dicha clase con el código “Scanner entrada=new Scanner(System.in)” y por último para declarar variables que almacenen lo devuelto por el scanner las almacenaremos de la siguiente manera:

Imagen: Ejemplo de como declarar variables que almacenen lo devuelto por el scanner. Fuente: https://ifgeekthen.nttdata.com/es/que-es-y-como-usar-la-clase-scanner-en-java


Página 59 de 292

Imagen: Ejemplo de los métodos que determinarán el tipo de dato que esperará el scanner. Fuente: https://ifgeekthen.nttdata.com/es/que-es-y-como-usar-la-clase-scanner-en-java

2.19. Clases buffered Por: Diego Castellanos

BufferedReader es una clase de Java para leer el texto de una secuencia de entrada almacenando en el búfer caracteres que leen a la perfección caracteres, matrices o líneas pero siempre almacena los datos en forma de string, asi que será necesario convertirlos manualmente al tipo de datos deseado.

Este es el método clásico de Java para leer datos de entrada, introducido en JDK 1.0. Este método se usa envolviendo System.in (flujo de entrada estándar) en un InputStreamReader que está envuelto en un BufferedReader.

2.19.1 Importación de la librerías necesarias

Imagen: Ejemplo de como implementar las librerías necesarias para usar la clase buffered. Fuente: https://www.programarya.com/Cursos/Java/Entrada-de-datos


Página 60 de 292

2.19.2 Declaración y Creación de objetos Scanner en java

Imagen: Ejemplo de la creación de una variable de clase y creación del objeto BufferReader. Fuente: https://www.programarya.com/Cursos/Java/Entrada-de-datos

Imagen: Declaración de variables que almacenarán lo devuelto por el método readLine() del objeto BuffedReader Fuente: https://www.programarya.com/Cursos/Java/Entrada-de-datos

2.20. Clase scann Por: Diego Castellanos

También conocida como clase “scanner” es usada para obtener información (datos primitivos del tipo int, double, string y etc.) introducida por el usuario para ser procesada por nuestro programa.

2.20.1 Importación de la librería Scanner en java

Imagen: Ejemplo del código para importar la clase Scanner en Java. Fuente: https://ifgeekthen.nttdata.com/es/que-es-y-como-usar-la-clase-scanner-en-java

2.20.2 Declaración y Creación de objetos Scanner en java

Imagen: Ejemplo de la creación de una variable de clase y creación del objeto Scanner. Fuente: https://ifgeekthen.nttdata.com/es/que-es-y-como-usar-la-clase-scanner-en-java


Página 61 de 292

Imagen: Ejemplo de los métodos que determinarán el tipo de dato que esperará el scanner. Fuente: https://ifgeekthen.nttdata.com/es/que-es-y-como-usar-la-clase-scanner-en-java

Imagen: Ejemplo de como declarar variables que almacenen lo devuelto por el scanner. Fuente: https://ifgeekthen.nttdata.com/es/que-es-y-como-usar-la-clase-scanner-en-java

2.21. Sentencia condicional En programación, una sentencia condicional es una instrucción o grupo de instrucciones que se pueden ejecutar o no en función del valor de una condición. Los tipos más conocidos de sentencias condicionales son el SI..ENTONCES (if..then), el SI..ENTONCES..SI NO (if..then..else) y el SEGÚN (case o switch), aunque también podríamos mencionar al manejo de excepciones como una alternativa más moderna para evitar el "anidamiento" de carne condicionales. Las sentencias condicionales constituyen, junto con los bucles, los pilares de la programación estructurada, y su uso es una evolución de una sentencia en lenguaje ensamblador que ejecutaba la siguiente línea o no en función del valor de una condición.


Página 62 de 292

Diágrama de flujo de "If–Then–Else" anidado Fuente: https://es.wikipedia.org/wiki/Sentencia_condicional

2.22.1. SIMPLE Las estructuras selectivas simples, son las que se componen nada más de una condición, si esta condición se cumple se ejecuta lo que hay dentro de ella, si no, no hace nada. Para este tipo de estructura, en java tenemos la condición if. Si esto se cumple, haz esto, si no, no hagas nada.

Fórmula de la sentencia if en java Fuente: https://norsurprogramacion.blogspot.com/2021/04/estructuras-selectivassimple-doble-y.html

2.22.1. DOBLES Las estructuras selectivas dobles son un poco más complejas, pero solo un poco. Éstas en lugar de llevar el flujo de nuestro programa hacia un lado, lo lleva hacia dos lados. En el ejemplo anterior vimos como si se cumplía una condición, se ejecutaba


Página 63 de 292

lo que había dentro de nuestro if, pero si no se cumplía no ocurría nada, para cambiar eso debemos agregar una sentencia más justo después de la llave del cierre del if. La nueva sentencia que añadiremos será el else (sino), que indica que, si la condición del if no se cumple, haga lo que esté dentro de él. A nuestro programa anterior, le añadiremos un else para el caso en el que el usuario no sea mayor de edad.

Fórmula de la sentencia dobles if en java Fuente: https://norsurprogramacion.blogspot.com/2021/04/estructuras-selectivassimple-doble-y.html

2.22.2. MÚLTIPLES Con la sentencia múltiple, indicamos que el flujo de nuestro programa puede tomar distintos caminos. Para este tipo de estructura tenemos una sentencia muy útil llamada switch case, esta sentencia evalúa una condición y luego mediante casos determina el camino a seguir. notarás que lleva una palabra reservada nueva, el break, este nos ayuda a que cuando acabamos el código que va dentro de una case, se salga y no se repita en un bucle, importante poner este break; al final de cada caso. Ademas que al final debemos añadir el case default, que indica que no existe una acción para la condición que estamos evaluando.


Página 64 de 292

La fórmula del switch case Fuente: https://norsurprogramacion.blogspot.com/2021/04/estructuras-selectivas-simpledoble-y.html

2.22.3 SWITCH CASE El condicional switch case es una estructura que evalúa más de un caso y se caracteriza por: ● Selección de una opción entre varias. ● Switch recibe un “caso” y lo evalúa hasta encontrar el caso que corresponda. ● Se puede usar la opción “default” para cuando no se encuentra el caso dado. Este condicional es útil a la hora de definir por ejemplo un menú de usuario en aplicaciones que se ejecutan por consola. Algunas reglas importantes para declaraciones switch: ● Los valores duplicados de los case no están permitidos. ● El valor para un case debe ser del mismo tipo de datos que la variable en el switch. ● El valor para un case debe ser una constante o un literal. Las variables no están permitidas. ● La declaración break se usa dentro del switch para finalizar una secuencia de instrucción. ● La declaración break es opcional. Si se omite, la ejecución continuará en el siguiente case. ● La instrucción default es opcional, y debe aparecer al final del switch.


Página 65 de 292

Ejemplos de Switch case Fuente: https://javadesdecero.es/basico/sentencia-switch-java-ejemplo/

Diagrama de Flujo de Switch-case Fuente: https://javadesdecero.es/basico/sentencia-switch-java-ejemplo/


Página 66 de 292

2.23 Estructuras de repetición Por: Astrid Colindres

Las estructuras de repetición son las llamadas estructuras cíclicas, iterativas o de bucles. Permiten ejecutar un conjunto de instrucciones de manera repetida (o cíclica) mientras que la expresión lógica a evaluar se cumpla (sea verdadera). Existen tres estructuras de repetición: while, do-while y for.

2.23.1 While La estructura repetitiva mientras (en ingles while), es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición. Cuando se ejecuta la instrucción mientras, la primera cosa que sucede es evaluar la condición (una expresión booleana).

2.23.2 Do While y For La estructura do while - for es otra estructura repetitiva, la cual ejecuta al menos una vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar el bloque. Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo.

2.23.3 Repetitivas Anidadas La estructura de selección puede ser anidadas, es posible que un bucle pueda ser insertado uno dentro de otro, para los dos casos, las reglas de construcción de estructuras repetitivas anidadas son iguales: la estructura interna deberá estar totalmente dentro de la externa no pudiendo existir solapamiento. Las variables índices o de control de los bucles toman valores, de modo tal que por cada valor de la variable índice del ciclo externo se debe ejecutar totalmente en el bucle interno.


Página 67 de 292

Imagen: Diagrama de Flujo (Ejemplo de una estructura de repetición). Fuente: https://static.wikia.nocookie.net/fundamentos/images/4/43/Estructuras_de_decisi%C3%B3n_anidadas.j pg/revision/latest?cb=20130509020621&path-prefix=es

2.23.Vectores y Matrices Por: Pablo Contreras

Se le denomina vector, formación, matriz (en inglés array, del cual surge la mala traducción arreglo), a una zona de almacenamiento continuo que contiene una serie de elementos del mismo tipo, los elementos de la matriz.

Imagen: Ejemplo de Vector, 2 de abril 2022


Página 68 de 292

Fuente: http://1.bp.blogspot.com/-5RFq25b5-

xc/UehaelMHfjI/AAAAAAAABYY/V0vbnR4lNek/s400/vectores+en+c%23.png

Imagen: Ejemplo de Matriz, 2 de abril 2022 Fuente: http://2.bp.blogspot.com/-2Jh-

lsaLZ1A/UehbRzIYSTI/AAAAAAAABYk/H9bLvLwKCJQ/s320/matrices+en+c%23.png

2.24.1. Arreglos Un arreglo es una colección ordenada de datos (tanto primitivos u objetos dependiendo del lenguaje). Los arreglos se emplean para almacenar multiples valores en una sola variable, frente a las variables que sólo pueden almacenar un valor (por cada variable). Cada elemento del arreglo tiene un número al que está asociado, llamado “índice númerico” (numeric index), que permite acceder a él. En JavaScript, los arreglos comienzan a partir del índice cero y pueden ser manipulados con varios métodos. Un arreglo en JavaScript se ve de esta forma:

Imagen: Mdn web docs, 2 de abril 2022


Página 69 de 292

Fuente: Captura

2.24.2. Unidimensionales Un arreglo unidimensional es un tipo de datos estructurado que está formado por una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. Los datos que se guarden en los arreglos todos deben ser del mismo tipo. El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un índice para cada elemento del arreglo que nos da su posición relativa. Para implementar arreglos unidimensionales se debe reservar espacio en memoria. Los arreglos nos permiten hacer un conjunto de operaciones para manipular los datos guardados en ello, estas operaciones son: ordenar, buscar, insertar, eliminar, modificar entre otras.

Imagen: Ejemplo de Unidimensionales, 2 de abril 2022 Fuente: http://www3.uacj.mx/CGTI/CDTE/JPM/Documents/IIT/arreglos1/images/iit-arreglos-06.png

2.24.3. Bidimensionales Los arreglos bidimensionales son tablas de valores. Cada elemento de un arreglo bidimensional está simultáneamente en una fila y en una columna. En un arreglo bidimensional, cada elemento tiene una posición que se identifica


Página 70 de 292

mediante dos índices: el de su fila y el de su columna. Es estructurado,

un

tipo

de

dato

finito ordenado y homogéneo. El acceso a ellos también es en forma directa por medio de un par de índices. Son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar individualemente y se puede referenciar con un mismo nombre. Se usan para representar datos que pueden verse como una tabla con filas y columnas.

Declaración: Un arreglo bidimensional se define así: int arreglo [10] [10]; float matriz [10] [10];

También podemos utilizar constantes para definir la dimensión del arreglo de dos dimensiones: const int N=10; int arreglo [N] [N];

Imagen: Ejemplo de arreglo unidimensional y bidimensional, 2 de abril 2022 Fuente: https://i.ytimg.com/vi/dXchlGBS0FQ/maxresdefault.jpg


Página 71 de 292

2.24. Métodos Por: Josué Cujá

Un método en Java es un conjunto de instrucciones definidas dentro de una clase, que realizan una determinada tarea y a las que podemos invocar mediante un nombre. Algunos métodos que hemos utilizado hasta ahora: ● ● ● ●

Math.pow() Math.sqrt() Character.isDigit() System.out.println(); del mismo.

Imagen: Ejemplo de la creación de una método en Java. Fuente: http://puntocomnoesunlenguaje.blogspot.com/2012/04/metodos.html

2.24.1 ESTRUCTURA GENERAL DE UN MÉTODO JAVA

Imagen: Ejemplo de la creación de una método general en Java. Fuente: http://puntocomnoesunlenguaje.blogspot.com/2012/04/metodos.html

Los elementos que aparecen entre corchetes son opcionales.

Especificadores (opcional): determinan el tipo de acceso al método. Se verán en detalle más adelante.

TipoDevuelto: indica el tipo del valor que devuelve el método. En Java es imprescindible que en la declaración de un método, se indique el tipo de dato que ha de devolver. El dato se devuelve mediante la instrucción return. Si el método no devuelve ningún valor este tipo será void. NombreMetodo: es el nombre que se le da al método. Para crearlo hay que seguir las mismas normas que para crear nombres de variables.


Página 72 de 292

Lista de parámetros (opcional): después del nombre del método y siempre entre paréntesis puede aparecer una lista de parámetros, también llamados argumentos, separados por comas. Estos parámetros son los datos de entrada que recibe el método para operar con ellos. Un método puede recibir cero o más argumentos. Se debe especificar para cada argumento su tipo. Los paréntesis a continuación del nombre del método son obligatorios aunque estén vacíos. Throws listaExcepciones (opcional): indica las excepciones que puede generar y manipular el método. Return: se utiliza para devolver un valor. Algunos aspectos importantes sobre la palabra clave return en un método:

2.25. Procedimientos Por: Josué Cujá

Los procedimientos son básicamente un conjunto de instrucciones que se ejecutan sin retornar ningún valor, hay quienes dicen que un procedimiento no recibe valores o argumentos, sin embargo en la definición no hay nada que se lo impida. En el contexto de Java un procedimiento es básicamente un método cuyo tipo de retorno es void que no nos obliga a utilizar una sentencia return.

Imagen: Ejemplo de Procedimiento en Java. Fuente: https://www.incanatoit.com/2017/02/procedimientos-y-funciones-i-curso-de.html

2.26. Funciones Por: Josué Cujá

Las funciones son un conjunto de líneas de código (instrucciones), encapsulados en un bloque, usualmente reciben parámetros, cuyos valores utilizan para efectuar operaciones y adicionalmente retornan un valor. En otras palabras una función puede recibir parámetros o argumentos (algunas no reciben nada), hace uso de dichos valores recibidos como sea necesario y retorna un valor usando la instrucción return,


Página 73 de 292

si no retorna algo, entonces no es una función. En java las funciones usan el modificador static.

Imagen: Ejemplo de Funciones en Java. Fuente: https://www.aulafacil.com/cursos/programacion/java-basico/funciones-l13513

2.27. Parámetros Por: Josué Cujá

Los Parámetros en Java son los valores que reciben una función o un método, estos parámetros están definidos dentro de los paréntesis de la función o método.

Los parámetros se de finen el tipo de dato que van recibir, si es un número, cadena u otros.Cada parámetro se separa con comas.

Imagen: Ejemplo de Parámetros en Java. Fuente: https://oregoom.com/java/parametros/

2.28. Parámetros por valor Por: Josué Cujá

. El paso por valor significa que al método en la variable del argumento le llega una copia del valor en el caso de un tipo primitivo de datos o una copia del puntero a la


Página 74 de 292

dirección de memoria del objeto. En el paso por referencia el argumento contiene un puntero con la dirección de memoria de la variable.

Imagen: Ejemplo de Parámetros por valor en Java. Fuente: http://puntocomnoesunlenguaje.blogspot.com/2012/04/paso-de-parametros-en-java-yambito-de.html

Jose Javier Culajay Patzán. 2.30.3. IndexOf Length El método indexOf()devuelve el índice, dentro del objeto String que realiza la llamada, de la primera ocurrencia del valor especificado, comenzando la búsqueda desde indiceDesde; o -1 si no se encuentra dicho valor. Sintaxis: cadena.indexOf(valorBusqueda[, indiceDesde])

Imagen: Usando indexOf Fuente: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

2.31. Replace y Split. El replacemétodo incorporado se usa para reemplazar las ocurrencias de una subcadena específica dentro de una cadena con otro valor. Devuelve otra copia de


Página 75 de 292

la cadena original reemplazando todas las apariciones de una subcadena específica con el valor (o subcadena) especificado. Sintaxis: string.replace(old_string, new_string, count)

Imagen: Usando replace. Fuente: https://www.studytonight.com/post/python-string-methods-split-join-and-replace

El método de división de Python divide la cadena dada en función de un separador específico (que puede ser un carácter, un símbolo o incluso un espacio vacío). Devuelve una lista de subcadenas que se separan según el valor del separador dado. Sintaxis: string.split(separator/specific value, max_splits)

Imagen: Usando split. Fuente: https://www.studytonight.com/post/python-string-methods-split-join-and-replace

2.32. Substring, Trim y Value. Substring: Una parte de String se llama substring . En otras palabras, subcadena es un subconjunto de otra Cadena. La clase Java String proporciona el método substring()


Página 76 de 292

incorporado que extrae una subcadena de la cadena dada usando los valores de índice pasados como argumento.

Imagen: Usando substring. Fuente: https://www.javatpoint.com/substring

Trim: El método trim( ) elimina los espacios en blanco en ambos extremos del string. Los espacios en blanco en este contexto, son todos los caracteres sin contenido (espacio, tabulación, etc.) y todos los caracteres de nuevas lineas (LF,CR,etc.). Sintaxis: str.trim()

Imagen: Usando trim. Fuente: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/String/Trim

Value: El método Object.values() devuelve un array con los valores correspondientes a las propiedades enumerables de un objeto. Las propiedades son devueltas en el mismo orden a como lo haría un bucle for...in (la única diferencia es que un bucle forin también enumera las propiedades en la cadena de prototipo de un objeto). Sintaxis: Object.values(obj)


Página 77 de 292

Imagen: Usando value. Fuente: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/O bject/values

2.33. Equals y La clase Math. Equals: El método se utiliza para determinar si otros objetos son iguales al objeto. El método equals () se define en la clase de objeto, es una comparación de los valores de dirección de dos objetos (es decir, si las referencias son las mismas). Sin embargo, sabemos que estas clases contenedoras como String, Math, Integer, Double, etc. ya han anulado el método equals () de la clase de objeto cuando se usa el método equals ().

Imagen: Usando equals. Fuente: https://programmerclick.com/article/94771114928/ La clase math: La clase Math tiene miembros dato y funciones miembro estáticas, vamos a conocer algunas de estas funciones, cómo se llaman y qué tarea realizan.


Página 78 de 292

Imagen: Usando math. Fuente:http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/estatico/math/ math.htm#:~:text=La%20clase%20Math%20define%20una,a%20la%20funci%C3%B3n% 20miembro%20nextDouble

1.1 Parametros por R Por: Williams Culajay R es un entorno de software libre (licencia GNU GLP) y lenguaje de programación interpretado, es decir, ejecuta las instrucciones directamente, sin una previa compilación del programa a instrucciones en lenguaje máquina. El término entorno, en R, se refiere a un sistema totalmente planificado y coherente, en lugar de una acumulación de herramientas específicas e inflexibles, como suele ser el caso en otros softwares de análisis de datos.

Características de R: ● ● ● ● ●

Manejo y almacenamiento efectivo de los datos. Un conjunto de operadores para la realización de cálculos con matrices. Una gran colección de herramientas para el análisis de datos. Utilidades gráficas para la visualización de datos. Un lenguaje de programación bien desarrollado que incluye saltos condicionales, bucles, funciones recursivas, utilidades para la entrada y salida de datos, etc. Tiene un formato de documentación basado en LaTeX, que se utiliza para proporcionar documentación completa tanto en formato físico como digital.

Se utiliza en todas las fases de análisis de datos: ● ● ● ● ●

Adquisición de los datos de las fuentes disponibles: bases de datos, archivos de texto, etc. Preparación de los datos: eliminación de duplicados, datos incorrectos, valores extremos, etc. Análisis de los datos: construcción de modelos predictivos, de clasificación, de agrupamiento… Comunicación de los resultados: realización de informes para presentación de los resultados y conclusiones. Aplicación de los resultados obtenidos: por ejemplo, utilización de modelos predictivos desarrollados para en función de una serie de datos históricos (datos de entrenamiento y test del modelo) predecir ciertas salidas.

1.2 Funciones Por: Williams Culajay Una función permite escribir un fragmento de código parametrizado. De esta forma, es posible escribir un bloque de código y ejecutarlo para distintos datos. Una función puede considerarse un subprograma que resuelve una subtarea. Un motivo para utilizar funciones es que permiten estructurar u organizar el código de un programa. Cuando hay que resolver un problema complejo, en lugar de intentar solucionarlo mediante un programa muy extenso es mejor descomponerlo en subproblemas. Los subproblemas deben tener una complejidad moderada, de forma que sean resueltos por subprogramas sencillos. Así, en lugar de utilizar un programa muy


Página 79 de 292

grande para resolver un problema complejo se emplean distintos subprogramas que resuelven tareas sencillas y que se combinan para producir una solución final más simple. Una función tiene tres componentes importantes: ● ● ●

Los parámetros, que son los valores que recibe la función como entrada. El código de la función, que son las operaciones que hace la función. El resultado, que es el valor final que entrega la función.

En esencia, una función es un mini programa. Sus tres componentes son análogos a la entrada, el proceso y la salida de un programa.

1.2.1

Funciones con Cadenas

Por: Williams Culajay La programación tiene algunas funciones para tratar las cadenas (string), que nos pueden ser muy útiles.

Vamos a ver algunas: ●

Obtener la longitud de la cadena:

Fuente: https://www.aulafacil.com/uploads/cursos/1672/editor/28-1.jpg En este ejemplo longitud valdrá 15.

● Saber si una cadena contiene otra cadena:

Fuente: https://www.aulafacil.com/uploads/cursos/1672/editor/28-2.jpg En este ejemplo contiene valdrá "True".

● Obtener el índice de un carácter específico:

Fuente: https://www.aulafacil.com/uploads/cursos/1672/editor/28-3.jpg En este ejemplo indice valdrá 2. En este caso devuelve el índice de la primera 'a'.

● Eliminar parte de la cadena:


Página 80 de 292

Fuente: https://www.aulafacil.com/uploads/cursos/1672/editor/28-4.jpg En este ejemplo la variable corte valdrá "Frase". La función Remove, elimina parte de la cadena, desde la posición indicada (5) hasta el final.

● Reemplazar un carácter por otro:

Fuente: https://www.aulafacil.com/uploads/cursos/1672/editor/28-5.jpg En este ejemplo la variable nueva valdrá "Fr*se de prueb*". Sustituye el carácter 'a' por '*'.

● Recortar la cadena:

Fuente: https://www.aulafacil.com/uploads/cursos/1672/editor/28-6.jpg En este ejemplo la variable trozo valdrá "de". Extrae parte de la cadena empezando por la posición indicada con el primer valor (6) y con una longitud de 2, indicado con el segundo valor.

1.2.2

La Clase String, CompareTo

Por: Williams Culajay El método compareTo () se usa para realizar una ordenación natural en una cadena. Clasificación natural significa el orden de clasificación que se aplica al objeto, por ejemplo, orden léxico para Cadena, orden numérico para ordenar enteros, etc. El orden léxico no es más que orden alfabético. compareTo methods hace una comparación secuencial de letras en la cadena que tienen la misma posición. compareTo está definido en la interfaz java.lang.Comparable

Sintaxis: public int compareTo(String str)

Entrada de parámetros: str – Este método solo acepta un solo tipo de datos de cadena de entrada.


Página 81 de 292

Método de devoluciones: Este método Java devuelve un tipo de datos int que se basa en la comparación lexicográfica entre dos cadenas. devuelve <0, entonces la cadena que llama al método es primero lexicográficamente ● devuelve == 0 entonces las dos cadenas son lexicográficamente equivalentes ● devuelve> 0, entonces el parámetro pasado al método compareTo es lexicográficamente el primero. ●

JScrollPane: Por: Williams Culajay Es un contenedor para componentes que necesiten redimensionarse a través una barra deslizable tanto vertical como horizontalmente, el componente no cambia su tamaño original solo lo que se muestra al final en la pantalla. Seguramente todos habremos deslizado miles a lo largo de nuestra experiencia con computadoras, sobretodo en internet. Ejemplo de JScrollPane como contenedor de un JTextArea:

Fuente:http://2.bp.blogspot.com/xrCx2cVhcWE/VOZoyxEitYI/AAAAAAAAAZE/oseLVQ JLdbg/s1600/ejemploScrollPane.bmp La manera de agregar un componete a un contenedor es siempre la misma y este a su vez necesita ser puesto en otro contenedor o ventana.

JSplitPane: Por: Williams Culajay El JsplitPane se usa para dividir el JFrame o el JPanel con una barrita divisoria, dicha ventana, para poder colocar en ella dos y solo dos componentes, mismos que pueden ser alineados de izquierda a derecha o de arriba hacia abajo.


Página 82 de 292

Un SplitPane se utiliza cuando dos componentes contienen información relacionada y queremos que el usuario pueda cambiar el tamaño de los componentes en relación a uno o a otro. Un uso común de un SplitPane es para contener listas de elecciones y una visión de la elección actual. Un ejemplo de esta herramienta seria cuando uno accede a Hotmail del lado izquierdo se encuentra los correos y del derecho te muestra la información.

Fuente: https://objetos2.files.wordpress.com/2009/12/jslpit.jpg?w=300&h=187

JTextPane: Por: Williams Culajay Es otro editor que admite colores, fuentes, tamaños, etc. Admite incluso que le pongamos directamente iconos pasándole una clase Icon de java o que le añadamos un componente de java como JButton, JLabel, etc. Para añadir texto, debemos ir añadiendolo indicando en cada caso qué "atributos" queremos para ese texto. Si lo queremos en negrita, con cierta fuente de letra, tamaño, color, etc. El problema es que JTextPane no tiene métodos para ir añadiendo poco a poco el texto. Simplemente tienen un método setText() al que se pasa todo el texto de golpe. Para poder trabajar con el JTextPane, debemos pedirle el Document asociado con getDocument() y trabajar con él, que sí tiene métodos para ir añadiendo texto poco a poco.

Por ejemplo, para añadir un trozo de texto en negrita, haríamos esto: // Se instancia el JTextPane JTextPane editor = new JTextPane(); // Atributos para la frase, en negrita SimpleAttributeSet attrs = new SimpleAttributeSet(); StyleConstants.setBold(attrs, true); // Se inserta editor.getStyledDocument().insertString( editor.getStyledDocument().getLength(), "Negrita", attrs);


Página 83 de 292

Capítulo III Java

Poo

Swing

Por: Diego René Almengor Carrillo

Paquete Swing en Java Swing es una biblioteca gráfica para Java. Incluye widgets para interfaz gráfica de usuario tales como cajas de texto, botones, desplegables y tablas. Es un framework


Página 84 de 292

MVC para desarrollar interfaces gráficas para Java con independencia de la plataforma. Sigue un simple modelo de programación por hilos, y posee las siguientes características principales: Independencia de plataforma. Extensibilidad: es una arquitectura altamente particionada: los usuarios pueden proveer sus propias implementaciones modificadas para sobrescribir las implementaciones por defecto. Se puede extender clases existentes proveyendo alternativas de implementación para elementos esenciales. ● Personalizable: dado el modelo de representación programático del framework de swing, el control permite representar diferentes estilos de apariencia «look and feel» (desde apariencia MacOS hasta apariencia Windows XP pasando por apariencia GTK+, IBM UNIX o HP UX entre otros). Además, los usuarios pueden proveer su propia implementación de apariencia, que permitirá cambios uniformes en la apariencia existente en las aplicaciones Swing sin efectuar ningún cambio al código de aplicación. ● ●

● Imagen: Ejemplo de como se ve con Java Swing Fuente:https://upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Guiwidgets.png/640px-Gui-widgets.png

Contenedores y componentes Existen dos elementos básicos para la creación de interfaces gráficas de usuario usando Swing: ● ●

Contenedores: Elementos capaces de albergar otros elementos. Componentes: Elementos que se añaden a contenedores. Usualmente los componentes tienen aspecto gráfico, como un botón.

Swing proporciona tres tipos de contenedores de alto nivel. Esto significa que, cualquier otro contenedor que no sea de alto nivel, o componente, debe ir en su interior. Estos tres contenedores de alto nivel son: JFrame, JDialog y JApplet Código JFrame: JFrame ventana = new JFrame("Primera Ventana"); ventana.setSize(400, 400); ventana.setVisible(true);


Página 85 de 292

Imagen: Primer ejemplo de un JFrame: Fuente:http://www3.uji.es/~belfern/Docencia/Presentaciones/ProgramacionAvanzada/Tema3/image nes/primeraVentana.png

Una vez que hemos creado un contenedor, los componentes los añadiremos siguiendo las siguientes reglas: ●

Un componente se visualizará si lo hemos añadido a un contenedor.

Un componente sólo se puede añadir una vez a un contenedor.

Los componentes los debemos añadir al panel del contenedor

Organización de los componentes Como programadores, no hace falta que nos ocupemos de la organización de los componentes dentro de los contenedores. Swing nos ofrece gestores de aspecto capaces de organizar, de manera automática, la posición y tamaño de los componentes dentro de los contenedores. Los contenedores tienen asignado, por defecto, alguno de estos gestores de aspecto. En el caso de JFrame este gestor es BorderLayout.

Imagen:Comportamiento de un gestor de aspecto, define 5 zonas Fuente:http://www3.uji.es/~belfern/Docencia/Presentaciones/ProgramacionAvanzada/Tema3/image nes/borderLayout.png

Programación orientada a Objetos Por: Diego René Almengor Carrillo

1.1.1 Programación orientada a Objetos La programación orientada a objetos (POO) es un paradigma de programación que usa objetos para crear aplicaciones. Está basada en tres pilares fundamentales: herencia, polimorfismo, encapsulación. Su uso se popularizó a


Página 86 de 292

principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos, entre ellos Java.

Imagen: Representación de programación orientada a objetos Fuente: https://i.imgur.com/aBlu9Gy.png

1.1.2 Clases La clase es un modelo o prototipo que define las variables y métodos comunes a todos los objetos de cierta clase. También se puede decir que una clase es una plantilla genérica para un conjunto de objetos de similares características.

Imagen: Clase Fuente: http://panamahitek.com/wp-content/uploads/2015/02/clases-en-Java3.png

1.1.3 Objetos Todo el programa está construido en base a diferentes componentes (objetos), cada uno tiene un rol específico en el programa y todos los componentes pueden comunicarse entre ellos de formas predefinidas. Todo objeto del mundo real tiene 2 componentes: variables de clase y métodos.


Página 87 de 292

Imagen: Objetos Fuente: https://www.sites.google.com/site/estrelladelamuertemcmxcv/_/rsrc/1453999433531/objetos/Captura %20de%20pantalla%202016-01-28%20a%20las%2010.42.33%20a.m..png

Estructura de una clase Por: Karen Alvarado La estructura de una clase en Java está compuesta por la declaración del paquete, declaración de importación, comentarios, definición de la clase, constantes, variables / atributos, constructores y métodos.

Imagen: Ejemplo de estructura de una clase en java Fuente: https://aknowledgejourney.com/java/006structure.html#:~:text=La%20estructura%20de%20una %20clase,%2F%20atributos%2C%20constructores%20y%20m%C3%A9todos

Atributos de variables Por: Karen Alvarado Los atributos, también llamados datos o variables miembro, son porciones de información que un objeto posee o conoce de sí mismo. Una clase puede tener cualquier número de atributos o no tener ninguno. Se declaran con un identificador y el tipo de dato correspondiente.

Imagen: Atributos y variables en java


Página 88 de 292

Fuente: https://www.arkaitzgarro.com/java/images/cap12/modificadores.png

Métodos Accesores(Get y set) Por: Monica Julisa Barrera Rodriguez Los métodos get y set, son simples métodos que usamos en las clases para mostrar (get) o modificar (set) el valor de un atributo. El nombre del método siempre será get o set y a continuación el nombre del atributo, su modificador siempre es public ya que queremos mostrar o modificar desde fuera la clase. Por ejemplo, getNombre o setNombre. Los métodos get y set, son simples métodos que usamos en las clases para mostrar (get) o modificar (set) el valor de un atributo. El nombre del método siempre será get o set y a continuación el nombre del atributo, su modificador siempre es public ya que queremos mostrar o modificar desde fuera la clase. Por ejemplo, getNombre o setNombre. Es muy probable que en algún momento, sea necesario obtener el valor de un atributo (variable) de un método para poder utilizarlo en algún otro sitio. Las variables que se declaran dentro de un método se conocen como variables locales, y sólo se pueden utilizar en ese método. Cuando termina ese método, se pierden los valores de sus variables. Por lo tanto, para poder acceder a esas variables locales, es que se utilizan los métodos Set y Get. Lo que hace el método Set, es establecer o dar un valor a un atributo, en cambio el método Get, lo que hace es recuperar o conseguir ese valor para que pueda ser utilizado más tarde. Como ejemplo, crearé 3 métodos. Un método Set, un método Get y por último un método para mostrar el valor del atributo recuperado

Imágenes: GET Y SET Links de las imágenes: https://www.arsys.es/blog/propiedades-get-set-javascript

Colaboración de Clases Por: Monica Julisa Barrera Rodriguez Colaboración Desde el momento que existe una llamada al objeto de una clase, desde otra clase, existe Colaboración de clases. La figura representa la colaboración que presta Carrera a Estudiante. • La colaboración de clases es una analogía de la relación natural que existe entre los objetos en el mundo real.


Página 89 de 292

• La colaboración permite que una clase se comunique con otra clase con el propósito de utilizar los métodos de esta última para mejorar algún servicio o mantener una relación lógica de dependencia. La colaboración permite que una clase se comunique con otra clase con el propósito de utilizar los métodos de esta última para mejorar algún servicio o mantener una relación lógica de dependencia.

Imágenes: Colaboración de Clases Links de la imágenes: https://www.researchgate.net/figure/Figura-2-Diagrama-de-colaboracion-declases-UML-Patron-Object-Pool_fig2_237650770

Herencia Java Por: Emanuel Eduardo Beltran Gomez

Imágenes: Herencia Java Fuente: https://jarroba.com/herencia-en-la-programacion-orientada-a-objetos-ejemplo-en-java/

Es un pilar para los programas orientado a objetos (POO). cuesta un poco entender estos conceptos característicos del paradigma de la POO porque solemos venir de otro paradigma de programación como el paradigma de la programación estructurada pero se ha de decir que la complejidad está en entender este nuevo paradigma y no en otra cosa. Podemos definir a la herencia es: como un mecanismo que permite la definición de una clase a partir de la definición de otra ya existente.


Página 90 de 292

Imágenes: Herencia Java Fuente: https://jarroba.com/herencia-en-la-programacion-orientada-a-objetos-ejemplo-en-j

Polimorfismo Por: Emanuel Eduardo Beltran Gomez Es la capacidad que tienen los objetos de una clase en ofrecer respuesta distinta e independiente en función de los parámetros utilizados durante su invocación. Suele definirse como ‘Sobrecarga de parámetros’, que de pronto no suena tan divertido pero como veremos más adelante induce a cierta confusión. Por lo general diremos que existen 3 tipos de polimorfismo: • Sobrecarga: El más conocido y se aplica cuando existen funciones con el mismo nombre en clases que son completamente independientes una de la otra. • Paramétrico: Existen funciones con el mismo nombre pero se usan diferentes parámetros (nombre o tipo). Se selecciona el método dependiendo del tipo de datos que se envíe. • Inclusión: Es cuando se puede llamar a un método sin tener que conocer su tipo, así no se toma en cuenta los detalles de las clases especializadas, utilizando una interfaz común.

Imágenes: Poliformismo


Página 91 de 292

Links de la imágenes: https://ifgeekthen.nttdata.com/es/polimorfismo-en-java-programaci%C3%B3norientada-objetos

Sobrecarga de métodos Por: Cindi Benito La sobrecarga de métodos es la creación de varios métodos con el mismo nombre pero con diferente lista de tipos de parámetros. Java utiliza el número y tipo de parámetros para seleccionar cuál definición de método ejecutar.

Imagen: Ejemplo de sobrecarga de Métodos Fuente: https://www.aulafacil.com/uploads/cursos/954/editor/java-lecc-38_sobrecarga.png

Arreglos de Objeto Por: Cindi Benito Una array o arreglo es una colección de variables del mismo tipo, a la que se hace referencia por un nombre común. En Java, los arrays pueden tener una o más dimensiones, aunque el array unidimensional es el más común.

Imagen: Ejemplo de Arreglos de objetos Fuente: https://www.lawebdelprogramador.com/usr/349000/349955/5dd25fc048903Imagen5.PNG

JButton Por: Pablo Ismael Berganza Mendoza


Página 92 de 292

El JButton proporciona un botón visible que los desarrolladores pueden añadir a cualquier interfaz de usuario en Java, ajustando su apariencia y comportamiento para adaptarla a las necesidades de un proyecto. Para la creación de un botón, tenemos que declarar el boon antes del método constructor de la clase, y la estructura para declararlo es el siguiente: ● Private JButton Nombre del botón; Ya para implementarlo en el método constructor, tiene que tener la siguiente estructura: ● Nombre del botón = new JButton (“texto”); Y para darles las coordenadas para la posición sería la siguiente estructura: ● Nombre del boton.setBounds(10, 20,100,20); Ya para que aparezca en nuestro Frame, tenemos que poner la siguiente estructura: ● add(Nombre del botón);

Imagen: Ejemplo de un JButton Fuente:

https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=106&punto=&inicio=

JLabel Por: Pablo Ismael Berganza Mendoza El JLabel son textos que podemos colocar en el Frame, pero no solo podemos poner texto, podemos poner imágenes ya sean animadas o no. La estructura para declarar el JLabel es similar que el botón, solo que en vez de poner JButton ponemos JLabe, sería el siguiente:

● Private JLabel Nombre del Label; Al igual que el boton, este es la siguiente estructura para implementarlo: ● Nombre del Label = new JLabel (“texto”); También para poner las coordenadas, es así: ● Nombre del Label.setBounds(10, 20,100,20); Ya que se vea en nuestro Frame, seria el siguiente: ● add(Nombre del Label);


Página 93 de 292

Imagen: Ejemplo de un JLabel Fuente: http://www.buscaminegocio.com/cursos-de-java/jlabel-java-swing.html

JTextField Por: Erwin Fernando Blanco Melendres El control JTextField permite al operador del programa ingresar una cadena de caracteres por teclado. Código: Private JTextField textfield1; = “creamos el objeto con un nombre de variable” SetTitle(“Ejemplo 6: JTextField”); = “esta línea funciona para darle un titulo al objeto” textfield1=new JTextField(); = “esta función hace verdadera la parte del objeto en textfield.setBounds(120,10,150,20); y esta parte funciona para darle tamaños al objeto add(textfield1); y aquí añadimos el objeto final” if(e.getSource()==boton1){ String titulo=textfield1.getText(); setTitle(titulo;) }

Imagen: Ejemplo de un JTextField Fuente: https://www.jairogarciarincon.com/clase/interfaces-de-usuario-con-java-swing/componentes-jtextfield-yjtextarea

JTextArea Por: Erwin Fernando Blanco Melendres El control de tipo JTextArea permite ingresar múltiples líneas, a diferencia del control de tipo JTextField. Código: Private JTextArea textarea1; = “creamos el objeto y le asignamos el nombre de variable


Página 94 de 292

Textarea1=new JTextArea(); = “creamos uno nuevo” Texttarea1.setBounds(10,50,400,300); = “añadimos un ancho y alto” Add(textarea1); = ”añadimos el textarea1 al frame” Al momento de que el JTextArea reciba muchas líneas de texto llegará un momento en que no se podrá ver todo el contenido. Para ello, se debe de crear un objeto de la clase JScrollPane y añadir en su interior el objeto de la clase del JTextArea, de modo que el código modificado quede así: Private JTextArea textarea1; Private JScrollPane scrollpane1; Textfield1 = new JTextArea(); = “creamos el nuevo textarea1” Textarea1.setLineWrap(true); = “esto es para que salte de línea al momento de llegar al límite” Scrollpane1=new JScrollPane(textarea1); = “declaramos el JScrollPane para el textarea1” Scrollpane1.setBounds(10,50,400,300); = “le damos un ancho y alto al JTextArea” Add(scrollpane1);

Imagen: Ejemplo de un JTextArea Fuente: https://www.jairogarciarincon.com/clase/interfaces-de-usuario-con-java-swing/componentes-jtextfield-yjtextarea

JPasswordField Por: Erwin Fernando Blanco Melendres Cuando vamos a escribir una contraseña o alguna otra palabra que deseamos que no aparezca visualmente en el campo sino más bien algún carácter, existe lo llamado JPasswordField. Es un campo de texto, con la diferencia que cuando escribimos en él, aparecerá encriptada la contraseña o texto escrito Código: Private JPasswordField jpfContrasenia(){ =”la clase creada para JPasswordField” JPasswordField contrasenia = new JPasswordField(); =”lo creamos como nuevo objeto” Contrasenia.setBouns(200, 80, 150, 20); = “asignamos tamaño al JPasswordField” Contrasenia.setEchoChar(‘+’); =”signo encriptado para contraseña” Contrasenia.setToolTipText(“ingrese contraseña); =”es para una pequeña marca de agua” Return contrasenia; =” retorna esta clase” }


Página 95 de 292

Imagen: Ejemplo de un JPasswordField Fuente: https://franvarvil.blogspot.com/2013/01/jpasswordfield-programacion-java.html

JCheckBox Por: Pablo Ismael Berganza Mendoza Un CheckBox o también conocida como una casilla de verificación, es muy usada ya que nos permite seleccionar algunas opciones, este componente puede mostrar un texto, una imagen, una imagen con un texto. A continuación veremos cómo podemos crear una casilla de verificación, sus métodos y algunos applets que nos muestren más de cerca su funcionamiento. Creación: JCheckBox casilla=new JCheckBox(); ● Esto crea una casilla de verificación sin icono y sin texto. JCheckBox casilla=new JCheckBox(Icon imagen); ● Esta instrucción nos crea una casilla de verificación con el icono especificado. JCheckBox casilla=new JCheckBox(String texto);

● Esta instrucción nos crea una casilla de verificación con el texto especificado. JCheckBox casilla=new JCheckBox(String texto, Icon imagen); ● Esto nos crea una casilla de verificación con el texto e icono especificado.


Página 96 de 292

Imagen: Ejemplo de un JButton Fuente: http://4.bp.blogspot.com/_73t-OXs9bAc/TTjAt5yVfEI/AAAAAAAAAPQ/4n-61TkG1AM/s320/checkbox.png

JRadioButton Por: Emanuel Eduardo Beltrán Gómez La clase JRadioButton se usa para crear un botón de radio. Se utiliza para elegir una opción de múltiples opciones. Es ampliamente utilizado en sistemas de exámenes o cuestionarios. Debe agregarse en ButtonGroup para seleccionar solo un botón de opción.


Página 97 de 292

Imagen: Ejemplo de un JButton Fuente: https://www.javatpoint.com/java-jradiobuttonl

Java JComboBox Por: Alexsandro Camel Para inicializar los String que contendrá el JComboBox debemos llamar al método addItem tantas veces como elementos queremos cargar. Un evento muy útil con este control es cuando el operador selecciona un Item de la lista. Para capturar la selección de un item debemos implementar la interfaz ItemListener que contiene un método llamado itemStateChanged.

Ejemplo sencillo de JComboBox Un pequeño programa sencillo de ejemplo de uso del JComboBox de Java. Abre una ventana con un JComboBox y un JTextField. Cada vez que seleccionemos uno de los ítems, se mostrará en el JTextField. Si borras el JTextField y seleccionas otra vez el mismo item del JComboBox, verás que no se pinta en el JTextField. Esto es así porque el addActionListener() sólo avisa cuando hay un cambio en el ítem seleccionado.


Página 98 de 292

Imagen: Ejemplo sencillo. Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

Rellenar los items del JComboBox Hay formas más complejas de poner items en un JComboBox, pero la más sencilla que es la usada en este ejemplo consiste en añadir String de texto. Símplemente basta llamar al método addItem().

Imagen: consiste en añadir String de texto. Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

Añadir un listener al JComboBox Si nos queremos enterar de cuando el usuario cambia la selección del JComboBox debemos añadirle un listener, usando su método addActionListener(). A este listener sólo se nos avisará si hay cambio en la selección del JComboBox. Si el usuario abre el JComboBox y elige la misma opción que ya estaba seleccionada, no recibiremos ningún aviso.


Página 99 de 292

Imagen: Usamos un método addActionListener(). Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

Recoger el valor seleccionado en el JComboBox Bien en el listener cuando hay un cambio en la selección del JComboBox, bien cuando nos interese, podemos coger el item seleccionado sin más que llamar al método getSelectedItem(). Este método nos devolverá un Objet que será alguno de los item que pasamos en el addItem(). En este caso, String, así que podemos hacer el cast para saber exactamente la opción seleccionada.

Imagen: podemos coger el item seleccionado sin más que llamar al método getSelectedItem() . Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

Meter más información en el JComboBox Hemos comentado que hay formas más complejas de añadir items al JComboBox. Podemos añadir cualquier clase que queramos. El JComboBox llamará al método toString() de esa clase para saber qué pintar en la opción del menú, pero tanto addItem() como getSelectedItem() usarán el objeto completo. Esto es útil, por ejemplo, si hemos recogido las opciones del JComboBox de una base de datos y queremos mantener el id de la base de datos además de un texto que sea visible en el JComboBox. Imagina, por ejemplo, que leemos de base de datos una lista de idiomas con id y son los que queremos mostrar en el JComboBox, pero sin perder el id de base de datos. Hacemos una clase como la siguiente


Página 100 de 292

Imagen: Añadir ítems al JComboBox. Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

En el JComboBox podemos añadir ítems de esta forma

Imagen: Código para añadir ítems. Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

El JcomboBox mostrará "Francia" que es lo que le devolvería el método toString() de la clase País. Cuando queramos recoger el ítem seleccionado

Imagen: Ejemplo de lo que mostrará el JComboBox. Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

Java JTable Java JList Por: Alexsandro Camel Es un componente visual de java que nos permite dibujar una tabla, de forma que en cada fila/columna de la tabla podamos poner el dato que queramos; un nombre, un apellido, una edad, un número. Como muchos componentes de java, se ha seguido una separación modelo-vista . La vista es el componente visual que vemos en pantalla, el modelo es una clase que contiene los datos que luego se verán en pantalla. El modelo de datos únicamente contiene los datos, no sabe nada de quién va a visualizar los datos ni como.

La forma más rápida y sencilla JTable


Página 101 de 292

Aparte de usar otros constructores que hay en JTable, una de las formas más rápidas y sencillas de utilizar un JTable teniendo toda su funcionalidad, consiste en instanciar como modelo de datos un DefaultTableModel y luego un JTable , pasándole el modelo en el constructor. El código quedaría:

Imagen: A partir de ahora todo se maneja con el modelo. Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

Hay básicamente tres tipos de métodos: ● Métodos para manejo de suscriptores al modelo. Un suscriptor es cualquier clase que quiera enterarse de cambios en los datos del modelo. El JTable es un ejemplo claro. El JTable se suscribe a cambios de datos en el modelo y de esta forma, en cuanto cambiemos datos en el modelo, el JTable se entera y se repinta automáticamente la pantalla. En este grupo están los métodos addTableModelListener() y removeTableModelListener() ● Métodos para manejo de datos. Permiten obtener y cambiar datos dentro de la tabla. Son los métodos getValueAt() y setValueAt(). ● El resto son métodos para obtener información de la tabla en sí misma, como número de filas, número de columnas, si una fila-columna es o no editable, nombre de la columna, etc.

Imagen: A partir de ahora todo se maneja con el modelo. Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

Métodos para los suscriptores Para implementar los métodos de los suscriptores necesitamos que nuestro modelo tenga una lista de suscriptores y únicamente hay que añadir o borrar suscriptores de esa lista. El código puede ser tan simple como esto.


Página 102 de 292

Implementación de métodos de los suscriptores. Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

Los demás métodos Los demás métodos son de información general para la tabla y no tienen demasiado truco. ● Devolver la clase de cada columna. Devolveremos String.class para el nombre y el apellido e Integer.class para la edad. Este método lo utiliza el JTable para saber como presentar o editar cada dato. Si el JTable no conoce la clase que le devolvemos (no es de las normales de java), lo más posible es que trate el dato como un Object y llame a su método toString() para pintarlo. ● Devolver el número de columnas. Para nuestro ejemplo de Persona, que tiene tres campos, devolveremos un 3. ● Devolver el nombre de las columnas. En nuestro ejemplo devolveremos "Nombre", "Apellido" y "Edad". ● Devolver cuántas filas hay (el número de elementos en nuestra lista de personas) ● Devolver si una celda en fila,columna es o no editable, es decir, si el usuario puede escribir en ella y modificar los datos del modelo. En nuestro ejemplo devolveremos true .

JTable Un componente que muestra una lista de objetos y permite al usuario seleccionar uno o más elementos. Un modelo separado, ListModel, mantiene el contenido de la lista. Es fácil mostrar una matriz o Vector de objetos, utilizando el JList constructor que crea automáticamente una ListModelinstancia de solo lectura para usted:

Imagen: Ejemplo del Código. Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

A ListModel Se puede proporcionar directamente a JList a través de un constructor o el setModel método. El contenido no necesita ser estático: la cantidad de elementos y los


Página 103 de 292

valores de los elementos pueden cambiar con el tiempo. Una implementación correcta ListModel notifica al conjunto de javax.swing.event.ListData Listeners que se le han agregado, cada vez que ocurre un cambio. Estos cambios se caracterizan por un javax.swing.event.List Data Event, que identifica el rango de índices de lista que se han modificado, agregado o eliminado. JList's ListAS es responsable de mantener la representación visual actualizada con los cambios, escuchando el modelo.

Las aplicaciones simples De contenido dinámico, JList pueden usar la DefaultListModelclase para mantener los elementos de la lista. Esta clase implementa la ListModelinterfaz y también proporciona una java.util.VectorAPI similar. Las aplicaciones que necesitan una ListModelimplementación más personalizada pueden preferir subclasificar AbstractListModel, lo que brinda soporte básico para administrar y notificar a los oyentes. Por ejemplo, una implementación de solo lectura de AbstractListModel.

Imagen: Contenido Dinámico. Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

El estado de selección JListes administrado por otro modelo separado, una instancia de ListSelectionModel. JList se inicia con un modelo de selección en construcción, y también contiene métodos para consultar o establecer este modelo de selección. Además, JList proporciona métodos convenientes para administrar fácilmente la selección. Estos métodos, como setSelectedIndex y getSelectedValue, son métodos de cobertura que se encargan de los detalles de la interacción con el modelo de selección. De forma predeterminada, JListel modelo de selección de está configurado para permitir que se seleccione cualquier combinación de elementos a la vez; modo de selección MULTIPLE_INTERVAL_SELECTION. El modo de selección se puede cambiar en el modelo de selección directamente o mediante JListel método de cobertura de . La responsabilidad de actualizar el modelo de selección en respuesta a los gestos del usuario recae en el administrador de la lista.ListUI.

Una implementación correcta ListSelectionModel notifica al conjunto de correos electrónicos javax.swing.event.ListSelectionListener que se le han agregado cada vez que se produce un cambio en la selección. Estos cambios se caracterizan por un javax.swing.event.ListSelectionEvent, que identifica el rango del cambio de selección.

La pintura de celdas JListestá a cargo de un delegado llamado renderizador de celdas, instalado en la lista como cellRendererpropiedad. El renderizador proporciona un java.awt.Component


Página 104 de 292

que se utiliza como un "sello de goma" para pintar las celdas. Cada vez que se necesita pintar una celda, la lista le ListUpide al renderizador de celda el componente, lo mueve a su lugar y le pide que pinte el contenido de la celda a través de su método paint. Un renderizador de celdas predeterminado, que utiliza un JLabel componente para renderizar, está instalado por los archivos ListUI. Puede sustituir su propio renderizado usando un código como este:

Imagen: Contenido Dinámico. Fuente: http://chuwiki.chuidiang.org/index.php?title=Ejemplo_sencillo_de_JComboBox

Java JOptionPane Por: Kevin cárcamo JOptionPane es una clase que nos provee un conjunto de ventanas de dialogo que es ideal, para mostrar mensajes al usuario. Ya sean informativos, advertencias, errores, confirmaciones… O incluso tenemos la posibilidad de solicitar la introducción de un dato. Esta clase la encontramos dentro del paquete javax.swing. Y para que funcione, y que no nos muestre un error el IDE, debemos importar la librería. Para ello, tenemos dos opciones: ●

Importar únicamente la librería específica de JOptionPane.

Importar el conjunto de librerías que engloban a la totalidad de Swing.

Tipos de mensaje de JOptionPane JOptionPane tiene diferentes ventanas de diálogo, entre las que se encuentran: ●

JOptionPane.showMessageDialog() nos permite mostrar un mensaje.

JOptionPane.showInputDialog() nos permite la entrada de datos (similar al famoso Scanner de la consola).

JOptionPane.ConfirmDialog() nos permite hacer preguntas con varías confirmaciones. Por ejemplo: Sí, No, Cancelar.


Página 105 de 292

JOptionPane.showOptionDialog() engloba/unifica los 3 anteriores diálogos.

Elementos de JOptionPane ●

ParentComponent o ventana padre: que es el primer parámetro y representa a la ventana padre. Por el momento la pondremos a null y nos funcionará sin problema (null o componente que puede ser un JFrame).

Message o mensaje: contiene el texto a mostrar (String).

Title o título: nos permite introducir un título a la ventana (String).

Icon o icono: nos permite introducir un icono a la ventana

messageType: nos permite introducir un número (ver segunda imagen. Escribimos un número. Por ejemplo: 0).

Imagen: Se presenta los elementos que tiene un joptionpane Fuente: https://javadesde0.com/wp-content/uploads/JOptionPane2.png

Java JScrollBar Por: Kevin cárcamo Los objetos JScrollBar nos permiten crear escalas de un modo sencillo utilizando una barra con un elemento desplazable. El objeto de la clase JScrollbar se utiliza para agregar barras de desplazamiento horizontal y vertical. Es una implementación de una barra de desplazamiento. Hereda la clase JComponent.

Constructor JScrollBar()

JScrollBar(int orientation)

JScrollBar(int orientation, int value, int extent, int min, int max)

Descripción Crea una barra de desplazamiento vertical con los valores iniciales. Crea una barra de desplazamiento con la orientación especificada y los valores iniciales. Crea una barra de desplazamiento con la orientación, el valor, la extensión, el mínimo y el máximo especificados.


Página 106 de 292

Java JMenuItem & JMenu Por: Yasmin Carrillo JMenuItem Es cada uno de la sub-opciones de Archivo java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.AbstractButton javax.swing.JMenuItem Constructores: Podemos crear items de menú con texto, icono, combinación de ambas o de ninguno. JMenuItem() Crea un menú de menú sin nada. JMenuItem(Icon icon) Crea un menú de menú con el icono dado. JMenuItem(String text) Crea un item de menú con el texto del parámetro. JMenuItem(String text, Icon icon) Crea un item de menú con un texto y un icono.

Métodos: Por Yasmin Carrillo Contamos con varios métodos, muchos que informan a los listeners de eventos producidos, vale la pena revisarlos, con el fin de ir tomando conocimiento tenemos. setEnabled(boolean b) De ser falso no permite seleccionar el ítem, por ejemplo "deshacer" o "pegar" sin tener cambios o nada en el portapapeles.

JMenu: Es cada una de las palabras que vemos, en este caso Archivo, Opciones y Ayuda. java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.AbstractButton javax.swing.JMenuItem javax.swing.JMenu


Página 107 de 292

Al parecer nuestro "menú" es clase hija de menuItem pero para nosotros el orden es este.. Constructores: JMenu() Crea un menú sin texto. JMenuItem(String text) Crea un menú con el texto del parámetro. JMenuItem(String text, boolean b) Crea un menú con un texto y se especifica como un menú de corte o no. Métodos: add(JMenuItem menuItem) Agrega al menú el JMenuItem del parámetro. add(String text) Crea y agrega al menú un JMenuItem que ingresamos como texto. addSeparator() Agrega un separador al final del menú, como un item más.

JPopupMenu Java Swing Por: Es muy versátil para la visualización de cualquier tipo de información.Se puede utilizar para algo más que mostrar un menú emergente. JPopupMenu hereda todas las características de java.awt.Container incluida la posibilidad de establecer un LayoutManager y agregar uno o más arbitraria java.awt.Component. Sintaxis Para crear un JPopupMenu JPopupMenu popup; popup = new JPopupMenu(); menuItem = new JMenuItem("Item 1"); popup.add(menuItem); menuItem = new JMenuItem("Item 2");

Java JCheckBoxMenuItem Por: Diego Castellanos

La clase JCheckBoxMenuItem representa la casilla de verificación que se puede incluir en un menú. Un CheckBoxMenuItem puede tener texto, un icono gráfico o ambos asociados. MenuItem se puede seleccionar o deseleccionar. Los elementos de menú se pueden configurar y controlar mediante acciones.


Página 108 de 292

Elemento del menú que se puede seleccionar o deseleccionar. Si se selecciona, el elemento del menú generalmente aparece con una marca de verificación junto a él. Si no está seleccionado, el elemento del menú aparece sin una marca de verificación. Al igual que un elemento de menú regular, un elemento de menú de casilla de verificación puede tener texto o un ícono gráfico asociado, o ambos.

Al igual que los demás elementos de un menú, este checkbox se puede configurar y controlar por medio de Acciones(Actions).

Imagen: Javatpoint, 1 de abril de 2022. Fuente: https://www.javatpoint.com/java-jcheckboxmenuitem

Imagen: Jn Site, 1 de abril de 2022. Fuente: https://www.javatpoint.com/java-jcheckboxmenuitem

Ejemplo

Imagen: Youtube - pildorasinformaticas, 1 de abril de 2022. Fuente: https://www.youtube.com/watch?v=2KvnW3fv4xg

Java JProgressBar Por: Diego Castellanos


Página 109 de 292

Un JProgressBar en Java Swing Es una tarea ejecutándose dentro de un programa puede tardar un poco en completarse. Un programa amigable proporciona alguna indicación al usuario sobre lo que puede tardar la tarea y lo que ya lleva realizado.

Imagen: buscaminegocio, 1 de abril de 2022. Fuente: http://www.buscaminegocio.com/cursos-de-java/jprogressbar-java-swing.html

Constructores 1. JProgressBar () : este constructor se utiliza para crear la barra de progreso sin ningún texto.

2. JProgressBar (int orientación) : este constructor se utiliza para crear la barra de progreso junto con la orientación mencionada en su parámetro. En caso de que VERTICAL se menciona como parámetro, se crea la barra de progreso vertical y, en el caso de SwingConstants. Horizontal se menciona como parámetro, se crea la barra de progreso horizontal.

3. JProgressBar (int min, int max ): este constructor se utiliza para crear la barra de progreso junto con el mínimo mencionado y el valor máximo.

4. JProgressBar (int orientación, int min, int max) : este constructor se utiliza para crear la barra de progreso junto con el mínimo mencionado, así como el valor máximo y también la orientación especificada en el parámetro. Si se menciona SwingConstants.VERTICAL como parámetro, se crea la barra de progreso vertical y, en caso de SwingConstants. HORIZONTAL se menciona como parámetro y luego se crea la barra de progreso horizontal.

Métodos int getMaximum (): este método se utiliza para devolver el valor máximo de la barra de progreso.


Página 110 de 292

int getMinimum () : este método se utiliza para devolver el valor mínimo de la barra de progreso. String getString () : este método se utiliza para devolver la representación de cadena del valor actual de la barra de progreso. void setMaximum (int t) : este método se utiliza para establecer el valor máximo de la barra de progreso en el valor de t. void setMinimum (int t) : este método se utiliza para establecer el valor mínimo de la barra de progreso en el valor de t. void setValue (int t) : este método se utiliza para establecer el valor actual de la barra de progreso en el valor de t. void setString (String t) : este método se utiliza para establecer el valor de la cadena de progreso en el valor de t, que es una cadena.

Clase esencial Imagen: education-wiki, 1 de abril de 2022. Fuente: https://es.education-wiki.com/7535196-jprogressbar

Ejemplo

Imagen: buscaminegocio, 1 de abril de 2022. Fuente: http://www.buscaminegocio.com/cursos-de-java/jprogressbar-java-swing.html

Java JColorChooser JColorChooser proporciona un panel de controles diseñado para permitir que un usuario manipule y seleccione un color. Esta clase proporciona tres niveles de API: ● Un método de conveniencia estático que muestra un cuadro de diálogo selector de color modal y devuelve el color seleccionado por el usuario. ● Un método conveniente estático para crear un cuadro de diálogo de elección de color donde se puede especificar que se invoque a ActionListeners cuando el usuario presiona uno de los botones del cuadro de diálogo. ● La capacidad de crear instancias de paneles JColorChooser directamente (dentro de cualquier contenedor). Se pueden agregar detectores PropertyChanged para detectar cuándo cambia la propiedad de "color" actual. Constructores de la clase: ● JColorChooser(): crea un panel de selección de color con un color inicial de blanco.


Página 111 de 292

● JColorChooser(Color initialColor): crea un panel de selección de color con el color inicial especificado. ● JColorChooser (modelo ColorSelectionModel): crea un panel de selección de color con el ColorSelectionModel especificado.

Java JColorChooser Fuente: http://www.myjavazone.com/2010/06/jcolorchooser.html

Java JTabbedPane La clase JTabbedPane es una de las muchas clases (como JButton, JTextArea, JMenu, JTextField, etc.) que el paquete java 'javax.swing' proporciona para las API de Java Swing. El paquete Java Swing es parte de las clases básicas de Java, JFC. Estas clases básicas se utilizan para crear interfaces gráficas de usuario, aplicaciones basadas en ventanas que utilizan componentes GUI disponibles, lo que facilita que un programador desarrolle aplicaciones de escritorio. TabbedPane es una de las clases proporcionadas por el paquete swing en java. Es muy útil, ya que proporciona la flexibilidad para que el usuario cambie entre los diferentes grupos de componentes que desea ver, simplemente haciendo clic en una de las pestañas. Las pestañas pueden recibir diferentes títulos o iconos. Constructores JTabbedPane en Java: ● JTabbedPane () El constructor JTabbedPane () crea un TabbedPane vacío. Cuando usamos el constructor JTabbedPane (), crea el panel sin ninguna especificación para su colocación ● JTabbedPane (int tabPlacement) Este constructor crea un JTabbedPane vacío. Proporciona el privilegio de decidir la dirección o el lugar del panel. ● JTabbedPane (int tabPlacement, int tabLayoutPolicy) Se crea un panel con pestañas vacío cuando se utiliza este constructor. Esto proporciona el privilegio de decidir la ubicación del panel de pestañas igual que el constructor JTabbedPane (int tabPlacement).


Página 112 de 292

Ejemplo de Java JTabbedPane Fuente: http://www.myjavazone.com/2010/06/jtabbedpane.html

Java Jslider open link Por: Astrid Colindres La clase Java JSlider se utiliza para crear el control deslizante. Al usar JSlider, un usuario puede seleccionar un valor de un rango específico.

Constructores de uso común de la clase JSlider

Constructor

Descripción

JSlider()

crea un control deslizante con el valor inicial de 50 y un rango de 0 a 100.

JSlider(int orientation)

crea un control deslizante con la orientación especificada establecida por JSlider.HORIZONTAL o JSlider.VERTICAL con el rango de 0 a 100 y el valor inicial 50.

JSlider(int min, int max)

crea un control deslizante horizontal utilizando el mínimo y el máximo dado.

JSlider(int min, int max, int value)

crea un control deslizante horizontal utilizando el mínimo, el máximo y el valor dado.

JSlider(int orientation, int min, int max, int value)

crea un control deslizante utilizando la orientación dada, mínimo, máximo y valor.

Métodos de uso común de la clase JSlider Método

Descripción


Página 113 de 292

public void setMinorTickSpacing(int n)

se utiliza para establecer el espaciado de marca menor en el control deslizante.

public void setMajorTickSpacing(int n)

se utiliza para establecer el mayor espacio entre marcas en el control deslizante.

public void setPaintTicks(boolean b)

se utiliza para determinar si las marcas de verificación están pintadas.

public void setPaintLabels(boolean b)

se utiliza para determinar si las etiquetas están pintadas.

public void setPaintTracks(boolean b)

se utiliza para determinar si la pista está pintada.

Imagen: JSlider (Ejemplo). Javatpoint 02/04/2022 Fuente: https://www.javatpoint.com/java-jslider

Java JSpinner, Java JDialog, JPanel Por: Astrid Colindres

Java JSpinner Se declara con public class JSpinner extends JComponent implements Accessible.

Constructores de uso común Constructor

Descripción

JSpinner()

Se utiliza para construir una ruleta con un Integer SpinnerNumberModel con valor inicial 0 y sin límites mínimos o máximos.

JSpinner(SpinnerModel model)

Se utiliza para construir una ruleta para un modelo dado.

Imagen: JSpinner (Ejemplo). Javatpoint 02/04/2022 Fuente: https://www.javatpoint.com/java-jspinner


Página 114 de 292

Java JDialog El control JDialog representa una ventana de nivel superior con un borde y un título que se utiliza para tomar algún tipo de entrada del usuario. Hereda la clase Dialog. Se declara con public class JDialog extends Dialog implements WindowConstants, Accessible, RootPaneContainer.

Constructores de uso común Constructor

Description

JDialog()

Se utiliza para crear un cuadro de diálogo no modal sin título y sin un propietario de marco especificado.

JDialog(Frame owner)

Se utiliza para crear un cuadro de diálogo sin modelo con Frame especificado como su propietario y un título vacío.

JDialog(Frame owner, title, boolean modal)

String

Se utiliza para crear un cuadro de diálogo con el título, el marco propietario y la modalidad especificados.

Imagen: JDialog (Ejemplo). Javatpoint 02/04/2022 Fuente: https://www.javatpoint.com/java-jdialog

JPanel El JPanel es una clase de contenedor más simple. Proporciona espacio en el que una aplicación puede adjuntar cualquier otro componente. Hereda la clase JComponents. Se declara con public class JPanel extends JComponent implements Accessible.

Constructores de uso común Constructor

Description

JPanel()

Se utiliza para crear un nuevo JPanel con un doble búfer y un diseño de flujo.


Página 115 de 292

JPanel(boolean isDoubleBuffered)

Se utiliza para crear un nuevo JPanel con FlowLayout y la estrategia de almacenamiento en búfer especificada.

JPanel(LayoutManager layout)

Se utiliza para crear un nuevo JPanel con el administrador de diseño especificado.

Imagen: JPanel (Ejemplo). Javatpoint 02/04/2022 Fuente: https://www.javatpoint.com/java-jpanel

Java JFileChooser Es una clase java que nos permite mostrar fácilmente una ventana para la selección de un fichero. Si queremos abrirlo para leer el fichero, podemos llamarlo así:

Imagen: Ejemplo, 2 de abril 2022 Fuente: Captura

areaTexto es cualquier componente java de alguna de nuestras ventanas, la que queramos que haga de ventana padre del diálogo JFileChooser. Nuestro diálogo JFileChooser no se podrá ir detrás de su ventana padre. El cuadro de diálogo JFileChooser de la API Java Swing nos permite ubicar y seleccionar de manera fácil y rápida un archivo o carpeta que se encuentre dentro del sistema de archivos de nuestro PC, para utilizar esta clase debemos importar: java.swing.JFileChooser.


Página 116 de 292

Imagen: Ejemplo, 2 de abril 2022 Fuente: https://lh3.googleusercontent.com/--ryd7B0Ntm8/WUU15tZE0xI/AAAAAAAADGU/hZRgTEDheonuKbbCGhUgwC_6yQY2GhoACHMYCw/image_thumb1?imgmax=800

Java JToggleButton JToggleButton se usa para crear un botón de alternar, es un botón de dos estados para encender o apagar. Es un botón de dos estados, los dos estados están seleccionados y no seleccionados. Las clases JRadioButton y JCheckBox son subclases de esta clase. Cuando el usuario presiona el botón de alternar, alterna entre estar presionado o no presionado. JToogleButton se utiliza para seleccionar una opción de una lista de opciones posibles. Los botones pueden configurarse y, hasta cierto punto, controlarse mediante acciones. Usar una acción con un botón tiene muchos beneficios más allá de configurar directamente un botón.

Imagen: Oracle Help Center, 2 de abril 2022 Fuente: https://docs.oracle.com/javase/8/javafx/user-interface-tutorial/img/toggle-buttons.png

Java JToolBar Por: Josué Cujá


Página 117 de 292

Un JToolBar es la típica barra de botones que aparece en cualquier aplicación de escritorio. El JToolBar de java permite que lo arrastremos con el ratón para colocarlo en otra parte de la ventana de nuestra aplicación o incluso que quede flotando en una ventana propia.

Imagen: Ejemplo de la creación de una método en Java. Fuente: http://puntocomnoesunlenguaje.blogspot.com/2012/04/metodos.html

Imagen: Ejemplo JToolBar en Java. Fuente:http://chuwiki.chuidiang.org/index.php?title=Ejemplo_simple_de_JToolBar#:~:text=Un%20JToolB ar%20es%20la%20t%C3%ADpica,flotando%20en%20una%20ventana%20propia.

Java JViewport Por: Josué Cujá


Página 118 de 292

La clase JViewport se usa para implementar el desplazamiento. JViewport está diseñado para admitir tanto el desplazamiento lógico como el desplazamiento basado en píxeles. El elemento secundario de la ventana gráfica, llamado vista, se desplaza llamando al método JViewport.setViewPosition().

Imagen: Ejemplo de JViewport en Java. Fuente: https://www.google.com/search?q=Java+JViewport+definicion&rlz=1C1NHXL_esGT696GT696&sxsrf=AP q-WBtnkXH62rWOpNb90sceg02NAxgqQ:1648919381764&source=lnms&tbm=isch&sa=X&ved=2ahUKEwjEoo2w7_X2A hXmQzABHQreDmcQ_AUoAXoECAEQAw&biw=1366&bih=657&dpr=1#imgrc=JVf95c7ie_JsoM

Java JFrame Por: Josué Cujá JFrame es una clase utilizada en Swing para generar ventanas sobre las cuales añadir distintos objetos con los que podrá interactuar o no el usuario. A diferencia de JPanel, JFrame posee algunas nociones típicas de una ventana como minimizar, cerrar, maximizar y poder moverla.

Imagen: Ejemplo de la

creación de un JFrame en Java. Fuente: https://es.wikipedia.org/wiki/Jframe

Java JComponent Por: Josué Cujá Es la clase base para todos los componentes Swing, excepto contenedores de alto nivel. Para utilizar un componente que desciende de JComponent, debe colocar el componente en un árbol de contenidos cuya raíz como JFrame, JDialog, y JApplet son componentes especializados que es un contenedor Swing de alto nivel. Los


Página 119 de 292

contenedores de alto nivel Swing - proporcionan un lugar para otros componentes Swing.

Imagen: Ejemplo de la creación de un Jcomponent en Java. Fuente: https://www.edicioneseni.com/open/mediabook.aspx?idR=a3dbe6b6054ffaba50e47c1e58de08fc

Java JDesktop, JEditorPane. Por: Jose Javier Culajay Patzán.

Java JDesktop: La clase JDesktopPane se puede utilizar para crear aplicaciones de "multidocumento". Una aplicación de varios documentos puede tener muchas ventanas incluidas. Lo hacemos haciendo el contentPane en la ventana principal como una instancia de la clase JDesktopPane o una subclase. Las ventanas internas agregan instancias de JInternalFrame a la instancia de JdesktopPane. Las ventanas internas son las instancias de JInternalFrame o sus subclases.

Imagen: Usando JDesktop Fuente: https://www.javatpoint.com/java-jdesktoppane

JEditorPane: Este es más complejo que el anterior y admite texto con cierto formato. Admite texto plano, HTML y RTF por defecto, aunque podríamos ampliarlo. Este sí permite mezclar fuentes, colores e imágenes.


Página 120 de 292

Imagen: Usando JEditorPane. Fuente: https://www.jairogarciarincon.com/clase/interfaces-de-usuario-con-javaswing/componentes-jeditorpane-y-jtextpane

Capítulo IV Editores HTML Por: Diego René Almengor Carrillo

Editor HTML Un editor HTML es un software para editar y crear código HTML que se utiliza para sitios web u otros documentos web. Con los editores HTML basados en texto, el código fuente puede ser editado directamente. Los editores WYSIWYG muestran el documento que se va a editar de la misma manera que se mostrará en el navegador más tarde. Los editores HTML suelen formar parte de un entorno de desarrollo integrado.

Cómo funciona Un editor HTML es un programa informático simple basado en texto. Un programador experimentado también puede usar un editor de texto para escribir código HTML.


Página 121 de 292

Sin embargo, los editores HTML se diferencian de los puros editores de texto en que están integrados en un entorno de desarrollo u ofrecen numerosas funciones adicionales: ● ● ● ● ● ●

Detección automática de etiquetas HTML. Detección de errores de sintaxis. Función de autocompletar. Accesos directos para etiquetas comunes. Uso extendido para PHP. Edición de código HTML directamente en el diseño de un documento web (editores WYSIWYG).

Editores HTML basados en texto El editor de formato asume que estás familiarizado con HTML y sabes cómo usar sus etiquetas. Los buenos editores basados en texto también incluyen una función de corrección, que resalta los errores de sintaxis en el color.

Editores WYSIWYG Un editor WYSIWYG también es adecuado para usuarios sin conocimientos de HTML. El acrónimo "WYSIWYG" significa "lo que ves es lo que obtienes" y expresa exactamente lo que hace un editor HTML. Con él, puedes editar el código HTML en el diseño del sitio web correspondiente.

Imagen: Algunos editores de HTML Fuente: https://www.hostinet.com/formacion/wp-content/uploads/2019/04/mejores-editoreshtml2019.jpg

HTML Básico Por: Diego René Almengor Carrillo

Conceptos básicos El Lenguaje de Marcado de Hipertexto (HTML) es el código que se utiliza para estructurar y desplegar una página web y sus contenidos. Por ejemplo, sus contenidos podrían ser párrafos, una lista con viñetas, o imágenes y tablas de datos.


Página 122 de 292

HTML no es un lenguaje de programación; es un lenguaje de marcado que define la estructura de tu contenido. HTML consiste en una serie de elementos que usarás para encerrar diferentes partes del contenido para que se vean o comporten de una determinada manera. Las etiquetas de encierre pueden hacer de una palabra o una imagen un hipervínculo a otro sitio

Anatomía de un elemento HTML La etiqueta de apertura: consiste en el nombre del elemento (en este caso, p), encerrado por paréntesis angulares (< >) de apertura y cierre. Establece dónde comienza o empieza a tener efecto el elemento —en este caso, dónde es el comienzo del párrafo—. La etiqueta de cierre: es igual que la etiqueta de apertura, excepto que incluye una barra de cierre (/) antes del nombre de la etiqueta. Establece dónde termina el elemento —en este caso dónde termina el párrafo—. El contenido: este es el contenido del elemento, que en este caso es sólo texto. El elemento: la etiqueta de apertura, más la etiqueta de cierre, más el contenido equivale al elemento.

Imagen: Anatomía de un elemento HTML Fuente: https://mdn.mozillademos.org/files/11913/htmlexp.png

HTML Elementos Por: Diego René Almengor Carrillo

Lista de elementos Además de etiquetas y atributos, HTML define el término elemento para referirse a las partes que componen los documentos HTML. Aunque en ocasiones se habla de forma indistinta de "elementos" y "etiquetas", en realidad un elemento HTML es mucho más que una etiqueta, ya que está formado por: ●

Una etiqueta de apertura.

Cero o más atributos.

Texto encerrado por la etiqueta.

Una etiqueta de cierre.


Página 123 de 292

Imagen: Ejemplo de elementos Fuente: https://uniwebsidad.com/staic/libros/imagenes/xhtml/ejemplo_elementos_linea_bloque.gif

Los elementos en línea definidos por HTML son: a, abbr, acronym, b, basefont, bdo, big, br, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var. Los elementos de bloque definidos por HTML son: address, blockquote, center, dir, div, dl, fieldset, form, h1, h2, h3, h4, h5, h6, hr, isindex, menu, noframes, nos-cript, ol, p, pre, table, ul. Los siguientes elementos también se considera que son de bloque: dd, dt, frameset, li, tbody, td, tfoot, th, thead, tr. Los siguientes elementos pueden ser en línea y de bloque según las circunstancias: button, del, iframe, ins, map, object, script.

HTML encabezamiento Por: Karen Mishel Alvarado Najera Un encabezado HTML, o header en inglés, es una etiqueta de título que utilizamos dentro de una página web para resaltar la temática y sub-temáticas del contenido. En SEO, estos encabezados, son importantes tanto para los usuarios como para Google, ya que les ayuda a entender mejor la estructura temática de una URL. Las etiquetas de encabezado definen la cabecera principal de una página (<h1>), así como los subencabezados (de <h2>, <h3> al <h6>) de varias secciones del contenido de una página. Desde la perspectiva de las personas y los motores de búsqueda, estas etiquetas funcionan como guía y resumen del texto. Brinda a los lectores y rastreadores la esencia del contenido, al transmitir de manera concisa y visual su mensaje principal.


Página 124 de 292

Imagen: Head HTML Fuente: https://seranking.com/es/blog/wp-content/uploads/sites/13/2021/05/jerarquia-encabezadoshtml.png

HTML Parrafos Por: Karen Mishel Alvarado Najera El elemento HTML line break <br> produce un salto de línea en el texto (retorno de carro). Es útil para escribir un poema o una dirección, donde la división de las líneas es significante. No utilices <br> para incrementar el espacio entre líneas de texto; para ello utiliza la propiedad margin de CSS o el elemento <p>.

Formato HTML Por: Karen Mishel Alvarado Najera HTML proporciona algunos elementos para indicar en qué formato se va a mostrar en un navegador web un determinado texto. Elemento "b" EJEMPLO El elemento "b" sirve para indicar que un texto se muestre en negrita. Elemento "i" EJEMPLO El elemento "i" sirve para indicar que un texto se muestre en itálica (cursiva). En consecuencia. Elementos "strong" y "em" EJEMPLO Por otra parte, el elemento "strong" (que alberga texto de gran importancia) y el elemento "em" (que contiene texto enfatizado), también muestran texto en negrita y cursiva, respectivamente. Elemento "small" EJEMPLO Con el elemento "small" se indica que un texto se muestre más pequeño en un navegador. Elementos "sub" y "sup" EJEMPLO Los elementos "sub" y "sup" permiten indicar que un texto se muestre como un subíndice o como un superíndice, respectivamente. Elemento "mark" EJEMPLO El elemento "mark" permite indicar que un texto se muestre resaltado en un navegador.

Estilos HTML Por: Karen Mishel Alvarado Najera


Página 125 de 292

Para cambiar el estilo en el que por defecto se visualizan los elementos de un documento HTML en un navegador web, existen varios métodos: ●

Estilo en línea (Inline): utilizando el atributo style.

Estilo interno (Internal): usando un elemento "style".

Estilo externo (External): empleando un archivo CSS (Cascading Style Sheets) externo al documento HTML.

Imagen: Estilos HTML Fuente: https://www.w3.org/Style/Examples/011/captura11.png

Citas HTML Por: Monica Julisa Barrera Rodriguez Este atributo cite, aunque semánticamente correcto, no es visible y no aporta gran información para el usuario, motivo por el que no es muy utilizado como referencia a la fuente citada. Es mucho más utilizado el elemento <cite>, con significado semántico similar pero visible para el usuario. Tanto <blockquote> como <q> acepta el atributo cite. NO lo confundas con el elemento <cite> que veremos continuación.

El atributo cite ha de ser una URL válida dónde encontrar la fuente de la cita. Hay dos formas de citas en HTML: ● ●

citas cortas, que utilizan las etiquetas <q>—</q>, y citas largas con las etiquetas <blockquote>—-</blockquote>.

Las citas cortas son aquellas que están contenidas dentro de un párrafo, aparecen entre comillas (“texto citado”). Las citas largas constituyen una unidad aparte del párrafo, y muestran un estilo diferente para que resalten del texto común, muestran una mayor indentación.


Página 126 de 292

Citas HTML Fuente: https://misapuntesyacimientos.wordpress.com/2016/01/15/creando-citas-en-html-quote-yblockquote/

Link de las imágen Citas HTML https://cybmeta.com/blockquote-q-y-cite

Comentarios HTML Por: Monica Julisa Barrera Rodriguez Los comentarios en HTML son muy fáciles de poner. Es como una etiqueta que tiene un inicio y un fin. Todo el texto que pongas dentro está comentado, es decir, no aparecerá en la página. Dentro de un comentario puedes meter texto o código HTML, como etiquetas. Comentarios en HTML son unos trocitos de código que nos permiten introducir en nuestra página web contenidos que no se van a ver en el navegador. Si quieres verlos, vas a tener que meterte en el código fuente de la web (“botón derecho->ver código fuente" o algo similar, depende del navegador). El comentario empieza por <!-- y finaliza por --> Todo lo que pongas entre esas etiquetas está comentado. Los comentarios en HMTL comienzan con el símbolo de "menor que", una admiración y dos guiones, y terminan con dos guiones y el símbolo de "mayor que". O más sencillo: es una etiqueta HTML que empieza con una admiración y dos guiones y termina con dos guiones:


Página 127 de 292

Imágenes 1 y 2 de comentarios HTML Link de las imágenes: https://www.campusmvp.es/recursos/post/como-hacer-comentarios-enhtml.aspx#:~:text=Los%20comentarios%20en%20HTML%20son,similar%2C%20depende%20del%20naveg ador.

Imagen 3 de comentarios HTML Link de la imágen: https://disenowebakus.net/comentarios-html.php

Enlaces HTML Por: Monica Julisa Barrera Rodriguez En el HTML los enlaces se marcan con la etiqueta <a></a> y el atributo principal es href="" donde se escribe la ubicación del archivo de destino que puede estar en la misma carpeta que el archivo que lo está llamando, en otra carpeta del mismo sitio o en otro sitio web. Entre las etiquetas <a href=""></a> se puede colocar cualquier elemento html que funcionará como botón, generalmente se coloca un texto o una imagen. Si es un texto, el navegador por defecto lo muestra en color azul y subrayado. Si es una imagen, algunos navegadores especialmente las versiones anteriores a las actuales, le pueden agregar un borde azul.

Tipos de enlaces Enlaces internos: los que se dirigen a otras partes dentro de la misma página. Enlaces locales: los que se dirigen a otras páginas del mismo sitio web. Enlaces remotos: los dirigidos hacia páginas de otros sitios web. Enlaces con direcciones de correo: para crear un mensaje de correo dirigido a una dirección. Enlaces con archivos: para que los usuarios puedan hacer download de ficheros.


Página 128 de 292

Imagen 1 de Enlaces HTML Links de las Imágenes: https://norfipc.com/codigos/como-usar-enlaces-vinculos-anclajes-html.php

Imagen 2 de Enlaces HTML Links de la Imagen: https://norfipc.com/codigos/como-usar-enlaces-vinculos-anclajes-html.php

Imagen 3 de Enlaces HTML Links de la Imagen: https://pinguinodigital.com/blog/enlaces-internos-html/


Página 129 de 292

Imágenes HTML Por: Monica Julisa Barrera Rodriguez Al principio, la web solo era texto y resultaba más bien aburrido. Afortunadamente, no pasó mucho tiempo antes de que se añadiera la capacidad de insertar imágenes (y otros tipos de contenido más interesantes) en las páginas web. Hay otros tipos de elementos multimedia que tener en cuenta, pero es lógico comenzar con el humilde elemento <img> utilizado para insertar una imagen simple en una página web. En este artículo, veremos en detalle cómo usar este elemento, incluidos sus conceptos básicos y cómo añadir pies de imagen usando <figure> y explicaremos cómo se relaciona con las imágenes de fondo en CSS. Para poner una imagen simple en una página web, utilizamos el elemento <img>. Se trata de un elemento vacío (lo que significa que no contiene texto o etiqueta de cierre) que requiere de por lo menos de un atributo para ser utilizado: src (a veces denominado por su nombre completo, source). El atributo src contiene una ruta que apunta a la imagen que quieres poner en la página, que puede ser una URL relativa o absoluta, de la misma forma que el elemento <a> contiene los valores del atributo href. Por ejemplo, si tu imagen se llama dinosaur.jpg, y está en el mismo directorio que tu página HTML, deberás incrustar la imagen de la siguiente manera: <img src="dinosaur.jpg">

Imagen 1- Imágenes en HTML Links de la Imagen: https://www.elcodigofuente.com/como-poner-imagenes-html-512/

Imagen 2 - Imágenes en HTML Links de la Imagen: http://www.webdisenia.com/2015/03/29/html-para-principiantes-insertar-imagenes-parte-5/

Tablas HTML Por: Emanuel Eduardo Beltrán Gómez


Página 130 de 292

Una tabla no es otra cosa más que un medio de organizar datos en filas y columnas. Este concepto ha estado presente en nuestra sociedad por un largo período de tiempo y ha sido adoptado por HTML en sus etapas iniciales, como una forma de transmitir información que, de otro modo, no sería comprendida tan fácilmente. Como muchas otras estructuras de HTML, las tablas son construidas utilizando elementos. En particular, una tabla básica puede ser declarada usando tres elementos, a saber, table, tr y td. Dejémoslo más claro con un ejemplo:

Imagen: Tablas Html Fuente: https://www.w3schools.com/html/html_classes.asp

Listas HTML Por: Emanuel Eduardo Beltrán Gómez

Bloques HTML Por: Emanuel Eduardo Beltrán Gómez Nos permite crear conjuntos de elementos en forma de lista dentro de una página, todos los cuales irán precedidos, generalmente, por un guión o número. Los tipos de listas en HTML son los siguientes: ● ● ●

Listas ordenadas Listas desordenadas Listas de definiciones

Ordenadas: Las listas en HTML ordenadas son aquellas que nos muestran los elementos de la lista en orden. Para representar el orden tendremos los elementos numerados. Es decir, cada uno de los elementos irá precedido de un número o letra que establezca su orden.


Página 131 de 292

Imagen: Tablas Html Imagen: https://www.w3schools.com/html/html_classes.asp

Listas Desordenadas: Las listas desordenadas en HTML nos sirven para mostrar los elementos sin ningún tipo de orden, simplemente precedidos por una viñeta que puede ser un punto, un cuadrado.

Imagen: Tablas Html Imagen: https://www.w3schools.com/html/html_classes.asp

De definiciones: Las listas en HTML de definiciones en HTML nos sirven para montar listas en las que tenemos la estructura valor y definición. Suelen ser listas para definir términos, como si fuese un diccionario, si bien pueden ser cualquier par valor-definición.

Imagen: Tablas Html Imagen: https://www.w3schools.com/html/html_classes.asp


Página 132 de 292

Clases HTML Por: Emanuel Eduardo Beltrán Gómez El atributo HTML class se utiliza para especificar una clase para un elemento HTML. Múltiples elementos HTML pueden compartir la misma clase.

Imagen: Tablas Html Imagen: https://www.w3schools.com/html/html_classes.asp

Múltiples clases: Los elementos HTML pueden pertenecer a más de una clase. Para definir varias clases, separe los nombres de las clases con un espacio, por ejemplo, <div class="city main">. El elemento se diseñará de acuerdo con todas las clases especificadas. En el siguiente ejemplo, el primer <h2>elemento pertenece tanto a la cityclass como a la mainclass, y obtendrá los estilos CSS de ambas clases:

Imagen: Tablas Html Imagen: https://www.w3schools.com/html/html_classes.asp

Formularios HTML


Página 133 de 292

Por: Cindy Benito Un formulario HTML es una sección de un documento que contiene contenido normal, código, elementos especiales llamados controles (casillas de verificación (checkboxes), radio buttons (radio buttons), menúes, etc.), y rótulos (labels) en esos controles.

Imagen: Ejemplo de Formularios HTML https://imgur.com/b9n6c

HTML Iframe Por: Cindy Benito El elemento HTML <iframe> (de inline frame) representa un contexto de navegación anidado, el cual permite incrustar otra página HTML en la página actual.

Imagen: Ejemplo de HTML iframes https://disenowebakus.net/imagenes/articulos/iframe-html.jpg

HTML Color Por: Cindy benito


Página 134 de 292

Se puede controlar el color del texto utilizando el elemento <FONT> atributo COLOR="xxx", donde "xxx" es el nombre en inglés del color que se desea.

con

el

Imagen: Ejemplo de HTML color Nombres https://img.microsiervos.com/images2021/ColorNames.jpg

HTML Cabeceras Por: Cindy benito Las etiquetas de encabezado, o comúnmente conocidas como "cabeceras HTML" (Heading Tag en inglés) son etiquetas HTML que se usan para definir la cabecera o título de una página. Las cabeceras se definen con <Hn> donde n es un número entre 1 y 6 que determina el orden de la cabecera. .

Imagen: Ejemplo de HTML cabecera https://www.abrirllave.com/html/images/dos-cabeceras-chrome.gif

HTML Audio/Video Por: Pablo Ismael Berganza Mendoza Para insertar un video en una página de HTML, tenemos que poner la siguiente etiqueta: <video>, esta etiqueta nos permitirá insertar un video en una página HTML. Su estructura completa sería la siguiente:


Página 135 de 292

<video src="video.mp4" width="640" height="480"></video> Ya para insertar un audio en HTML, este usa la siguiente etiqueta, <audio>, para asi insertar un audio en HTML, la estructura completa sería la siguiente: <audio controls> <source src="forelisa.mp3" type="audio/mp3"> </audio>

Definiendo mi sitio Por: Pablo Ismael Berganza Mendoza Un hosting es el espacio de almacenamiento donde se alogan los archivos que componen tu sitio web, y el dominio es el nombre con el que tus visitantes accederán a él. Como bien decía la definición anterior, estos nos ayudan para subir nuestros proyectos que hagamos en HTML, para asi darle un dominio y que con ese dominio que generemos podemos subir nuestros proyectos para que otros los puedan ver

Imagen: Hosting y Dominio Fuente: http://www.naiarafernandez.com/dominio-y-hosting-que-son-para-que-sirven-como-secontratan/

Paleta de Objetos Por: Pablo Ismael Berganza Mendoza

Títulos de página El título de la página de HTML, es un metadato acerca del contenido de la página, que se define a través de la etiqueta <title>, aunque esta etiqueta ya esta definida a la hora de estructurar el HTML5, este se ubica en el header, y como bien lo dice, es para ponerle un título a nuestra página

Imagen: Título de página Fuente: Imagen hecha por Pablo Ismael Berganza Mendoza

Texto


Página 136 de 292

En HTML tenemos diferentes etiquetas para poner textos, estos incluyendo a los títulos (diferente al título para la página), para los textos tenemos las siguientes etiquetas: h1, h2, h3, h4, h5, h6 y <p>, la estructura de cada uno de estos sería el siguiente: <h1>Hola mundo</h1> <h2>Hola mundo</h2> <h3>Hola mundo</h3> <h4>Hola mundo</h4> <h5>Hola mundo</h5> <h6>Hola mundo</h6> <p>Como estan</p> En los h, cada uno de ellos tiene diferente tamaño. A continuación, vamos a ver en una página de HTML como se verían:

Imagen: Texto en HTML Fuente: Imagen hecha por Pablo Ismael Berganza Mendoza

Grillas Por: Pablo Ismael Berganza Mendoza Maquetación con CSS Grid, la maquetación con CSS siempre ha sido inesperada. Está llena de tablas con infinitas columnas y filas, incontables floats y clears. Ahora el CSS grid es un sistema de maquetación basado en grillas y se caracteriza por ser bidimensional, independientemente del orden del markup y flexible, extremadamente flexible. En CSS Grid, sería tan fácil como a partir del siguiente HTML: <main> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div>


Página 137 de 292

<div>6</div> <div>7</div> </main> Ya con este código, vamos a ver ya lo que seria un ejemplo de lo que es CSS Grid:

Imagen: Grillas Fuente: https://www.adictosaltrabajo.com/2018/01/30/maquetacion-con-css-grid/

Códigos básicos de HTML Por: Pablo Ismael Berganza Mendoza En HTML tenemos unos códigos o etiquetas básicas, así que vamos a ver cuales son estas etiquetas básicas: <body> Este es el cuerpo de toda nuestra página. <header> este es el encabezado de nuestra página. <div> Este es mayormente usado para agrupar otros elementos. <a> Esta es una etiqueta para enlaces. <strong> para poner texto en negrita. <br> Este es para hacer saltos de línea. <h1> a <h6> para poner títulos dentro del contenido. <img> para añadir imágenes. <ol> para listas ordenadas. <ul> para listas desordenadas. <li> para elementos dentro de una lista. <p> para texto. <span> para estilos de una parte del texto.

Imágenes Por: Pablo Ismael Berganza Mendoza Para agregar imágenes a una página de HTML, tenemos lo que es la siguiente etiqueta: <img>, como bien lo decía esta etiqueta nos sirve para insertar una imagen a nuestra página de HTML, ahora miremos como es la estructura completa y como implementarlo a nuestra página HTML.


Página 138 de 292

En el body de nuestro HTML tenemos que poner la etiqueta de esta forma: <img src="./descarga.png" alt="#"> Con solo esto ya tenemos implementado una imagen en nuestra página, la dirección de donde está la imagen lo tenemos que poner en donde dice scr

Imagen: Imagen en HTML Fuente: Imagen hecha por Pablo Ismael Berganza Mendoza

Tablas Por: Erwin Fernando Blanco Melendres Una tabla no es otra cosa más que un medio de organizar datos en filas y columnas. Este concepto ha estado presente siempre en esta teoría. En documentos HTML una tabla puede ser considerada, como un grupo de filas donde cada una contiene a un grupo de celdas Código de una tabla: <table></table> Estructura de una tabla: <table> <tr> <td>celda 1</td> <td>celda 2</td> <td>celda 3</td> </tr> </table>

Imagen: Ejemplo de una Tabla Fuente: https://www.htmlquick.com/es/tutorials/tables.html

Capas


Página 139 de 292

Por: Erwin Fernando Blanco Melendres Las capas son elementos (HTML) de tipo contenedor, que conforman en si las mismas zonas de la página independientes y posicionales, la etiqueta <div> es la mas utilizada para definir capas y editarlos en hojas de estilo CSS. Algunas de las visualizaciones de estas capas pueden ser: Visibility: esta determina si la capa es visible o no. Z-Index posición de la capa respecto al resto, es una capa que mostrará encima de otra cuando su z-index sea mayor que otra. Clip: recorta la capa según valores indicados. Overflow: Indica cómo debe actuar el navegador cuando el tamaño del contenido de una capa sea mayor que la capa.

Imagen: Ejemplo de capas en HTML Fuente: http://www.nosolousabilidad.com/cursos/Capas.pdf

Vinculos WEB Por: Erwin Fernando Blanco Melendres Los enlaces o hipervínculos, también llamados hipertextos son los textos o los objetos sobre los que podemos hacer clic para que nos lleven a otra parte del documento, a otra página web en el mismo sitio o a otra pagina de internet, entre otras funciones. Código: <a href></a> Estructura: <a href=”(link de la pagina referida)”></a>

Imagen: Vínculos Web Fuente: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=508:hipervi nculos-links-o-enlaces-html-etiqueta-a-atributos-href-target-y-title-tipos-de-links-imgcu00717b&catid=69&Itemid=192


Página 140 de 292

Formularios Por: Erwin Fernando Blanco Melendres Un formulario en html es una sección de un documento que contiene contenido normal, código, elementos especiales llamados controles, radiobotones, menues y rótulos en esos controladores. Los usuarios normalmente “completan” un formulario modificado por sus controladores, antes de enviar el formulario a un agente para que lo procese. Código: <Form action=”(referencia de la acción del formulario) method=”POST””> <input type=”text” id=”nombre” placeholder=”ingrese nombre”></input> <input type=”number” id=”nombre” placeholder=”ingrese numero”></input> <input type=”password” id=”nombre” placeholder=”ingrese contraseña”t></input> </Form>

Imagen: Formularios en HTML Fuente: http://html.conclase.net/w3c/html401-es/interact/forms.html#h-17.1

Listas Por: Erwin Fernando Blanco Melendres Las listas en HTML nos permite crear conjuntos de elementos en forma de lista dentro de una página, todos los cuales irán precedidos, generalmente, por un guión o numero Existen diferentes tipos de listas HTML: 1) Listas ordenadas 2) Listas desordenadas 3) Listas de definiciones Código de listas ordenadas: <ol></ol> Estructura: <ol> <li>Elemento 1</li> <li>Elemento 2</li> <li>Elemento 3</li> </ol>


Página 141 de 292

Código de listas desordenadas: <ul></ul> Estructura: <ul> <li>Elemento 1</li> <li>Elemento 2</li> <li>Elemento 3</li> </ul> Código de listas de definiciones: <dl></dl> Estructura: <dl> <dt>Elemento 1</dt> <dd>Párrafo 1</dd> <dt>Elemento 2</dt> <dd>Párrafo 1</dd> <dt>Elemento 3</dt> <dd>Párrafo 1</dd> </dt>

Imagen: ejemplo de listas en html Fuente: https://www.manualweb.net/html/listas-html/


Página 142 de 292


Página 143 de 292

Análisis de Sistemas

Quinto Grado


Página 144 de 292

Capítulo I Instalar Y Configurar SQL Server 2014 Por: Devin Reyes Ahora, seguiremos los siguientes pasos para poder descargar, instalar y configurar SQL Server. Primeramente, nos dirigimos a la siguiente página para descargar SQL Management Studio: https://www.microsoft.com/es-es/download/details.aspx?id=42299 y configuramos la descarga en español:

Página de Imágen: https://www.microsoft.com/es-es/download/details.aspx?id=42299

Luego, descargamos cualquiera de los siguientes archivos, dependiendo de la arquitectura de nuestras computadoras:

Página de imágen: https://www.microsoft.com/es-es/download/details.aspx?id=42299

Ahora, una vez tengamos el instalador:


Página 145 de 292

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

lo ejecutamos y seguimos los pasos para poder instalarlo:

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

Una vez termine de instalarse, nos aparecerá la siguiente ventana:

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

Ahora, como lo instalaremos por primera vez en nuestras computadoras, damos click en la primera opción (la segunda opción solo es para agregar y/o cambiar algunas opciones si el programa ya lo tenemos instalado), y nos tendría que salir la siguiente ventana, donde simplemente marcaremos la casilla que dice “Acepto los términos de Licencia”, y le damos a Siguiente:


Página 146 de 292

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

En esta siguiente ventana, lo único que hacemos es marcar la casilla que dice “LocalDB”, y luego le damos a siguiente:

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

Ahora, en esta siguiente ventana elegimos “Instancia predeterminada”, y le damos a siguiente:


Página 147 de 292

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

En la siguiente pestaña, dejamos todo (de momento) tal y como está, y le damos a siguiente:

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

Ahora, en la siguiente ventana podemos dejar la siguiente opción. Si le damos al “Modo mixto”, deberemos de colocar una contraseña. Por esta vez, lo dejaremos en la opción donde está, y le daremos a siguiente:


Página 148 de 292

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

Ahora, esperamos a que todo se instale:

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

Nos saldrá la siguiente ventana, y ahí podemos ver si todo se instalo correctamente:


Página 149 de 292

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

Ahora, buscamos y abrimos la aplicación de “SQL Server 2014 Management Studio”, y nos tendría que salir así:

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

Por defecto, nos pondrá las credenciales necesarias para conectarnos, lo único que debemos hacer es darle a Conectar, y si todo salió bien, ya deberíamos de poder empezar a usar SQL:


Página 150 de 292

Video de la imagen: https://www.youtube.com/watch?v=VdTdhRRBSZM

Sintaxis SQL Server Por: Devin Reyes Una sentencia es una línea de código que se encarga de mandar qué queremos hacer al programa al que le mandamos dicha instrucción. Nos ayuda a poder “comunicarnos y mandar órdenes” al programa que recibe la sentencia. En SQL, las sentencias nos ayudan a poder crear bases de datos y también para poder interactuar con ellas: podemos insertar, eliminar, editar y crear los objetos que nosotros queramos. La sintaxis SQL se basa en la sintaxis del idioma inglés y usa muchos de los mismos elementos que la sintaxis de Visual Basic para Aplicaciones (VBA). Por ejemplo, una simple instrucción SQL que recupera una lista de los apellidos de contactos cuyo nombre es María podría ser similar a esto:

Comentar Código (SQL) Por: Devin Reyes Al igual que cuando estamos programando, cuando escribimos sentencias SQL podemos (y debemos) de añadir comentarios sobre nuestro código. Para poder añadir comentarios en SQL tenemos varias formas. La primera es la definida en el estándar ANSI/SQL que es mediante dos guiones al principio de una línea. -- Esto es un comentario


Página 151 de 292

Esta forma de poner comentarios nos sirve para anular partes de sentencias y lo que nos lleva a generar las sentencias SQL en líneas. Por ejemplo, si tenemos la sentencia: select * from libros where idautor = 1

Podemos anular el filtro del autor de una forma sencilla comentándolo mediante los guiones: select * from libros --where idautor = 1

Otra forma de añadir comentarios, en este caso comentarios de varias líneas, es mediante la estructura: /* * Comentario en varias líneas. * Compatible con el estándar SQL99 */

Sentencia Select Por: Devin Reyes La sentencia SELECT se utiliza para recuperar información de la base de datos, y puede proyectar las columnas seleccionadas, es decir, realizar un filtro sobre la tabla o tablas originales y recuperar solamente datos de las columnas filtradas. En otras palabras, nos ayuda a poder “seleccionar” datos de donde nosotros necesitemos dentro de nuestra base de datos. Podemos seleccionar desde un simple dato, a una fila entera de datos seleccionando un solo dato en específico. Un ejemplo simple es: SELECT * FROM Usuarios Esta sentencia puede ampliarse con más criterios, si queremos tomar más datos o si queremos tomar algún dato más específico SELECT * FROM Usuarios WHERE Id = 10 Podemos hacer varias combinaciones para poder encontrar y seleccionar aquel dato que precisamos (o fila de datos) para el propósito para el cual lo estemos seleccionando.

SQL Select Distinct Por: William Salvador


Página 152 de 292

En SQL Server, la palabra DISTINCT es considerada como una palabra clase la cual se usa en conjunto con la instrucción SELECT para recuperar valores únicos de una tabla de base de datos, es decir que no obtengamos valores repetidos. Cualquier valor que se encuentre duplicado solo aparecerá una vez en la búsqueda que el usuario realiza. Sintaxis: SELECT DISTINCT "nombre de la columna " FROM "nombre de la tabla "; Ejemplo: En este caso haremos un select normal para ver todos los valores de la tabla:

Imagen: Ejemplo de la consulta “SELECT *FROM” Fuente: http://www.edu4java.com/es/sql/sql13.html

Ahora aplicaremos la consulta “SELECT DISTINCT” para que se muestre los valores únicos o si están repetidos se muestren solo 1 vez, en este caso lo aplicamos en la columna “autor”.

Imagen: Ejemplo de la consulta “SELECT DISTINCT” Fuente: http://www.edu4java.com/es/sql/sql13.html

Ahora bien, esta consulta se puede aplicar en varias columnas al mismotiempo lo que signfica que podemos evaluar varias columnas al mismo tiempo. Ejemplo de la sintaxis: select distinct City, Country from Employees Esta es la sintaxis que utilizaremos, como podemos apreciar lo único que cambia es que debemos colocar una coma entre cada nombre de columna asi le indicaremos que columnas queremos evaluar, en el ejemplo vamos a evaluar las columnas “City” y “Country”.


Página 153 de 292

SQL AND, OR, NOT Por: William Salvador

En general los definimos como operadores los cuales se tienen que combinar con la cláusula "WHERE" para realizar una consulta más concreta sobre una tabla en una base de datos.

1.1.1 Operador AND: El operador AND mostrará un registro cuando todas las condiciones separadas por AND sean verdaderas, esto quiere decir que si no se cumple una condición no se mostrará el resultado.

Sintaxis: SELECT columna1, columna2, FROM nombre_tabla WHERE condición1 AND condición2 AND condición3; Como podemos ver se pueden colocar varias columnas y varias condiciones al mismo tiempo, a continuación, mostraremos un ejemplo en una base de datos:

Imagen: Ejemplo de la consulta select from Fuente: http://www.edu4java.com/es/sql/sql12.html

Primero realizaremos un “select *from” para poder apreciar todos los datos de la tabla. Ahora aplicaremos la consulta en este caso indicaremos que queremos seleccionar los títulos de los libros que tiene isbn="4444" Y el author="edu". En este caso sólo nos retornará un libro; "sql in 15 minutes".


Página 154 de 292

Imagen: Ejemplo de la consulta AND Fuente: http://www.edu4java.com/es/sql/sql12.html

1.1.2 Operador OR El operador OR es similar al AND con la diferencia que este operador mostrara el resultado si alguna de las condiciones separadas por "OR" son verdaderas, esto quiere decir que no es necesario que todas las condiciones sean verdaderas. Sintaxis: SELECT columna1, columna2, FROM nombre_tabla WHERE condición1 OR condición2 OR condición3; Como podemos apreciar es igual a la consulta and lo único que cambiamos es el operador, de igual forma podemos poner varias condiciones:

Imagen: Ejemplo de la consulta con operador OR Fuente: http://www.edu4java.com/es/sql/sql12.html

Con la misma tabla "books" podemos seleccionar los títulos de los libros que tienen el "isbn=4444" o el autor="eli".

1.1.3 Operador NOT


Página 155 de 292

El operador NOT es todo lo contrario a los dos anteriores operadores pues mostrara el registro cuando las condiciones colocadas no sean verdaderas. Sintaxis: SELECT *FROM nombre_tabla WHERE NOT condición; Al igual que en los anteriores operadores podemos evaluar mas de 1 colunma a la vez. Ejemplos: SELECT * FROM Customers WHERE NOT Country='Germany';

Imagen: Ejemplo de la consulta con operador NOT Fuente: https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_where_not

En este caso podemos apreciar como se nos mostrarán los resultados de la tabla “Customers” cuando en la columna Country no sea “Germany”.

SQL ORDER BY Por: William Salvador

Order By se utiliza para poder ordenar los resultados en una consulta, se ordenarán según los datos de la columna que especifiquemos, por defecto estos se ordenan de manera ascendente según los valores de la columna, pero también los podemos ordenar de manera descendentes. Para poder indicar de qué manera los queremos ordenar (ascendente o descendente) utilizaremos dos palabras claves: ● ASC: para ordenarlos de manera ascendentes. ● DESC: para ordenarlos de manera descendentes. Sintaxis: SELECT nombre_columna(s) FROM nombre_tabla ORDER BY nombre_columna(s) ASC|DESC Ejemplo: Tenemos una tabla con los registros de usuarios, se desea desplegar los registros de acuerdo a su edad ya sea del usuario con menor edad al usuario con mayor edad y viceversa, para ordenar los resultados de menor edad a mayor se utilizará el operador ASC como se muestra en la imagen:


Página 156 de 292

Imagen: Ejemplo de la consulta con ORDER BY Fuente: http://sqlbasico.blogspot.com/2012/08/order-by.html

En este caso si queremos ordenarlos de manera descendentes solo cambiaremos ASC por DESC y automáticamente nos aparecerán los registros ordenados de mayor a menor.

SQL INSERT Por: William Salvador

Esta es una sentencia dentro de SQL la cual nos permite añadir cualquier tipo de datos a una tabla. Sintaxis: INSERT INTO NombreTabla (Campo1, Campo2, Campo3) VALUES ('Dato1','Dato2','Dato3') El orden en que se ponen las columnas dentro del insert es muy importante, ya que en el lugar de values deberán de seguir el mismo orden que se encuentra en el insert porque si no siguen el mismo orden al momento de insertar los datos pueden insertarse en las columnas equivocadas. Ejemplo: Se tiene la tabla de clientes con las columnas de nombre, apellido paterno y materno. La llave primaria es auto incrementable por lo que no es necesario ingresarla. Para ingresar nuevos datos es necesario usar una consulta donde se escribirá el código, dentro de ella se escribirá lo siguiente:


Página 157 de 292

Imagen: Ejemplo de la consulta INSERT Fuente: http://sqlbasico.blogspot.com/2012/08/insert-into.html

Si la consulta está escrita adecuadamente nos aparecerá un mensaje indicando que la fila se ha agregado exitosamente como se puede apreciar en la imagen.

SQL UPTADE Por: William Salvador

El comando o la secuencia UPTADE se utiliza para actualizar los datos en una tabla, gracias a esto podemos modificar los registros dentro de una tabla en una base de datos. Recordemos que vamos a modificar un registro por ende es obligatorio que exista un registro almacenado en la tabla, al igual que también tenemos que tener en claro que tipo de datos va en esa fila ya que si los datos son "int" no podemos ingresar datos tipo "varchar" por ejemplo. Sintaxis: Update Tabla Set Campo1 = 'NuevoDato', Campo2 = 'NuevoDato' Where CampoID = 'ID'. En donde: ● Update indicará la tabla con la que se va a trabajar. ● La instrucción Set va a contener el campo que se va a modificar y los nuevos datos que este va a tener. ● La cláusula Where sera para especificar una ubicación dentro de la tabla, en este caso la PK será el identificador. En este caso UPTADE no necesita que se ingresen todos los campos de la tabla, solo únicamente los que deseamos modificar, además si no se usa la cláusula WHERE se cambiarán todos los registros de la tabla por los valores que hayamos indicado. Ejemplo: En este caso tenemos una tabla llamada “Clientes” la cual cuenta con los campos “Nit”, “Nom_cli”, “Apelli_cli”, “Direccion” y Telefono, donde Nit es la llave primaria.


Página 158 de 292

Fuente: William Salvador

Ahora pasaremos a hacer la consulta de update en la cual modificaremos el segundo dato que se muestra, es decir el de “William Salvador” cambiaremos su nombre y apellido por “Leonardo Dealtan”.

Fuente: William Salvador

Ahora haremos otro select from para que se nos muestran todos los datos y apreciemos el cambio que se realizó.

Fuente: William Salvador

Como pudimos apreciar cambiamos el nombre del cliente y su apellido, para seleccionar qué dato quería cambiar utilice mi llave primaria la cual era el Nit ya que no se repite únicamente me iba a cambiar el dato que tuviera ese Nit que en este caso era el de “William”.

Select De SQL Top Por: Pablo Sarceño


Página 159 de 292

La etiqueta de select top la utilizamos para especificar el número de registros a devolver. Esta etiqueta es útil con tablas que poseen miles de registros. Debes tener en cuenta que devolver gran cantidad de registros puede afectar el rendimiento. No todos los gestores de base de datos admiten la cláusula select top.

SINTAXIS

SELECT TOP nombre_columna(s) FROM nombre_tabla WHERE condicion LIMIT numero;

Min Y Max SQL Por: Pablo Sarceño Las sentencias SQL MIN y MAX nos ayudan a obtener los valores mínimos y máximos de una columna en una tabla específica de SQL Server. SQL MIN y MAX se pueden usar con tipos numéricos y de fecha.

SINTAXIS MIN SELECT MIN(nombre-de-la-columna) FROM nombre-de-la-tabla

SINTAXIS MAX SELECT MAX(nombre-de-la-columna) FROM nombre-de-la-tabla

SQL Suma Y Media Por: Pablo Sarceño Si queremos obtener la suma de una columna, el total de registros o el valor promedio de una columna, podemos utilizar las sentencias SQL SELECT COUNT, SUM y AVG. La función SQL COUNT () devuelve el número de filas que coinciden con un criterio especificado. La función SQL AVG () devuelve el valor promedio de una columna numérica. La función SQL SUM () devuelve la suma total de una columna numérica .

Sintaxis de la sentencia SQL Select Count


Página 160 de 292

SELECT COUNT(column-name) FROM table-name

Sintaxis de la sentencia SQL Select SUM

SELECT SUM(column-name) FROM table-name

Sintaxis de la sentencia SQL Select AVG

SELECT AVG(column-name) FROM table-name

Ejemplo de SQL SELECT COUNT, SUM y AVG

SELECT FROM

COUNT(ProductID) AS Count Production.Product

SQL Crear Sql Db Por: Pablo Sarceño 1. Conéctese al motor de base de datos.

2. En la barra estándar, seleccione Nueva consulta.

3. Copie y pegue el siguiente ejemplo en la ventana de consulta y seleccione Ejecutar. Este ejemplo crea la base de datos Sales. Debido a que no se usa la palabra clave PRIMARY, el primer archivo ( Sales_dat) se convierte en el archivo principal. Como no se especifican MB ni KB en el parámetro SIZE del Sales_datarchivo, utiliza MB y se asigna en megabytes. El Sales_logarchivo se asigna en megabytes porque el MBsufijo se indica explícitamente en el SIZEparámetro. SINTAXIS USE master; GO CREATE DATABASE Sales ON ( NAME = Sales_dat,


Página 161 de 292

FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\saledat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = Sales_log, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\salelog.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ); GO

SQL Comodines Por: Diego Solares Un carácter comodín se utiliza para sustituir cualquier otro carácter en una cadena. Los caracteres comodines se utilizan con el operador SQL LIKE. El operador LIKE se utiliza en una cláusula WHERE para buscar un patrón específico en una columna. Hay dos comodines utilizados junto con el operador LIKE: %: El signo de porcentaje representa cero, uno o varios caracteres _ – El subrayado representa un solo carácter

Imagen: Uso de Comodín Fuente: https://bigdata-analytics.es/sql/wildcards/

SQL CHECK Por: Diego Solares La restricción CHECK en SQL se usa para limitar el rango de valores que se puede colocar en una columna, por ejemplo, si define una restricción CHECK en una sola


Página 162 de 292

columna, solo se permiten ciertos valores para esta columna. De esta manera se pueden evitar errores al no introducir valores erróneos. Si define una restricción CHECK en una tabla, puede limitar los valores en ciertas columnas basándose en valores en otras columnas en la fila

Imagen: Uso de Check Fuente: https://bigdata-analytics.es/sql/check/

Alias de SQL Inner Join Por: Diego Solares Los alias de SQL son nombres personalizados que puede dar a las columnas y tablas que incluye en sus consultas. Los alias son muy útiles, ya que pueden mejorar en gran medida la legibilidad y el mantenimiento de su consulta.

Sintaxis

La sintaxis que se muestra cubre los alias de columna y tabla.

Ejemplos de uso de SQL Alias con JOIN


Página 163 de 292

Imagen: Uso de Alias con JOIN Fuente: https://learnsql.com/blog/how-to-use-aliases-with-sql-join/

SQL left Join y Right Join Por: Diego Solares La cláusula JOIN nos permite asociar 2 o más tablas, en base a una columna que tengan en común.

Clausula LEFT JOIN con LEFT JOIN damos prioridad a la tabla de la izquierda, y buscamos en la tabla derecha. Si no existe ninguna coincidencia para alguna de las filas de la tabla de la izquierda, de igual forma todos los resultados de la primera tabla se muestran.

● La tabla Empleados es la primera tabla en aparecer en la consulta (en el FROM), por lo tanto, ésta es la tabla LEFT (izquierda), y todas sus filas se mostrarán en los resultados. ● La tabla Departamentos es la tabla de la derecha (aparece luego del LEFT JOIN). Por lo tanto, si se encuentran coincidencias, se mostrarán los valores correspondientes, pero si no, saldrá NULL en los resultados.


Página 164 de 292

Imágenes: Ejemplos de Clausula LEFT JOIN Fuente: https://programacionymas.com/blog/como-funciona-inner-left-right-full-join

Clausula RIGHT JOIN En el caso de RIGHT JOIN la situación es muy similar, pero aquí se da prioridad a la tabla de la derecha.

La tabla de la izquierda es Empleados, mientras que Departamentos es la tabla de la derecha. La tabla asociada al FROM será siempre la tabla LEFT, y la tabla que viene después del JOIN será la tabla RIGHT. Entonces el resultado mostrará todos los departamentos al menos 1 vez. Y si no hay ningún empleado trabajando en un departamento determinado, se mostrará NULL. Pero el departamento aparecerá de igual forma.

Imágenes: Ejemplos de Clausula RIGHT JOIN Fuente: https://programacionymas.com/blog/como-funciona-inner-left-right-full-join

SQL Full Join Por: Diego Solares Mientras que LEFT JOIN muestra todas las filas de la tabla izquierda, y RIGHT JOIN muestra todas las correspondientes a la tabla derecha, FULL OUTER JOIN, o simplemente FULL JOIN se encarga de mostrar todas las filas de ambas tablas, sin


Página 165 de 292

importar que no existan coincidencias, usará NULL como un valor por defecto para dichos casos.

Se muestra el empleado "Williams" a pesar que no está asignado a ningún departamento, y se muestra el departamento de "Marketing" a pesar que aún nadie está trabajando allí:

Imágenes: Ejemplos de SQL FULL JOIN Fuente: https://programacionymas.com/blog/como-funciona-inner-left-right-full-join

SQL Self Join Union Por: Diego Solares Una SELF JOIN es una unión normal, pero la tabla se une consigo misma.

La siguiente instrucción SQL coincide con los clientes que son de la misma ciudad.

Imagen: Ejemplo de uso de Self Join Union Fuente: https://www.w3schools.com/sql/sql_join_self.asp


Página 166 de 292

SQL Group By y Ant, All Por: Andrés Alexander Tobar Muñoz La GROUP BY declara y agrupa filas que tienen los mismos valores en filas de resumen, como "encontrar la cantidad de clientes en cada país".

La GROUP BY declaración se usa a menudo con funciones agregadas (COUNT (), MAX (), MIN (), SUM (), AVG ()) para agrupar el conjunto de resultados por una o más columnas.

La sentencia GROUP BY identifica una columna seleccionada para utilizarla para agrupar resultados. Divide los datos en grupos por los valores de la columna especificada, y devuelve una fila de resultados para cada grupo.

Puede utilizar GROUP BY con más de un nombre de columna (separe los nombres de columna con comas). Coloque siempre GROUP BY después de FROM y WHERE en una consulta, y antes de HAVING y ORDER BY.

Todas las columnas seleccionadas sin una agregación asociada deben aparecer en la cláusula GROUP BY.

GROUP BY acumula los resultados por grupo, pero no necesariamente ordena los grupos; para ordenarlos se necesita una sentencia ORDER BY. Cuando recupere múltiples filas de una tabla, puede utilizar las cláusulas GROUP BY, HAVING y ORDER BY para indicar: Cómo desea agrupar las filas (GROUP BY) Una condición que las filas, como grupo, deben cumplir (HAVING) El orden en que desea que se devuelvan las filas (ORDER BY)

Ejemplo de Sintaxis: SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);


Página 167 de 292

Imagen: Ejemplo de compilación de la tabla con los datos creados Fuente: https://www.ibm.com/docs/es/qmf/12.1.0?topic=queries-group-by

SQL Procedimientos Por: Andres Alexander Tobar Muñoz Un procedimiento almacenado es un conjunto de instrucciones de T-SQL que SQL Server compila, en un único plan de ejecución, los llamados "store procedures" se encuentran almacenados en la base de datos, los cuales pueden ser ejecutados en cualquier momento. Se pueden emplear cuatro métodos para crear procedimientos almacenados, utilizando:

El Transact-SQL (T-SQL). El Administrador Corporativo de SQL Server. El asistente para La Creación de Procedimientos Almacenados (Create Store Procedure Wizard). Los objetos de Administración distribuida de SQL (SQL Distributed Management Objects, SQL-DMO).

Tipos de Procedimientos Almacenados: Procedimientos Almacenados del sistema, se utilizan para administrar el SQL Server y para mostrar información sobre base de datos y sobre usuarios.

Procedimientos almacenados Extendidos, son bibliotecas de vínculos dinámicos (dynamic-link libraries, DLLs) que SQL puede cargar y ejecutar de manera dinámica.

Procedimientos Almacenados sencillos definidos por el usuario, son los procedimientos creados por los usuarios y están personalizados para llevar a cabo la tarea deseada por el usuario.

Los procedimientos almacenados ofrecen ventajas importantes: Rendimiento: Al ser ejecutados por el motor de base de datos ofrecen un rendimiento inmejorable ya que no es necesario transportar datos a ninguna parte. Cualquier


Página 168 de 292

proceso externo tiene una penalidad de tiempo adicional dada por el transporte de datos.

Potencia: el lenguaje para procedimientos almacenados es muy potente. Permiten ejecutar operaciones complejas en pocos pasos ya que poseen un conjunto de instrucciones avanzado.

Centralización: al formar parte de la base de datos los procedimientos almacenados están en un lugar centralizado y pueden ser ejecutados por cualquier aplicación que tenga acceso a la misma.

SQL Comentario de db Por: Andres Alexander Tobar Muñoz

Los comentarios se pueden insertar en una línea aparte o dentro de una instrucción Transact-SQL. Los comentarios con varias líneas deben indicarse con /* y */. Una regla de estilo que se usa a menudo para los comentarios de varias líneas es comenzar la primera línea con /*, las siguientes con ** y finalizar con */. No hay límite de longitud para los comentarios. Al igual que cuando estás programando, cuando escribimos sentencias SQL podemos (y debemos) de añadir comentarios sobre nuestro código. Para poder añadir comentarios en SQL tenemos varias formas. La primera es la definida en el estándar ANSI/SQL que es mediante dos guiones al principio de una línea.

Ejemplo de Sintaxis: /* SELECT @comment = '/*'; */

SQL Copia de Seguridad de db Por: Andres Alexander Tobar Muñoz

La BACKUP DATABASE declaración se usa en SQL Server para crear una copia de seguridad completa de una base de datos SQL existente. Una copia de seguridad diferencial solo realiza una copia de seguridad de las partes de la base de datos que han cambiado desde la última copia de seguridad completa de la base de datos.


Página 169 de 292

Realizar Copia De Seguridad [Verbo] Copia los datos o las entradas de registro de una base de datos de SQL Server o de su registro de transacciones en un dispositivo de copia de seguridad, como un disco, para crear una copia de seguridad de datos o de registros.

Copia De Seguridad [Nombre] Copia de los datos de SQL Server que se puede usar para restaurar y recuperar los datos después de un error. Se crea una copia de seguridad de los datos de SQL Server en el nivel de una base de datos o de uno o varios de los archivos o grupos de archivos. No pueden crearse copias de seguridad de las tablas. Además de las copias de seguridad de datos, el modelo de recuperación completa requiere crear copias de seguridad del registro de transacciones.

Tipos De Copias De Seguridad Copia de seguridad de solo copia Copia de seguridad de uso especial independiente de la secuencia normal de copias de seguridad de SQL Server. Copia de seguridad de datos Copia de seguridad de datos de una base de datos completa (copia de seguridad de base de datos), una base de datos parcial (copia de seguridad parcial) o un conjunto de archivos de datos o grupos de archivos (copia de seguridad de archivos).

Copia de seguridad de base de datos Copia de seguridad de una base de datos. Las copias de seguridad completas representan la base de datos completa en el momento en que finalizó la copia de seguridad. Las copias de seguridad diferenciales solo contienen los cambios realizados en la base de datos desde la copia de seguridad completa más reciente. Copia de seguridad diferencial Copia de seguridad de datos basada en la última copia de seguridad completa de una base de datos completa o parcial o de un conjunto de archivos de datos o grupos de archivos (base diferencial) y que solo incluye las extensiones de datos que han cambiado desde la última base diferencial. Una copia de seguridad diferencial parcial únicamente registra las extensiones de datos que han cambiado en grupos de archivos desde la copia de seguridad parcial anterior, que se conoce como la base para la diferencial. Copia de seguridad completa Copia de seguridad completa que incluye todos los datos de una base de datos determinada o un conjunto de grupos de archivos o archivos, así como una cantidad suficiente del registro como para permitir la recuperación de datos. Copia de seguridad de registros


Página 170 de 292

Copia de seguridad de los registros de transacciones que incluye todos los registros no guardados en una copia de seguridad de registros anteriores. (modelo de recuperación completa) Copia de seguridad de archivos Copia de seguridad de uno o varios archivos de base de datos o grupos de archivos. Copia de seguridad parcial Contiene datos de algunos de los grupos de archivos de una base de datos, incluidos los datos del grupo de archivos principal, todos los grupos de archivos de lectura/escritura, y los archivos de solo lectura opcionalmente especificados.

Ejemplo de Sintaxis: BACKUP DATABASE testDB TO DISK = 'D:\backups\testDB.bak';

SQL Crear la tabla Por: Andres Alexander Tobar Muñoz La sentencia CREATE TABLE se utiliza para crear una nueva tabla en una base de datos. Los parámetros de columna especifican los nombres de las columnas de la tabla. El parámetro de tipo de datos especifica el tipo de datos que puede contener la columna (por ejemplo, varchar, entero, fecha, etc.).

Tipos de tablas Además del rol estándar de las tablas básicas definidas por el usuario, SQL Server proporciona los siguientes tipos de tabla que permiten llevar a cabo objetivos especiales en una base de datos:

Tablas con particiones Las tablas con particiones son tablas cuyos datos se han dividido horizontalmente entre unidades que pueden repartirse por más de un grupo de archivos de una base de datos. Las particiones facilitan la administración de índices y tablas grandes al permitir el acceso y la administración de subconjuntos de datos rápidamente y con eficacia, mientras se mantiene la integridad de la colección global. De forma predeterminada, SQL Server admite hasta 15.000 particiones. Para obtener más información, vea Partitioned Tables and Indexes.

Tablas temporales Las tablas temporales se almacenan en tempdb. Hay dos tipos de tablas temporales: locales y globales. Se diferencian entre sí por los nombres, la visibilidad y la disponibilidad. Las tablas temporales locales tienen como primer carácter de sus nombres un solo signo de número (#); solo son visibles para el usuario de la conexión


Página 171 de 292

actual y se eliminan cuando el usuario se desconecta de la instancia de SQL Server. Las tablas temporales globales presentan dos signos de número (##) antes del nombre; son visibles para cualquier usuario después de su creación y se eliminan cuando todos los usuarios que hacen referencia a la tabla se desconectan de la instancia de SQL Server.

Ejemplo de Sintaxis: CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, .... );

SQL Drop La declaración DROP DATABASE se usa para descartar una base de datos SQL existente. DROP TABLE no se puede utilizar para descartar una tabla a la que hace referencia una restricción FOREIGN KEY. La restricción FOREIGN KEY de referencia o la tabla de referencia deben eliminarse primero. Si tanto la tabla de referencia como la tabla que contiene la clave principal se descartan en la misma instrucción DROP TABLE, la tabla de referencia debe aparecer primero. Se pueden colocar varias tablas en cualquier base de datos. Si una tabla que se descarta hace referencia a la clave principal de otra tabla que también se descarta, la tabla de referencia con la clave externa debe aparecer antes de la tabla que contiene la clave principal a la que se hace referencia. Cuando se descarta una tabla, las reglas o los valores predeterminados de la tabla pierden su vinculación y cualquier restricción o desencadenante asociado con la tabla se elimina automáticamente. Si vuelve a crear una tabla, debe volver a vincular las reglas y los valores predeterminados correspondientes, volver a crear los activadores y agregar todas las restricciones necesarias.

Ejemplo de Sintaxis: DROP DATABASE databasename;

Modificar tabla y restricciones Por: Angel Velásquez La instrucción ALTER TABLE de SQL Server (Transact-SQL) se usa para agregar modificar o eliminar columnas en una tabla. Una vez que se crea la tabla en la base de datos, hay muchas ocasiones donde uno puede desear cambiar la estructura de la tabla tipos incluyen los siguientes: ● Agregar una columna ● Eliminar una columna ● Cambiar el nombre de una columna


Página 172 de 292

● Cambiar el tipo de datos para una columna La sintaxis SQL para Alter table es [modificar especificación] depende del tipo de modificación que deseamos realizar. Las instrucciones [modificar especificación] son: o Agregar una columna: ADD” columna 1” “Tipos de datos para columna 1”. o Eliminar una columna: DROP “columna 1”. o Cambiar el nombre de una columna: CHNGE “nombre antiguo de la columna” “nuevo nombre de la columna” “tipos de datos para la nueva columna”. o Cambiar el tipo de datos para una columna: MODIFY “columna 1” “nuevo tipo de datos” Las restricciones en SQL Server se pueden considerar a nivel de columna, donde se especifica como parte de la definición de columna y se aplicarán sólo a esa columna, para mantener la integridad, precisión y confiabilidad de los datos de esa columna. Hay seis restricciones y son las siguientes: ● ● ● ● ● ●

SQL NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK DEFAULT

Imagen: El código para alterar la tabla Fuente: https://soportesql.files.wordpress.com/2013/07/886bd-image006.jpg?w=400&h=300

SQL no nulos y único Por: Angel Velásquez Las columnas pueden contener valores NULL. Se usa una restricción NOT NULL en SQL para evitar insertar valores NULL en la columna especificada considerándolo entonces como un valor no aceptado para esa columna. Supongo que tenemos la siguiente instrucción simple de CREATE TABLE que se utiliza para definir la tabla contraintDemo1.

Imagen: inserte cualquier valor NULL en esa columna, Fuente: https://www.sqlshack.com/wp-content/uploads/2017/10/word-image-163.png

En la instrucción de definición de la columna ID, se aplica la restricción de nivel de columna SQL NOT NULL, considerando la columna ID como una columna obligatoria que debe proporcionar con un valor válido SQL NOT NULL.


Página 173 de 292

UNIQUE SQL se utiliza para garantizar que no se inserten valores duplicados en una columna específica o combinación de columnas que participen en la restricción UNIQUE y no formen parte de la CLAVE PRIMARIA. En otras palabras, el índice que se crea automáticamente cuando define una restricción ÚNICA garantizará que no haya dos filas en esa tabla que pueden tener el mismo valor para las columnas que participan en ese índice, con la capacidad de insertar solo un valor NULL único en estas columnas, esto si la columna permite

Imagen: Las tres filas insertadas Fuente: https://www.sqlshack.com/wp-content/uploads/2017/10/word-image-165.png

SQL De Clave Principal Por: Angel Velásquez Una tabla suele tener una columna o una combinación de columnas cuyos valores identifican de forma única cada fila de la tabla. Cuando especifica una restricción de clave principal en una tabla, el motor de base de datos exige la unicidad de los datos mediante la creación automática de un índice único para las columnas de clave principal. Si se define una restricción de clave principal para más de una columna, puede haber valores duplicados dentro de la misma columna, pero cada combinación de valores de todas las columnas de la definición de la restricción de clave principal debe ser única. Esto impide la inserción de filas duplicadas.

Imagen: restricción de clave principal Fuente: https://docs.microsoft.com/es-es/sql/relational-databases/tables/media/fund04.gif?view=sqlserver-ver15

✔ Una tabla solo puede incluir una restricción de clave principal. ✔ Una clave principal no puede las 16 columnas y una longitud de clave total de 900 bytes. ✔ El índice generado por una restricción de clave principal. ✔ Todas las columnas definidas en una restricción de clave principal deben definir cómo no NULL. ✔ Si la clave principal se define en una columna de tipo pro el usuario CLR.


Página 174 de 292

Imagen: SQL para la creación de una clave primaria Fuente: https://www.tutorialesprogramacionya.com/mysqlya/temarios/imagentema/foto042.jpg

SQL Clave Externa Por: Angel Velásquez Una clave externa es un campo (o campos) que señala la clave primaria de otra tabla. El propósito de la clave externa es asegurar la integridad referencial de los datos.

Por ejemplo, digamos que tenemos dos tablas, una tabla CUSTOMER que incluye todos los datos del CUSTOMER, y la tabla ORDERS que incluyen los pedidos del CUSTOMER. La restricción aquí es que todos los pedidos deben asociarse con un CUSTOMER que ya se encuentra en la tabla CUSTOMER. En este caso, colocaremos una clave externa en la tabla ORDERS y la relacionamos con la clave primaria de la tabla CUSTOMER. De esta forma, nos aseguramos que todos los pedidos en la tabla ORDERS estén relacionados con un CUSTOMER en la tabla CUSTOMER. En otras palabras, la tabla ORDERS no puede contener información de un CUSTOMER que no se encuentre en la tabla CUSTOMER.

Imagen: SQL Clave Externa Fuente: https://juankartips.files.wordpress.com/2014/07/image_thumb40.png


Página 175 de 292

Una clave externa (FK) es una columna o combinación de columnas que se usa para establecer y aplicar un vínculo entre los datos de dos tablas a fin de controlar los datos que se pueden almacenar en una tabla de clave externa. Esta columna se convierte en una clave externa para la segunda tabla.

Fuente:https://cdn.education-wiki.com/img/sql-tutorials/3234948/foreign-key-sql.png.webp Imagen: Foreign Key In SQL

Inyección SQL Por: Gabriel Orlando Xanté Mejía La inyección SQL es un método de infiltración de código intruso que va a aprovechar y violar las vulnerabilidades informáticas que una aplicación o algún sitio web presente esto va a darse a nivel de la validación de las entradas para poder realizar operaciones maliciosas dentro de la base de datos del dicho software. Esta infiltración a la base de datos se va a dar por una errónea comprobación de las variables que se van a utilizar en un programa que contiene o que va a ser manipulado con código SQL. Este tipo de acción es maliciosa, dañina o espía por lo que lo que le corresponde al área de seguridad informática y el programador debe de tener muy en cuenta estos puntos Para poder prevenirlos. Todo lo que tenga relación con la base de datos es donde el usuario puede incorporar el código SQL intruso, que sin duda alguna va a causar daños tanto como la parte del software como en la parte de base de datos

Imagen: estructura para generar inyección SQL Fuente: https://images.app.goo.gl/F7HfNGmdtUU1nMFF7


Página 176 de 292

SQL Predeterminado Por: Gabriel Orlando Xanté Mejía Un valor por defecto se va a ingresar cuando no se encuentra presente un registro que el dato que sea ingresado sea invalido o incorrecto. Para definir estos valores por defecto se van a definir con la instrucción default que como ya se ha mencionado van a ser valores predeterminados. Un campo solo puede tener un valor por defecto, así como también una tabla puede tener todos sus campos por defecto.

Imagen: Valores predeterminados en SQL Fuente: https://youtu.be/9s05odmwhJw

SQL incremento automático Por: Gabriel Orlando Xanté Mejía Este valor “auto_increment” es una función que va a operar en tipos de datos que sean numéricos. Lo que va a hacer es generar valores numéricos de una forma automática que van a ir en secuencia cada vez que se inserten registros en una tabla para un campo que va a quedar definido como incremento automático. Este valor lo podemos utilizar para almacenar datos con una redundancia mínima, puede ser utilizado para generar una clave que sea única, ya que conforme el valor se va autoincrementando cada vez que se realice un registro nos va a devolver un valor único, ayudando de gran manera a acortar los procesos

Imagen: Sintaxis para incremento Automático en SQL Fuente: https://images.app.goo.gl/d4m1dSk2dnGth2oSA


Página 177 de 292

SQL Alojamiento Por: Gabriel Orlando Xanté Mejía Si trabajamos con SQL en nuestro ordenador las bases de datos se almacenarán en archivos dentro de nuestros discos que tengamos instalados. Regularmente SQL crea dos archivos uno mdf y un ldf en el directorio que ya ha sido predeterminado. Estos archivos no pueden ser eliminados desde el explorador de Windows si tenemos SQL arrancado, porque a la hora de que esté arrancado las bases de datos están activas porque SQL abre todos los archivos de todas las bases de datos que nosotros tengamos en nuestro ordenador

Imagen: Alojamiento de SQL Fuente: https://images.app.goo.gl/xLBjgkRDUNfY2k4P7


Página 178 de 292

Capítulo II 2.1

Introducción

Por: Cristofer Javier Morales de León Cómo próximos graduados de bachiller industrial y perito con especialidad en computación, damos a conocer en el Temario los temas que nos han impartido nuestros instructores en el ciclo escolar 2021 correspondiente al grado de Quinto. En está parte del temario se dará a conocer la implementación de GNU/Linux en un entorno de trabajo como la conexión de Java con MySQL server en Apache Netbeans. Temas los cuales han sido abarcados durante dicho ciclo escolar acorde a nuestra especialidad, explicando de manera clara y concisa cada una de ellas detallando cada uno de sus subtemas correspondientes. El Temario se divide en cuatro capítulos: I. Introducción II. Objetivo III. Presentación de Temas y Subtemas IV. Cuestionario


Página 179 de 292

2.2

Objetivos

Por: Cristofer Javier Morales de León Como objetivo principal tenemos la formación de futuros graduandos con estudios específicos en la carrera de bachiller industrial y perito con especialidad en computación, así como cursantes autodidactas y emprendedores en el país de Guatemala. Buscamos la implementación de los temas dados en Quinto grado para una mejor comprensión de cada uno de ellos, explicando con detalle la definición de cada uno. Una vez todos los temas se encuentren dentro del temario se persigue el estudio de los mismos para que los que cursan Sexto grado en este ciclo escolar 2022 tengan conocimientos integrales o completos de cada tema. Los objetivos específicos del temario son: ● Retroalimentación de los temas recibidos en Quinto grado. ● Conocimiento claro de cada tema en el temario. ● Una mayor comprensión a los temas relacionados de este temario. ● Facilidad en la elaboración de ejercicios que posean alguna conexión con el temario. La solución dada para la resolución de los objetivos del temario es la correcta comprensión de los temas y el estudio autodidacta por parte de cada uno de los futuros graduandos.


Página 180 de 292

2.3

Créditos

Por: Cristofer Javier Morales de León Creador del Proyecto GNU ●

Richard Stallman

Creador del Kernel Linux ●

Linus Torvalds

Creador de Unix ● ● ● ●

Ken Thompson Dennis Ritchie Douglas Mcllroy Joe Ossanna

Desarrollador de GNU/Linux ● ● ● ●

Richard Stallman Proyecto GNU Linus Torvalds Colaboradores

2.4

Licencia

Por: Cristofer Javier Morales de León Licencia GPL La Licencia Pública General de GNU o más conocida por su acrónimo en inglés (General Public License), es una licencia creada por la Free Software Foundation a mediados de los 80, orientada principalmente a proteger la libre distribución, modificación y uso de software. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios. Actualmente es la licencia que se usa para la mayoría de los programas de GNU y para más de la mitad de los paquetes de software libre. Licencia LGPL La Licencia Pública General Reducida de GNU ( Lesser General Public License) es una licencia de software creada por la Free Software Foundation. Los contratos de licencia de la mayor parte del software están diseñados para jugar con su libertad de compartir y modificar dicho software. En contraste, la GNU (General Public License) pretende garantizar su libertad de compartir y modificar el software libre, esto es para asegurar que el software es libre para todos sus usuarios. Licencia FDL La documentación del software libre debe ser documentación libre, para que se pueda redistribuir y mejorar al igual que el software que describe. Para que la documentación sea libre, hay que publicarla bajo una licencia de documentación libre de tipo FDL.


Página 181 de 292

Imagen: Logotipo de la licencia GPL Fuente: https://blogdejhonn.files.wordpress.com/2013/11/licenciagpl320.jpg

2.5

Notaciones y Convenciones

Por: Cristofer Javier Morales de León Notaciones Notación es la acción y efecto de notar (señalar, advertir, apuntar). El término proviene del latín y hace referencia al sistema de signos convencionales que se adopta para expresar algún concepto. Se conoce como notación científica al modo de representar un número utilizando potencias de base diez. Notación C Durante los años 1960s, con la estandarización del código ASCII, los primeros programadores de C y UNIX utilizaron el carácter _ como separador: end_of_file. Esta notación sigue siendo la más utilizada en C y entornos UNIX. Los defensores de esta notación argumentan que es más fácil de leer porque deja un espacio entre palabras, al contrario que Camel. Notación para Identificadores En programación, un identificador es un nombre que el programador asigna a una variable, un subprograma (función/procedimiento o método), a una estructura o a una clase. La mayor parte de lenguajes de programación admiten letras, números y el caracter _ en sus identificadores, con la condición de que no pueden empezar con un número. Notación CamelCase Camel case (estilizado como CamelCase) o letra de caja camello es un estilo de escritura que se aplica a frases o palabras compuestas. El nombre se debe a que las mayúsculas a lo largo de una palabra en CamelCase se asemejan a las jorobas de un camello. Notación Húngara La notación húngara se basa en Camel, añadiendo al principio del identificador una secuencia de letras en minúscula, que indica alguna característica del identificador, como su tipo en el caso de variables. Por ejemplo: ● iValue podría denotar una variable entera. ● fValue una variable float. ● frmPartner la instancia de un formulario.


Página 182 de 292

Imagen: Notación Húngara Fuente: https://lh3.googleusercontent.com/YLkOdvPvLyco6VyLR6EheeiENfPsiWLNMl0Qysd_e832n4Sjaevfc9FacL8mtVS1kXPMkFQiBFIvgNLP3OE1LW5lguVso5f4uckF6akdOJvZOee_iqG9zL97KcTAHMjrKBWh2dGA=w2400

Convenciones Las convenciones de nombres son un conjunto de reglas para la elección de la secuencia de caracteres que se utilice para los identificadores que denoten variables, tipos, funciones y otras entidades en el código fuente y la documentación. Las convenciones de código incluyen: Organización de archivos ● ● ● ● ●

Uso de sangría Comentarios Declaraciones Sentencias Espacios en blanco

Las convenciones de código de Java Se mostrarán algunas de las más importantes convenciones de código de Java: ● Archivos Las extensiones que usan los archivos de Java son: .java y .class ● Clases El primer carácter del nombre de una clase debe ser una letra mayúscula. ● Métodos Los métodos expresan acciones que permiten modificar a los atributos de una clase, por lo que los nombres de los métodos deben ser verbos, y se deben escribir con la primera letra minúscula con la primera letra de cada palabra interna en mayúscula, usando LowerCamelCase. ● Variables Las variables también son sujetos, pero a diferencia de las clases, estas deben ser escritas preferentemente en minúsculas. ● Constantes Los nombres de las constantes deben ser declaradas en mayúsculas, usando el “_” (guión bajo) si el nombre de la constante es largo. Los nombres de las constantes pueden contener dígitos, pero nunca para iniciar el nombre.


Página 183 de 292

● Sangrías Se considera un estándar de 4 espacios como unidad de identación, aunque si utilizas un IDE generalmente no tendrás que preocuparte porque automáticamente te ayudará colocando la sangría adecuada. ● Organización del archivo de código Las buenas prácticas de programación de Java establecen una organización de los elementos del programa .

Imagen: Convenciones de Codificación Fuente: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTOq_9TgFUiGu4dDvNAeU7_zl6I_j7QaDpsw&usqp=CAU

2.6

¿Qué son Unix, Linux y GNU?

Por: Cristofer Javier Morales de León UNIX Unix es una familia de sistemas operativos. La primera versión de Linux fue desarrollada a partir de 1969. Unix se caracteriza por ser portable y multitarea. Hoy en día los sistemas operativos Unix son ampliamente utilizados en multitud de dispositivos que abarcan desde los supercomputadores más capaces hasta los teléfonos móviles más populares, pasando por los ordenadores que utilizamos diariamente en nuestros escritorios. La filosofía de los sistemas Unix se caracteriza por: ● ● ● ●

Un sistema de ficheros jerárquico. Una colección de pequeños programas que trabajan en serie. El uso de ficheros de texto para almacenar los datos. Tratar los dispositivos como ficheros.

Imagen: Logo de Unix Fuente: https://1000marcas.net/wp-content/uploads/2020/01/Unix-Logo.png

GNU GNU es un sistema operativo de tipo Unix, así como una gran colección de programas informáticos que componen al sistema, desarrollado por y para el Proyecto GNU y auspiciado por la Free Software Foundation. Está formado en su totalidad por software libre, mayoritariamente bajo términos de copyleft.


Página 184 de 292

Imagen: Logo de GNU Fuente: https://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Heckert_GNU_white.svg/1200pxHeckert_GNU_white.svg.png

Linux Linux es una familia de sistemas operativos de tipo Unix que utilizan el kernel Linux. Linux puede instalarse en prácticamente cualquier ordenador personal además en en teléfonos móviles y supercomputadores. El nombre proviene del programador original, un estudiante llamado Linus Torvals, que en 1991 completando las herramientas GNU desarrolladas por el proyecto GNU de la Fundación del Software Libre, creó la primera versión de este sistema operativo. El papel fundamental jugado por estas herramientas libres del proyecto GNU hace que este sistema operativo sea denominado también como GNU/Linux, pero en este texto utilizaremos la denominación más sencilla y corta.

Imagen: Logo de Linux Fuente: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQTA6rr4lBHb4UUz-

IK28VKx2a79Za8NramYUUtEgaCxIel1lzkAOf5x3DKSor2LMCuF0w&usqp=CAU

2.7

Directorios y Comandos

Por: Cristofer Javier Morales de León Directorio La estructura de los directorios de Linux, así como su contenido y funciones, viene definida en el denominado Filesystem Hierarchy Standard o FHS por sus siglas en inglés, que en otras palabras viene a ser el estándar de jerarquía para los sistemas de archivos en sistemas Linux y otros derivados de UNIX. La FHS distingue entre lo que serían directorios estáticos, que son aquellos que contienen binarios, bibliotecas, documentación, etc., de los dinámicos, que son aquellos que requieren de acciones más a menudo, tales como copias de seguridad, etc.


Página 185 de 292

Como puedes ver en la siguiente imagen, todo el árbol de parte de una raíz común denominada root y que se simboliza por una barra inclinada. Aun así, esto no significa que varios de ellos no puedan estar en particiones separadas del resto. De hecho, en muchas distros GNU/Linux es una práctica muy común el hecho ubicar ciertos directorios en particiones separadas del resto.

Imagen: Directorios de Linux Fuente: https://www.aulafacil.com/uploads/cursos/6463/24264_li.es.png

Comando Un comando Linux es un programa o utilidad que se ejecuta en la línea de comandos. Una línea de comandos es una interfaz que acepta líneas de texto y las procesa en forma de instrucciones para tu ordenador. Cualquier interfaz gráfica de usuario (GUI) no es más que una abstracción de los programas de línea de comandos. Por ejemplo, cuando cierras una ventana haciendo clic en la «X», hay un comando que se ejecuta detrás de esa acción.

Imagen: Terminal en donde se escriben los comandos Fuente: https://marquesfernandes.com/wp-content/uploads/2020/03/image-26.jpg

2.7.1 Archivos y Directorios Por: Maria Fernanda Morales 13

En GNU/Linux los archivos se generan en un sistema multiusuario que le permite al usuario tener distintos ficheros con el mismo nombre, también les permite organizar


Página 186 de 292

los ficheros en grupos lógicos. Los directorios son ficheros, los ficheros son ficheros y los dispositivos son ficheros, entonces decimos que en sí todo es un fichero. En Linux no hay ningún formato estándar para los nombres de los archivos, en general, pueden tener cualquier carácter menos "/" y están limitados a 256 caracteres de longitud. Un directorio es una colección de archivos, los directorios, como las carpetas, tienen un nombre para poder identificarlas que siguen las mismas reglas para los nombres que los archivos.

Imagen: Archivos y Directorios GNU/Linux Fuente: https://i.ytimg.com/vi/MEb31TzuAVU/maxresdefault.jpg

Los directorios son los que guardan todos los archivos que componen nuestro sistema operativo GNU/Linux, cada usuario dispone su propio directorio personal donde guardará los documentos creados por él con los distintos programas. Los directorios personales están ubicados en / home / "usuario". El usuario root sé dispone de los permisos suficientes para acceder a los directorios personales del resto de usuarios. En una distribución GNU/Linux típica encontramos los siguientes directorios del sistema: ● /boot Este directorio contiene la información necesaria para poder arrancar nuestro sistema GNU/ Linux. ● /etc Este directorio contiene todos los archivos de configuración de nuestro sistema GNU/ Linux. ● / bin Contiene programas ejecutables que forman parte del sistema operativo GNU/ Linux. ● / sbin Contienen programas ejecutables que forman parte del sistema operativo GNU/ Linux. ● / lib Contiene las bibliotecas (o librerías) del sistema que son necesarias durante el inicio del mismo. ● / root Este es el directorio personal del usuario root o super usuario. ● / home Aquí residen los directorios de los distintos usuarios del sistema, excepto el del usuario root, que se encuentra en el directorio especial / root

2.7.2 El árbol de directorios En GNU/Linux todos nuestros directorios se organizan en forma de árbol invertido, no importando la cantidad de discos y particiones que tengamos, la raíz del sistema que se simboliza con (/) y el hombre de cada usuario aparecerán en una misma estructura. También en este árbol va incluido lo que es /etc, /var /log, y todas las otras carpetas detalladas en la FHS y también las que agreguemos posteriormente. Su estructura es de la siguiente manera: ⎯ Directorio Raíz (/): Este es el directorio principal a partir del cual se ramifican todo el resto de directorios.


Página 187 de 292

⎯ Directorio /bin: Es un directorio estático y compartible en el que se almacenan archivos binarios/ejecutables necesarios para el funcionamiento del sistema. ⎯ Directorio /boot: Este contiene la totalidad de archivos necesarios para el arranque del ordenador excepto de configuración. ⎯ Directorio /dev: En este directorio se almacenan los archivos que representan a los dispositivos de hardware. ⎯ Directorio /etc: Contiene los archivos de configuración del sistema operativo. ⎯ Directorio /home: Aloja la totalidad de archivos personales de los distintos usuarios del sistema operativo. ⎯ Directorio /lib: Contiene las bibliotecas compartidas que son necesarias para arrancar los ejecutables que se almacenan en los directorios /bin y /sbin. ⎯ Directorio /mnt: Alberga los puntos de montaje de distintos dispositivos de almacenamiento. ⎯ Directorio /media: Contiene los puntos de montaje de los medios extraíbles de almacenamiento. ⎯ Directorio /opt: Almacena los programas que no vienen con nuestro sistema operativo. ⎯ Directorio /proc: Proporciona información acerca de los distintos procesos y aplicaciones que se ejecutan en nuestro sistema operativo. ⎯ Directorio /root: Es el directorio /home del administrador del sistema (usuario root). ⎯ Directorio /sbin: Almacena archivos binarios/ejecutables que solo puede ejecutar el usuario root o administrador del sistema ⎯ Directorio /srv: Almacena directorios y datos que usar ciertos servidores que tengamos instalados en nuestro operador. ⎯ Directorio /tmp: Es donde se crean y se almacenan los archivos temporales y las variables para que los programas puedan funcionar de una forma adecuada. ⎯ Directorio /usr: Contiene la gran mayoría de programas instalados en nuestro sistema operativo. ⎯ Directorio /var: Contiene los archivos de datos variables y temporales. ⎯ Directorio /sys: Contiene información similar a la del directorio /proc. ⎯ Directorio /lost+found: Directorio que se crea en las particiones de disco con un sistema de archivos ext.

Imagen: Árbol de Directorios


Página 188 de 292

Fuente: https://encryptedtbn0.gstatic.com/images?q=tbn:ANd9GcRHycSjrfgXgdMBgJBqkyYnhGmI9Bqeu4Hvd A&usqp=CAU

2.7.3 Directorio de Trabajo El directorio de trabajo utiliza un proceso como referencia para las rutas relativas, es el directorio donde se encuentra situado un proceso, cada proceso de un sistema operativo puede trabajar en un directorio de trabajo diferente. Para poder saber nuestro directorio de trabajo actual es: Nos dirigimos a la terminal y haremos uso del comando pwd, el cual nos mostrará la ruta actual de trabajo en nuestro sistema Linux. Para saber la ruta física real le agregaremos lo que es la opción -P al comando pwd y nos mostrará la ruta física real del directorio de trabajo actual sin tener en cuenta su enlace simbólico.

Imagen: Código para observar el directorio de trabajo Fuente: https://professor-falken.com/linux/como-saber-cual-es-el-directorio-de-trabajo-actual-enlinux/

2.7.4 Primeros Pasos en Linux A la hora de empezar a usar tu distribución, hay muchas cosas que se puedes hacer y ajustes que cambiar para configurarla a el gusto de la persona. Pero en este caso, vamos a centrarnos en lo más básico y necesario para empezar a utilizarlo cuando lo usamos por primera vez 1. Conectar el ordenador a Internet.

Imagen: Conectar a Internet Linux Fuente: https://i.blogs.es/68d022/pulsa-iconos/1366_2000.jpg 2. Buscar nuevas actualizaciones


Página 189 de 292

Una vez ya estás conectado, lo primero que deberías hacer al empezar a utilizar Linux, como cualquier otro sistema operativo, es buscar nuevas actualizaciones.

Pulsar sobre la aplicación Actualización de Software o la que te aparezca en su lugar en tu distribución.

En un principio te aparecerá una ventana en la que te aparecerá el texto Comprobando actualizaciones y una barra de carga. En esta ventana pulsa en el botón Instalar ahora, y tras verificar tu identidad escribiendo la contraseña empezarás a actualizar tu distro y sus aplicaciones.

La actualización se realizará de forma automática, pero en dos partes: primero descargar los paquetes necesarios y luego actualizándolo todo.


Página 190 de 292

Imágenes: Realizar nuevas actualizaciones Fuente: https://www.xataka.com/basics/primeros-pasos-linux 3. Instalar drivers y códecs

Buscar la aplicación Software y actualizaciones.

Nos dirigimos a la pestaña de Controladores adicionales. Lo lógico es que veas que tu equipo está utilizando un controlador alternativo, generalmente x. Org X server.

Tras escribir tu contraseña para verificar tu identidad, la aplicación procederá a descargar el controlador de tu gráfica e instalarlo.


Página 191 de 292

Abrimos la aplicación Terminal, y se encontrará en la lista de aplicaciones.

Escribir los siguientes códigos: ● sudo apt install ubuntu-restricted-extras:para descargar los códecs multimedia privativos de Ubuntu. ● sudo apt install libavcodec-extra: Para instalar la versión gratuita de libavcodec. ● sudo apt install libdvd-pkg: Para poder habilitar la reproducción de discos DVD cifrados. Imágenes: Instalar drivers y códecs Fuente: https://www.xataka.com/basics/primeros-pasos-linux

4. Adaptar el aspecto de Ubuntu a tus necesidades

Abrir el menú de aplicaciones y pulsar sobre la de Configuración para acceder a sus ajustes.


Página 192 de 292

Podemos cambiar lo que son los fondos y colocarle diferentes estilos.

También podemos cambiar el aspecto de la barra lateral de Ubuntu

Imágenes: Adaptar el aspecto de Ubuntu a nuestras necesidades Fuente: https://www.xataka.com/basics/primeros-pasos-linux

5. Vincular las cuentas en la nube

En la columna de la izquierda del menú de configuración debes pulsar sobre la opción Cuentas en línea


Página 193 de 292

Hacer clic sobre el servicio que quieras vincular para que se abra la ventana de inicio de sesión.

Una vez iniciada la sesión y dados los permisos, el sistema te preguntará qué elementos quieres sincronizar con Ubuntu

Imágenes: Vincular las cuentas en la nube Fuente: https://www.xataka.com/basics/primeros-pasos-linux

2.7.5 Moviéndonos por el entorno El comando para movernos por la estructura de directorios es cd, abreviación de cambio de directorio. El uso de este comando es: cd <directorio> donde <directorio> es el nombre del directorio al que queremos ingresar. Pero al entrar al sistema comenzamos en el directorio llamado /home, pero si debemos ir al subdirectorio tareas, debemos de realizar esto: /home/jose$ cd tareas /home/jose/tareass$ Entonces el prompt cambia para mostrar el directorio actual de trabajo, dentro del directorio tareas, ahora veremos su contenido de un archivo llamado ciencias con el siguiente comando: /home/jose/tareas$ cat ciencias


Página 194 de 292

Ya estamos en el subdirectorio tareas, para regresar a el directorio padre, usamos el siguiente comando: /home/jose/tareas$ cd .. /home/jose$

2.7.6 Viendo el contenido de directorios Lo primero que realizamos es ingresar este comando, que nos mostrará en pantalla la lista de archivos y directorios. /home/jose$ ls Mail articulos cartas /home/jose$ Usamos la opción -F del comando ls para obtener más información sobre si es directorio o archivos. /home/jose$ ls -F Mail/ articulos/ cartas/ /home/jose$ Ahora nos aparecen el carácter / y podemos decir que son directorios. Ahora si al comando ls le agregamos un nombre de directorio, mostrará el contenido: /home/jose$ ls -F tareas ingles historia tesis notas/ /home/jose$ Para obtener un listado más interesante veremos el conrendio del directorio con el comando /etc. /home/jose$ ls /etc Images ftpusers lpc rc.new shells adm getty magic rc0.d startcons bcheckrc gettydefs motd rc1.d swapoff brc group mount rc2.d swapon brc~ inet mtab rc3.d syslog.conf csh.cshrc init mtools rc4.d syslog.pid csh.login init.d pac rc5.d syslogd.reload default initrunlvl passwd rmt termcap disktab inittab printcap rpc umount fdprm inittab.old profile rpcinfo update fstab issue psdatabase securetty utmp ftpaccess lilo rc services wtmp /home/jose$ También podemos volver al directorio raíz con cd.. y desde ese directorio ir a otro directorio llamado /usr/bin: /home/jose$ cd ..


Página 195 de 292

/home$ cd .. /$ cd usr /usr$ cd bin /usr/bin$

2.7.8

Creando directorios

Por: Luis David Ortiz Fernández Crear un nuevo directorios en Linux, únicamente se necesita ingresar el comando "mkdir" seguido de este comando ponemos la ruta del nuevo directorio antes de hacer eso se debe de asegurar que el nuevo directorio aún no existe porque en caso de que exista recibiremos un mensaje donde no se puede crear el directorio luego también asegurar, antes de crear un nuevo directorio tener permisos de escritura, existirán directorios los cueles podremos crear con permisos concretos o ciertas opciones especificas con la ayuda de distintos comandos pero recordando siempre la base del comando "mkdir"

Fuente:https://www.servidoresadmin.com/como-crear-directorios-en-linux-mkdir-con-ejemplos/

2.7.9

Copiando archivos

Por: Luis David Ortiz Fernández Copiar archivos y carpetas en concreto el comando "CP" es un elemento fundamental para cualquier sistema operativo muchas de las personas que usan un sistema operativo lo usan a diario, la función de "CP" es básicamente copiar uno o más archivos de una ubicación a otra con dos datos específicos que son el nombre del archivo y el lugar de destino la sintaxis del comando con estos dos datos es bastante sencilla

Fuentes:https://www.ionos.es/digitalguide/servidores/configuracion/comando-cp-de-linux/

2.7.10 Moviendo archivos Por: Luis David Ortiz Fernández Para poder mover un archivo o directorio de lugar usaremos el comando "mv" a diferencia del comando de copiar en el caso de "mv" no necesitamos parámetros extra para mover de lugar nuestro archivo o directorio lo cual lo hace un comando muy sencillo y fácil de utilizar, pero sigue siendo fundamental y básicos como herramienta para el usuario de cualquier sistema operativo

Fuentes:https://www.solvetic.com/tutoriales/article/2714-como-copiar-y-mover-carpetasdirectoriosarchivosenlinux/#:~:text=Para%20mover%20un%20archivo%20o,extra%20para%20mover%20 una%20carpeta.&text=del%20comando%20mv,En%20los%20ejemplos%20suponemos%20que%20estam os%20situados%20en%20la%20ruta,tendríamos%20que%20poner%20su%20ruta.

2.7.11 Borrando archivos y directorios


Página 196 de 292

Por: Luis David Ortiz Fernández Con el comando "rm" con la continuación del nombre del archivo se puede realizar la acción de borrar un archivo o directorio de manera individual y rápida una forma sencilla esto a través de la terminal de Linux, para poder borrar varios archivos se hace una lista del nombre de los archivos separados por un espacio tras el comando "rm"

Fuentes:https://www.ionos.es/digitalguide/servidores/configuracion/eliminar-archivos-en-linux/

2.7.12 Viendo el contenido de archivos Por: Luis David Ortiz Fernández Utilizando el comando "cat" permitiendo visualizar y leer la información contenida en un archivo de texto este comando también permite concatenar archivos y la información del archivo presentada en el formato de salida estándar, este siendo uno de los comandos más populares para ver rápidamente el contenido de un archivo

Fuentes: https://esgeeks.com/comandos-ver-contenido-archivos-linux/

2.7.13 Obteniendo ayuda en línea Por: Luis David Ortiz Fernández Si se necesita una ayuda para navegar a través de la terminal de Linux se puede utilizar un comando para poder obtener una ayuda en cuanto a comandos en este caso ejecutaremos el comando de "-h" o -help" y en este se podrá ver la información de uso y otra donde se puede visualizar una lista de opciones que se pueden utilizar con el comando

Fuentes:https://www.profesionalreview.com/2016/07/23/ayuda-comandos-linux/

2.7.14 Sumario de comandos básicos Por: Carlos Fabio Paz Nótese que las opciones usualmente comienzan con “-” y en la mayoría de los casos se pueden añadir múltiples opciones de una letra con un único “-”. Por ejemplo, en lugar de usar “ls -l -F” es posible usar “ls -lF”. En lugar de listar todas las opciones disponibles para cada uno de los comandos sólo hablaremos de aquellas más útiles o importantes. De hecho, la mayoría de los comandos tienen un gran número de opciones. Puede usar man para ver las páginas de manual de cada comando, la cual le mostrará la lista completa de opciones disponibles.


Página 197 de 292

Nótese también, que la mayoría de los comandos toman una lista de archivos o directorios como argumentos, denotados como “<archivo1> ... <archivoN>”. Por ejemplo, el comando cp toma como argumentos la lista de archivos a copiar, seguidos del archivo o directorio destino. Cuando se copia o mueve más de un archivo, el destino <archivoN> debe ser un directorio.

2.7.15 Operaciones sobre directorios Por: Carlos Fabio Paz cd Cambia el directorio de trabajo actual. Sintaxis: cd <directorio> <directorio> es el directorio al que cambiamos. (“.” se refiere al directorio actual, “..” al directorio padre.) Ejemplo: “cd ../nuevo” pone “../nuevo” como directorio actual. ls Muestra información sobre los archivos o directorios indicados. Sintaxis: ls <archivo1> <archivo2> ... <archivoN> Donde <archivo1> a <archivoN> son los archivos o directorios a listar. Opciones: Éste comando tiene gran cantidad de opciones. Las más usadas son: F (muestra información sobre el tipo de archivo) y -l (da un listado “largo” incluyendo tamaño, propietario, permisos, etc.). Ejemplo: “ls -lF /home/diego” mostrará el contenido del directorio “/home/diego”. mkdir Crea directorios. Sintaxis: mkdir <dir1> <dir2> ...<dirN> Donde <dir1> a <dirN> son los directorios a crear. Ejemplo: “mkdir /home/diego/prueba” crea el directorio “prueba” dentro de “/home/diego”. rmdir Borra directorios vacíos. El directorio de trabajo actual no debe de estar dentro del directorio a borrar. Sintaxis: rmdir <dir1> <dir2> ... <dirN> Donde <dir1> a <dirN> son los directorios a borrar. Ejemplo: “rmdir /home/diego/articulos” borra el directorio “/home/diego/articulos” si está vacío.

2.7.16 Operaciones sobre Archivos


Página 198 de 292

Por: Carlos Fabio Paz cp Copia archivos. Sintaxis: cp <archivo1> <archivo2> ... <archivoN> <destino> Donde <archivo1> a <archivoN> son los archivos a copiar y <destino> es el archivo o directorio destino. Ejemplo: “cp ../primero segundo” copia el archivo “../primero” al archivo o directorio “segundo”. mv Mueve archivos. Es equivalente a una copia seguida del borrado del original.Puede ser usado para renombrar archivos. Sintaxis: mv <archivo1> <archivo2> ... <archivoN> <destino> Donde <archivo1> a <archivoN> son los archivos a mover y <destino> es el archivo o directorio destino. Ejemplo: “mv ../primero segundo” mueve el archivo “../primero” al archivo o directorio “segundo”. rm Borra archivos (de forma irrecuperable). Sintaxis: rm <archivo1> <archivo2> ... <archivoN> Donde <archivo1> a <archivoN> son los nombres de los archivos a borrar. Opciones: -i pedirá confirmación antes de borrar un archivo. Ejemplo: “rm -i /home/diego/primero /home/diego/segundo” borra los archivos “primero” y “segundo” en “/home/diego”. cat Concatena archivos. También es usado para mostrar el contenido completo de un archivo. Sintaxis: cat <archivo1> <archivo2> ... <archivoN> Donde <archivo1> a <archivoN> son los archivos a mostrar. Ejemplo: “cat cartas/mi-novia” muestra por la pantalla el contenido del archivo minovia que se encuentra en el directorio cartas.

2.7.17 Otras utilidades Por: Carlos Fabio Paz less


Página 199 de 292

Muestra el contenido de los archivos indicados, una pantalla cada vez. Sintaxis: less <archivo1> <archivo2> ... <archivoN> Donde <archivo1> a <archivoN> son los archivos a mostrar. Ejemplo: “less articulos/historia” muestra por la pantalla el contenido del archivo “historia” dentro del directorio “articulos”.

man Muestra la página de manual del comando o recurso (función de librería, archivo de configuración) dado. Sintaxis: man <comando> Donde <comando> es el nombre del comando o recurso sobre el que queremos obtener información. Ejemplo: “man ls” muestra ayuda sobre el comando “ls”. grep Muestra todas las líneas de un archivo dado que coinciden con un cierto patrón. Sintaxis: grep <patrón> <archivo1> <archivo2> ... <archivoN> Donde <patrón> es una expresión regular Las expresiones regulares son una forma de describir un conjunto de cadenas. y <archivo1> a <archivoN> son los archivos donde buscar. Ejemplo: “grep micasa /etc/hosts” mostrará todas las líneas en el archivo /etc/hosts que contienen la cadena “micasa”.

2.7.16.2 Caracteres

“Comodín”

Por: Carlos Fabio Paz Una característica importante de la mayoría de los intérpretes de comandos en Unix es la capacidad para referirse a más de un archivo usando expresiones regulares. En su forma más simple, esto consiste en la utilización de los llamados “comodines” que permiten referirse a, por ejemplo, todos los archivos cuyo nombre contiene una determinada secuencia de caracteres. Los comodines “*” y “?” El comodín “*” hace referencia a cualquier cadena de caracteres en el nombre del archivo. Cuando se usa el carácter “*” para referirse al nombre de un archivo, el intérprete de comandos lo sustituye por todas las combinaciones posibles provenientes de los archivos en el directorio al cual nos estamos refiriendo. Veamos un ejemplo rápido. Supongamos que diego tiene los archivos hugo, paco y luis en el directorio actual.


Página 200 de 292

/home/diego$ ls hugo luis paco /home/diego$ Otro carácter comodín es “?”. Este carácter comodín sólo expande un único carácter. Luego “ls ?” mostrará todos los nombres de archivos con un carácter de longitud, y “ls termca?”, por ejemplo, mostrará “termcap” pero no “termcap.backup”. Aquí tenemos otro ejemplo: /home/diego$ ls hu?o hugo /home/diego$ ls p??o paco /home/diego$ ls ???s luis /home/diego$

2.8 SHELL Por: Carlos Fabio Paz El lenguaje shell es un lenguaje interpretado, en el que se leen líneas de texto (terminadas en \n), se analizan y se procesan. Las líneas a interpretar son leídas de: ●

La entrada estándar (teclado por defecto). En este caso el shell se dice que es un shell interactivo.

Un fichero shell-script.

Los argumentos, con la opción -c al ejecutar el shell. Ejemplo: bash –c "ls –l"

Comunicación

entre

procesos

Por: Dina Perez Aunque en UNIX existe un amplio conjunto de herramientas que permiten intercambiar información entre procesos, a través de la Bourne shell sólo se suministra un conjunto reducido de éstas: tuberías, señales y valores de retorno.

Tuberías

Las tuberías o pipelines son una herramienta de comunicación entre procesos que permiten conectar la salida estándar de un proceso con la entrada estándar de otro. Así todo lo que el proceso (productor) envíe a su salida estándar será tomado por el otro proceso (consumidor) como entrada en el mismo orden en que se generó la información.


Página 201 de 292

La forma de indicar que se quiere emplear una tubería para comunicar dos o más procesos es la siguiente: $ productor | consumidor $ orden_1 | orden_2 |orden_3 | ... Ejemplo: $ banner "hola" | write so25 La salida de la orden banner es utilizada para enviar un mensaje al usuario so25 $

Señales

Una señal es una interrupción software que le avisa al proceso de que se ha producido algún evento. Un proceso puede recibir señales durante su tiempo de ejecución. Las señales son enviadas por el kernel a los procesos, aunque pueden ser generadas por otros procesos, por los usuarios o por el propio kernel. Algunas señales pueden ser interpretadas también como órdenes que recibe el proceso. La orden para enviarle una señal a un proceso es kill: kill Sintaxis: kill [-número_señal] PID Si no se especifica ningún número de señal, kill envía el número 15. Algunos números de señal importantes son: ·

Interrupción. Se genera al pulsar Ctrl+c

·

9 Terminación abrupta del proceso

·

15 Terminación controlada del proceso

Valores de Retorno

Todo proceso que finaliza devuelve un número entero entre 0 y 255 que representa la causa por la que terminó: 0: terminación correcta del proceso. Representa un valor lógico verdadero cuando se usa dentro de una comparación o iteración. Cualquier otro valor distinto de 0 se considera como falso.


Página 202 de 292

1: indica terminación anormal del proceso (fallo).

129 ... 160: El proceso terminó como consecuencia de una señal. Restando 128 al valor de retorno se obtiene el código de la señal que terminó el proceso. La variable de entorno ? mantiene el valor de retorno de la última orden ejecutada. Ejemplo: $ date 02251295 date: bad conversion $echo El valor de retorno de la última orden fue: $? El valor de retorno de la última orden fue: 2 $

Imagen: Consola Shell Fuente: https://w3.ual.es/~jjfdez/SOA/pract3.html

Entrada y Salida estándar

Entre los recursos asociados a un proceso se encuentra la interfaz estándar de comunicación con el exterior. Esta interfaz consta de tres elementos conocidos como archivos de entrada, salida y errores estándar. En UNIX, cuando un proceso abre un archivo, el kernel le entrega un número entero positivo, conocido como descriptor de archivo, que el proceso utilizará para realizar operaciones posteriores de E/S. Los descriptores asociados a los archivos estándar son:

Imagen: Tabla de Descriptor


Página 203 de 292

Fuente: https://w3.ual.es/~jjfdez/SOA/pract3.html

Los descriptores estándar de entrada, salida y error pueden ser redirigidos para conseguir que la información se envíe o se tome de un archivo en lugar del terminal del usuario.

Redirigiendo la E y S. Redirección de la entrada estándar (<)

Este operador permite redirigir la entrada de datos de un proceso desde un archivo, sustituyendo así al teclado del terminal. Ejemplo: La siguiente orden enviará el contenido del archivo saludo.txt al usuario so99: la orden mail tomará la información necesaria para su funcionamiento (el texto del mensaje) del archivo saludo.txt en lugar del terminal. $ mail so99 < saludo.txt

Redirección de la salida estándar (>, >>):

Estos operadores permiten redirigir la salida de un proceso a un archivo en lugar de la pantalla del terminal. El primero de ellos, >, redirige eliminando el contenido anterior del archivo y el segundo, >>, redirige añadiendo la salida del proceso al final del archivo. En ambos casos el archivo se crea si no existía.

Ejemplo: En este caso la salida de la orden banner no será enviada al terminal, sino que será almacenada en el archivo saludo.txt. $ banner hola > saludo.txt

Redirigiendo no destructiva Usar ``>'' para redireccionar la salida a un fichero es destructivo: en otras palabras, la orden:

Imagen:


Página 204 de 292

Fuente: https://www.ibiblio.org/pub/linux/docs/LuCaS/Manuales-LuCAS/LIPP2/lipp-2.0-betahtml/node248.html

sobreescribe el contenido del fichero file-list. Si en su lugar, redirecciona con el símbolo ``>>'', la salida será concatenada al final del fichero, en vez de sobreescribirlo. Por ejemplo,

Imagen: Fuente: https://www.ibiblio.org/pub/linux/docs/LuCaS/Manuales-LuCAS/LIPP2/lipp-2.0-betahtml/node248.html

añade la salida de la orden ls a file-list. Tenga presente que el redireccionamiento y las canalizaciones son características del intérprete de órdenes --que da soporte al uso de ``>'', ``>>'' y ``|''. No tiene nada que ver con las órdenes propiamente dichas.

Permisos de archivos En Linux, que es un sistema multiusuario, para evitar accesos a archivos y directorios por parte de usuarios no autorizados, se han desarrollado mecanismos de protección. Para cada archivo o directorio, el sistema operativo agrupa todos los usuarios que tienen accesos a la máquina en tres clases básicas: ·

Propietario: Se refiere al usuario que ha creado el archivo o directorio.

· Grupo: Se refiere a todos aquellos usuarios que pertenezcan al mismo grupo de usuarios que el propietario. ·

Otros: Se refiere a cualquier otro usuario.

Los permisos de cualquier archivo o directorio se pueden ver ejecutando a la orden “ls -l”, apareciendo en la primera columna con el formato drwxrwxrwx. El primer carácter es una “d” eb ek casi de que se este listando un directorio y “-” en el caso de un archivo. A continuación, viene los permisos de la lectura “r”, escritura “w” y ejecución “x” para cada una de las clases siendo los tres primeros para el propietario, los tres siguientes para el grupo y los tres últimos para los otros.

Tipos de permisos Además, para cada clase el sistema operativo asigna tres tipos de permisos de acceso: · Permiso de lectura: Se refiere al permiso para poder visualizar el contenido del archivo o directorio. · Permiso de escritura: Se refiere al permiso para poder modificar el contenido del archivo o directorio.


Página 205 de 292

· Permiso de ejecución: Se refiere al permiso para poder ejecutar el archivo o acceder al directorio.

2.8.7

Interpretando los permisos de archivos

Por: José Javier Petzey Coquix Veamos un ejemplo del uso de permisos de archivos. Usando el comando ls con la opción “-l” se mostrará un listado “largo” de los archivos, el cual incluye los permisos. /home/diego/nuevo$ ls -l cosas -rw-r--r-- 1 diego users 505 Mar 13 19:05 paco /home/diego/nuevo$ El primer campo representa los permisos del archivo. El tercer campo es el propietario del mismo (diego), el cuarto es el grupo al cual pertenece el archivo (users) y el último campo es el nombre del archivo (paco). La cadena “-rw-r--r-” nos informa, por orden, los permisos para el propietario, los usuarios del grupo y el resto de los usuarios. El primer carácter de la cadena de permisos (“-”) representa el tipo de archivo. El “-” significa que es un archivo regular, “d” indicaría que se trata de un directorio. Los siguientes tres caracteres (“rw-”) representan los permisos para el propietario del archivo, die o. Éste tiene permisos para leer (r) y escribir (w) en el archivo paco. Como ya mencionamos, además de los permisos de lectura y escritura existe el permiso de ejecución, representado por una “x”. Como hay un “-” en lugar de la “x”, significa que diego no tiene permiso para ejecutar ese archivo. Esto es correcto, puesto que paco no es un programa. Por supuesto, como el archivo es de diego, él puede cambiar los permisos, dándose a sí mismo permiso de ejecución, como veremos más adelante. Los siguientes tres caracteres, “r--”, representan los permisos para los miembros del grupo al que pertenece el archivo (en este caso, users). Como sólo aparece una “r” cualquier usuario que pertenezca al grupo users puede leer este archivo, pero no modificarlo ni ejecutarlo. Los últimos tres caracteres, “r--”, representan los permisos para cualquier otro usuario del sistema (que no sea diego ni pertenezca al grupo users). Nuevamente, como sólo está presente la “r”, los demás usuarios pueden leer el archivo, pero no escribir en él o ejecutarlo. Aquí tenemos otros ejemplos de permisos de grupo. -rwxr-xr-x El propietario del archivo puede leer, escribir y ejecutar el archivo. Los usuarios pertenecientes al grupo del archivo y todos los demás usuarios pueden leer y ejecutar el archivo.


Página 206 de 292

-rw------El propietario del archivo puede leer y escribir. Nadie más puede acceder al archivo. -rwxrwxrwx Todos los usuarios pueden leer, escribir y ejecutar el archivo. drwxr-xr-x El propietario del directorio puede leer, escribir y entrar al mismo. Los usuarios pertenecientes al grupo del directorio y todos los demás usuarios pueden leer e ingresar al directorio.

2.8.8

Programación del Shell

Por: José Javier Petzey Coquix El intérprete de comandos o shell es un programa que permite a los usuarios interactuar con el sistema, procesando las órdenes que se le indican. Los comandos invocables desde el shell pueden clasificarse en internos (corresponden en realidad a órdenes interpretadas por el propio shell) y externos (corresponden a ficheros ejecutables externos al shell). Además de comandos, los shells ofrecen otros elementos para mejorar su funcionalidad, tales como variables, funciones o estructuras de control. El conjunto de comandos internos y elementos disponibles, así como su sintaxis, dependerá del shell concreto empleado. Además de utilizar el shell desde la línea de comandos (basada en el prompt como la indicación del shell para anunciar que espera una orden del usuario), puede emplearse para la interpretación de shell-scripts. Un shell-script o "guión de órdenes" es un fichero de texto que contiene un conjunto de comandos y órdenes interpretables por el shell. En los S.O. Unix existen múltiples implementaciones de shell. Atendiendo al shell del que proceden y a su similitud sintáctica (incluyendo sus comandos internos), los shells de Unix pueden clasificarse en dos grandes familias: ● sh (Bourne Shell): este shell fue usado desde las primeras versiones de Unix (Unix Versión 7). Recibe ese nombre por su desarrollador, Stephen Bourne, de los Laboratorios Bell de AT&T. A raíz de él han surgido múltiples shells, tales como zsh (Z shell), ash (almquist shell), bash (Bourne again shell), dash (Debian almquist shell) o ksh (Korn shell). Por su mayor uso pueden destacarse: bash: fue desarrollado para ser un superconjunto de la funcionalidad del Bourne Shell (en la que incluye funcionalidades de ksh y csh), siendo el intérprete de comandos asignado por defecto a los usuarios en las distribuciones de Linux, por lo que es el shell empleado en la mayoría de las consolas de comandos de Linux. Se caracteriza por una gran funcionalidad adicional a la del Bourne Shell. Como ficheros personales de los usuarios emplea $HOME/.bashrc y .bash_profile. dash (Debian almquist shell), derivado directo de ash, se caracteriza por ser mucho más ligero (depende de menos bibliotecas) y rápido que otros shells, tales como bash, aunque con menos características funcionales. El fichero personal del usuario es $HOME/.profile.


Página 207 de 292

ksh (Korn shell): destaca por sus funciones avanzadas para manejar archivos, pudiendo competir con lenguajes de programación especializados tales como awk o perl. Bourne Shell ha llegado a convertirse en un estándar de facto de tal modo que todos los sistemas Unix tienen, al menos, una implementación del Bourne Shell (o un shell compatible con él), ubicada en /bin/sh. En el caso concreto de los S.O.’s UNIX Linux, no existe ninguna implementación del Bourne Shell, manteniéndose la entrada /bin/sh (así como su manual man sh) como un enlace simbólico a una implementación de shell compatible. En concreto: En algunos S.O’s Linux se enlaza a /bin/bash. En Debian, desde Debian Lenny "5.0" (en Ubuntu desde la versión 6.10) se enlaza a /bin/dash: de este modo, estas distribuciones pretenden hacer uso de: dash: para los shell scripts empleados en el arranque del sistema, aprovechando la mayor rapidez de este intérprete. bash: en las consolas de comandos y scripts de servicios de los usuarios, de modo que éstos puedan aprovechar la mayor funcionalidad que este intérprete ofrece. ● csh (C shell): caracterizado por presentar una sintaxis muy parecida a la del lenguaje de programación C. Como shell derivados destaca tcsh. Estos shell cuentan con un nivel de uso muy inferior respecto a los de la familia Bourne Shell. Para intentar homogeneizar esta diversidad de shells, el IEEE definió un estándar de "intérprete de comandos" bajo la especificación POSIX 1003.2 (también recogida como ISO 9945.2). La creación de dicho estándar se basó en la sintaxis que presentaban múltiples shells de la familia Bourne shell (el propio Bourne Shell de Unix Versión 7, implementaciones en UNIX System V y BSD, así como ksh). Esto ha llevado a que la gran mayoría de los shells derivados del Bourne Shell, tales como bash, dash o ksh, den soporte a este estándar POSIX (mientras que los derivados del csh no). En concreto: bash: respeta completamente el estándar POSIX, sobre el que añade un número considerable de extensiones (estructura select, arrays, mayor número de operadores,...). dash: conforme al estándar POSIX IEEE 1003.2, sólo ampliado con algunas extensiones Berkeley. De forma precisa, tal como indica el manual del intérprete dash de su sistema (man dash), la línea de desarrollo de dash pretende que éste satisfaga el estándar POSIX de shells IEEE 1003.2, propósito casi logrado en la actualidad (sólo presenta algunas características faltantes, como la variable $LINENO).

2.8.9

Administración del S.O.

Por: José Javier Petzey Coquix La gestión de Linux es el proceso de monitorear y gestionar los usuarios y equipos de Linux dentro de una red de forma remota, desde una ubicación central. Hoy en día, las empresas utilizan cada vez más el SO Linux y está siendo ampliamente aceptado como una alternativa a los sistemas operativos tradicionales debido a la facilidad de instalación y uso. Linux ofrece más flexibilidad para aplicar configuraciones personalizadas y el hecho de que sea un sistema operativo de código abierto es uno de los principales factores que fomentan su adopción.


Página 208 de 292

Una de las tareas principales que debe realizar un administrador es gestionar todos los equipos dentro de una red, lo que a menudo consume mucho tiempo y esfuerzo. Desktop Central ayuda a los administradores a aumentar su eficiencia, ya que permite automatizar todas las actividades de gestión de desktops y gestionar distintos sistemas operativos desde una única consola. Funciones compatibles Desktop Central ofrece las siguientes funciones para simplificar la gestión de Linux en su empresa: Gestión de activos La función de gestión de activos de Desktop Central proporciona información actualizada sobre el software y el hardware utilizados en toda la organización junto con la gestión de inventario basada en la web. Analice los sistemas periódicamente para recopilar detalles completos sobre el hardware y software. Gestione las licencias de software, el cumplimiento y la información de garantía. Envíe alertas de notificación por correo electrónico sobre los eventos específicos del hardware y software. Obtenga informes completos sobre todo lo anterior y mucho más.

Gestión de parches La función de gestión de parches ofrece varias opciones para garantizar que todos los equipos Linux de su red estén actualizados con los parches de seguridad críticos / recientes para Linux. Implementación de parches automatizada para Linux y aplicaciones de terceros. Informes y auditorías de cumplimiento de parches. Implementación de software Desktop Central ofrece 3500 plantillas que permiten a los administradores distribuir, instalar, actualizar y desinstalar aplicaciones de software de forma remota y automática. Permite instalar / desinstalar aplicaciones basadas en DEB. Personalice y programe la implementación del software fuera del horario laboral.

Configuraciones Ejecute scripts personalizados como configuraciones para realizar fácilmente las tareas administrativas repetitivas. Instale o desinstale parches y software según sea necesario. Muestre mensajes a los usuarios deseados.

Control remoto Acceda de forma remota a los equipos en la LAN y WAN usando Active X y HTML5 Viewer.


Página 209 de 292

Solicite la confirmación del usuario antes de proporcionar el acceso a un desktop remoto. Soporte multimonitor con opciones simples de intercambio. Nota: El control remoto solo funcionará si el componente de la GUI de X Windows está disponible en los equipos de los agentes. Informes detallados para la gestión de desktops Obtenga acceso a informes exhaustivos sobre los detalles de los activos, la gestión de parches, la implementación de software e informes personalizados.

2.8.10

Distribuciones de Linux

Por: José Javier Petzey Coquix Ubuntu Ubuntu es una distribución de Linux basada en Debian. Está desarrollada por Canonical y una comunidad de desarrolladores. Tiene tres ediciones oficiales: Desktop, Server y Core, que pueden ejecutarse tanto en ordenador como en una máquina virtual. Más del 33 % de los sitios web Linux utilizan Ubuntu, según los datos de W3Techs. Su crecimiento desde 2010 ha sido asombroso. También es la distribución más popular entre los proyectos de cloud computing. Debian Debian es un sistema operativo (OS) de código abierto. Esta distribución fue anunciada inicialmente por Ian Murdock en 1993 como «Debian Linux Release». El proyecto Debian es una comunidad de desarrolladores y usuarios que mantienen el OS GNU basado en software de código abierto. Actualmente, los sistemas Debian utilizan el kernel de Linux o el kernel de FreeBSD. Sin embargo, también están trabajando en ofrecer Debian para otros kernels. Principalmente, GNU Hurd. CentOS CentOS es una distribución de Linux basada en el código fuente de la distribución comercial Red Hat Enterprise Linux (RHEL). Se lanzó en 2004 y está respaldado por una creciente comunidad. Es una apuesta segura para los que buscan un código de gran calidad. Pero CentOS 8 será su última versión. En 2019, Red Hat anunció que CentOS Linux sería reemplazado por CentOS Stream una plataforma de desarrollo upstream para RHEL. A partir de este cambio de estrategia han aparecido nuevas alternativas open source; como Rocky Linux, fundado por Gregory Kurtzer, fundador del proyecto CentOS. Red Hat Enterprise Linux (RHEL) Red Hat Enterprise Linux (RHEL) es una distribución comercial de Linux desarrollada por Red Hat. Tiene una versión de servidor y una versión de escritorio. Como utiliza un software de código abierto, publicado bajo Licencia Pública General, ponen el código a disposición del público a través de CentOS. Red Hat ha patrocinado el proyecto CentOS desde 2014. Gentoo Gentoo es una distribución de Linux con un modelo de rolling release (liberación continua). Gentoo Linux fue creado originalmente por Daniel Robbins. Recibe su nombre del «pingüino gentoo», que se caracteriza por nadar rápido, como un guiño a su potencial. Es una opción interesante para usuarios de Linux que buscan un control absoluto del software. Los usuarios de Gentoo tienen un gran control sobre los servicios


Página 210 de 292

instalados y en ejecución en su ordenador. Pueden personalizar y optimizar enormemente el sistema. Fedora Fedora es una distribución de Linux desarrollada por el proyecto Fedora patrocinado principalmente por Red Hat, con soporte de otras compañías. Está desarrollada y mantenida por la comunidad y es una fuente upstream de la distribución comercial RHEL. Fedora suele disponer de versiones más modernas del software, consideradas «no estables», que luego se incluyen en RHEL. Hay diferentes ediciones de Fedora disponibles: Workstation, Server, CoreOS, Silverblue y IoT. Fedora Linux se lanzó en 2003. OpenSUSE OpenSUSE es una distribución de Linux patrocinada por SUSE Software Solutions Germany GmbH y otras compañías. Anteriormente se conocía como SUSE Linux. OpenSUSE tiene una versión con rolling release, Tumbleweed, y una versión con actualizaciones normales, Leap. Scientific Linux Scientific Linux es otra distribución de Linux basada en el software gratuito y de código abierto de RHEL. Desarrollado por Fermilab, CERN, DESY y ETH Zurich. En abril de 2019, anunciaron su descontinuación. No obstante, su última versión, Scientific Linux 7, contará con actualizaciones de mantenimiento hasta junio de 2024. CloudLinux CloudLinux es una distribución de Linux desarrollada por CloudLinux, Inc. Está basada en CentOS y utiliza el kernel de OpenVZ y el gestor de paquetes RPM. Está destinado a proveedores de hosting compartido y centros de datos. Destaca por mejorar la estabilidad, densidad y seguridad del servidor. La primera versión de CloudLinux OS se lanzó en 2010. Elementary OS Elementary OS es una distribución de Linux basada en Ubuntu. El OS está desarrollado y mantenido por Elementary, Inc. Su objetivo es ser una alternativa rápida, abierta y respetuosa con la privacidad a Windows y MacOS. Linux Mint Linux Mint es una distribución impulsada por la comunidad y basada en Ubuntu. Esta distribución comenzó en 2006. El proyecto Linux Mint lo creó inicialmente Clément Lefèbvre. El código fuente de Linux Mint OS está disponible en GitHub. La mayor parte del desarrollo del sistema operativo está hecho en Python. Arch Linux Arch Linux es una distribución de Linux basada en 5 principios: la simplicidad, la modernidad, el pragmatismo, el usuario en el centro y la versatilidad. Las actualizaciones siguen un modelo de rolling release. Arch Linux Arch Linux es una distribución de Linux basada en 5 principios: la simplicidad, la modernidad, el pragmatismo, el usuario en el centro y la versatilidad. Las actualizaciones siguen un modelo de rolling release. Oracle Linux Oracle Linux (OL) es una distribución de Linux empaquetada y distribuida por Oracle; bajo licencia GNU GPL desde 2006. Anteriormente se conocía como Oracle Enterprise


Página 211 de 292

Linux (OEL). Está basada en el código fuente de RHEL. Oracle Linux está disponible con dos kernels de Linux: el Red Hat Compatible Kernel (RHCK) y el Unbreakable Enterprise Kernel (UEK). Slackware Slackware es una de las distribuciones de Linux más antiguas, creada por Patrick Volkerding en 1993. Muchas distribuciones se han basado en Slackware; por ejemplo, las primeras versiones de la distribución SUSE Linux. En sus origines se basó en el Softlanding Linux System (SLS), una de las distribuciones originales de Linux más populares. Slackware no ha sufrido actualizaciones desde 2016.

Mageia Mageia es un sistema operativo de tipo Unix y de código abierto que comenzó como un fork de Mandriva Linux en 2010. Fue creado por antiguos empleados de Mandriva S.A. y algunos miembros de la comunidad Mandriva. Destaca por ser un OS seguro, estable y sostenible. Además, proporciona un repositorio de software realmente grande. Su primera versión, Mageia 1, se lanzó en junio de 2011. Clear Linux Clear Linux es una distribución de Linux de código abierto creada por Intel. Se actualiza siguiendo un modelo de rolling release. El OS está optimizado para rendimiento y seguridad desde la nube hacia el Edge; así como para los productos de Intel. Clear Linux está dirigido a profesionales IT, DevOps, Cloud y AI; no está diseñada como una distribución de uso general. Su código fuente está disponible en GitHub. Rocky Linux Rocky Linux es una distribución de Linux open source, basada en el código fuente de la distribución comercial RHEL. Esta distribución de Linux está liderada por Gregory Kurtzer fundador de CentOS, junto con Rocky McGaugh. Rocky Linux tiene como objetivo llenar el hueco que deja Linux como distribución downstream de RHEL, mantenida por la comunidad, tras la discontinuación de CentOS 8 en diciembre de 2021. AlmaLinux AlmaLinux es una distribución de Linux de código abierto y gratuita compatible con RHEL. Se centra en la estabilidad a largo plazo y está gobernada por la comunidad; con actualizaciones regulares. AlmaLinux OS está patrocinada por CloudLinux Inc. y respaldada por otros sponsors. También es una buena alternativa para quien actualmente utiliza CentOS, tras su discontinuación a finales de 2021.


Página 212 de 292

Capítulo III 1.1. Instalación de MySQL Workbench Por: José Javier Petzey Coquix Paso 1 Descargar el Instalador: Ve a la página de Oficial de MySQL y nos direccionamos a la página de descargas y clickeando la opción final de MySQL Community (GPL) Downloads para luego seleccionar la opción de MySQL Workbench y ya seleccionamos la versión para luego darle a download.

Paso 2: Abre el archivo de instalación MSI de tu carpeta de descargas y haz clic en Next para iniciar la instalación.

Fuente: https://support.academicsoftware.eu/hc/article_attachments/360018031818/1.PNG

Paso 3: Haz clic en Next para instalar el software en la ubicación predeterminada. También puedes cambiar la carpeta de destino.

Fuente: https://support.academicsoftware.eu/hc/article_attachments/360018031798/2.PNG


Página 213 de 292

Paso 4: Haz clic en Next para instalar todas las funcionalidades del programa o elige Custom para los usuarios avanzados.

Fuente: https://support.academicsoftware.eu/hc/article_attachments/360018031838/4.PNG

Paso 5: Haz clic en Install para iniciar la instalación.

Fuente: https://support.academicsoftware.eu/hc/article_attachments/360018031858/5.PNG

Paso 6: Una vez finalizada la instalación, marca la casilla para lanzar el programa y haz clic en Finish. El programa está instalado y listo para usar.

Fuente: https://support.academicsoftware.eu/hc/article_attachments/360018031898/7.PNG

1.2 Instalación de Wamp o Xamp Por: José Javier Petzey Coquix Lo primero que vamos a hacer es descargar WAMP, así que accede a la página oficial de WAMP y haz clic en Download para ver las versiones de WAMP disponibles.

Fuente: https://www.neoguias.com/wp-content/uploads/2019/08/instalar-wamp-windows-web-1.jpg


Página 214 de 292

Ahora tendrás que seleccionar la versión de WAMP adecuada. Verás una versión de 32 bits (x32) y otra de 64 bits (x64). Deberás descargarte una versión u otra dependiendo de si tu sistema operativo es de 32 o de 64 bits. Si tu ordenador tiene menos de 10 años, seguramente sea de 64 bits.

Fuente: https://www.neoguias.com/wp-content/uploads/2019/08/instalar-wamp-windows-web-2.jpg

Ahora te tendrás que descargar el instalador. Cuando hagas clic en una de las versiones, verás una series de avisos indicando ciertas incompatibilidades con versiones anteriores de WAMP, además de los requerimientos anteriores que ya hemos visto. Haz clic en download directly para descargar el instalador de WAMP. Serás redirigido a SourceForge y la descarga comenzará automáticamente.

Fuente: https://www.neoguias.com/wp-content/uploads/2019/08/instalar-wamp-windows-web-3.jpg

Tras descargar WAMP, vamos a ver cómo instalarlo. Una vez te hayas descargado el instalador de WAMP debes ejecutarlo. Localiza el archivo descargado en la carpeta de descargas de tu navegador, que seguramente sea la carpeta de descargas de tu carpeta de usuario o el escritorio, y ejecútalo. Si se muestra un mensaje indicando que debes proporcionar permisos de administrador para ejecutar el instalador, acéptalo. Primero tendrás que seleccionar el idioma de WAMP. Si tu idioma no está en la lista (el español no lo está por ahora), selecciona inglés o aquel con el que mejor te defiendas. Haz clic en OK para continuar.

Fuente: https://www.neoguias.com/wp-content/uploads/2019/08/instalar-wamp-windows-0.png

Marca la casilla correspondiente «I accept the agreement» para aceptar el acuerdo de licencia de WAMP. Continúa haciendo clic en Siguiente (Next).

Fuente: https://www.neoguias.com/wp-content/uploads/2019/08/instalar-wamp-windows-1.png

Ahora verás un mensaje en el que se indican los requisitos de WAMP y aquellos componentes que necesitas tener instalados en tu sistema para que WAMP funcione correctamente. Básicamente, se especifican las versiones de Microsoft VC++ que


Página 215 de 292

debes tener instaladas. Si continuas con la instalación sin instalar estos paquetes podrás finalizar el proceso, pero WAMP no funcionará, puesto que se mostrará un mensaje indicando que faltan ciertos archivos en el sistema. Haz clic en Siguiente (Next) para continuar.

Fuente: https://www.neoguias.com/wp-content/uploads/2019/08/instalar-wamp-windows-2.png

Introduce el nombre del directorio en el que quieres instalar WAMP. En este caso hay una particularidad que debes saber. Es más que recomendable instalar WAMP en una carpeta del directorio raíz de tu disco duro. El nombre del directorio no debe contener espacios. Si instalas WAMP en un subdirectorio, éste no debe ser el de Archivos de programa y, además, ningún directorio de la ruta hasta el directorio de instalación de WAMP debe contener espacios en su nombre. Clic en Siguiente (Next) para continuar.

Fuente: https://www.neoguias.com/wp-content/uploads/2019/08/instalar-wamp-windows-3.png

Seguidamente, introduce la carpeta del menú de inicio en la que quieres que se creen los accesos directos a WAMP. Haz clic en Siguiente (Next) para continuar.

https://www.neoguias.com/wp-content/uploads/2019/08/instalar-wamp-windows-4.png

Finalmente, confirma los detalles introducidos y haz clic en Siguiente (Next) para continuar. La instalación dará comienzo, pero durante el proceso tendrás que seleccionar el navegador que quieres que WAMP use por defecto y el editor de texto con el que se abrirán los archivos de configuración de WAMP cuando los selecciones. Si quieres establecer que Chrome se el navegador que WAMP use por defecto, tendrás que seleccionar el archivo ejecutable de Chrome, que se suele encontrar el la ruta «C:\Archivos de programa (x86)\Google\Chrome\Application». Navega hasta este directorio y haz clic en el archivo chrome.exe para seleccionarlo. Si no seleccionas ninguno, se utilizará por defecto Internet Explorer. El editor de texto que se usará por defecto es el bloc de notas de Windows. Para que WAMP abra los archivos de configuración con otro editor, tendrás que navegar hasta la ruta en la que se encuentra el archivo ejecutable del editor y hacer clic en él. Si no


Página 216 de 292

sabes qué editor utilizar, una de las mejores alternativas al bloc de notas para Windows es Notepad++.

Fuente: https://www.neoguias.com/wp-content/uploads/2019/08/instalar-wamp-windows-6.png

Cuando termine la instalación. verás un mensaje de confirmación. Haz clic en Finalizar (Finish) para cerrar el instalador. Y con esto, WAMP estará ya instalado en tu sistema.

Descargar Xampp En el navegador web, visite Apache Friends y descargue el instalador XAMPP.

Fuente: https://disenowebakus.net/imagenes/xampp-descarga.jpg PASO 1: EJECUTAR EL ARCHIVO .EXE Una vez descargado el paquete, puedes ejecutar el archivo .exe haciendo doble clic en él.

PASO 2: DESACTIVAR EL PROGRAMA ANTIVIRUS Se recomienda desactivar el programa antivirus hasta que todos los componentes estén instalados, ya que puede obstaculizar el proceso de instalación.

Fuente: https://disenowebakus.net/imagenes/desactivar-antivirus-instalacion-xampp.jpg

PASO 3: DESACTIVAR EL UAC También el Control de Cuentas de Usuario (User Account Control, UAC) puede interferir en la instalación, ya que limita los derechos de escritura en la unidad de disco C:\ Para saber cómo desactivar temporalmente el UAC puedes dirigirte a las páginas de soporte de Microsoft.


Página 217 de 292

Fuente: https://disenowebakus.net/imagenes/uac-contro-cuentas-microsoft-instalacion-xampp.jpg

PASO 4: INICIAR EL ASISTENTE DE INSTALACIÓN Una vez superados estos pasos, aparece la pantalla de inicio del asistente para instalar XAMPP. Para ajustar las configuraciones de la instalación se hace clic en “Next” (siguiente).

Fuente; https://disenowebakus.net/imagenes/instalador-xampp.jpg

PASO 5: SELECCIÓN DE LOS COMPONENTES DEL SOFTWARE En la rúbrica “Select components” se pueden excluir de la instalación componentes aislados del paquete de software de XAMPP.

Se recomienda la configuración estándar para un servidor de prueba local, con la cual se instalan todos los componentes disponibles. Confirma la selección haciendo clic en “Next”.

Fuente: https://disenowebakus.net/imagenes/componentes-xampp.jpg

PASO 6: SELECCIÓN DEL DIRECTORIO PARA LA INSTALACIÓN En este paso se escoge el directorio donde se instalará el paquete. Si se ha escogido la configuración estándar se creará una carpeta con el nombre xampp en C:\

Fuente; https://disenowebakus.net/imagenes/directorio-instalacion-xampp.jpg

PASO 7: INICIAR EL PROCESO DE INSTALACIÓN El asistente extrae los componentes seleccionados y los guarda en el directorio escogido en un proceso que puede durar algunos minutos. El avance de la instalación se muestra como una barra de carga de color verde.


Página 218 de 292

Fuente: https://disenowebakus.net/imagenes/instalar-xampp.jpg

PASO 8: CONFIGURAR FIREWALL Durante el proceso de instalación es frecuente que el asistente avise del bloqueo de Firewall. En la ventana de diálogo puedes marcar las casillas correspondientes para permitir la comunicación del servidor Apache en una red privada o en una red de trabajo.

Fuente: https://disenowebakus.net/imagenes/configurar-firewall-xampp.png

PASO 9: CERRAR LA INSTALACIÓN Una vez extraídos e instalados todos los componentes puedes cerrar el asistente con la tecla “Finish”. Para acceder inmediatamente al panel de control solo es necesario marcar la casilla que pregunta si deseamos hacerlo.

Fuente: https://disenowebakus.net/imagenes/finalizar-instalacion-xampp.jpg

1.3. JDBC con MySQL Por: Daniel Estuardo Puluc Patzán JDBC, son siglas en inglés, su significado sería el siguiente: Java DataBase Connectivity, básicamente esta es una herramienta que utilizamos, como hace referencia su nombre, en Java, es un grupo o paquete de clases que nos permiten establecer y acceder a distintos gestores de bases de datos o SGBS. Nos brinda múltiples funciones, como abrir la conexión, enviar consultas hacia una base de datos, mostrarnos los resultados de las consultas. Para poder establecer una conexión con una base de datos en MySQL, debemos seguir una serie de pasos previos:


Página 219 de 292

1. El primero sería descargar nuestro Driver JDBC, se puede descargar desde la página de MySQL, se ve de esta manera:

“Interfaz de la descarga de driver JDBC” Fuente: Daniel Puluc

2. Cuando ya tengamos los archivos necesarios, tendremos uno parecido al de la imagen de abajo, creamos una carpeta en nuestro proyecto Java, y lo copiamos ahí dentro.

“Archivo neceario de conexión JDBC” Fuente: https://www.ecodeup.com/wp-content/uploads/2016/11/archivo-driver-jdbc-mysql.jpg

3. Como siguiente paso, configuramos el “claspath”, en palabras simples, vamos a importar las clases de este paquete a nuestro proyecto ya como tal, primero vamos a dirijirnos a las librerías del sistema, luego vamos a build path y finalmente a configure path.

“Pasos necesarios para importar nuestras clases” Fuente: https://www.ecodeup.com/wp-content/uploads/2016/11/agregar-el-driver-al-claspath.jpg

4. Ya dentro de la configuración de vamos a añadir un “JAR” externo, o un ejecutable para nuestro proyecto, en este caso sería nuestro archivo conectro a MySQL.


Página 220 de 292

“Importando nuestro ejecutable de Java hacia el proyecto” Fuente: https://www.ecodeup.com/wp-content/uploads/2016/11/agregar-el-driver-al-claspath-1.jpg

Teniendo esto configurado tenemos lo siguiente, que sería la cadena de conexión: “jdbc:mysql://host:port/database?user=nombredeusuario&password=contraseña” Para entender mejor esto, host es la dirección del servidor en nuestro caso será localhost, port, es el puerto que utiliza nuestra comunicación, será el 3306, generalmente es el que brinda el servidor que usemos, database es el nombe de la base de datos, user es el nombre de usuario de la base de datos y password es la contraseña, generalmente nunca hay contraseña, pero en caso de que tengamos alguna, deberemos concatenarla ahí.

“Ejemplo de como realizar una conexión a una base de datos” Fuente: https://www.ecodeup.com/como-conectarse-a-mysql-desde-java-utilizando-jdbc-driverdesde-cero/

1.4. Formularios de registros Por: Daniel Estuardo Puluc Patzán

Para poder crear formularios en Java se requiere usar un framework, llamado Swing, o mejor conocido como Java Swing, Swing es un conjunto de componentes o herramientas integradas que permiten poder colocar herramientas gráficas y personalizar un formulario en este caso de aplicaciones que se basan en ventanas. Los componentes que nos proporciona este framework, son livianos y proporcionan buenas utilidades como pueden ser tablas, botones, listas, selectores, entre muchas otras herramientas que podemos utilizar.


Página 221 de 292

“Ejemplo de realización de una ventana con controles Swing” Fuente: https://jagonzalez.org/wp-content/uploads/2013/10/mostrar-y-ocultar-jpanel-en-java.png

Para crear un formulario de registro simple, pues necesitamos algunos componentes que nos brinda swing, así que primeramente los vamos a importar:

“Importando herramientas de Swing” Fuente: http://www.edu4java.com/es/swing/swing3.html

Luego vamos a crear los controles que nos permitan tener nuestro espacio de registro para poder ingresar datos:

“Creando herramientas de Swing” Fuente: http://www.edu4java.com/es/swing/swing3.html

“Creando herramientas de Swing 1” Fuente: http://www.edu4java.com/es/swing/swing3.html

En las imágenes de arriba, vemos el código con el cuál creamos cada uno de nuestros componentes, les añadimos sus propiedades de tamaño, posición y sus nombres de


Página 222 de 292

referencia. Únicamente nos quedaría mandar a llamarlos a nuestro main principal, para que puedan ser mostrados por pantalla:

“Llamando al main principal” Fuente: http://www.edu4java.com/es/swing/swing3.html

En el main creamos el espacio para los controles y les asignamos un nombre, asignamos un tamaño al formulario, añadimos el evento para cuándo se cierre nuestro formulario y los controles irán en un panel, por lo tanto, creamos un jpanel, lo añadimos al frame y dentro de él añadimos los controles, finalmente hacemos visible nuestro frame.

1.5. Consultas Por: Daniel Estuardo Puluc Patzán

Una de las tantas cosas que nos permitirá realizar una relación entre Java y MySQL, son las consultas, una consulta es una operación que se realiza con una serie de comandos en lenguaje DML o Data Manipulation Language, que es básicamente una serie de sentencias que se nos habilitan dentro de este marco de base de datos, para poder interactura con ella, y permiten ya sea insertar información dada, visualizar la información que nosotros ya tenemos en nuestras tablas, actualizar registros en nuestras tablas, eliminar registros en nuestras tablas. Las sentencias básicas que tenemos son: Delete, Update, Insert y Select, las sentencias que afectarán directamente la base de datos, serán las tres primeras que mencionamos, ya que select únicamente puede mostrar los datos que tenemos en nuestra base de datos, mas no puede alterar el contenido en ellas únicamente realizará la operación de mostrarnos, se le pueden agregar parámetros. 1.5.1. Consulta Select La consulta Select nos permitirá visualizar los datos de una tabla que hayamos creado, aunque se pueden usar diversos parámetros también, para hacer selecciones mucho más específicas, la sintaxis será de la siguiente manera:

“Consulta Select en MySQL” Fuente: https://codigosql.top/mysql/consultas/

“Consulta Select en MySQL espcífica” Fuente: https://codigosql.top/mysql/consultas/

En la consulta de arriba, se realiza una selección mucho más específica en base a la consulta select, sobre lo que se quiere ver.


Página 223 de 292

1.5.2. Consulta Insert La consulta Insert, nos permite insertar o ingresar registros en una tabla previamente creada, para utilizarlo, se sigue la siguiente sintaxis:

“Consulta Insert en MySQL” Fuente: https://www.juanonlab.com/blog/es/consultas-sql-para-mysql

1.5.3. Consulta Update Esta consulta permite cambiar datos en una tabla, específicamente nos permite seleccionar por medio de algún campo de referencia, un registro específico en el que queramos cambiar o modificar alguno de los datos que en este se presentan, para ello, usamos la siguiente sintaxis:

“Consulta Update en MySQL” Fuente: https://www.juanonlab.com/blog/es/consultas-sql-para-mysql

Para Update hacemos uso de una palabra que es “Where”, básicamente estamos diciendo en la consulta de arriba: “Actualizar el conjunto de datos “Apellido 2”, dónde el nombre es “Juan” y el Apellido es “Pardo”, nos basamos en otros dos campos de referencia para que encuentre cuál es el Apellido2 que tiene que cambiar específicamente. 1.5.4. Consulta Delete La consulta Delete, nos permite borrar un conjunto de datos o información específica de una tabla, basándonos al igual que en la consulta Update, en los datos que tengamos después del Where para hacer referencia al conjunto específico que queramos borrar en nuestra tabla. La sintaxis es la siguiente:

“Consulta Delete en MySQL” Fuente: https://www.juanonlab.com/blog/es/consultas-sql-para-mysql

1.6. Formularios con consultas Por: Daniel Estuardo Puluc Patzán Podemos utilizar consultas en Java y MySQL hacia una base de datos, para ver un ejemplo de como podemos realizar una consulta, utilizaremos la sentencia Insert desde nuestro proyecto o aplicación de Java. Primeramente, debemos importar las librerías en nuestro proyecto de la siguiente manera:


Página 224 de 292

“Importar librerías de Swing” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Entre las librerías que necesitamos tenemos las que se utilizan para las herramientas de Swing, y las librerías de SQL, y todas las operaciones que nos permiten realizar estas librerías. Lo siguiente, sería iniciar o cargar nuestros componentes del driver, para esto utilizaremos el siguiente método, evaluará si puede cargar el driver y si no, nos hará saber por medio de la excepción, cuál es el posible error que puede presentarnos.

“Importar driver de MySQL” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o

Luego empezamos a crear la interfaz, lo primero que creamos será un panel, luego vamos a crear dos label indicando la descripción y otro indicando el precio, cada uno identificando a un Jtextfield que sirve para estos datos, todos van añadidos al panel que creamos al inicio. Finalmente creamos el botón Alta que es dónde irá nuestra consulta para insertar datos. No se logra visualizar, pero justo debajo de toda la interfaz, vamos a cargar el método con el driver, para que nos permita realizar operaciones entre ambos sistemas.

“Creación de la interfaz” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Lo primero que tendremos en la consulta será lo siguiente:

“Acción del botón” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Lo primero será leer la acción que realizará el botón, en esa línea que vemos arriba. “Método para realizar la acción al dar clic” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Luego abrimos el método que nos dirá que deberá hacer el botón al momento de hacer clic.


Página 225 de 292

“Consulta desde Java hacia MySQL” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Lo primero será iniciar un try catch para capturar cualquier error que pueda aparecernos, dentro del try, inicializamos una nueva conexión con el driver, obtenemos la conexión a partir de los datos de la conexión. “Consulta desde Java hacia MySQL 2” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

En la parte de arriba vemos primero que obtenemos por medio de Statement, los recursos necesarios para realizar las consultas por medio de la conexión, en la variable donde almacenamos la función para ejecutar sentencias, y ejecutamos la consulta dentro de los paréntesis, que es un insert. Seleccionamos la tabla y los campos y luego seleccionamos que valores ocuparán estos campos, que serán los Jtextfield que creamos en la interfaz, finalmente cerramos la conexión para evitar algún error por dejar la conexión abierta.

“Consulta desde Java hacia MySQL 3” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Finalmente, limpiamos nuestros Jtextfield, y posteriormente, creamos la excepción, por medio de SQL Exception, que nos arrojará algún posible error con las consultas.

“Consulta desde Java hacia MySQL 3” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

1.7. Consulta de tabla de MySQL Por: Daniel Estuardo Puluc Patzán


Página 226 de 292

Para consultar una tabla por medio de Java, vamos a utilizar el mismo ejemplo de arriba, pero ahora veremos cómo se consulta una tabla por medio de un campo específico.

“Consulta hacia tabla en MySQL” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Básicamente, ya tenemos elaborado lo del botón llamado “Alta”, o botón insertar, ahora pasemos a ver como podemos ver que tiene la tabla de MySQL, pero ahora desde nuestra aplicación de Java.

“Botón para consulta de la tabla” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Lo primero que tenemos en este botón de consulta por código es su ActionListener para evaluar si fue presionado, luego lo que realizará si esto retorna como true:

“Botón para consulta de la tabla” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Lo siguiente que tenemos es la consulta directa hacia la tabla para que nos muestre los campos:

“Consulta de la tabla”


Página 227 de 292

Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Arriba vemos que primero, inicializamos un try catch, para capturar cualquier error que se presente, seguido de esto, dentro del try catch, realizamos lo siguiente:

“Consulta de la tabla 2” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Primero obtenemos la conexión, con los respectivos parámetros, obtenemos las funcionalidades para hacer la consulta por medio de Statement, declaramos una variable de tipo Resultset, que obtendrá el conjunto de datos y dentro de esta, utilizamos nuestro variable registro, y executamos la consulta de select, seleccionamos los campos descripción y precio, por medio del código que será el Jtextfield 3 o tf3, si la consulta está correcta o si registro es igual a tru en su parámetro next, nos mostrará por medio de los Jtextfield, los campos seleccionados en la consulta, de lo contrario, nos mostrará por medio de un label, que no existe tal registro, finalmente cerramos la conexión para evitar inconvenientes.

“Consulta de la tabla 3” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

En la imagen de arriba declaramos las excepciones de SQL para utilizar en el catch y que nos muestre que error específicamente es. Por último, solamente queda, darle una posición al botón, añadir el control, creamos el label que señala al Jtextfield donde va el código, lo añadimos, creamos el Jtextfield, con sus propiedades y añadimos, cabe mencionar, que estos deben crearse antes de la consulta, porque lógicamente, sin estos controles no se podrá hacer la consulta.

“Consulta de la tabla (diseño)” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

Finalmente, ahora sí podemos visualizar en los Jtextfield los campos que se encuentran por medio de ese código:


Página 228 de 292

“Consulta de la tabla (interfaz)” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

1.8. Leer resultados Por: Daniel Estuardo Puluc Patzán La función utilizada para leer los resultados es “ResultSet”.

“Ejemplo de ResultSet” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=133&punto=&inici o=

ResultSet, contiene dentro de él los registros leídos de la base de datos. Proporciona varios métodos para obtener los datos de correspondientes a una fila de una tabla. Este objeto se puede utilizar para ejecutar una consulta y examinar los resultados de la consulta. Este objeto contiene estructuras de datos, básicamente el objeto logra ordenar una consulta en en filas y columnas, contiene de esta manera, todas las filas que satisfacen las condiciones de una sentencia que hayamos ingresado para ejecutar. Utiliza sus métodos get que son los que permiten el acceso a las diferentes columnas de las filas. En la consulta anterior, se utiliza una función dentro de esta clase, que es next, básicamente lo que hace es analizar la consulta y sí el puntero se mueve, es decir, si el registro si existe para que el puntero avance, devuelve el resultado que pide la consulta si no, arrojará la excepción. Esta clase es una característica que viene dentro de los módulos de JDBC que instalamos al momento de realizar la conexión, una de las tantas razones por las cuales es importante descargar e importar estas funcionalidades para los proyectos que se trabajan con bases de datos en MySQL. Esta clase se utiliza el método ExecuteQuery, para recuperar los datos de la consulta que se está realizando. Entre los métodos que encontramos dentro de ResultSet tenemos los siguientes: ● next (): Pasa a la siguiente fila, si ya se ejecutó una vez o se ejecuta en la primera fila, evalúa y devuelve true si la fila existe o si puede seguir con el recorrido y falso si no existe la fila o si no existen más filas para que siga el recorrido. ● close (): Luego de que se almacenen los datos, se utiliza el método close, para poder liberar los recursos utilizados para almacenar. ● get (): obtienen el valor contenido en una columna o devuelven null si se trata de un valor nulo en SQL.

1.9. Baja y modificación Por: Daniel Estuardo Puluc Patzán


Página 229 de 292

Hacemos referencia a las cosultas de actualización y eliminación de un registro, vamos a ver un ejemplo de como se realizan en el entorno de Java.

“Ejemplo de baja” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=134&punto=&inici o=60

Lo primero que tenemos es la declaración del botón, luego tenemos el evento que evaluará si el botón es ejecutado y posteriormente, qué pasará cuando esto suceda.

“Ejemplo de baja 1” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=134&punto=&inici o=60

Como siguiente paso tenemos la apertura de nuestro try catch y dentro de nuestro try catch tendremos lo siguiente:

“Consulta de baja” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=134&punto=&inici o=60

Lo primero que tenemos dentro del try, es el parámetro de conexión, luego creamos una nueva variable statement para ejecutar las sentencias, como siguiente paso creamos una variable que almacenará, comando y la sentencia que ejecutará, en este caso eliminará de la tabla artículos, el registro que posea el código que se ingresará el en Jtextfield 3, si la cantidad es igual a uno, es decir si hay una existencia de algún registro con ese código, borrará el registro, de lo contrario nos dará un mensaje indicando que el registro no existe. Finalmente cerramos la conexión para evitar errores.

“Consulta de baja 1” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=134&punto=&inici o=60


Página 230 de 292

Finalmente, tenemos el catch, que capturará las posibles excepciones que se puedan presentar al ejecutar la consulta.

Lo siguiente que tenemos es la consulta de modificación, vamos a verla con un ejemplo, para poder entender mejor de qué se trata:

“Consulta de modificación” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=134&punto=&inici o=60

Primero declaramos el botón para almacenar la acción o que ejecutará la consulta, evaluamos si se dio click en el y que pasará cuando se accione.

“Boton de la consulta” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=134&punto=&inici o=60

Abrimos el try y dentro de la parte del try establecemos la conexión, luego el statement para realizar la consulta, creamos una variable para almacenar la ejecución de la consulta y la consulta va a ser un Update en la tabla artículos iniciando desde la descripción que será el Jtextfield 1, luego el precio que será el Jtextfield 2, y los registros que se actualizarán serán los del registro con el código que ingresemos en el Jtextfield 3.

“Consulta de modificación” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=134&punto=&inici o=60

Si la existe un registro con ese código, nos dará un mensaje de que sí se modificó, si no, nos dará un mensaje de que ese registro con ese código no existe.

“Consulta de modificación 1” Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=134&punto=&inici o=60

Finalmente cerramos la conexión y terminamos nuestro catch que dará las excepciones en caso de que existiera algún error.


Página 231 de 292

Entonces, aquí completamos también el tema de consultas con formularios, ya tenemos nuestras cuatro consultas básicas desglosadas para poder entenderlas de una mejor manera.

1.10

Generar

comentarios

en

Código

Por: Dina Perez Se pueden añadir o quitar marcas de comentarios de una sola línea de código en una sentencia SQL, varias líneas adyacentes de código, una sentencia SQL completa o varias sentencias SQL adyacentes. La sintaxis para un comentario en una línea de código SQL es un guión doble (--) al comienzo de la línea. El comentario afecta a todo el código SQL de la línea.

Procedimiento Para poner o quitar marcas de comentario del código SQL en el editor SQL y XQuery: 1. Seleccione el código SQL para el que desea poner o quitar marcas de comentario. a. Para una sola línea, pulse en cualquier lugar de la línea de código. b. Para varias líneas, arrastre el puntero por las líneas de código. 2. Pulse con el botón derecho del ratón sobre el código SQL seleccionado y, a continuación, seleccione Habilitar o inhabilitar comentario.

Resultados El resultado de este proceso depende del estado original del código SQL seleccionado: ● Para una sola línea de código: ○ Si la línea estaba activa, la línea se convierte en un comentario. ○ Si la línea era un comentario, la línea pasa a estar activa. ● Para varias líneas de código: ○ Si cualquiera de las líneas estaba activa, todas las líneas pasan a ser comentarios. Tenga en cuenta que las líneas que anteriormente eran comentarios tienen ahora una marca de comentario doble. ○ Si todas las líneas eran comentarios, todas ellas pasan a estar activas.

1.11. Estructura de Datos Por: Cristofer Javier Morales de León Las estructuras de datos son una forma de organizar los datos en la computadora, de tal manera que nos permita realizar unas operaciones con ellas de forma muy eficiente. Es decir, igual que un array introducimos un dato y eso es prácticamente inmediato, no siempre lo es, según qué estructuras de datos y qué operaciones. Depende que algoritmo queramos ejecutar, habrá veces que sea mejor utilizar una estructura de datos u otra estructura que nos permita más velocidad.


Página 232 de 292

Imagen: Función de la Estructura de Datos Fuente: https://upload.wikimedia.org/wikipedia/commons/thumb/1/19/Hash_table_es.svg/1200px-

Hash_table_es.svg.png

Estructura de Datos en Java La estructura de datos en Java es el sistema mediante el cual se organizan los datos en la memoria de la aplicación que se está programando. Existen muchas formas de organizar los datos en la memoria. Por ejemplo, un array es una colección de elementos de memoria en el que los datos se almacenan de forma secuencial. Este tipo de organización se realiza con la ayuda de una serie de estructuras de datos. También hay otras formas de organizar los datos en la memoria.

Imagen: Estructura de Datos en Java Fuente: http://4.bp.blogspot.com/_73t-

OXs9bAc/TREWy8BtBnI/AAAAAAAAAGs/DFYt5Ej7pNc/s1600/cola1.png

Modos de Estructurar los Datos Estructura de datos estática: Son aquellas estructuras en las que el tamaño ocupado en memoria se define antes de que el programa se ejecute y no puede modificarse dicho tamaño durante la ejecución del programa. Estructura de datos dinámica: Estas no tienen las limitaciones del tamaño de memoria ocupada. Mediante el uso de un tipo de datos específico, denominado puntero, es posible construir estructuras de datos dinámicas que son soportadas por la mayoría de los lenguajes que ofrecen soluciones eficaces y efectivas en la solución de problemas complejos. Tipos de Estructura de Datos ●

Lineal: matrices, listas.

Árbol: binario, montones, partición de espacio, etc.


Página 233 de 292

Hash: tabla hash distribuida, árbol hash, etc.

Gráficos: decisión, dirigido, acíclico, etc.

Imagen: Tipos de Estructura de Datos Fuente: https://sites.google.com/site/edatosubo/_/rsrc/1430847427127/4-estructura-de-datosdinamicas/ed1.jpg

1.5.1. Árboles Binarios Por: Maria Fernanda Morales Un árbol binario es la estructura de datos por la cual cada nodo puede tener un hijo izquierdo y un hijo derecho, estos árboles se les conoce como binarios, porque son arboles ordenados de grados dos, sus aplicaciones suelen ser muy variadas, porque se pueden utilizar para representar una estructura en la cual es posible tomar decisiones con dos opciones en distintos puntos. También los árboles binarios no son estructuras lineales, está conformado por ramas y nodos, en este existe un nodo de suma importancia que es denominado raíz, así también un nodo del que sale alguna rama. Estos son un conjunto finito de nodos que son un nodo raíz que tiene dos subárboles binarios denominados subárbol izquierdo y subárbol derecho, esta estructura de datos es muy útil cuando el tamaño de una estructura no se logra conocer. También podría decirse que un árbol binario es aquel que colecciona objetos, y que cada uno contiene datos o una referencia de un subárbol derecho.

Imagen: Estructura Árboles Binarios Fuente: http://aniei.org.mx/paginas/uam/CursoPoo/Recursos/Imagen22.gif

En los árboles binarios se pueden utilizar tres formas para recorrer un árbol binario, que son: preorden, inorden y postorden.


Página 234 de 292

● El Preorden se conforma de esta manera: R, I, D. Este recorre así: raíz, subárbol izquierdo, subárbol derecho. ● El Inorden se conforma de esta manera: I, R, D. Este recorre así: subárbol izquierdo, raíz, subárbol derecho. ● El Postorden se conforma de esta manera: I, D, R. Este recorre así: subárbol izquierdo, subárbol derecho, raíz. Existen cuatro tipos de árboles binarios: ● Distinto: se define cuando dos árboles binarios son distintos cuando sus estructuras son diferentes. ● Similares: Se define cuando sus estructuras son idénticas, pero la información que contiene sus nodos es diferente. ● Equivalentes: Se define cuando son similares y que además los nodos contienen la misma información. ● Completos: Se define cuando en todos sus nodos excepto en el último nivel, tienen dos hijos: el subárbol izquierdo y el subárbol derecho.

Imagen: Árboles Binarios Fuente: http://aniei.org.mx/paginas/uam/CursoPoo/Recursos/Imagen21.gif

1.5.2. Teoría de grafos Por: Luis David Ortiz Fernández La teoría de grafos se define con un ejemplo en este caso tenemos un árbol binario es un grafo conexo, es a cíclico y no está dirigido esto hace que el grado de cada vértice no sea mayor a 2, de tal forma existiría un camino entre un par de nodos, un árbol binario con enraizado es como un grafo debido a que tiene uno de sus vértices llamado raíz, de grado no mayor 2, con la raíz que se escogió, cada vértice tendrá un único padre, y nunca más de 2 hijos, si en dado caso rehusamos un requerimiento de la conectividad, esto permite la multiplicidad de componentes conectado en el grafo, y llamaremos a esto último como una estructura de bosque Elementos (objetos) que forman un grafo. Cada uno lleva asociada un grado característico según la situación, que se corresponde con la cantidad de arcos o aristas que confluyen en dicho vértice Arcos o Aristas. Relaciones entre los elementos que forman el grafo Existen los siguientes tipos: Ramas. Arco o arista que unen un vértice con otro. Paralelas (múltiples)Arcos o aristas conjuntas si el vértice inicial y final son el mismo Cíclicas (lazo, bucle). Arco o arista que el vértice inicial y final es el mismo Un camino simple es un camino en donde todos los arcos son distintos (se pueden repetir vértices). Un circuito es un camino simple cerrado de longitud por lo menos uno, es decir, que empieza y


Página 235 de 292

termina en el mismo vértice (se pueden repetir vértices) Un camino elemental es un camino simple en donde todos los vértices son distintos, excepto tal vez el primero y el último. Un ciclo es un camino elemental cerrado de longitud por lo menos uno, es decir, que empieza y termina en el mismo vértice Un grafo en el ámbito de las ciencias de la computación es un tipo abstracto de datos (TAD), que consiste en un conjunto de nodos (también llamados vértices) y un conjunto de arcos (aristas) que establecen relaciones entre los nodos. El concepto de grafo TAD desciende directamente del concepto matemático de grafo. Gracias a la teoría de grafos se pueden resolver diversos problemas como por ejemplo la síntesis de circuitos secuenciales, contadores o sistemas de apertura. Se utiliza para diferentes áreas como pueden ser el Dibujo computacional o en áreas de Ingeniería. La teoría de grafos nos es más útil para el estudio de relaciones arbitrarias, mientras que la teoría de las relaciones es más útil para el estudio de relaciones especiales. Si no se considera el orden de los vértices en cada pareja, dichos pares se denominan aristas, y decimos que el grafo es no orientado. Un grafo G (x, E) consta de un conjunto de elementos “x”, denominados nodos o vértices, y un listado de parejas de vértices E que expresa las relaciones entre dichos elementos. Si no se considera el orden de los vértices en cada pareja, dichos pares se denominan aristas, y decimos que el grafo es no orientado Leonhard Euler, matemático suizo del siglo dieciocho quien fue llamado el padre de la teoría de grafos

Fuentes: https://www.kramirez.net/Discretas/Material/Presentaciones/Grafos.pdf

1.5.3. Tipos de árboles binarios Por: Carlos Paz

DISTINTO


Página 236 de 292

Se dice que dos árboles binarios son distintos cuando sus estructuras son diferentes. Ejemplo: Árbol Binario distinto Fuente:https://www.monografias.com/trabajos92/arboles-binario/arboles-binario

SIMILARES Dos arboles binarios son similares cuando sus estructuras son idénticas, pero la información que contienen sus nodos es diferente. Ejemplo:

Árbol Binario Similar Fuente:https://www.monografias.com/trabajos92/arboles-binario/arboles-binario

EQUIVALENTES Son aquellos árboles que son similares y que además los nodos contienen la misma información. Ejemplo:

Árbol Binario Equivalente Fuente:https://www.monografias.com/trabajos92/arboles-binario/arboles-binario

COMPLETOS


Página 237 de 292

Son aquellos árboles en los que todos sus nodos excepto los del último nivel, tiene dos hijos; el subarbol izquierdo y el subarbol derecho

1.5.4. Recorridos en Profundidad Por: Javi Petzey Tambien se le conoce como Depth First Search o por siglas DFS, es una generalizacion del recorrido en preorden de un árbol, ya que este algoritmo nos permite recorrer de manera ordenada todos los nodos de un grafo. La manera en la cual funciona consiste en expandir todos los nodos partiendo desde el nodo padre hacia el nodo hijo, es decir de forma recurrente, al momento que ya no haya mas nodos que visitar en el camino, retorna al nodo predecesor volviendose un bucle ya que repite el mismo proceso con cada uno de los nodos vecinos. Ahora bien, en dado caso que se encuentre el nodo antes de recorrer todos los nodos, concluye la búsqueda. Este tipo de recorrido se utiliza cuando tenemos varias soluciones y queremos comprobar cuales cumplen con ciertos requisitos.

Imagen: Recorrido en Profundidad ejemplo Fuente: https://www.encora.com/es/blog/dfs-vs-bfs

1.5.4.1. Aplicaciones del DFS A continuacion, enlistaremos las aplicaciones que comunmente se le de a los DFS: ● ● ● ● ● ●

Encontrar nodos conectados en un grafo Ordenamiento topológico en un grafo acíclico dirigido Encontrar puentes en un grafo de nodos Resolver puzzles con una sola solución, como los laberintos Encontrar nodos fuertemente conectados. Simular una red, a partir de un grafo y analizar su robustez para transferencia de información

Por ejemplo, si quieres resolver un puzzle lo podemos hacer atravez del DFS, en este caso los nodos serán los pasos de la solución donde cada nodo es dependiente del nodo predecesor. Es decir, cada paso de la solución del puzzle depende del anterior paso.

1.5.5. Recorridos en pre-orden Por: Daniel Estuardo Puluc Patzán


Página 238 de 292

El recorrido en preorden, consiste en recorrer en primer lugar la raíz y luego cada uno de los hijos en orden previo. En este recorrido, primero visitamos la raíz, luego el subárbol izquierdo y finalmente el subárbol derecho. Cada nodo se parece a un subárbol. Normalmente se usa para replicar, es decir, crear una copia del árbol. ● Visita el nodo raíz. ● Recorrer el subárbol izquierdo llamando de forma recursiva a la función en orden. ● Recorrer el subárbol derecho llamando de forma recursiva a la función en orden.

“Ejemplo de árbol binario” Fuente: https://www.delftstack.com/img/Data%20Structure/binary%20tree.svg

Recorrido de preorden: (3, 1, 4, 2, 5, 7, 6, 9, 8): Llamamos recorrido de preorden en el nodo raíz 3 y lo incluimos en nuestra

salida. Luego, recorremos recursivamente a la izquierda para llegar al siguiente nodo raíz 1 y luego, posteriormente, 4. Dado que 4 no tiene hijo izquierdo, visitamos el nodo derecho 2. Ahora hemos cubierto el subárbol bajo el nodo raíz 4 y seguimos hasta el nodo 1 y vamos hacia su derecha hasta el nodo 5. De esta manera, atravesamos todo el árbol para obtener el orden anterior como salida.

“Ejemplo de recorrido en pre-orden” Fuente: http://www.oscarblancarteblog.com/wp-content/uploads/2014/08/preorden.png

La imagen de arriba, muestra más de manera gráfica, la manera en que se debe realizar el recorrido en pre-orden de un árbol binario. Cabe mencionar, que siempre el recorrido se inicia desde el nodo ráiz, que será el nodo de dónde se desencadenan los nodos hijos o el nodo más superior de todos los nodos. Resulta un poco compleja de entender, pero arriba se muestra mejor.

Arboles Binarios


Página 239 de 292

Por: Pablo Andrés Hernández Ramírez Un árbol binario es una estructura de datos que hace referencia a su nombre, teniendo la forma de un árbol, donde cada parte puede dividirse en otra, en este caso tomando el nombre de nodo.

Imagen: Ejemplo de árbol binario Fuente: https://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Binary_tree_%28oriented_digraph%29. png/192px-Binary_tree_%28oriented_digraph%29.png

Recorridos en Pre-Orden En el recorrido Pre-Orden es una forma de ordenar el árbol binario que consta de esta manera: raíz, subárbol izquierdo, subárbol derecho.

Imagen: Ejemplo de Pre-Orden Fuente: https://www.google.com/url?sa=i&url=http%3A%2F%2Faniei.org.mx%2Fpaginas%2Fuam%2FCursoPoo% 2Fcurso_poo_12.html&psig=AOvVaw0oT3KM9s9BHCeVLt_NMmmI&ust=1648927144879000&source=images&c d=vfe&ved=0CAsQjRxqFwoTCKiZo7fK8_YCFQAAAAAdAAAAABAD

1.5.6. Recorridos en Post-Orden El recorrido Post-Orden es una forma de ordenar el árbol binario que consta de esta manera: subárbol izquierdo, subárbol derecho, raíz.

Imagen: Ejemplo de Post-Orden Fuente: https://www.google.com/url?sa=i&url=https%3A%2F%2Farboles12.weebly.com%2Fposorden.html&psig=AOvVaw0aVSMngcxYrD0kLU5v99db&ust=1648927282774000&source=images&cd=vfe&ved=0CA sQjRxqFwoTCPCfrITL8_YCFQAAAAAdAAAAABAD


Página 240 de 292

1.5.7. Recorridos en In-Orden El recorrido In-Orden es una forma de ordenar el árbol binario que consta de esta manera: subárbol izquierdo, raíz, subárbol derecho.

Imagen: Ejemplo de In-Orden Fuente: https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.oscarblancarteblog.com%2F2014%2F08%2F22%2Festr uctura-de-datosarboles%2F&psig=AOvVaw25UAwpk8PRhQjfXKUFjVgx&ust=1648927664262000&source=images&cd=vfe&ved=0CAs QjRxqFwoTCLia-7jM8_YCFQAAAAAdAAAAABAR

1.5.8. Listas, Colas y Pilas Una pila es una lista de elementos donde se pueden inserta o eliminar, pero, solo se puede hacer por uno de los extremos. Una Cola a diferencia de la pila, es una colección de elementos homogéneos, donde también se pueden insertar datos en un extremo, pero se debe retirar por el otro extremo. Una lista es una estructura de datos, que consiste en una secuencia de nodos, donde también se guardan datos.

Imagen: Ejemplo de una Inserción en un Pila Fuente: https://sites.google.com/site/listaspilascolasarboles/cola

1.5.9. Adecuación de Entorno La adecuación del entorno se refiere a comparar y justificar la adecuación de diferentes implementaciones en función de lo que se necesita, por ejemplo, modelar que se necesita en base a la información que nos están dando, esto quiere decir, adecuar que se adecua mejor.


Página 241 de 292

Imagen: Ejemplo de Implementación Fuente: https://www.google.com/url?sa=i&url=https%3A%2F%2Fccia.ugr.es%2F~jfv%2Fed1%2Ftedi%2Fcdrom%2Fdocs%2Far b_bin.htm&psig=AOvVaw3UTt2o5b9cy0TmadYXCAr&ust=1648930211745000&source=images&cd=vfe&ved=0CAsQjRxqFwoTCOCdyO3V8_YCFQAAAAAdAA AAABAK

3.6. Estructuras Dinámicas Una Estructura Dinámica es cuando puede cambiar durante la ejecución de un programa, no es lineal.

Imagen: Ejemplo de un Árbol BInario Fuente: https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.tutorialesprogramacionya.com%2Fjavaya%2Fdetal

3.7. Lista Tipo Pila: Por: Miguel Ico Es una lista ordenada o estructura de datos que permite almacenar y recuperar datos, siendo el modo de acceso a sus elementos de tipo LIFO, se aplica en multitud de supuestos, En cada momento solamente se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado . La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al anterior, que pasa a ser el último, el nuevo TOS. Una pila acotada es una pila limitada a un tamaño máximo impuesto en su especificación. Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar un plato sobre una pila de platos, y una operación retirar equivaldría a retirarlo. Su historia comienza en el año 1955 y dos años después fue patentado por Friedrich L. Bauer, quién recibió en 1988 el premio "IEEE Computer Society Pioneer Award" por su trabajo en el desarrollo de dicha estructura de datos. Una pila puede implementarse fácilmente ya sea mediante una matriz o una lista enlazada. Otro tipo de estructura de datos es la cola, “primero en entrar, primero en salir”. Una pila ocuparía un bloque de celdas de memoria, con una dirección de origen, un espacio reservado para la acumulación de datos y un puntero que apunta al último dato incorporado.

https://es.wikipedia.org/wiki/Cola_(informática)


Página 242 de 292

3.8. Listas Tipo Cola: Las colas se utilizan en sistemas informáticos, transportes y operaciones de investigación, donde los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para su posterior procesamiento. Así mismo, los elementos solo se pueden eliminar por el principio y solo se pueden añadir por el final de la cola. A la hora de añadir un elemento podríamos darle una mayor importancia a unos elementos que a otros y para ello se crea un tipo de cola especial que es la cola de prioridad. Las simulaciones permiten analizar situaciones de la realidad sin la necesidad de ejecutarlas realmente. Una cola es una estructura de datos donde el primer elemento en entrar es el primero en salir, también denominadas estructuras FIFO (First In, First Out). Esta estructura de datos se puede definir como una lista enlazada con acceso FIFO a la que sólo se tiene acceso al final de la lista para meter elementos y al principio de esta para sacarlos. La Cola vacía, este operador consulta si la cola está vacía. Es necesaria utilizar antes de realizar una operación de "sacar elementos" de la cola.

https://upload.wikimedia.org/wikipedia/commons/b/bb/Cola.svg?download

3.9. Problemas de Aplicación 1) Crea un saludador personalizable. Consiste en un simple JFrame con un campo de texto (JTextField) y un botón (JButton). Cuando pulsemos el botón, aparecerá un mensaje emergente (JOptionPane) con el texto “¡Hola <texto escrito en el campo de texto>!”. 2) Crea una simple lista de peliculas. tendremos un JComboBox, donde almacenaremos las peliculas, que vayamos almacenando en un campo de texto. Al pulsar el botón Añadir la pelicula que hayamos metido, se introducirá en el JComboBox.


Página 243 de 292

3) Crea un generador de números gráfico. Nosotros escribiremos seleccionaremos dos números en unos JSpinner (contadores) y se nos mostrara en un JTextField, el número generado entre esos dos números, al pulsar en el botón. El JTextField no debe ser editable.

https://javadesdecero.es/avanzado/genericos-ejemplos-java/

3.10. Listas Genéricas El tema de los genéricos es bastante amplio, y algunos de ellos están lo suficientemente avanzados y lo veremos de a pocos. A primera vista, la sintaxis de los genéricos puede parecer un poco intimidante. Los tipos parametrizados son importantes porque le permiten crear clases, interfaces y métodos en los que el tipo de datos sobre los que operan se especifica como parámetro. Una ventaja principal del código genérico es que trabajará automáticamente con el tipo de datos pasados a su parámetro de tipo. Muchos algoritmos son lógicamente los mismos, independientemente del tipo de datos a los que se apliquen. Con los genéricos, puede definir un algoritmo una vez, independientemente de cualquier tipo específico de datos, y luego aplicar ese algoritmo a una amplia variedad de tipos de datos sin ningún esfuerzo adicional. Así, en el código pre-genérico, las clases, interfaces y métodos generalizados utilizaban referencias a objetos para operar en varios tipos de datos. El concepto de una estructura de datos, como por ejemplo una pila, se puede entender independientemente del tipo de elemento que manipula. Las clases genéricas proporcionan los medios para describir el concepto de pila o cualquier otra clase, en forma independiente de su tipo. Así podemos crear instancias de objetos con tipos específicos de la clase genérica. Esto nos permite una gran oportunidad de reutilizar el software. Una vez que tenemos una clase genérica, podemos utilizar una notación concisa para indicar el tipo actual a utilizarse en lugar del parámetro de tipo de la clase. En tiempo de compilación, el compilador Java asegura la seguridad de los tipos de nuestro código y utiliza las técnicas de borrado para permitir que nuestro código interactúe con la clase genérica. En principio, no es estrictamente necesario que una clase parametrizada, se le indique una clase, permitiéndonos añadir varios tipos de valores pero esto nos dará muchos problemas en el futuro, ya que para acceder a un nodo de esta lista se debe hacer un casting del mismo tipo para que pueda ser accedido.


Página 244 de 292

Este es una estructura lineal compuesta por una serie de elementos individuales llamados nodos. Cada nodo es un objeto formado, mínimamente, por dos campos: Y uno de ellos que es llamado “info” contiene el valor o elemento de información que se almacena en el nodo; el o almacena en el nodo; el otro que también es llamado tro o next . es un puntero con la dirección del nodo sucesor. El campo next del último nodo, normalmente vale null , indicando que el nodo no tiene sucesor. La dirección del primer nodo de la lista se almacena en una referencia separada, a la que podemos llamar frente. Captura de pantalla Este es un diagrama de clases y un resultado de ejecución de un programa

https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?codigo=120&punto=&inici o=

3.11. Listas Genericas Ordenadas: Es una lista Genérica es de nodos, donde cada nodo tiene un único campo de enlace. Una variable de referencia contiene una referencia al primer nodo, cada nodo enlaza con el nodo siguiente, y el enlace del último nodo contiene NULL para indicar el final de la lista. Aunque normalmente a la variable de referencia se la suele llamar top, se le podría llamar como se desee. Una lista genérica es ordenada si cuando insertamos información en la lista queda ordenada respecto al campo info

listaOrdenada.insertar(10)

https://www.tutorialesprogramacionya.com/javaya/imagentema/foto109.jpg

listaOrdenada.insertar(5)


Página 245 de 292

https://www.tutorialesprogramacionya.com/javaya/imagentema/foto110.jpg

listaOrdenada.insertar(7)

https://www.tutorialesprogramacionya.com/javaya/imagentema/foto111.jpg

listaOrdenada.insertar(50)

https://www.tutorialesprogramacionya.com/javaya/imagentema/foto112.jpg Bueno en este caso podemos visualizar las listas Genéricas ordenada que como se hace aun estructura.

3.11. Listas genéricas Ordenadas. Por: Andres Ixcajoc Lopez

Una lista genérica es ordenada si cuando insertamos información en la lista queda ordenada respecto al campo info (sea de menor a mayor o a la inversa).

Imagen: Ejemplo de lista genérica ordenada Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?


Página 246 de 292

Podemos observar que si recorremos la lista podemos acceder a la información de menor a mayor. No se requiere un método para ordenar la lista, sino que siempre permanece ordenada, ya que se inserta ordenada.

3.12. Listas Génericas Doblemente Encajadas. Representación gráfica de una lista doblemente encadenada:

Imagen: Ejemplo de lista doblemente encajada Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.

Observemos que una lista doblemente encadenada tiene dos punteros por cada nodo, uno apunta al nodo siguiente y otro al nodo anterior. Seguimos teniendo un puntero (raiz) que tiene la dirección del primer nodo. El puntero sig del último nodo igual que las listas simplemente encadenadas apunta a null, y el puntero ant del primer nodo apunta a null. Se pueden plantear Listas tipo pila, cola y genéricas con enlace doble. Hay que tener en cuenta que el requerimiento de memoria es mayor en las listas doblemente encadenadas ya que tenemos dos punteros por nodo. La estructura del nodo es: class Nodo { int info; Nodo sig, ant;

3.13. Listas Genéricas Circulares. Una lista circular simplemente encadenada la podemos representar gráficamente:

Imagen: Ejemplo de lista genérica circular Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.


Página 247 de 292

Observemos que el puntero sig del último nodo apunta al primer nodo. En este tipo de listas si avanzamos raiz no perdemos la referencia al nodo anterior ya que es un círculo. Una lista circular puede también ser doblemente encadenada:

Imagen: Ejemplo de lista genérica circular Fuente: https://www.tutorialesprogramacionya.com/javaya/detalleconcepto.

El puntero ant del primer nodo apunta al último nodo de la lista y el puntero sig del último nodo de la lista apunta al primero.

3.14. Recursividad ¿Que es? En general, la recursividad es el proceso de definir algo en términos de sí mismo y es algo similar a una definición circular. El componente clave de un método recursivo es una declaración que ejecuta una llamada a sí mismo. La recursividad es un poderoso mecanismo de control.

3.15. Problemas donde conviene aplicar Recursividad El ejemplo clásico de recursividad es el cálculo del factor de un número. El factor de un número N es el producto de todos los números enteros que se encuentren entre 1 y N. Por ejemplo, el factor de 3 es 1 × 2 × 3, es decir, es 6. El siguiente programa muestra una forma recursiva de calcular el factor de un número. Para propósitos de comparación, también se incluye un equivalente no recursivo.

Imagen: Programa sobre recursividad Fuente: https://javadesdecero.es/intermedio/recursividad-con-ejemplos/

3.16. Implementacion de MySQl y Java


Página 248 de 292

Pasos para su implementacion: ● Crear una base de datos en MySQL: Ahora, crearemos una base de datos para que podamos probar la conexión. Para crear una base de datos en MySQL, use la consulta SQL a continuación:

Descargue el controlador JDBC e inclúyalo en Classpath: El controlador JDBC es un archivo JAR proporcionado por MySQL; es un conector que actúa como puente entre MySQL y las aplicaciones Java. ● Conectarse a MySql: Después de completar los procedimientos anteriores, escriba el código Java ●

para la conectividad. Aquí, usamos el método class.forName() para cargar el JDBC Driver, que descargamos del sitio oficial de MySQL. El método getConnection() se utiliza para pasar la cadena de conexión: MySQL:Port/Database/,username,dbpassword. Esta cadena se utiliza para autenticar al usuario y proporcionar acceso solo a usuarios autorizados. Después de eso, usamos el método createStatement() para crear una instancia que se usará para ejecutar consultas SQL usando el código. Pruebe la conexión JDBC: Después de escribir el código, solo debes ejecutarlo. Si el código funciona bien, obtendrá el siguiente resultado en la consola:

Capítulo IV 1 Marketing Digital y Publicidad en internet Por: Dwight Jongezoon


Página 249 de 292

1.1. Teoria del color Son un conjunto de reglas basicas en la mezcla de colores para lograr el efecto deseado de colores de luz o pigmentos. Es un principio de gran importancia en el diseño gráfico, la pintura, la fotografía, la imprenta y la televisión, entre otras áreas visuales.

1.1.1. Circulo Cromatico Uno de los principales fundamentos de la Teoría del color es el círculo cromático. Se trata de una representación circular de todos los colores del espectro visual, organizados de manera tal que los colores contrarios se enfrenten y los colores complementarios estén próximos el uno al otro.

En la imagen anterior podemos contemplar el circulo mencionado en la explicación anterior donde miramos el espectro visual de los colores organizados. Imagen sacada de: https://concepto.de/teoria-del-color/

1.1.2 Modelo de color Rgb Se llama así debido a sus colores primarios: rojo, verde y azul, a partir de los cuales se compone el resto. Es un sistema de color aditivo, en el que los colores deben sumarse para producir uno nuevo. Las excepciones son el negro, que se produce en ausencia de luz y el blanco que se produce en presencia de todos los colores, recomponiendo el espectro. Este sistema es el empleado en la mayoría de los televisores, monitores de computador, proyectores de video, etc.


Página 250 de 292

En esta Imagen contemplamos el modelo de imagen de el sistema de color Rgb Imagen sacada de: https://concepto.de/teoria-del-color/

1.2. Teoria del color 1.2.1 Composición del marketing Primeramente, habría que distinguir entre el Marketing del día a día, también llamado Marketing operativo del Marketing más estratégico de las ideas y los planes. Este esta compusto por 7 fases las cuales son.

1.2.2 Investigación Esta fase consiste en el estudio y análisis del mercado, de la competencia, de los clientes… El trabajo previo consiste en tener toda la información necesaria para que todo el resto del trabajo sea un éxito.

1.2.3 Innovación Hoy en dia para el marketing es necesario innovar. Crear nuevos proyectos, mejorar los existentes, nueva comunicación, etc. El Marketing sin innovación es administración de de empresas.

1.2.4 Estratega La gran estrategia del marketing es la misión a largo plazo, cómo, cuándo, quien y para qué… Antes de salir al mercado o lanzar un nuevo producto hay que tener una estrategia clara de marca, de inversión, de producto, de relación con clientes y la forma de publicitarlo.

1.2.5 Clientes Análisis y selección del público objetivo; a quien te vas a dirigir cómo y dónde. En que forma llamara su atencion paa crear una relacion con los clientes.


Página 251 de 292

1.2.6 Diseño de productos El diseño y desarrollo de un producto es labor de Marketing, mientras que la fabricación es parte de Producción y Tecnología. Si se trata de un producto online, en este momento es cuando se diseña la web, mientras que, si se trata de un producto físico, la web irá en el siguiente bloque y aquí se encargara de todo lo relacionado con el producto: su imagen, empaquetado, etiquetado, etc.

1.2.7 Comunicación material de apoyo comercial, mailings, emailings y todo lo necesario para despertar el interés en el público objetivo por el producto o diseño que hemos creado.

1.2.8 Venta Uno de los grandes objetivos del Marketing siempre tiene que ser el conseguir la venta y toda la actividad del Marketing debe ir enfocada a la Marketing. Un buen departamento de Marketing debe ser a la misma vez el estratega del equipo Comercial y el auxiliar del departamento Comercial para ayudarles en todo lo que necesiten para realizar mejor su labor.

1.3. Combinacion de Colores El color ejerce una enorme influencia sobre nuestras actitudes y emociones. Por tanto, no es descabellado pensar que utilizar una adecuada combinación de colores en nuestra página web para vender más, no es nada descartable. Cuando nuestros ojos adquieren un color, se comunican con una región del cerebro conocida como hipotálamo, que a su vez envía una cascada de señales a la glándula pituitaria, al sistema endocrino y luego a las glándulas tiroides. Para esto se deben tener en cuenta algunos factores importantes como: 1- Elegir colores corporativos que te representen 2- Procura que la combinación de colores no ralentice demasiado la web 3- Procura combinar colores compatibles que tengan un impacto estético y elegante 4- Prioriza los colores web que más venden


Página 252 de 292

En la imagen observamos un poco de la combinación de colores y sus resultados respectivos. Fuente: https://lagranmanzana.net/combinacion-de-colores-web-para-vender-mas/

1.4. Psicologia del Color Aunque el simbolismo de cada color no ha sido aprobado empíricamente en el campo científico, muchos de los colores más habituales han sido asociados a diversas reacciones emocionales, aceptadas en la cultura occidental. Es decir, los colores pueden afectar al estado de ánimo. Otra autora importante en la psicología del color es Eva Heller. El impulsor de los aspectos relacionados con el juego de colores en el marketing. La psicología del color es una rama de estudio que tiene el objetivo de analizar cómo nos influyen los colores, cómo percibimos los colores y las emociones que nos suscitan las distintas gamas de colores.

1.5. Teoria del consumidor Las teorías del comportamiento del consumidor estudian las acciones que los individuos llevan a cabo cuando buscan, compran, usan y evalúan un determinado producto. En este sentido, estas teorías son instrumentos que pueden ayudarte a comprender los hábitos de tus clientes y qué factores inciden en sus decisiones de compra. Estas son: -Teoría de la utilidad -Enfoque cardinalista -Teoría neoclásica del consumidor -Teoría poskeynesiana del consumidor -Teoría psicológico social -Teoría de la jerarquía de necesidades -Teoría conductual de aprendizaje -Teoría del condicionamiento operante

1.6. Mercado Se encarga de desarrollar un producto o servicio, promoverlo, establecer su precio justo y definir a qué segmento de la población va dirigido. Mientras, la publicidad es un elemento del mercadeo a través del cual se da a conocer un producto, servicio o idea mediante técnicas creativas transmitidas por los diferentes medios de comunicación y por ende, pagadas por un patrocinador. Su objetivo es aumentar las ventas, en cambio la publicidad es la que se encarga de informar y persuadir al público para atraerlos y asi generar demanda sobre los productos


Página 253 de 292

En esta imagen tenemos una breve muestra del mercado de manera grafica, buscando que genera, cuanto genera y como es la idea. Fuente: https://micarrerauniversitaria.com/wp-content/uploads/2018/03/marketing-publicidad-18-.jpg

En el mercadeo lo más importante es determinar quiénes consumen sus productos o servicios y en base a eso, desarrolan estrategias. A la publicidad lo que le interesa es comunicar el lanzamiento de una marca, instruir a los consumidores en el uso de un nuevo producto o posicionar de manera positiva a una empresa.

1.7. Grupo: Por: José Leal Es el comportamiento del consumidor al estar influenciado por interacción con los miembros de los grupos a los que pertenece.

Imagen: Ejemplo de grupo en el entorno de marketing digital y publicidad en internet.


Página 254 de 292

Enlace: https://thumbs.dreamstime.com/b/programa-de-marketing-referencia-consulte-el-car%C3%A1ctergrupo-amigos-en-la-ilustraci%C3%B3n-vector-internet-mujer-hombre-gente-200176174.jpg

1.8. Segmento: Es el conjunto de compradores que muestran algunos hábitos de compra parecidos, lo cual le ayuda al marketing para buscar mejores estrategias para satisfacer las necesidades de los consumidores.

Imagen: Ejemplo de segmento en el entorno de marketing digital y publicidad en internet. Enlace: https://vilmanunez.com/segmentacion-del-mercado/

1.9. Teoría de los mercados: Son el conjunto de estrategias que están dirigidas a la promoción de marcas por internet, usando canales y métodos que permiten el análisis de los resultados en tiempo real.

Imagen: Ejemplo de teoría de los mercados en el entorno de marketing digital y publicidad en internet. Enlace: https://vilmanhttps://www.mdmarketingdigital.com/que-es-el-marketing-digitalunez.com/segmentacion-delmercado/

1.10. Oferta: Consiste en ofrecer un producto o servicio en concreto, con condiciones especiales, con esto hacemos referencia a un cambio respecto al precio original.

Imagen: Ejemplo de precio en el entorno de marketing digital y publicidad en internet.


Página 255 de 292

Enlace: https://m.facebook.com/SignFactoryGuatemala/photos/aprovecha-un-50-de-descuento-en-marketing-digitalcommunity-manager-con-diseños-/1754336594713197/

1.11. Demanda: Está establecerá la cantidad de productos o servicios que un grupo consumidores comprará en determinado momento, área geográfica,gracias a un programa de marketing.

Imagen: Ejemplo de demanda en el entorno de marketing digital y publicidad en internet. Enlace: https://hubworks.com/es/blog/what-to-know-about-demand-generation-marketing.html

1.12. Precio: Se le dice así a la cantidad de dinero que un grupo de consumidores estarán dispuestos a pagar por los beneficios de un producto o servicio.

Imagen: Ejemplo de precio en el entorno de marketing digital y publicidad en internet. Enlace: https://lemon.digital/precio-plan-marketing-digital/

1.13. Teoria del Conocimiento Por: Andy Letrán

La Teoría del conocimiento es una rama de la filosofía, centrada en el estudio del conocimiento humano. Dependiendo de la perspectiva académica específica, este término puede considerarse sinónimo de la gnoseología, dedicada al estudio de la naturaleza del conocimiento, su origen y sus límites.


Página 256 de 292

En otros casos puede usarse como sinónimo a la epistemología, que se centra en el estudio de las circunstancias históricas, psicológicas o sociológicas en las que se obtiene el conocimiento, así como las estrategias empleadas para justificarlo o invalidarlo. El conocimiento humano es un tema abordable desde muchas aristas posibles y cuya naturaleza es difícil de asir, aunque mucho más fácil de clasificar. De esta manera, el estudio del conocimiento, por un lado, reflexiona sobre sus características y sus condiciones de aparición. Por otro lado, esta disciplina ordena el conocimiento en base a sus limitaciones, requisitos formales o mecanismos que empleamos para convalidarlos y diferenciar el conocimiento de la fe, de la fantasía o del error. Así, es posible hablar de conocimiento científico, por ejemplo, cuando se rige por las exigencias del método científico; de conocimiento teológico, cuando se trata de los saberes en torno a lo religioso; de conocimiento artístico, cuando se adquiere mediante el ejercicio del talento y de los mecanismos de representación conocidos por el ser humano. La posibilidad de distinguir entre ellos, de ordenarlos y esquematizarlos como si de objetos concretos se tratara, es fruto de la Teoría del conocimiento.

Imagen: Teoria del Conocimiento Fuente: https://concepto.de/wp-content/uploads/2019/06/teoria-del-conocimiento-gnoseologia-

epistemologia-filosofia-e1561902198564.jpg

1.14. Dato Por: Andy Letrán

Un dato es la representación de una variable que puede ser cuantitativa o cualitativa que indica un valor que se le asigna a las cosas y se representa a través de una secuencia de símbolos, números o letras. Los datos describen hechos empíricos. Para examinarlos deben ser organizados o tabulados, ya que un dato por sí mismo no puede demostrar demasiado, sino que se debe evaluar el conjunto para examinar los resultados.


Página 257 de 292

1.14.1. Base de datos Las bases de datos están formadas por un conjunto de datos clasificados según un criterio y almacenados en un soporte (digital o no) con el fin de ser consultados y acceder a ellos de manera simple y rápida. Los datos pueden ser generados de forma automática y acumulativa con programas informáticos o ingresados de forma manual. Los datos que se ingresan en una base pueden ser de diversos tipos según la información que se acumule en dicha base. Por ejemplo: una base de datos de empleados incluye la información personal (nombre, teléfono, domicilio) de todos los miembros de una empresa u organización.

1.14.2. Datos estadísticos La estadística es la rama de la matemática que analiza datos obtenidos de diferentes muestras representativas para conocer un fenómeno. Existen dos tipos de datos que se analizan en la estadística, que deben ser procesados y enmarcados dentro de un contexto para generar información; ● Datos cualitativos. Datos que responden a la pregunta ¿cuál? o ¿cuáles? y se representan con letras. Por ejemplo: nombre, género. ● Datos cuantitativos. Datos que están referidos a los números. Por ejemplo: precio, altura, edad.

1.14.3. Marketing de Datos Para nadie es un secreto que las herramientas métricas que proporciona la web y las plataformas en líneas como las redes sociales, Facebook, Twitter, Instagram y las diferentes plataformas de navegación, han permitido la entrada de una enorme cantidad de datos sobre los consumidores y/o usuarios en la web. Los expertos en marketing se dedican a seleccionar y a organizar todas las estrategias que se deben aplicar en los anuncios publicitarios para un producto basados en la data real del público objetivo que se desea alcanzar, así como, del usuario existente. Lo fundamental, es que puedas ver y estudiar los patrones de conductas, la tendencia de los usuarios y hábitos, y una vez detectado todo esto, puedes definir claramente cuáles serán las acciones que debes aplicar en el marketing.

Tienes dos maneras de hacerlo una es manual donde evalúas y supervisas con tu equipo toda la información y la otra es utilizar una herramienta automática de aprendizaje, la cual se encarga de revelar el momento para realizar la acción comunicacional.


Página 258 de 292

Imagen: Proceso para el Marketing de datos Fuente: https://paginasweb.tech/image/2019/04/Marketing-Educativo.webp

1.15. Informacion Por: Andy Letrán Como información denominamos al conjunto de datos, ya procesados y ordenados para su comprensión, que aportan nuevos conocimientos a un individuo o sistema sobre un asunto, materia, fenómeno o ente determinado. La palabra, como tal, proviene del latín informatĭo, informatiōnis, que significa ‘acción y efecto de informar’. La importancia de la información radica en que, con base en esta, podemos solucionar problemas, tomar decisiones o determinar cuál alternativa, de un conjunto de ellas, es la que mejor se adapta a nuestras necesidades. El aprovechamiento que hagamos de la información, en este sentido, es la base racional del conocimiento. La consecuencia más importante de la información es cambiar el estado de conocimiento que un individuo o sistema maneja con respecto a determinado fenómeno o cuestión, todo lo cual influirá en las acciones, actitudes o decisiones que se tomen a partir de la nueva información. Por ejemplo, al informarnos sobre el estado del tiempo y enterarnos de que va a llover, sabremos que nuestra mejor hipótesis para evitar mojarnos es llevar un paraguas con nosotros al salir. Por otra parte, algunas de las características fundamentales de la información es que esta debe tener cierto grado de utilidad, pues, con base en ella, el individuo o sistema modificará las sucesivas interacciones que realice con su entorno. Asimismo, la información deberá poseer vigencia o actualidad, pues de nada sirve informarse sobre el estado del tiempo del día anterior para decidir si llevar paraguas o no. Y, finalmente, la información deberá ser confiable, pues en la medida en que lo sea se dispondrán una serie de acciones para confirmarla.

1.15.1. Informacion ad perpetuam En Derecho, como información ad perpétuam, o información ad perpétuam rei memóriam, se conoce la información que se hace para perpetua memoria, es decir, para que conste en lo sucesivo en las acciones judiciales que tengan lugar.

1.15.2. Informacion Financiera Como información financiera se denomina el conjunto de datos relativos a la situación económica de una persona, una entidad, un mercado o un país, y que se emplea con la finalidad de analizar su solidez y liquidez, y establecer parámetros que permitan tomar decisiones relativas a operaciones comerciales o inversiones.


Página 259 de 292

1.15.3. Informacion en Informatica En la Informática, como información se denomina el conjunto de datos organizados y procesados que funcionan como mensajes, instrucciones y operaciones o cualquier otro tipo de actividad que tenga lugar en una computadora

1.15.4. Informacion Privilegiada Se denomina información privilegiada aquella que es exclusiva de un grupo de personas o empresas, y que proporciona ciertas ventajas competitivas a quienes la posean. El concepto de información privilegiada es, sobre todo, común en los ámbitos empresariales y bursátiles, y debe ser manejada con cuidado y ética, pues es susceptible de ser utilizada en provecho propio o ajeno.

Imagen: Informacion Fisica y Digital Fuente: https://economipedia.com/wp-content/uploads/informaci%C3%B3n.png

1.16. Conocimientos Por: Andy Letrán Resulta sumamente complicado definir el conocimiento o establecer sus límites conceptuales. La mayoría de las aproximaciones a qué cosa es, dependen siempre de la perspectiva filosófica y teórica que uno posea, dado que existen conocimientos relacionados a todas las ramas del saber humano, y también a todas las áreas de la experiencia. Incluso el conocimiento mismo sirve como tema de estudio: la rama de la filosofía que lo estudia se conoce como Teoría del conocimiento. Comúnmente, entendemos por conocimiento al proceso mental, cultural e incluso emocional, a través del cual se refleja y reproduce la realidad en el pensamiento, a partir de diversos tipos de experiencias, razonamientos y aprendizajes. En este concepto puede incluirse uno o varios de los siguientes elementos: ● Hechos o informaciones que aprendidos por alguien y comprendidos a través de la experiencia, la educación, la reflexión teórica o experimental. ● La totalidad del contenido intelectual y de los saberes que se tienen respecto a un campo específico de la realidad. ● La familiaridad y la consciencia que se obtiene respecto a un evento determinado, luego de haberlo vivenciado.


Página 260 de 292

● Todo aquello que puede pensarse empleando las preguntas “¿cómo?”, “¿cuándo?”, “¿dónde?” y “¿por qué?”.

1.16.1. Elementos del Conocimiento Se reconocen usualmente cuatro elementos del conocimiento, que son los que intervienen en la adquisición o formulación de un saber cualquiera:

● Sujeto. Todo conocimiento es adquirido por un sujeto, es decir, forma parte del bagaje mental o intelectual de un individuo. ● Objeto. Los objetos son todos los elementos reconocibles de la realidad, que sirven al sujeto para formar conocimientos, es decir, para formularse ideas, entender relaciones, fabricar pensamientos. El sujeto solo, aislado de todo y de todos, no puede obtener conocimiento. ● Operación cognoscitiva. Se trata de un proceso neurofisiológico complejo, que permite establecer el pensamiento del sujeto en torno al objeto, o sea, permite la interacción entre sujeto y objeto y su formulación intelectual en el conocimiento. ● Pensamiento. El pensamiento es difícil de definir, pero en este ámbito podemos comprenderlo como la “huella” psíquica que el proceso cognoscitivo deja en el sujeto respecto de su experiencia con el objeto. Es una representación mental del objeto, inserta en una red de relaciones mentales y que permiten la existencia del conocimiento como tal.

Imagen: Conocimiento Fuente: https://www.virtualpro.co/noticiasImg/52535/20191211-conocimiento.jpg

1.17. Marketing Digital Por: Andy Letrán La mercadotecnia digital o marketing digital (también llamado marketing 2.0, mercadotecnia en internet, cybermarketing o cibermercadotecnia) está caracterizada por la combinación y utilización de estrategias de comercialización en medios digitales. El marketing digital se configura como la mercadotecnia que hace uso de dispositivos electrónicos tales como: computadora personal, teléfono inteligente, teléfono celular, tableta, televisor inteligente y consolas para involucrar a las partes interesadas, en un


Página 261 de 292

entorno brindado por la internet. La mercadotecnia digital se aplica a tecnologías o plataformas tales como sitios web, correo electrónico, aplicaciones web (clásicas y móviles) y redes sociales. También puede darse a través de los canales que no utilizan Internet como la televisión, la radio, los mensajes SMS, etc. Los medios sociales son un componente de la mercadotecnia digital. Muchas organizaciones usan una combinación de los canales tradicionales y digitales de mercadotecnia; sin embargo, la mercadotecnia digital se está haciendo más popular entre los mercadólogos ya que permite hacer un seguimiento más preciso de su retorno de inversión (ROI) en comparación con otros canales tradicionales de mercadotecnia. La tendencia global actual en la mercadotecnia digital en línea es combinar diferentes técnicas como mercadotecnia de contenidos, mercadotecnia en redes sociales, mercadotecnia de celebridades de internet, publicidad programática, mercadotecnia de correos electrónicos, SEO, SEM, y otras. También se aplican técnicas de la mercadotecnia tradicional en combinación con las técnicas de los nuevos medios. Se trata de un componente del comercio electrónico, por lo que puede incluir la gestión de contenidos, las relaciones públicas, la reputación en línea, el servicio al cliente y las ventas. Una de las características principales de esta nueva tendencia, es que posibilita la realización de campañas y estrategias personalizadas pues ofrece una gran capacidad analítica y así lograr lanzar campañas para mercados objetivos muy segmentados. La mercadotecnia digital pretende ser una adaptación de la filosofía de la web 2.0 a la mercadotecnia, se refiere a la transformación de la mercadotecnia como resultado del efecto de las redes en Internet. Debe estar centrada en el público y debe existir una interacción entre la campaña de promoción y el público que la recibe. Algunas características de la Mercadotecnia Digital podrían ser un contenido atractivo y un entorno donde el público pueda recibir la información. El contenido que ofrece la Mercadotecnia Digital como el entorno deben tener interacción con el público. Las redes sociales están creciendo en inversión sobre los métodos de publicidad tradicionales, prácticamente todas las redes de amplia utilización incorporan ya fórmulas para efectuar publicidad efectiva en ellas. La mercadotecnia digital representa un cambio dramático en beneficio de las búsquedas y compras de bienes y servicios, independientemente de la publicidad, campañas de mercadotecnia y mensajes. En él, los clientes toman decisiones bajo sus propios términos, apoyándose en las redes de confianza para formar opiniones, tales como personas cercanas o comentarios de los diferentes usuarios que ya han probado antes un producto o servicio. Se puede decir que ha cambiado los roles de la mercadotecnia, antes la mercadotecnia lo hacían los directivos y sus agencias, con este significativo cambio la mercadotecnia digital lo puede hacer cualquiera. Hoy en día vemos mucho contenido que es generado por diferentes usuarios de marcas y que llegan a ser más compartidos y tener un mayor impacto entre clientes actuales y potenciales que lo que comunica la misma marca en sus plataformas oficiales. Estos cambios tienen implicaciones dramáticas sobre cómo la mercadotecnia es creada y la forma en la que los consumidores toman un rol participativo en el desarrollo de nuevos productos y marcas. Hemos pasado de decisiones dirigidas por la compañía a compañías que promueven la creación colaborativa con sus consumidores utilizando plataformas digitales. La mercadotecnia digital ha generado importantes cambios en cómo se comercializan los servicios, como la banca o las telecomunicaciones.

Historia El término mercadotecnia digital se utilizó por primera vez en la década de 1990. En las décadas de 2000 y 2010 la mercadotecnia digital se volvió más sofisticada, como una forma eficaz de crear una relación con el consumidor que tiene profundidad y relevancia. La rápida evolución de los medios digitales ha creado nuevas oportunidades y vías para


Página 262 de 292

la publicidad y la mercadotecnia. Esto se ha visto impulsado por la proliferación de dispositivos para acceder a los medios digitales, lo que ha llevado al crecimiento exponencial de la publicidad digital, lo que a la vez ha evolucionado paralelamente con la mercadotecnia. En 2012 y 2013 las estadísticas mostraron que la mercadotecnia digital continuó creciendo cada vez más. El crecimiento de los medios digitales se estima en 4,5 billones de anuncios en línea servidos anualmente; con esto el gasto en medios digitales creció en un 48% en 2010. Una creciente parte de la publicidad se deriva de las empresas que emplean publicidad en línea basada en el comportamiento (Online Behavioural Advertising) para adaptar la publicidad a los usuarios de Internet. Aunque es un recurso innovador, la publicidad en línea basada en el comportamiento plantea una preocupación con respecto a la privacidad y la protección de datos de los consumidores. Tales consecuencias conllevan consideraciones importantes a la hora de realizar comunicaciones responsables. La mercadotecnia digital se refiere a menudo como "mercadotecnia en Internet" o "mercadotecnia web". El término 'mercadotecnia digital' ha crecido en popularidad con el tiempo, particularmente en ciertos países. En los EE.UU. 'marketing online' sigue siendo frecuente, en Italia es referido como 'mercadotecnia web' pero en el Reino Unido y en todo el mundo, 'mercadotecnia digital' se ha convertido en el término más común, sobre todo después del año 2013.

Caracteristicas Segmentación de mercado Se ha puesto un mayor enfoque en la segmentación dentro de la mercadotecnia digital, a fin de dirigirse a mercados específicos, tanto de empresa a empresa como de empresa a los sectores de consumo. (O también llamado B2B y B2C) Influyentes de la mercadotecnia Esto se está convirtiendo en un concepto importante en la orientación digital. Es posible llegar a personas influyentes a través de la publicidad pagada, como la publicidad de Facebook o campañas de Google Adwords, o por medio de un sofisticado sCRM (Administración de la relación con el cliente social) software, como SAP C4C, Microsoft Dynamics y Salesforce CRM. Muchas universidades se centran ahora, a nivel de maestría, en estrategias de participación de personas influyentes. Para resumir, mercadotecnia digital de jale (Pull marketing digital en inglés) se caracteriza por los consumidores que buscan activamente el contenido de mercadotecnia, mientras que el marketing digital de empuje se produce cuando los vendedores envían mensajes sin que el contenido que se busca activamente por los destinatarios. Publicidad comportamental en línea Se refiere a la práctica de recoger información acerca de la actividad en línea de un usuario a través del tiempo", en un dispositivo particular y a través de diferentes sitios web no relacionados, con el fin de ofrecer publicidad adaptada a los intereses y preferencias de ese usuario.


Página 263 de 292

Entorno colaborativo Un entorno colaborativo se puede establecer entre la organización, el proveedor de servicios de tecnología y las agencias digitales para optimizar esfuerzos, el intercambio de recursos, la reutilización y las comunicaciones. Optimización para motores de búsqueda Artículo principal: Optimización para motores de búsqueda La optimización para motores de búsqueda, técnica mundialmente conocida como SEO por sus siglas en inglés (Search Engine Optimization), se refiere a optimizar un sitio web y sus contenidos para que sea indexado de manera sencilla en los motores de búsqueda y así atraer a usuarios influyentes a un sitio web. Comunicación bidireccional La mercadotecnia realizada en plataformas como redes sociales o páginas web, puede ser bidireccional, es decir permite a las marcas interactuar con las personas que están interesadas en los productos y servicios y pueden realizar un acercamiento más productivo a la hora de vender. Esta característica, también permite a los usuarios crear contenido referente a la marca, llamado User Generated Content. Que es una estrategia caracterizada por la contribución de parte de los usuarios sobre un producto. Asimismo, permite que la promoción realizada sea naturalmente creativa y sea accesible ya que es generalmente accesible porque se publica online. Teniendo como beneficio: Promoción de bajo costo. Contenido que es más confiable por sus usuarios. Contenido fresco, ya que los usuarios constantemente aportan sobre los productos/ servicios consumidos. Comunicaciones multicanal Tecnologías de mensajes de push y pull (empuje y jale) pueden ser usados en conjunción. Por ejemplo, una campaña de correo electrónico puede incluir un anuncio tipo banner o un enlace a una descarga de contenido.

Imagen: Marketing Digital Fuente: https://ingenioacademy.com/medios/2021/09/1500x844_tendencias_marketing_digital.jpg


Página 264 de 292

1.17.1. Panorama Digital Por: Andy Letrán Con la llegada de las nuevas tecnologías y sus tendencias asociadas, la información que se genera en nuestra sociedad está creciendo de manera exponencial. Uno de los escenarios en los que la cantidad de información que se genera cada día empieza a ser inabordables en el marco de las redes sociales. Esta nueva fuente de información ha atraído la atención de muchos profesionales que ven en las redes sociales una fuente inagotable de información para poder entender muchos de los problemas que nos preocupan hoy en día. Por este motivo, también ha crecido de manera significativa el análisis y el estudio de las redes sociales online. Ello es debido principalmente a la gran cantidad de usuarios que las utilizan. El estudio de las redes sociales y el papel que juegan en este proceso de influencia social da lugar a varios tipos de aplicaciones como: Detectar personas influyentes y hacer marketing dirigido a ellas, para que influyan en las decisiones de las personas a las que los siguen; o detectar cambios en los entornos sociales de clientes y poder anticiparse a un cambio de comportamiento/consumo de los mismos. Simplemente por mencionar una aplicación de este último proceso, tenemos el conocido Social CRM en el que las empresas utilizan las redes sociales online u otros datos de redes sociales para comprender mejor el comportamiento o influencia social de sus clientes. Uno de los sectores donde este tipo de análisis es más natural es en aquellas compañías que tienen datos sobre la interacción de sus propios clientes. Uno de los sectores más avanzado en el uso del análisis de redes sociales en procesos de gestión de clientes es el sector de las Telco donde se utiliza para predecir la tasa de abandono de clientes (churn), detectar los clientes denominados “influencers” o “αα-users”, mejorar el “targeting” en la adopción de productos, etc.

Imagen: Panorama Digital

1.17.2. SEO-SEM Por: Keneth López El SEO y el SEM son dos básicos imprescindibles en las estrategias de marketing online, pero también son dos siglas que llevan a confusión: ¿cuál es mejor para mi marca y cómo puedo usarlos para que se potencien entre sí?

Definición SEO SEO son las siglas de Search Engine Optimization (optimización para motores de búsqueda). se puede definir como "el proceso de mejorar la visibilidad de un sitio web en


Página 265 de 292

los resultados orgánicos de diferentes buscadores". Es muy importante destacar que el SEO se refiere a los resultados orgánicos, esto es, que no vamos a pagarle a la empresa del buscador para que nuestras páginas posicionen mejor. Los motores de búsqueda han ido evolucionando a lo largo de los años y, con ellos, las estrategias de SEO se han ido haciendo cada vez más sofisticadas. Existen dos factores fundamentales que influyen en el posicionamiento de una página web:

Factores fundamentales en posicionamiento La relevancia. Google considera que una web es relevante cuando se corresponde con precisión con una búsqueda concreta, esto es, cuando responde a la duda o la pregunta que ha formulado el usuario. Para mejorar la relevancia de nuestra web, usamos técnicas de SEO on site: optimización de palabras clave y URL, tiempos de carga más rápidos, mejor experiencia de usuario, Entre otros. La autoridad. Un sitio web tiene autoridad cuando es popular, y esta popularidad se mide según el número de enlaces que apuntan hacia ella. Para mejorar la autoridad de una web se usan técnicas de SEO off site, entre las que destaca el linkbuilding.

Definición SEM SEM son las siglas de de Search Engine Marketing (marketing en motores de búsqueda). De manera global, podríamos considerar que el SEM engloba todas las técnicas usadas para mejorar el posicionamiento de una web (incluyendo el SEO). Sin embargo, la mayoría de los marketers usan SEM como sinónimo de "publicidad en buscadores". El SEM, por tanto, se refiere a las técnicas que mejoran el posicionamiento de nuestra web a través de anuncios pagados que aparecen en los buscadores para determinadas palabras clave.

Imagen: Ejemplo de comparativa entre seo y sem Fuente: https://www.antevenio.com/wp-content/uploads/2020/10/seo-vs-sem.jpg

1.17.3. Fundamentos Así como en el marketing tradicional existen las 4P, en los fundamentos del Marketing Digital tenemos las 4F: flujo, funcionalidad, feedback y fidelización. De acuerdo al libro de Philip Kotler “Fundamentos del Marketing”, el economista estadounidense especialista en mercadeo y considerado el padre del marketing moderno resalta que el “Internet ha cambiado fundamentalmente las nociones de los clientes acerca de comodidad, velocidad, precio, información de producto y servicio.


Página 266 de 292

Como resultado, ha dado a los mercadólogos una forma nueva para crear valor para los clientes y construir relaciones con ellos”.

Flujo Este es el primer fundamento del marketing digital. El flujo se refiere a la interactividad de un sitio web y de las redes sociales de una empresa y cómo estas proporcionan un valor agregado a la experiencia de los clientes. En el marketing digital, el contenido de las redes sociales o de la web de una marca es usualmente la primera interacción con los potenciales clientes y, por esto, es necesario causar una buena impresión. Para comenzar, el contenido debe ser atractivo para captar la atención de los consumidores y, a su vez, debe ser capaz de diferenciarse del resto.

Funcionalidad Este fundamento del marketing digital es muy importante Hablando de la navegación de una web, esta debe ser intuitiva, fácil, cómoda y útil para los usuarios. Si tu página es difícil de explorar, es muy probable que las personas desistan de comprar tus productos y servicios.

Feedback Dentro de una estrategia de marketing digital es muy importante escuchar a tus clientes. Tomar en cuenta el feedback de tus clientes es esencial para cualquier área de tu negocio. Hoy, gracias a la tecnología, estamos conectados y es mucho más sencillo conocer los comentarios de los consumidores. El feedback es casi automático. Crear una relación entre la marca y el usuario a través de la escucha activa de los consumidores es un elemento imprescindible para construir una reputación online positiva y crear clientes satisfechos y fieles

Fidelización Este es quizá el más importante, ya que determinará si el cliente desea construir una relación con tu marca a largo plazo. La fidelización está relacionada con el marketing de contenidos. Esto quiere decir que para tener clientes fieles, necesitas crear contenido de valor en tu web y redes sociales constantemente para tener a los usuarios con ganas de visualizar el contenido sobre tu marca, producto o servicio.

Imagen: Ejemplo de lagunas etapas del marketing Digital Fuente: https://www.francoischung.com/wp-content/uploads/2020/07/fundamentos-de-marketing-digital.png


Página 267 de 292

1.17.4. Display La publicidad de tipo Display es un formato publicitario online en el que los anuncios se muestran en forma de banners en las páginas de destino. En su forma más básica, estos banners son una combinación de imágenes y texto. También pueden incluir audio, vídeo u otros formatos interactivos. Generalmente los banners aparecen en la parte superior o lateral de la página de destino. En el mercado de la publicidad online nos encontramos con tres actores principales: los anunciantes, las páginas web o blogs en las que aparecen los banners y las plataformas y redes de afiliados. Las redes de afiliados son las intermediarias entre webmasters y anunciantes.

Cuatro modelos básicos de pago de publicidad display ●

Coste por mil impresiones (CPM): el anunciante pagará una cantidad previamente determinada cada vez que el anuncio se muestre 1000 veces en la plataforma. Puede ser interesante para campañas de awareness, donde el objetivo está relacionado con la visibilidad.

Coste por clic (CPC): como su nombre indica, en este modelo el anunciante paga cada vez que un usuario hace clic sobre su anuncio.

Coste por acción: aún más específico que el anterior, aquí el anunciante solo pagará cada vez que el usuario realice una acción determinada, por ejemplo, comprar un producto. Dado que está muy ligado a la conversión y a los modelos de online performance marketing, esta opción puede traer muy buenos resultados en cuanto a ROI.

Tarifa plana: consiste en pactar una cantidad fija por día de actividad de la campaña o por mes, independientemente de los resultados. Para saber si esta opción nos conviene, hay que hacer previamente un análisis detallado de los resultados esperables.

● Imagen: Ejemplo de display en marketing Fuente: https://marketing4u.com.mx/wp-content/uploads/2016/10/red-display.jpg

1.17.4. Community El Community Manager es un profesional de marketing digital responsable de la gestión y desarrollo de la comunidad online de una marca o empresa en el mundo digital.


Página 268 de 292

En estas funciones de gestión y desarrollo, debe trabajar para aumentar la comunidad, para detectar a los potenciales clientes y prescriptores. Una vez detectados, establecer con ellos relaciones duraderas y estables. Relaciones que contribuyan a la consecución final de los objetivos de marketing digital de la marca: vender más.

Qué hace un Community Manager Navega entre la gestión de la comunicación online o digital y el marketing digital, pues debe cumplir los objetivos y establecer un plan de acción. Como Community Manager tendrá que definir una estrategia y objetivos específicos, que contribuirán a los objetivos y estrategia de Social Media de la marca. Y a su vez a los objetivo y estrategia general de marketing digital de la organización. En este esquema el Community debe aportar valor en las siguientes 4 áreas: 1.- Creación y gestión de contenidos. Fundamental. No podemos olvidar que las personas van a las redes sociales a consumir contenido. Ya sea escrito, audiovisual, podcast o infografía. 2.- Analítica. Monitorización de todos los parámetros estratégicos y definición de KPIS: engagement, crecimiento comunidad, ROI, trafico web social… 3.-Comunicación con la comunidad. Establecer diálogos bidireccionales, crear audiencias, humanizar la marca y generar valor. En este punto entra de lleno la atención al cliente. Las Redes Sociales son un escenario perfecto para ello. 4.- Planificación de acciones de marketing digital.

Imagen: Ejemplo de funciones de un community manager Fuente: https://conektica.com/wp-content/uploads/2019/03/7-herramientas-para-communitymanager-que-no-te-debes-perder-1-800x313.jpg

1.17.6. Manager El gerente de marketing digital o Digital Marketing Manager es la persona responsable de desarrollar y supervisar las estrategias de marketing online para empresas que van desde pequeñas emergentes hasta grandes empresas. Se responsabilizan de supervisar el proyecto y garantizar que la campaöa de marketing digital se desarrolle sin problemas, de principio a fin. Además, lideran equipos y actúan como el punto clave de contacto con el cliente en


Página 269 de 292

un entorno B2B. Estas personas son esencialmente gerentes comerciales en agencias de marketing digital, por lo que deben tener buenas habilidades interpersonales, a Ia vez que pueden administrar contenido y formular estrategias. Hasta cierto punto, siempre será necesario que tengan conocimientos en distintas disciplinas como SEO, analitica, publicidad, ventas, redes sociales, ernail marketing, desarrollo web o redacción de textos publicitarios.

Habilidades de un manager ● ● ● ● ● ● ● ● ● ●

Adaptable Interesado/a en aprender cosas nuevas Querer un trabajo multifuncional Un o una lider nato Un visionario/a Solucionador de problemas Creativo/a Alguien centrado en los negocios orientados a las personas Entendedor de las estrategias comerciales y de marketing Alguien con pensamiento estratégico

Imagen: Ejemplo de un manager en marketing digital Fuente: https://www.extradigital.es/wp-content/uploads/2020/05/manager.jpg

1.17.7. Marketing Mobile Este se define como el conjunto de acciones y técnicas de Marketing dirigidas a dispositivos móviles donde es necesario el diseño, la implementación y la ejecución de acciones específicas para dispositivos móviles. La importancia de la publicidad en estos dispositivos se abre paso en las estrategias de marketing de las empresas debido a que los usuarios muestran cada vez mayor predisposición a usar su smartphone para sus compras y transacciones.

Estrategia en el Marketing Mobile


Página 270 de 292

Resposnive Desgin: Muchas páginas web están adaptadas ya a dispositivos móviles, no obstante, en algunas no se visualiza correctamente el contenido (textos o imágenes que no se ajustan a la pantalla) y la navegación se vuelve tediosa o imposible para los usuarios. Este es el motivo por el que es fundamental tener una página web adaptada a los dispositivos móviles (webs responsive), no solamente para su correcta visualización sino porque, como hemos comentado anteriormente, todas las que no lo estén se verán penalizadas.

Adaptación de Contenidos: El uso del móvil para la lectura es poco frecuente. Los usuarios, por norma general, utilizan otros dispositivos como los ordenadores cuando hacen lecturas de documentos complejos y detallados que requieren de su atención. No obstante, el uso de la tableta para la lectura es cada vez más frecuente. Una estrategia de contenidos efectiva para Mobile Marketing es el uso de elementos visuales como videos cortos o imágenes que impacten sobre el usuario y retenga su atención. Por ello, deben desarrollarse contenidos concisos, de fácil lectura e impactantes. Campañas de Mobile Marketing: En la actualidad, disponemos de diferentes plataformas para realizar acciones publicitarias que segmentan únicamente para dispositivos móviles. Las más destacadas son Google Ads, Facebook Ads, Twitter Ads, YouTube, Bing, etc. Si sabes cuál es el perfil de tu cliente potencial y el comportamiento que suele tener en la red, la publicidad digital es una opción muy útil que tener en cuenta.

Fuente: https://www.grid.cl/blog/wp-content/uploads/2019/03/7-herramientas-para-hacer-emailmarketin-movil2.jpg

1.17.8. E-Commerce Por: Diego López También es conocido como comercio electrónico, es el intercambio de productos o servicios usando redes computacionales, específicamente Internet. Se refiere a las transacciones entre compradores y vendedores mediante una plataforma online que gestiona los cobros y los pagos de manera completamente electrónica.

Ventajas Acceso a un mercado global, de manera que podrás ampliar el target de tu tienda online y conseguir más clientes. Gran potencial para escalar el negocio y ampliar la oferta de productos y servicios sin necesidad de realizar una gran inversión.


Página 271 de 292

Reducción de los costes y gastos que implica gestionar una tienda online, tanto en términos de infraestructura como de personal es otra de las principales características del comercio electrónico.

Desventajas Existe una gran competencia, sobre todo de grandes colosos del comercio online y de reconocidas marcas internacionales que abren sus propias tiendas online. Problemas de seguridad, generalmente causados por ciberataques, que exponen los datos de los clientes y afectan la confianza en la tienda online. El umbral de rentabilidad tarda en llegar, generalmente hay que realizar una inversión importante en marketing al inicio para que el e-commerce obtenga visibilidad.

Imagen: Ejemplo del comercio electrónico Fuente: https://s3.amazonaws.com/cdn.wp.m4ecmx/wp-content/uploads/2015/05/31143018/Qu%C3%A9-es-eleCommerce-compressor.jpg

1.18. Publicidad Por: Diego López es una estrategia de mercadotecnia que envuelve la compra de un espacio en medios para divulgar un producto, servicio o marca, con el objetivo de alcanzar el público objetivo de la empresa e incentivarlo a comprar por medio de dispositivos o canales digitales.

Características Siempre va dirigida a intentar persuadir a las personas de adquirir un bien o servicio. Durante su desarrollo debe informar al espectador sobre las características del producto publicitado. Debe ser novedosa y original para lograr captar la atención. Entre los elementos utilizados se encuentran imágenes, videos, música entre otros. Utiliza diferentes medios tanto digitales como físicos para llegar a diferentes sectores de la población.

Tipos de Publicidad Digital Medios pagos, que abarca: ● Links patrocinados: anuncios de texto que aparecen en la cima de los SERPs de motores de búsqueda (Google, por ejemplo).


Página 272 de 292

● Media display: anuncios visuales (imágenes, animaciones) que surgen en contenidos para páginas web. ● Social Ads: anuncios para redes sociales, con diversos formatos. Facebook Ads, Instagram Ads, LinkedIn Ads, Sponsored Tweets de Twitter y YouTube Ads son los más usados. ● Mobile Ads: toda forma de publicidad dirigida para páginas web y aplicaciones para dispositivos móviles (teléfonos, tablets). ● Google Shopping: anuncios de productos que aparecen en los resultados de una búsqueda con información sobre el precio, marca y lugar para comprar. Medios orgánicos, que abarca: ● SEO (Seach Engine Optimization): optimización de las páginas en un sitio web para que ellas aparezcan bien posicionadas en los resultados orgánicos de los motores de búsqueda. ● Redes Sociales: publicidad a través de post e interacción con la audiencia por las plataformas sociales. ● Email Marketing: envío de correos electrónicos (generalmente automatizados) para divulgar ofertas y estrechar la relación con el público objetivo. ● Blog: publicación de artículos sobre el área que la empresa se dedica con la intención de atraer a los usuarios y mejorar el posicionamiento en motores de búsqueda. ● Guest Post: publicaciones de invitados en el blog de un socio de la marca para atraer a un nuevo público objetivo y generar mayor tráfico de visitas.

Importancia de la Publicidad La principal importancia radica en el ámbito empresarial e industrial, por lo tanto en la economía de un país, ya que esta permite el aumento de las ventas por medio de la promoción de productos.

Ventajas Una de las ventajas más importantes de la Publicidad en Internet es la rápida y precisa disponibilidad de datos e información sobre el rendimiento de nuestras campañas. Nos permite ahorrar dinero, ¡un aspecto que está muy tenido en cuenta! Porque con campañas de publicidad en Internet podemos promocionar proyectos adaptándonos a casi cualquier presupuesto. La presencia en Internet elimina barreras geográficas y ofrece a cualquier empresa la posibilidad de expandirse desde un mercado local a mercados nacionales e internacionales. Por eso Internet nos ofrece oportunidades casi infinitas.

Desventajas Conexiones a Internet lentas pueden causar dificultades de navegación si construimos sitios web demasiado complejos o demasiado grandes.


Página 273 de 292

El comercio electrónico (o E-Commerce) no permite al usuario «tocar» la mercadería antes de comprarla. Por esta razón deberemos ofrecer garantías y políticas para devolver productos.

Imagen: Ejemplo de la Publicidad en Internet Fuente: https://revistasumma.com/wp-content/uploads/2015/05/Publicidad.png

1.19. CSS Introducción Por: Diego López CSS es el acrónimo de Cascading Style Sheets. CSS es un lenguaje de hojas de estilos creado para controlar el aspecto o presentación de los documentos electrónicos definidos con HTML y XHTML. CSS es la mejor forma de separar los contenidos y su presentación y es imprescindible para crear páginas web complejas.

Caracterpisticas de CSS ● ● ● ● ● ●

Es un lenguaje de programación diferente a HTML Permite el apilamiento de instrucciones para definir formatos específicos Es utilizable en todos los navegadores y plataformas Optimiza el funcionamiento de las páginas web Tiene una sintaxis específica Permite personalizar totalmente la apariencia de las páginas

Ventajas Con una Hoja de Estilo podemos alterar la presentación de cada elemento sin tocar el código HTML, ahorrando esfuerzo y tiempo de edición. El lenguaje de las CSS ofrece herramientas de composición más potentes que HTML. El lenguaje de las Hojas de Estilo, aunque muy potente, es relativamente sencillo y fácil de aprender. Los documentos que usan CSS generalmente resultan más compactos. Las Hojas de Estilo pueden aplicarse de varias maneras y combinarse formando una cascada de estilos con la información de cada una. Pueden usarse con otros lenguajes de programación (como JavaScript) para conseguir efectos dinámicos en las páginas.


Página 274 de 292

Desventajas Algunas propiedades de las CSS (como las que afectan la posición o visibilidad de los elementos) pueden provocar que una parte del contenido de nuestra página resulte inaccesible desde ciertos navegadores si no son utilizadas correctamente.

Imagen: Ejemplo de la Estructura en un CSS Fuente: https://ichi.pro/assets/images/max/724/1*Z_oiTNkqG24MrEczYTW62Q.png

1.19.1. CSS Sintaxis Por: Diego López La meta básica del lenguaje Cascading Stylesheet (CSS) es permitir al motor del navegador pintar elementos de la página con características específicas, como colores, posición o decoración. La sintaxis CSS refleja estas metas y estos son los bloques básicos de construcción. En este podemos encontrar la siguiente forma de declarar los componentes: ● La propiedad que es un identificador, un nombre leíble por humanos, que define qué característica es considerado. ● El valor que describe como las características deben ser manejadas por el motor. Cada propiedad tiene un conjunto de valores válidos, definido por una gramática formal, así como un significado semántico, implementados por el motor del navegador.

Imagen: Ejemplo de las partes en un CSS Fuente: https://lenguajecss.com/css/introduccion/estructura-de-css/sintaxis-simple.png


Página 275 de 292

Declaraciones en CSS Configurando propiedades CSS a valores específicos es la función principal del lenguaje del CSS. Una propiedad y su valor son llamados una declaración, y cualquier motor de CSS calcula qué declaraciones aplican a cada uno de los elementos de una página para mostralos apropiadamente y estilizarlos. Ambos propiedades y valores son sensibles a mayúculas y minúsculas en CSS. El par se separa por dos puntos, ':', y los espacios en blanco antes, entre ellos y después, pero no necesariamente dentro de ellos, son ignorados.

Imagen: Ejemplo de la declaración en CSS Fuente: https://developer.mozilla.org/@api/deki/files/6164/=css_syntax_-_declaration.png

Bloques de declaraciones en CSS Las declaraciones son agrupadas en bloques, que es una estructura delimitada por una llave de apertura, '{' y una de cierre, '}'. Los bloques en ocasiones puedes anidarse, por lo que las llaves de apertura y cierre deben de coindidir. Esos bloques son naturalmente llamados bloques de declaraciones y las declaraciones dentro de ellos están separadas por un punto y coma, ';'

Imagen: Ejemplo de la declaración en CSS Fuente: https://developer.mozilla.org/@api/deki/files/6165/=css_syntax_-_block.png https://developer.mozilla.org/@api/deki/files/6166/=css_syntax_-_declarations_block.png


Página 276 de 292

1.19.2. CSS Selectores Por: Diego López Un selector CSS es la primera parte de una regla CSS. Es un patrón de elementos y otros términos que indican al navegador qué elementos HTML se seleccionan para aplicarles una regla que incluye los valores de las propiedades CSS. El elemento o los elementos seleccionados por el selector se denominan sujeto del selector.

Imagen: Ejemplo de los selectores en CSS Fuente: https://mdn.mozillademos.org/files/16550/selector.png

Tipos de selectores Hay diferentes agrupaciones de selectores, y conocer qué tipo de selector necesitas te ayudará a encontrar la herramienta adecuada para tu trabajo. En estos subartículos vamos a ver los diferentes grupos de selectores con más detalle. ● Selectores de tipo, de clase y de ID: 1. Este grupo incluye selectores que delimitan un elemento HTML, como por ejemplo un <h1>. Imagen: Ejemplo de los selectores desde HTML Fuente: https://developer.mozilla.org/es/docs/Learn/CSS/Building_blocks/Selectors

2. También incluye selectores que delimitan una clase

Imagen: Ejemplo de los selectores desde una clase de HTML Fuente: https://developer.mozilla.org/es/docs/Learn/CSS/Building_blocks/Selectors

3. o un ID

Imagen: Ejemplo de los selectores desde un ID de HTML Fuente: https://developer.mozilla.org/es/docs/Learn/CSS/Building_blocks/Selectors

● Selectores de atributo: 1. Este grupo de selectores te proporciona diferentes formas de seleccionar elementos según la presencia de un atributo determinado en un elemento.


Página 277 de 292

Imagen: Ejemplo de los selectores desde un atributo de HTML Fuente: https://developer.mozilla.org/es/docs/Learn/CSS/Building_blocks/Selectors

2. O incluso hacer una selección basada en la presencia de un atributo que tiene un valor particular asignado

Imagen: Ejemplo de los selectores desde un atributo de HTML Fuente: https://developer.mozilla.org/es/docs/Learn/CSS/Building_blocks/Selectors

● Las pseudoclases y los pseudoelementos: 1. Este grupo de selectores incluye pseudoclases, que aplican estilo a ciertos estados de un elemento. La pseudoclase :hover, por ejemplo, selecciona un elemento solo cuando se le pasa el ratón por encima

Imagen: Ejemplo de los selectores para un movimiento del raton Fuente: https://developer.mozilla.org/es/docs/Learn/CSS/Building_blocks/Selectors

2. También incluye pseudoelementos, que seleccionan una parte determinada de un elemento en vez del elemento en sí. Por ejemplo, ::first-line siempre selecciona la primera línea del texto que se encuentra dentro de un elemento (<p>, en el ejemplo siguiente), y actúa como si un elemento <span> hubiera delimitado la primera línea, seleccionado y aplicado estilo.

Imagen: Ejemplo de los selectores para seleccionar un solo elemento Fuente: https://developer.mozilla.org/es/docs/Learn/CSS/Building_blocks/Selectors

3. Combinadores: el último grupo de selectores combina otros selectores con el fin de delimitar elementos de nuestros documentos. El ejemplo siguiente selecciona los párrafos que son hijos directos del elemento <article> utilizando el operador de combinación hijo (>).

Imagen: Ejemplo de los selectores para combinar elementos entre si Fuente: https://developer.mozilla.org/es/docs/Learn/CSS/Building_blocks/Selectors


Página 278 de 292

1.19.3. CSS Implementación Por: Diego López Hay tres formas de aplicar estilos CSS en un documento HTML: en línea, incrustado en la cabecera y mediante hojas de estilo externas

CSS en línea Los estilos en línea son declaraciones CSS que se integran en las etiquetas HTML mediante el atributo style. Este método tan solo afecta al elemento en el que se integra el código. El CSS en línea es complicado de entender y mantener ya que mezcla los estilos CSS con el código HTML.

Imagen: Ejemplo de como implementar CSS en línea Fuente: https://misapuntesyacimientos.files.wordpress.com/2016/02/css-intro-5.png

CSS incrustado en la cabecera Otra manera muy simple de añadir estilo con CSS es utilizando la etiqueta <style> en la cabecera <head> del fichero HTML del sitio. La desventaja de este método es que a la hora de realizar cualquier cambio, se debe realizar en múltiples páginas diferentes y el código estará repetido. Su uso puede llegar a ser necesario en el caso de utilizar un gestor de contenido que no permita modificar el archivo CSS directamente.

Imagen: Ejemplo de como implementar CSS incrustado en la cabecera Fuente: https://www.eniun.com/como-aplicar-estilos-css-html/

CSS en hojas de estilo externas Mediante hojas de estilo externas se consigue separar el archivo de estilos del fichero HTML. El archivo de estilos cuenta con la extensión .css y se referencia desde HTML mediante el elemento <link>. Este es el método más eficiente y más sencillo de mantener ya que el código CSS se encuentra separado del fichero HTML.

Imagen: Ejemplo de como implementar CSS en hojas externas Fuente: https://ak.picdn.net/shutterstock/videos/28906885/thumb/1.jpg?ip=x48


Página 279 de 292

1.19.4 CSS Fondos Por: Herbert Mayca CSS permite establecer de forma simultánea un color y una imagen de fondo. En este caso, la imagen se muestra delante del color, por lo que solamente si la imagen contiene zonas transparentes es posible ver el color de fondo. Las imágenes de fondo se indican a través de su URL, que puede ser absoluta o relativa. body { background-image: url("imagenes/fondo.png") }

Suele ser recomendable crear una carpeta de imágenes que se encuentre en el mismo directorio que los archivos CSS y que almacene todas las imágenes utilizadas en el diseño de las páginas. Así, las imágenes correspondientes al diseño de la página se mantienen separadas del resto de imágenes del sitio y el código CSS es más sencillo (por utilizar URL relativas) y más fácil de mantener (por no tener que actualizar URL absolutas en caso de que se cambie la estructura del sitio web). Por otra parte, suele ser habitual indicar un color de fondo siempre que se muestra una imagen de fondo. En caso de que la imagen no se pueda mostrar o contenga errores, el navegador mostrará el color indicado (que debería ser, en lo posible, similar a la imagen) y la página no parecerá que contiene errores. Si la imagen que se quiere mostrar es demasiado grande para el fondo del elemento, solamente se muestra la parte de imagen comprendida en el tamaño del elemento. Si la imagen es más pequeña que el elemento, CSS la repite horizontal y verticalmente hasta llenar el fondo del elemento.

Imagen: ejemplo fondo css Fuente:https://uniwebsidad.com/static/libros/imagenes/css/f0417.gif

1.19.5 CSS Texto


Página 280 de 292

Por: Herbert Mayca Texto CSS es el módulo de CSS que define cómo realizar la manipulación de elementos de texto como los saltos de línea, la justificación, la alineación, la gestión de espacios en blanco y las transformaciones de texto

Imagen: Textos en css Fuente:Texto CSS - CSS | MDN (mozilla.org)

Además de las propiedades relativas a la tipografía del texto, CSS define numerosas propiedades que determinan la apariencia del texto en su conjunto. Estas propiedades adicionales permiten controlar al alineación del texto, el interlineado, la separación entre palabras, etc. La propiedad que define la alineación del texto se denomina text-align

. Imagen: Textos en css Fuente:6.2. Texto (Introducción a CSS) (uniwebsidad.com)

Los valores definidos por CSS permiten alinear el texto según los valores tradicionales: a la izquierda (left), a la derecha (right), centrado (center) y justificado (justify). La siguiente imagen muestra el efecto de establecer el valor left, right, center y justify respectivamente a cada uno de los párrafos de la página.


Página 281 de 292

Imagen: Textos en css Fuente:6.2. Texto (Introducción a CSS) (uniwebsidad.com)

La propiedad text-align no sólo alinea el texto que contiene un elemento, sino que también alinea todos sus contenidos, como por ejemplo las imágenes. El interlineado de un texto se controla mediante la propiedad line-height, que permite controlar la altura ocupada por cada línea de texto:

p { line-height: 1.2; font-size: 1em } p { line-height: 1.2em; font-size: 1em } p { line-height: 120%; font-size: 1em } Imagen: Textos en css Fuente:6.2. Texto (Introducción a CSS) (uniwebsidad.com)


Página 282 de 292

1.19.6 CSS Fuentes Por: Herbert Mayca CSS define cinco nombres genéricos para los tipos de letra serif, sans-serif, monospace, cursive y fantasy. Son muy genéricos y el tipo de letra exacto que se va a utilizar cuando se especifiquen dichos nombres dependerá de cada navegador y puede variar dependiendo del sistema operativo. Representa el peor escenario posible, en el que el navegador tratará de proporcionar al menos una fuente que parezca apropiada. serif, sans-serif y monospace son bastante predecibles y el navegador debería proporcionar algo razonable. Por otra parte, cursive y fantasy son menos predecibles y te recomendamos que las uses con cautela, y vayas probando a medida que avanzas. Los cinco nombres se definen de la manera siguiente:

Imagen: Fuentes en css Fuente:6.2. Texto (Introducción a CSS) (uniwebsidad.com)

Ya que no puedes garantizar la disponibilidad de los tipos de letra que deseas utilizar (incluso un tipo de letra seguro para la web podría fallar por alguna razón), puedes proporcionar un lista de tipos de letra para que el navegador tenga diversos tipos de letra entre los que elegir. Consiste simplemente en introducirlo como el valor de font-family, que consistirá en una lista de diversos nombres de tipos de letra separados por comas, por ejemplo:


Página 283 de 292

Imagen: Fuentes en css Fuente:6.2. Texto (Introducción a CSS) (uniwebsidad.com)

1.19.7 CSS Vinculos Por: Herbert Mayca Lo primero que hay que entender es el concepto de estados de un enlace (diferentes estados en los que pueden estar los enlaces, que pueden diseñarse usando diferentes pseudoclases): Link (no visitado): El estado predeterminado que presenta un enlace cuando no está en ningún otro estado. Se puede especificar usando la pseudoclase :link. Visited: Un enlace cuando ya se ha visitado (está grabado en el historial del navegador); se le aplica otro formato con la pseudoclase :visited. Hover: Un enlace cuando se le pasa el cursor por encima; se le aplica otro formato con la pseudoclase :hover. Focus: Un enlace cuando tiene el foco (por ejemplo, se salta a este con la tecla Tab del teclado o se le da el foco mediante programación usando HTMLElement.focus()); se le aplica un formato diferente con la pseudoclase :focus. Active: Un enlace cuando se activa (por ejemplo, se hace clic encima); se le aplica un formato diferente con la pseudoclase :active.


Página 284 de 292

Imagen: Vínculos en css Fuente:Dar estilo a los enlaces - Aprende sobre desarrollo web | MDN (mozilla.org)

A medida que explores los estilos predeterminados, observarás algunas cosas: Los enlaces están subrayados. Los enlaces no visitados se ven de color azul. Los enlaces visitados se ven de color morado. Al pasar el puntero del ratón sobre un enlace, cambia a un pequeño icono en forma de mano. Los enlaces que tienen el foco presentan un contorno alrededor: deberías poder saltar por los enlaces de esta página con el teclado pulsando la tecla de tabulación (en Mac, es posible que necesites habilitar la opción Acceso total por teclado: Todos los controles presionando Ctrl + F7 para que funcione). Los enlaces activos se muestran de color rojo (intenta mantener el cursor sobre el enlace mientras haces clic). Curiosamente, estos estilos predeterminados son casi los mismos que se utilizaban al inicio de los navegadores en la década de 1990. Esto se debe a que los usuarios conocen y esperan que sea de esta forma. Podría confundir a mucha gente que los enlaces se mostrasen de manera diferente. Esto no quiere decir que no puedas cambiar el formato de los enlaces, solo que no deberías alejarte mucho de la conducta esperada. Al menos deberías:

Subrayar los enlaces, pero no otros elementos. Si no quieres hacerlo, al menos destacarlos de alguna otra forma. Hacer que reaccionen de alguna manera cuando se les pasa el cursor por encima, y de una manera algo diferente cuando se activan.


Página 285 de 292

1.19.8 CSS Listas Por: Herbert Mayca Por defecto, los navegadores muestran los elementos de las listas no ordenadas con una viñeta formada por un pequeño círculo de color negro. Los elementos de las listas ordenadas se muestran por defecto con la numeración decimal utilizada en la mayoría de países. No obstante, CSS define varias propiedades para controlar el tipo de viñeta que muestran las listas, además de poder controlar la posición de la propia viñeta. La propiedad básica es la que controla el tipo de viñeta que se muestra y que se denomina list-style-type.

Imagen: Listass en css Fuente:Capítulo 9. Listas (Introducción a CSS) (uniwebsidad.com)

En primer lugar, el valor none permite mostrar una lista en la que sus elementos no contienen viñetas, números o letras. Se trata de un valor muy utilizado, ya que es imprescindible para los menús de navegación creados con listas, como se verá más adelante. El resto de valores de la propiedad list-style-type se dividen en tres tipos: gráficos, numéricos y alfabéticos. Los valores gráficos son disc, circle y square y muestran como viñeta un círculo relleno, un círculo vacío y un cuadrado relleno respectivamente. Los valores numéricos están formados por decimal, decimal-leading-zero, lower-roman, upper-roman, armenian y georgian. Por último, los valores alfanuméricos se controlan mediante lower-latin, lower-alpha, upper-latin, upper-alpha y lower-greek. La siguiente imagen muestra algunos de los valores definidos por la propiedad list-style-type:


Página 286 de 292

Imagen: Listas en css Fuente:Capítulo 9. Listas (Introducción a CSS) (uniwebsidad.com)

1.19.9 CSS Tablas Por: Herbert Mayca Las propiedades CSS de las tablas son las que nos permiten controlar los estilos de los títulos de la tabla, el tamaño de las celdas, las filas y las columnas o espaciado entre los bordes. En la tabla 9.1 se muestran las propiedades de las tablas más utilizadas. Recordemos que las tablas están compuestas por filas y columnas, en HTML aprendimos como hacer tablas y además cómo dotarlo de cierta apariencia mediante atributos de HTML, sin embargo CSS nos permite mayor control sobre cada aspecto de las tablas, además podemos emplearla para apuntar a todas las tablas y definir un estilo para todos mediante un simple código CSS. Para empezar a utilizar estilos de tablas HTML, necesariamente debimos estudiar la estructura de tablas HTML, sin embargo repasamos rápidamente; la etiqueta para tablas es <table> dentro de ella van las filas mediante la etiqueta <tr>, finalmente dentro de las filas van las columnas mediante <td>, sabiendo esto, ya podemos ir dando estilos.

Imagen: Tablas en css


Página 287 de 292

Fuente:CSS. Propiedades de las tablas - Eniun

La propiedad border-spacing nos permite establecer el espacio entre celdas adyacentes de una tabla y solo funciona cuando los bordes de celdas están separadas (border-collapse="separate;"), es similar a la propiedad de relleno que conocimos en lecciones anteriores, pero en este caso se trata de elementos de tabla. La propiedad border-spacing puede tomar cualquier valor numérico, con su respectiva unidad de medida. Podemos definir espacios uniformes en todos los lados al expresar un solo valor numérico o también podemos expresar dos valores numéricos, en ese caso el primero establece el espaciado horizontal y el segundo el espaciado vertical. Ten presente que el espaciado horizontal es aquella que separa a las celdas de una fila y el espaciado vertical aquella que separa las celdas de una columna. Veamos algunos ejemplos.

Imagen: Tablas en css Fuente:▷Estilos CSS para tablas - Desarrolladores web

Para poner color de fondo a tablas con CSS, podemos utilizar identificadores y selectores adecuados y a ello le designamos las propiedades backgroundcolor para color de fondo, color para color de letra. En fin, cualquier otro que sea compatibles con el contenido de las tablas, incluso podremos utilizar otras propiedades que aprenderemos más adelante. Vamos paso a paso

1.19.10 CSS Modelo Caja Por: Herbert Mayca El modelo de cajas o "box model" es seguramente la característica más importante del lenguaje de hojas de estilos CSS, ya que condiciona el diseño de todas las páginas web. El modelo de cajas es el comportamiento de CSS que hace que todos los elementos de las páginas se representen mediante cajas rectangulares. Las cajas de una página se crean automáticamente. Cada vez que se inserta una etiqueta HTML, se crea una nueva caja rectangular que


Página 288 de 292

encierra los contenidos de ese elemento. La siguiente imagen muestra las tres cajas rectangulares que crean las tres etiquetas HTML que incluye la página:

Imagen: Modelo caja en css Fuente:Capítulo 4. Modelo de cajas (Introducción a CSS) (uniwebsidad.com)

Los navegadores crean y colocan las cajas de forma automática, pero CSS permite modificar todas sus características. Cada una de las cajas está formada por seis partes, tal y como muestra la siguiente imagen:

Imagen: Modelo caja en css Fuente:Capítulo 4. Modelo de cajas (Introducción a CSS) (uniwebsidad.com)

las partes que componen cada caja y su orden de visualización desde el punto de vista del usuario son las siguientes: Contenido (content): se trata del contenido HTML del elemento (las palabras de un párrafo, una imagen, el texto de una lista de elementos, etc.) Relleno (padding): espacio libre opcional existente entre el contenido y el borde. Borde (border): línea que encierra completamente el contenido y su relleno. Imagen de fondo (background image): imagen que se muestra por detrás del contenido y el espacio de relleno. Color de fondo (background color): color que se muestra por detrás del contenido y el espacio de relleno. Margen (margin): separación opcional existente entre la caja y el resto de cajas adyacentes. El relleno y el margen son transparentes, por lo que en el espacio ocupado por el relleno se muestra el color o imagen de fondo (si están definidos) y en el espacio ocupado por el margen se muestra el color o imagen de fondo de su elemento padre (si están definidos). Si ningún elemento padre


Página 289 de 292

tiene definido un color o imagen de fondo, se muestra el color o imagen de fondo de la propia página (si están definidos). Si una caja define tanto un color como una imagen de fondo, la imagen tiene más prioridad y es la que se visualiza. No obstante, si la imagen de fondo no cubre totalmente la caja del elemento o si la imagen tiene zonas transparentes, también se visualiza el color de fondo. Combinando imagenes transparentes y colores de fondo se pueden lograr efectos gráficos muy interesantes.

1.19.11. Border CSS Por: Donovan Monge La propiedad ‘border-style’ CSS es una shorthand property (Propiedad abreviada) que establece el estilo de línea para los cuatro lados del borde de un elemento. La propiedad ‘border-style’ se puede especificar usando uno, dos, tres o cuatro valores. Cuando se especifica un valor, se aplica el mismo estilo a los cuatro lados. Cuando se especifican dos valores, el primer estilo se aplica a la parte superior e inferior, el segundo a la izquierda y a la derecha Cuando se especifican tres valores, el primer estilo se aplica a la parte superior, el segundo a la izquierda y derecha, el tercero a la parte inferior. Cuando se especifican cuatro valores, los estilos se parte superior, derecha, inferior e izquierda en ese orden.

aplican

a

la


Página 290 de 292

Imagen: Diferentes tipos de Border en CSS Fuente: https://developer.mozilla.org/es/docs/Web/CSS/border-style#ejemplos

1.19.12. Esquema CSS: Por: Donovan Monge El esquema CSS se basa en reglas que tienen el siguiente formato: Selector: El selector es el elemento HTML que vamos a seleccionar del documento para aplicarle un estilo concreto. Por ejemplo, con ‘p’ seleccionaríamos todas las etiquetas ‘<p>’ del HTML. Más adelante veremos que esto puede ser mucho más complejo, y dedicaremos una serie de capítulos exclusivamente a este tema. Propiedad: La propiedad es una de las diferentes características que brinda el lenguaje CSS y que aplicaremos al selector para darle estilo. Valor: Cada propiedad CSS tiene una serie de valores concretos a que se le pueden asignar, con los que tendrá uno u otro comportamiento. Con todo esto le iremos indicamos al navegador que, para cada etiqueta (selector especificado) debe aplicar las reglas (propiedad y valor) indicadas.

Imagen: Esquema de CSS Fuente: https://lenguajecss.com/css/introduccion/estructura-de-css/sintaxis-simple.png

1.19.13. Margen CSS: Por: Donovan Monge La propiedad CSS ‘margin’ establece el margen para los cuatro lados. Es una abreviación para evitar tener que establecer cada lado por separado


Página 291 de 292

con las otras propiedades de margen: right, margin-bottom y margin-left (en-US).

margin-top (en-US), margin-

También se permiten valores negativos.

Imagen: Implementación Margen CSS Fuente: https://developer.mozilla.org/es/docs/Web/CSS/margin

1.19.14. CSS Navigation Bar: Por: Donovan Monge Tener una navegación fácil de usar es importante para cualquier sitio web. Con CSS se puede transformar menús HTML aburridas en barras de buen aspecto de navegación.

Imagen: Navigation Bar Fuente: https://bootswatch.com/flatly/

1.19.15. Galería de Imágenes en CSS: Por: Donovan Monge Una galería de imágenes te permitirá familiarizar a tus clientes con tus productos o servicios. Además, siendo un recurso tan visual, les permitirá entender mejor la calidad de tu producto, conocer más a fondo tus servicios o saber más sobre tu empresa o negocio. Hay multitud de opciones para crear una galería de imágenes para tu web y la elección de uno y otro dependerá en gran medida de la plataforma sobre la que funciona tu página y las funcionalidades que necesites.


Página 292 de 292

Imagen: Galería de Imágenes CSS Fuente: http://www.w3bai.com/es/css/css_image_gallery.html

1.19.16. Imagen Opacidad CSS: Por: Donovan Monge La ‘opacity’ propiedad especifica la opacidad/transparencia de un elemento. La propiedad ‘opacity’ puede tomar un valor de 0.0

1.0. Cuanto menor sea el valor, más transparente. La propiedad ‘opacity’ se usa a menudo junto con el ‘:hover’ selector para cambiar la opacidad al pasar el mouse

Imagen: Imagen Opacidad CSS Fuente: https://www.w3schools.com/css/css_image_transparency.asp


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.