1
2
Autoridades Instituto Emiliani Somascos Comunidad Somasca Obras Somascas en Guatemala
Lic. Raúl Hernández Chacón Director Técnico-Administrativo Instituto Emiliani Somascos
Lic. Henrry Caal Sub-director Instituto Emiliani Somascos
Lic. Juan Carlos Morales Coordinador Académico
Prof. David Subuyuj Coordinador Técnico
Armando Garcia Coordinación de Pastoral
3
Bachillerato Industrial y Perito con especialidad en Computación
Silvio Ernesto Castro Asesor de Práctica Supervisada
Oscar Aurelio Mendez Asesor de Práctica Supervisada
Lesly Díaz Asesor de Práctica Supervisada
4
Promoción 2022 Sexto Computación “A”
Sexto Computación “B”
● Diego René Almengor Carrillo
● Pablo Andrés Hernández Ramírez
● Karen Mishel Alvarado Nájera
● Alvaro Miguel Angel Ico Tiul
● Mónica Julisa Barrera Rodriguez
● Andrés Ixcajoc López
● Emanuel Eduardo Beltran Gómez
● Dwight
● Cindi Fabiola Benito Sarceño
Pablo
Miguel
Jongezoon
Ordóñez
● Erwin Fernando Blanco Melendres
● Herbert José Leal Sinay
● Alexsandro Daniel Camel de la Cruz
● Andy Giovanny Letran Tomás
● Kevin Daniel Cárcamo Rodas
● Keneth Alexander López Barrios
● Yásmin Abigail Carrillo Vargas
● Diego Fernando López Gómez
● Diego Armando Castellanos De La Cruz
● Herbert Noé Mayca de los Santos
● Josue David Chitay Culajay
● Donován Alexander Monge Picón
● Astrid Daniela Colindres Fuentes
● Jonatan Samuel Andres Monzon Nimatuj
● Pablo Andrés Contreras Cantoral
● Cristofer Javier Morales de León
● Josué Arnoldo Cujá Jerónimo
●
● Williams Ismael Alfredo Culajay Guamuch
● Luis David Ortíz Fernández
● José Javier Culajay Patzán
● Carlos Fabio Andrés Paz Hernández
● Robinson Daniel Dávila Alba
● Dina Rebeca Perez Bátres
● Edwin Sebastian de León yas
● José Javier Petzey Coquix
● Brandon Uwe Diaz Ac
● Daniel Estuardo Puluc Patzán
● Eldan André Escobar Asturias
● Fernando José Raxón Pirir
● José Daniel Garcia Cubur
● Devin Miguel Reyes Quiñonez
● Wiliam de Jesus González Pisabaj
● William Leonardo Salvador Dealtán
● William Alejandro Guzmán Juárez
● Pablo Andrés Sarceño Jacinto
● Francisco Estuardo Pérez López
● Diego Pablo Solares Zuleta
● Dylan Luis José Solares Monzón
● Andrés Alexander Tobar Muñoz ●
Maria Fernanda Morales Lima
Angel Andres Velásquez de León
● Gabriel Orlando Xanté Mejía
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.
6 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.
7
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 2020 que corresponde al grado de Cuarto 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 C++, programación orientada a objetos en C#, conexiones a bases de datos, Visual Basic, 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.
8
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.
9
Objetivos En el siguiente documento tenemos una recopilación de todos los temas vistos en el primer año de nuestra carrera, todos estos temas son tanto prácticos como técnicos, este documento nos apoya a la retroalimentación sobre todo lo que hemos
aprendido
en
el
transcurso
de
los
años.
El principal objetivo de este documento es poder estudiar todos los temas que contiene e introducirnos nuevamente a los temas, y así no dejarlos a un lado ni olvidarlos, ya que tanto estos como los que vemos este último año de carrera son de suma importancia para nuestra realización como profesionales. Nuestro temario está dividido en clases y capítulos, cada clase tiene cuatro capítulos representando los bimestres transcurridos. En cada uno de los capítulos se pueden identificar los temas principales que vimos todo ese año. Leer el temario es una buena práctica para repasar los conocimientos adquiridos con anterioridad. Los objetivos específicos de nuestro temario son: ● Retroalimentarnos respecto a los temas pasados. ● Explicar de forma fácil de retener, clara y concisa cada tema tocado en este documento. ● Brindar ejercicios prácticas que ayudan a la retención de información. El temario tiene como fin el estudio del mismo para los graduandos que cursen el presente año 2022.
10
Temas Cuarto Grado Tecnología Vocacional I Capítulo I 1. Programación Básica en C++ (Consola) 1.1.
Definición
1.2.
Programa
1.3.
Sintaxis
1.4.
Palabras reservadas
1.5.
Variable
1.6.
Constante
1.7.
Instrucción
2. Tipos de datos 2.1.
Entero
2.2.
Decimal
2.3.
Carácter
3. Operadores aritméticos 3.1.
Suma, Resta, Multiplicación, División y Residuo.
3.2.
Operadores de igualdad y relacionales
3.3.
igual, menor que, menor o igual que, mayor que, mayor o igual que, desigualdad.
4. Estructuras de decisión 4.1.
If simple
4.2.
If…else
4.3.
Switch
5. Estructuras de repetición 5.1.
While
5.2.
Do…while
5.3.
For
6. Operadores lógicos 6.1.
And
11 6.2.
Or
6.3.
NOT
7. Arreglos y matrices 7.1.
Arreglos unidimensionales (Vector)
7.2.
Arreglos bidimensionales (Matrices)
7.3.
Ordenamiento
7.4.
Búsqueda
Capítulo II 1. Programación en c# (POO) 1.1. Introducción 1.2. Conceptos 2.
3.
Uso de controles 2.1.
Cuadro de texto
2.2.
Etiquetas
2.3.
Cuadros de imagen
2.4.
Botones
2.5.
Menús
2.6.
Video
2.7.
Sonido
2.8.
Combo box
2.9.
List box
2.10.
Calendarios
2.11.
Radio buttons
2.12.
Check box
2.13.
Timer
2.14.
Panel Form
Conexión access 3.1.
4.
Origen de las bases de datos
Manejo de cadenas 4.1.
Creación de cadenas
4.2.
Búsquedas
4.3.
Concatenación
4.4.
Comparación
4.5.
Generación de subcadenas
Capítulo III 1.
Visual Basic
12 1.1.
Estructuras condicionales simples y compuestas
1.2.
Estructuras condicionales anidadas
1.3.
Estructuras condicionales con condiciones compuestas y operadores lógicos.
1.4.
Estructura repetitiva Do While (condición) ... Loop
1.5.
Estructura repetitiva Do ... Loop While (condición)
1.6.
Estructura repetitiva For... Next
1.7.
Cadenas de caracteres
1.8.
Declaración de una clase y definición de un objeto de dicha clase
1.9.
Declaración de métodos con parámetros y/o retorno de datos
1.10.
Estructura de datos tipo vector
1.11.
Vector - Recuperar tamaño y redimensionar
1.12.
Vectores paralelos
1.13.
Vectores - Mayor y menor elemento
1.14.
Vectores - Ordenamiento de sus componentes
1.15.
Vectores - Ordenamiento con vectores paralelos
1.16.
Estructura de datos tipo matriz
1.17.
Matrices - Cantidad de filas y columnas
1.18.
Matrices y vectores paralelos
Capítulo IV 1.
2.
3.
4.
Visual Studio .NET POO 1.1.
Formularios de Windows
1.2.
Controles de Windows
1.3.
Codificación Avanzada
1.4.
Crystal Report
SQL Server 2.1.
Sistema manejador de base de datos
2.2.
Tipo SQL
2.3.
Tipos de datos en SQL
DDL 3.1.
Create
3.2.
Drop
3.3.
Alter
DML 4.1.
Select
13
5.
4.2.
Delete
4.3.
Update
4.4.
Insert
Conexión 5.1.
6.
Base de Datos SQL Server
Medidas de seguridad 6.1.
Anti-errores
6.2.
Try catch
14
Cuarto Grado Teoría de la información Capítulo I 1.
Software. 1.1.
Concepto.
1.2.
Clasificación: software de sistema, software de programación y software de aplicación.
2.
3.
4.
5.
6.
7.
Ofimática 2.1.
Concepto.
2.2.
Historia.
2.3.
Herramientas que utiliza.
Mecanet. 3.1.
Concepto.
3.2.
Instalador.
3.3.
Prácticas.
Sistemas operativos Windows. 4.1.
Historia.
4.2.
Versiones de sistemas operativos.
Unidades de medida en informática. 5.1.
Concepto.
5.2.
Múltiplos(bit, byte, Megabyte, Gigabyte, etc.).
5.3.
Conversiones.
Sistemas numéricos. 6.1.
Concepto.
6.2.
Sistema binario.
6.3.
Sistema octal.
6.4.
Sistema hexadecimal.
6.5.
Conversiones.
Sistemas de archivos. 7.1.
Rutas y nombres de archivos.
7.2.
Extensiones FAT, NTFS, ext2, ext3, ext4.
15
Capítulo II 1.
Teoría de base de datos. 1.1.
DBMS.
1.2.
Tipos de DBMS.
1.3.
Diferencia entre BD y DBMS.
1.4.
DBMS Access.
1.5.
Modelo Entidad-Relación.
1.6.
Reglas.
1.7.
Relaciones.
1.8.
Llave primaria.
1.9.
Llave foránea.
1.10. 2.
Llave candidata.
Estructuras de un sistema de base de datos.
3.
2.1.
DDL.
2.2.
DML.
Seguridad de la información. 3.1.
Conceptos.
3.2.
Tipos de amenazas.
3.3.
Virus. 3.3.1.
3.4.
Cómo proteger los equipos de los virus.
Medidas de seguridad. 3.4.1.
Acciones preventivas.
3.4.2.
Acciones detectivas.
3.4.3.
Acciones de restauración.
Capítulo III 1.
2.
3.
Traducción y generación de código. 1.1.
Compiladores.
1.2.
Fases de un compilador.
1.3.
Intérpretes.
1.4.
Fases de un intérprete.
Ciencias auxiliares de la informática. 2.1.
Inteligencia artificial.
2.2.
Robótica.
Licenciamiento de software.
16 3.1.
Concepto.
3.2.
Tipo de licencia. 3.2.1. Privada. 3.2.2. Copyleft. 3.2.3. GPL. 3.2.4. Freeware. 3.2.5. Shareware.
Capítulo IV 1.
Linux. 1.1.
Historia .
1.2.
Distribuciones.
1.3.
Particionado de disco duro para la instalación de Linux.
1.4.
Aplicaciones de Linux. 1.4.1. Procesador de texto. 1.4.2. Visores de imágenes. 1.4.3. Reproducción de audio y vídeo.
2.
1.5.
Instalación de software.
1.6.
Bash(scripts básicos).
1.7.
Sistema de usuario y manejo de clave.
1.8.
Archivos y permisos.
Tecnologías de la información. 2.1.
Internet y sus servicios.
2.2.
Extranet.
2.3.
Intranet.
2.4.
Sistemas Expertos.
17
Cuarto Grado Análisis de Sistemas Capítulo I 1.
2.
3.
Lógica (PSEINT) 1.1.
Resolución de problemas lógicos
1.2.
Algoritmos
1.3.
Tipos de algoritmos
1.4.
Pseudocódigo
1.5.
Diagramas de flujo
Deontología informática 2.1.
Concepto
2.2.
Medidas de contingencia y seguridad
Seguridad industrial en informática 3.1.
Introducción a la seguridad industrial
3.2.
Señalizaciones
3.3.
Mapa de riesgos
3.4.
Seguridad informática
3.5.
Métodos de seguridad informática
3.6.
Procesos de seguridad industrial
Capítulo II 7.
8.
9.
Ciclo de vida del software 7.1.
Concepto
7.2.
Fases Básicas
Tipos de modelos del software 8.1.
Cascada
8.2.
Espiral
8.3.
Prototipo
UML 9.1.
Introducción a UML
9.2.
Casos de uso
9.3.
Diagrama de proceso
9.4.
Diagrama de colaboración
9.5.
Diagrama de componentes
18 9.6.
Vistas
9.7.
Objetos
9.8.
Atributos
9.9.
Métodos
Capítulo III 1.
DB2 1.1.
Introducción
1.2.
Instalación del server
1.3.
Instance
1.4.
Bases de datos
1.5.
Bufferpools
1.6.
Tablespaces
1.7.
Storage Groups
1.8.
Schemas
1.9.
Data Types
1.10.
Tables
1.11.
Alias
1.12.
Constraints
1.13.
Indexes
1.14.
Triggers
1.15.
Sequences
Capítulo IV 1.
Windows Server 1.1.
Conceptos
1.2.
Windows server 2012
1.3.
Diseño de la red
1.4.
Creación inicial de la red
1.5.
Instalación Ws2012
1.6.
Instalación DHCP
1.7.
Configuración DHCP
1.8.
Instalación DNS
1.9.
Configuración DNS
1.10.
Inserción de clientes al dominio
1.11.
Configuración clientes
19 1.12.
Instalación ADDS en subdominio
20
Tecnología Vocacional I
Cuarto Grado
21
Capítulo I 1.Programación Básica en C++.– Por Álvaro Miguel Ico 1.1 Definición Es un lenguaje de programación diseñado en el año 1979 por Bjarne Stroustrup. Por su creación fue extender al lenguaje de programación, en ese sentido, desde el puno de vista de los lenguajes orientados a objetos, C++ que son lenguajes híbridos, fácilmente añadieron programas genérica, programaciones estructuradas y programación orientada a objetos. Actualmente hay un estándar denominado ISO C++, la mayoría de los fabricantes de compiladores más modernos. El nombre de C++ fue propuesto por Rick Mascitti en el año 1983
Imagen:Logo lenguaje de programación C++ Fuente:ISO C++ Logo - C++ - Wikipedia, la enciclopedia libre
1.2 Programa Este Programa nos calcula los números mayores y menores.
Imagen:Ejemplo de un programa en C++ Fuente:
22
1.3 Sintaxis. ● Elemento de lenguaje: Son secuencias de carácter que se agrupan en componentes léxico, que es comprendido del vocabulario básico del Lenguaje. ● Caracteres: Son utilizables para construir elementos del lenguaje. La sintaxis de C ++ es una extensión de C, al que se han añadido numerosas propiedades fundamentalmente orientadas a objetos. En este caso se muestran las reglas de sintaxis del estándar clásico de C ++.
Imagen:Ejemplo sintaxis de C++ Fuente:img7.jpg
(556×175) (slideplayer.es)
Main() { Lista_de_sentencias } Esta regla nos dice que para que el compilar reconozca nuestro programa debemos escribir al menos todas las palabras y signos que no están en letras cursivas.
Imagen:Ejemplo int main en C++ Fuente:
Main(){printf(“Hola”,);printf(“Mundo..”);} Su sintaxis es perfectamente valida y funciona exactamente igual, aunque es más difícil de leer para humanos, y para el computador es bastante sencilla de leerla.
Imagen:Ejemplo int main en C++ Fuente:
23
1.3 Conceptos. Los conceptos permiten al desarrollador expresar las restricciones de tipos de un componente plantillado, de modo que el compilador puede comprender la intención del desarrollador y de ese modo señalar el error de manera clara en el punto donde se comete. Un concepto es una descripción de los requerimientos de un tipo o clase particular. En orientación a objetos, un concepto es similar a una interfaz, con la siguiente diferencia importante: mientras que la interfaz debe ser explicitada en la clase que la implementa, un concepto es más flexible y puede ser reconocido en una clase sin necesidad de que ésta lo explicite Las funciones reciben datos a través de una lista, y devuelven determinada información de un tipo específico. A la lista de datos que la función recibe, se le conoce con el nombre de lista de parámetros. Las funciones son una de las herramientas más útiles en la programación porque permiten encerrar código con un nombre e invocarlo a través de él. Una segunda ventaja adicional es que es posible ocultar código de forma que el usuario de la función no tenga que conocer los detalles del cómo se hacen las cosas. Los lenguajes de programación suelen tener una serie de bibliotecas de funciones integradas para la manipulación de datos a nivel más básico. Según el paradigma de la programación orientada a objetos un objeto consta de: Identidad, que lo diferencia de otros objetos Nombre que llevará la clase a la que pertenece dicho objeto. Atributos o variables miembro. Cada perro comparte unas características atributos. Su número de patas, el color de su pelaje o su tamaño son algunos de sus atributos.
Imagen:Ejemplo concepto de clase en C++ Fuente:
1. 4 Palabras Reservadas. La palabra Void La palabra reservada void define en C++ el concepto de no existencia o no atribución de un tipo en una variable o declaración.
24
Imagen:Ejemplo palabra reservada Void en C++ Fuente:
La palabra null: Además de los valores que pueden tomar los tipos anteriormente mencionados, existe un valor llamado NULL, sea el caso numérico para los enteros, carácter para el tipo char, cadena de texto para el tipo string, etc.
EJEMPLOS: Void
.
Imagen:Ejemplo utilización de Void en C++ Fuente:
Otro ejemplo más específico.
25 Imagen:Ejemplo int main en C++ Fuente:
1. 5 Variable Una variable en sí es algo muy sencillo de explicar, es algo que puede variar. Con esa variación por lo general nos referimos a un valor, por ejemplo, el valor de un dólar en pesos mexicanos. Sin embargo, puede no ser solamente un número, sino también una palabra. Cuando nos referimos a tipos de variables en realidad nos estamos refiriendo a distintos tipos de valores que una variable puede tener. Nota que no sólo decimos “distintos valores”, sino distintos tipos de valores. Por ejemplo, imagina que, como muy a menudo, quieres hacer un pastel, necesitarás mantequilla, azúcar, huevos, harina, cocoa, levadura, maicena y sal
Imagen:Diferentes tipos de Variables en C++ Fuente:tipos_variables.png (228×205) (wordpress.com)
1. 6 Constante Tienen un valor fijo durante toda la ejecución del programa, es decir, este valor no cambia ni puede ser cambiado a lo largo de la ejecución de nuestro programa. Las constantes son muy útiles para especificar el tamaño de un vector y para algunas otras cosas, como facilidad de uso y confiabilidad del código. Para declarar una constante, se hace después de declarar las librerías y antes de las funciones, la sintaxis es la siguiente: #define nombre_constante valor. En C++ se pueden definir constantes de dos forma, ambas válidas para nosotros. La primera es por medio del comando #define nombre_constante valor y la segunda es usando la palabra clave const, veamos ahora cada una de estas formas en detalle.
26
Imagen:Ejemplo de Constante c++ Fuente:Variables y constantes en C++. Uso de "#define" y "const" (programarya.com)
Uso de const para declarar constantes en C++ La instrucción const nos permite declarar constantes de una manera más adecuada y acorde. Las constantes declaradas con const poseen un tipo de dato asociado (como debería ser siempre) y se declaran al interior de nuestro código como un tipo cualquiera
Imagen:Ejemplo de declaración de const Fuente:Variables y constantes en C++. Uso de "#define" y "const" (programarya.com)
1. 7 Instrucción Una instrucción es lo que le ordenamos a la maquina para que ejecute, por eso se dice que un programa es un conjunto de instrucciones; ya que cuando ejecutamos un programa, se ejecutan asi mismo en su interior muchas instrucciones que hacen que la maquina realize algo. Estos son los tipos de instrucciones: – instrucciones declarativas – instrucciones de asignación – instrucciones selectivas – instrucciones repetitivas – instrucciones de entrada y salida de datos – instrucciones de bifurcación – Instrucciones declarativas – Sirven para declarar librerías, variables, constantes, arreglos , punteros, estructuras… Por ejemplo: Para librerias: las librerias las declaramos porque vamos a usar recursos que contienen ellas. #include ——> cin , cout.. #include ——> funcion getch().. #include ——> para manipular cadenas #include ——> para operaciones numericas
27 #include ——> para usar la hora #include ——> para usar alternativas de entrda –salida como printf , scanf
Instrucciones de asignación Sirven para dar valores a las variables, y llevan éste formato: nombre_variable = expresión ; Por ejemplo: a = 15 ; x = a + 5 ; z = x / 2 ;
Instrucciones selectivas Son mediante las cuales podemos ejecutar diferentes acciones, como resultado de una expresión que estemos evaluando en ese momento y pueden ser: Las selectivas simples Las selectivas dobles Las selectivas multiples Instrucciones repetitivas Sirven para repetir una condición N veces, siempre y cuando la condición sea verdadera. Instrucciones de entrada y salida de datos El lenguaje C++ no tiene palabras reservadas para ingresar o mostrar datos, para ello usan recursos que se encuentran en las librerías. Por ejemplo: En la librería tenemos para la entrada y salida de datos a cin y cout respectivamente. Uso: Para la entrada de datos ( pedir ) cin >> nombre_del_usuario ; – Para la salida de datos ( mostrar ) cout << nombre_del_usuario En la librería tenemos para la entrada y salida de datos a scanf y printf respectivamente.
2.Tipos de Datos.– Por Andrés Ixcajoc podemos interpretar cada ingrediente como tipo de variable, y cada tipo de ingrediente como su valor, como decir harina trigo, refiriéndonos a que estamos hablando de una variable tipo harina con valor de trigo.
28 VARIABLES BÁSICAS EN C++ Así como en la cocina encontramos distintos tipos de variable, que pueden tener distintos tipos de valores. DECLARACIÓN DE VARIABLES Cuando queremos usar una variable necesitamos primero declararla y para hacer esto tomamos un formato como sigue:
Imagen:Estructura declaración de variables en C++ Fuente:
Nota: que lo que está entre corchetes es opcional, puedes o no dar el valor a la variable al mismo tiempo que la declaras. Podemos además declarar varias variables del mismo tipo separándolas con comas. Si quisiéramos declarar variables como las básicas, sería así:
Imagen:Estructura declaración de variables en C++ Fuente:
2. 1 entero 1. INT: Para valores tipo numéricos enteros, por ejemplo 5, 231 o -3432. 2. FLOAT: Para valores tipo números no enteros, o con decimales, por ejemplo 3.14, 823.23 o -0.231.
Imagen:Diferentes tipos de Variables enteras en C++ Fuente:uso_cin.png (381×189) (wordpress.com)
2. 2 Decimal
29 Los números reales se definen con “float” o “double”. La diferencia entre ambas es la precisión que ofrece su representación interna. Hay un número infinito de reales, pero se representan con un número finito de bits. A mayor número de bits, mayor número de reales se representan, y por tanto, mayor precisión. Los reales definidos con “double” tienen un tamaño doble a los definidos con “float”. Al igual que en el caso de los enteros, el tamaño de estas representaciones varía de una plataforma a otra. Su declaración es igual a las ya mencionadas, pero su uso es más especial por los valores que pueden tomar. 1. SHORT: Para valores enteros. Tamaño de 16 bits. 2. LONG LONG: Para valores enteros. Tamaño de 64 bits. 3. DOUBLE: Para valores decimales, exactitud de 15 dígitos después del punto decimal.
Imagen:Ejemplo tipos de Variables decimales en C++ Fuente:
2. 3 Carácter Las variables de tipo carácter se declaran como “char”. Para referirse a una letra se rodea de comillas simples: 'M'. Como las letras se representan internamente como números, el lenguaje C permite realizar operaciones aritméticas como 'M' + 25. Las cadenas de texto o strings son simplemente tablas de “char”. Las funciones de biblioteca para manipular estas cadenas asumen que el último byte tiene valor cero. Las cadenas de texto se escriben en el programa rodeadas de dobles comillas y contienen el valor cero al final. CHAR: Para valores tipo carácter. Un carácter es un símbolo, como los que usamos para escribir, por ejemplo ‘T’, ‘c’, ‘r’, ‘/’, ‘5’. En este último caso el 5 será considerado como sólo un carácter, como sólo un símbolo y no un número. STRING: Uno de los tipos de datos más útiles proporcionados en las bibliotecas de C++ es String. String es una variable que almacena una secuencia de letras u otros caracteres, como "Hola" o "¡El 10 de mayo es mi cumpleaños!". Al igual que los otros tipos de datos, para crear una cadena primero la declaramos, luego podemos almacenar un valor en ella
30
Imagen:Ejemplo tipos de Variables de carácter en C++ Fuente:
3.Operadores aritméticos.– Por Andrés Ixcajoc ¿QUÉ ES UN OPERADOR? Un operador es un elemento del programa que permite hacer una operación sobre uno o varios datos guardados. El operador examina los datos iniciales y los manipula de manera que obtiene un resultado, que es otro dato. el dato "resultado" no se obtiene al azar, sino que resulta de aplicar un proceso, matemático o lógico en la mayoría de los casos, sobre los datos iniciales. A los datos iniciales se les llama operandos, el símbolo o símbolos que indican que tipo de operación estamos realizando es el operador en sí, mientras que el dato obtenido es el resultado. Muchas veces el resultado acaba ocupando el lugar de un dato inicial, borrando el dato inicial para cambiarlo por el del resultado. Los operadores más comunes son los aritméticos, que son los que realizan operaciones aritméticas, y que requieren que los datos sobre los que se aplican las operaciones sean numéricos.
3. 1 Suma, Resta, Multiplicación, División y Residuo OPERADORES UNARIOS Y BINARIOS Los operadores aritméticos son aquellos que permiten hacer operaciones aritméticas con números. Es decir, sumas, restas, etc. Tanto en este tipo de operadores como en otros distinguimos entre operadores unarios y binarios. Un operador unitario es aquel que se aplica a un solo dato u operando. Por ejemplo, el signo menos (-) delante de un número para cambiarlo a negativo. Un operador binario es el que requiere de dos datos para aplicarlo, por ejemplo, la suma. OPERACIONES CLÁSICAS Son las operaciones aritméticas que se han hecho siempre con los números: la suma, la resta, la multiplicación y la división. Estas se pueden hacer tanto con números enteros como reales.
31 A estas hay que añadir la operación módulo, que solo puede hacerse con números reales, y que consiste en el resto de la división entre dos números. Se indica mediante el signo % (tanto por ciento). Para guardar el resultado de esta operación podemos hacerlo en una variable mediante el operador de asignación. Por ejemplo, declaramos las siguientes variables: int a = 7, b = 3, c; Las dos primeras serán los operandos, y la tercera será donde guardaremos el resultado. ahora veamos cómo realizar las operaciones descritas anteriormente: c = a + b; // c = 10; suma c = a - b; // c = 4; resta c = a * b; // c = 21; multiplicación c = a / b; // c = 2; división c = a % b; // c = 1; módulo
3.2 Operadores de igualdad y relacionales OPERADOR DE ASIGNACIÓN SIMPLE Es el que se usa para asignar un valor a una variable, y consiste en el signo igual. Suponiendo que ya hemos declarado una variable num, lo escribimos así: Num = 5; Aquí tenemos dos elementos separados por el signo igual, el primero, o elemento de la izquierda, será siempre una variable, y el segundo será un dato, el cual se puede introducir directamente, o mediante otra variable. Recuerda que la variable donde guardamos el dato estará siempre a la izquierda del igual, y a la derecha estará el propio dato que queremos guardar. El resultado de la operación es el dato que queda guardado en la variable. OPERADORES RELACIONALES Es importante tener en cuenta que para comparar si una variable A es igual a otra debemos usar A == B en lugar de A = B. El doble signo igual se usa en comparaciones mientras que el signo igual sencillo se usa en asignaciones. ¡Para determinar si una variable A tiene distinto contenido que una variable B debemos usar A != B. En C++ no se admite la sintaxis A <> B que usamos en pseudocódigo. Suponiendo que la variable A tiene un valor A = 5 y la variable B un valor B = 7 podríamos plantear las siguientes expresiones:
32
Imagen:Ejemplo operadores relacionales en C++ Fuente:Operadores lógicos y relacionales en lenguaje C. Igual que, distinto, and &&, or ||, not ! Ejemplos. (CU00519F) (aprenderaprogramar.com)
3.2 Igual, menor que, menor o igual que, mayor que, mayor o igual que, desigualdad. Se llaman operadores relacionales o de comparación a aquellos que permiten comparar dos valores evaluando si se relacionan cumpliendo el ser menor uno que otro, mayor uno que otro, igual uno que otro, etc. Los operadores lógicos permiten además introducir nexos entre condiciones como “y se cumple también que” o. “o se cumple que”. Los operadores de comparación o relacionales básicos en C++ son:
Imagen:Ejemplo operadores relacionales en C++ Fuente:Operadores lógicos y relacionales en lenguaje C. Igual que, distinto, and &&, or ||, not ! Ejemplos. (CU00519F) (aprenderaprogramar.com)
4.Estructuras de decisión.– Por Dwight Jongezoon Una estructura de decisión permite que la ejecución de un algoritmo tome distintos caminos, que llevan a distintos resultados, dependiendo de la condición o condiciones presentes en la estructura de decisión. Al evaluar una condición, ésta puede arrojar un resultado booleano verdadero o falso. Con el lenguaje estructuras:
C++
puede tomar decisiones
gracias
a
2
33
A. Estructura iF
B. Estructura switch
Este tipo de sentencias le permiten alterar la secuencia normal de pasos de su programa en base a la redacción de condiciones específicas.
4.1 If simple A la estructura IF se le define una condición para así cambiar la secuencia del programa en una de dos alternativas posibles, de la siguiente manera:
a)
Si
se
cumple
la
condición
ejecutará
las Sentencias .
b) Si no se cumplen la condición, ejecutará las Sentencias
Estructura de IF if(condición) { //Sentencias si cumple condición }
4.2 If..else El bloque IF (si se cumple condición) y el bloque Else (si no se cumple condición), tiene una pareja de llaves de apertura-cierre “{}” para indicar el inicio y final de las sentencias a realizar en cada caso dentro de los bloques de la estructura. Los valores lógicos que utiliza C son los valores de tipo bool: true (que es verdadero y C++ lo maneja como el numero entero 1) y false (significa falso o un valor entero de 0). Al evaluar a una Condición en un if: a) b)
si esta devuelve true, sentencias 1. Si devuelve false, se sentencias 2.
se
ejecuta
ejecuta
el
el bloque
bloque
de de
Este bloque else { } es opcional, puede ser ignorado por el programador si lo cree así conveniente. Las condiciones a evaluar por una estructura if pueden ser de 2 tipos: a)
Simple
b)
Compleja.
4.3 Switch son una estructura de control condicional, que permite definir múltiples casos que puede llegar a cumplir una variable cualquiera, y qué acción tomar en cualquiera de estas situaciones, también se puede declarar qué acción llevara a cabo en caso de no cumplir ninguna de las condiciones dadas.
34 Estructura de switch switch(opción) //donde opción es la variable a comparar { case valor1: //Bloque de instrucciones 1; break; case valor2: //Bloque de instrucciones 2; break; case valor3: //Bloque de instrucciones 3; break; //Nótese que valor 1 2 y 3 son los valores que puede tomar la opción //la instrucción break es necesaria, para no ejecutar todos los casos. default: //Bloque de instrucciones por defecto; //default, es el bloque que se ejecuta en caso de que no se de ningún caso } Ejemplo:
Imagen:Ejemplo operadores relacionales en C++ Fuente:Condicional swith en C++. Uso, sintaxis y declaración en (programarya.com)
35
5.Estructuras de repetición.– Por José Leal Las estructuras de repetición, son código de programación el cual nos permitirá realizar una acción repetitiva, la cual se ejecutará las veces que el programador haya especificado .En C++ podremos encontrar 3 estructuras repetitivas, las cuales son; estructura While, Do/While y la For. Ejemplo: Código de un programa capaz de demostrar la tabla hasta el número 10 de un número ingresado por el usuario, este programa es capaz de realizar dicha función a través de un ciclo repetitivo while,de manera que usaremos 3 variables, la primera será donde se guarda el numero ingresado, la otra seria para multiplicar la variable donde esta el numero ingresado,y la tercera para mostrar el resultado de la multiplicación, de manera que el ciclo se va a repetir hasta que sea verdadera la condición, y en cada ciclo que se repito esto, se va ir aumentando la variable “i” y multiplicando con la variable “num” y guardando el resultado en la variable”p”, para que luego podamos mostrarlo.
Imagen:Diagrama de explicativo sobre una estructura repetitiva. Fuente:Estructuras de repetición en C++ - EcuRed
5.1 While El ciclo while nos permite ejecutar una o varias de líneas de código de manera repetitiva sin necesidad de tener un valor inicial, incluso a veces sin siquiera conocer cuando se va a dar el valor final, no depende de los valores numéricos, sino más de valores booleanos, esto es porque su ejecución depende del valor de verdad de la condición dada; es por esto que la estructura while es más efectivos para condiciones indeterminadas, que no conocemos cuándo se van a dar, esto mismo es lo que la diferencia de una estructura for. Sintaxis de una estructura repetitiva While en C++:
36
Imagen:Código de ejemplo de una sintaxis de un ciclo repetitivo While. Fuente:Ciclo do-while en C++. Cómo usar el ciclo do-while en C++. (programarya.com)
Ejemplo: Tenemos el código de un programa en el cual aplicamos el ciclo repetitivo mientras. el cual le va a pedir al usuario que ingrese un numero, este numero a ingresar tiene que ser mayor que 100, y esto es muy sencillo, el número que se ingresa es mayor que 100 entonces la condicion es verdadera y automaticamente se cerrara el programa, pero si el numero ingresado es menor que 100 la condición será falsa, y hasta que esta condición sea verdadera, va a parar.
Imagen:Código de un programa que va a cerrar al momento que se ingresa un número mayor a 100 aplicando un ciclo repetitivo While. Fuente:Ciclo do-while en C++. Cómo usar el ciclo do-while en C++. (programarya.com)
5.2 Do…While Son estructuras de control cíclica, nos permiten ejecutar una o varias líneas de código de forma repetitiva sin necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuando se va a dar el valor final, pero solo es hasta en esa parte en la que se parece a la estructura While, porque el ciclo repetitivo Do/While nos puede permitir una ventaja,que es la posibilidad de ejecutar primero el bloque de instrucciones antes de evaluar la condición necesaria, de este modo los ciclos do-while, son más efectivos para algunas situaciones específicas, y esta es la diferencia entre la estructura While, la de ejecutar un bloque de
37 instrucciones sin evaluar, ya que se evaluará justo después de ejecutar por primera vez el bloque de instrucciones. Sintaxis de Do/While en C++:
Imagen:Código de ejemplo de una sintaxis de un ciclo repetitivo While. Fuente:Ciclo do-while en C++. Cómo usar el ciclo do-while en C++. (programarya.com)
Ejemplo: Como podemos ver vamos a tomar el mismo ejemplo que con la estructura While, que es la de hacer un programa el cual ejecutándose la única manera en la que podrá cerrarse será ingresando un número mayor a 100, ya que es la condición establecida, pero podemos ver unas diferencias con el ejemplo de la estructura While hemos podido evitar tener que inicializar la variable número, junto con eso pudimos eliminar las líneas repetidas donde se pedía el número por fuera del ciclo y luego al interior del ciclo, aquí lo hicimos solo al interior, ya que la condición se evaluaba abajo.
Imagen:Código de ejemplo de una sintaxis de un ciclo repetitivo Do/While Fuente:Curso para programar C++; fácil, rápido y paso a paso (programarya.com)
5.3 For Estos son a los que conoce como estructuras de control de flujo cíclicas o simplemente estructuras cíclicas, nos permiten ejecutar una o varias líneas de código de forma iterativa, conociendo un valor específico inicial y otro valor final, además nos permiten determinar el tamaño del paso entre cada "giro" o iteración del ciclo, es una estructura de control iterativa, que nos permite ejecutar de manera repetitiva un bloque de instrucciones, conociendo previamente un valor de inicio, un tamaño de paso y un valor final para el ciclo.
38 Sintaxis de ciclo For en C++:
Imagen:Código de ejemplo de una sintaxis de un ciclo repetitivo For Fuente:Ciclo for en C++. Aprender a programar ciclos for en C++ (programarya.com)
Ejemplo: En nuestro ejemplo se elabora un programa en el que a partir de 50 vamos a imprimir los números de dos en dos hasta 100, lo que haremos será comenzar la variable “i” desde el número 50, pero delimitando hasta el número 100, y así mismo indicando que se va ir sumando de dos en dos.
Imagen: programa el cual mostrará los números de dos en dos, de cincuenta hasta llegar al número cien. Fuente:Ciclo for en C++. Aprender a programar ciclos for en C++ (programarya.com)
6.Operadores Lógicos.– Por Andy Letrán “Los operadores lógicos producen un resultado booleano, y sus operandos son también valores lógicos o asimilables a ellos (los valores numéricos son asimilados a cierto o falso según su valor sea cero o distinto de cero). Por el contrario, las operaciones entre bits producen valores arbitrarios. Los operadores lógicos son tres, dos de ellos son binarios y el último (negación) es unario: Operador Acción Ejemplo Resultado && AND Lógico A && B Si ambos son verdaderos se obtiene verdadero(true) || OR Lógico A || B Verdadero si alguno es verdadero! Negación Lógica! A Negación de a
Imagen: Operadores Lógicos en c++ .
39 Fuente: OPERADORES EN C++ (unam.mx)
6.1 AND Devuelve un valor lógico true si ambos operandos son ciertos. En caso contrario el resultado es false. La operatoria es como sigue: El primer operando (de la izquierda) es convertido a bool. Para ello, si es una expresión, se evalúa para obtener el resultado (esta computación puede tener ciertos efectos laterales). A continuación, el valor obtenido es convertido a bool cierto/falso siguiendo las reglas de conversión estándar. Si el resultado es false, el proceso se detiene y este es el resultado, sin que en este caso sea necesario evaluar la expresión de la derecha (recuérdese que en el diseño de C++ prima la velocidad). Si el resultado del operando izquierdo es cierto, se continúa con la evaluación de la expresión de la derecha, que también es convertida a bool. Si el nuevo resultado es true, entonces el resultado del operador es true. En caso contrario el resultado es false.
Imagen::Operador AND en c++ Fuente: OPERADORES EN C++ (unam.mx)
6.2 OR Este operador binario devuelve true si alguno de los operandos es cierto. En caso contrario devuelve false. Este operador sigue un funcionamiento análogo al anterior. El primer operando (izquierdo) es convertido a bool. Para ello, si es una expresión, se evalúa para obtener el resultado (esta computación puede tener ciertos efectos laterales). A continuación, el valor obtenido es convertido a bool cierto/falso siguiendo las reglas de conversión estándar. Si el resultado es true, el proceso se detiene y este es el resultado, sin que en este caso sea necesario evaluar la expresión de la derecha (recuérdese que en el diseño de C++ prima la velocidad). Si el resultado del operando izquierdo es false, se continúa con la evaluación de la expresión de la derecha, que también es convertida a bool. Si el nuevo resultado es true, entonces el resultado del operador es true. En caso contrario el resultado es false.
Imagen::Operador OR en c++
40 Fuente: Operadores lógicos en C++ - yosoy.dev
6.3 NOT Este operador es denominado también No lógico y se representa en el texto escrito por la palabra inglesa NOT (otros lenguajes utilizan directamente esta palabra para representar el operador en el código). El operando (que puede ser una expresión que se evalúa a un resultado) es convertido a tipo bool, con lo que solo puede ser uno de los valores cierto/falso. A continuación, el operador cambia su valor; Si es cierto es convertido a falso y viceversa. Resulta, por tanto, que el resultado de este operador es siempre un tipo bool, aunque al existir una conversión estándar por la que un cero es convertido a false, y cualquier valor distinto de cero a true, coloquialmente se dice que este operador convierte un operando 0 en 1 y uno no-cero en 0. En otras palabras: este operador devuelve cierto (true) si la expresión se evalúa a distinto de cero, en caso contrario devuelve falso (false). ¡Si “¡E” es una expresión, “! E” es equivalente a “(0 == E)”.
Imagen:: Operador NOT en c++ Fuente: Operadores lógicos en C++ - yosoy.dev
7.Arreglos y Matrices.– Por Andy Letrán 7.1 Arreglos unidimensionales(Vector) Los vectores son un tipo de array (arreglos). Son, de hecho, un array de una sola dimensión y forman parte de la amplia variedad de estructuras de datos que nos ofrece C++, siendo además una de las principales y más útiles estructuras que podremos tener como herramienta de programación. Los vectores o arrays o arreglos de una dimensión (como los quieras llamar), son utilizados para almacenar múltiples valores en una única variable. En un aspecto más profundo, este tipo de arrays (vectores), permiten almacenar muchos valores en posiciones de memoria continuas, lo cual permite acceder a un valor u otro de manera rápida y sencilla. Estos valores pueden ser números, letras o cualquier tipo de variable que deseemos incluso tipos de datos complejos. Cómo declarar un Array de una dimensión o Vector en C++? Para declarar un vector en C++, se deben seguir las mismas normas básicas que se siguen para declarar una variable cualquiera, con un pequeño cambio en la sintaxis. Para declarar
41 un vector, arreglo o como lo quieras llamar, necesitaremos saber el tipo de los datos que irán al interior de este, es decir, serán número enteros, o número decimales o cadenas de texto, etc. necesitamos también, como siempre, un nombre para el vector y un tamaño máximo. La sintaxis para declarar un vector en C++ es la siguiente:
Imagen:: ¿Cómo declarar un Array de una dimensión o Vector en C++? Fuente: Arrays, arreglos y vectores en C++: Uso y sintaxis en C++ (programarya.com)
¿Cómo inicializar un Array o Vector en C++? En cuanto tenemos declarado un vector, es posible asignarle valores, evidentemente estos valores deben coincidir con el tipo de dato que le asignamos a dicho vector, no tendría sentido ingresar como valores de un vector cadenas de caracteres si el tipo de dato de dicho vector es numérico. Voy a mostrar a continuación formas distintas de inicializar un vector, todas son válidas, ya que es cuestión de nuestras necesidades y conocimientos determinar cuál es útil y en qué momento. Forma 1 de declarar un Array o Vector en C++
Imagen:: Forma 1 de declarar un vector Fuente: Arrays, arreglos y vectores en C++: Uso y sintaxis en C++ (programarya.com)
Aquí hemos declarado un vector de tipo string tamaño 5 y lo hemos inicializado con diferentes valores, es necesario notar que cada valor va entre comillas dobles "" puesto que son strings. El valor inicial corresponde a la casilla o índice 0 y tiene el valor de "5", el índice 1 el valor es "hola" y el índice 4 el valor es "adiós", es importante notar que el primer índice de n array o vector no es el UNO, sino que es el CERO.
Forma 2 de declarar un Array o Vector en C++
Imagen:: Forma 2 de declarar un vector Fuente:Arrays, arreglos y vectores en C++: Uso y sintaxis en C++ (programarya.com)
Aquí hemos declarado un vector de tipo int y no especificamos su tamaño, si el tamaño no se especifica entre los corchetes, el vector tendrá como tamaño el número de elementos incluidos en la llave, para este caso es 9.
42 Obtener el valor de una casilla específica en un array en C++ Es muy común el caso en el que tenemos un vector con una enorme cantidad de elementos, sin embargo, de todos estos, solo nos interesa uno en especial y corremos con la suerte de saber cuál es su índice, sabiendo el índice de un elemento en un array es bastante sencillo obtener el valor de este
Imagen:: Obtener el valor de una casilla específica en un array en C++ Fuente:Arrays, arreglos y vectores en C++: Uso y sintaxis en C++ (programarya.com)
Como podemos ver, para acceder a un valor específico conociendo el índice del elemento, solo basta con escribir dicho índice entre los corchetes "[ ]", recuerda que el índice comienza desde cero, así por lo tanto en un vector de 5 elementos (como el del ejemplo), el último elemento está en el índice 4 y el primer elemento del array en el índice 0. Recorrer un Array o Vector en C++ Para obtener todos los datos que se encuentran al interior de un vector, es necesario recorrer el array o vector, para recorrerlo, se usa casi siempre un ciclo for, en algunos casos más específicos un ciclo while, pero generalmente el ciclo for es el ideal para esto, dado que conocemos el tamaño del array. La lógica de este procedimiento es la siguiente, el ciclo for comenzara desde cero e ira hasta el tamaño del vector, de modo que la variable de control que generalmente llamamos "i", será la que va a ir variando entre cero y el tamaño del array, de esta forma al poner la i al interior de los corchetes, estaremos accediendo al valor de cada casilla del vector y podremos hacer lo que sea necesario con dicho valor,
Imagen:: Recorrer un Array o Vector en C++ Fuente:Arrays, arreglos y vectores en C++: Uso y sintaxis en C++ (programarya.com)
Vamos a ver de forma resumida en qué consiste y que hace cada una de estas líneas (las que están al interior del main).
43
Línea 1: Tenemos en la primera línea la declaración de un vector que contiene las edades de 12 personas, notemos que entre los corchetes no se puso ningún número, pues no es necesario, ya que el vector tendrá el tamaño según la cantidad de elementos que declaremos entre las llaves, evidentemente si pusiéramos un 12 entre los corchetes, no habría ningún problema.
Línea 2: En la segunda línea, tenemos la declaración del límite del ciclo o en otras palabras el tamaño del array. El tamaño de un array se puede calcular de varias formas, aquí lo obtenemos calculando el tamaño (en bytes) del array entero, dividido por el tamaño del primer elemento de dicho array (también en bytes). El operador sizeof en C++, retorna el tamaño en bytes del elemento que se indica. En este caso, como es un array, indica el tamaño total de ese array en bytes. Como el tipo de dato int tiene un tamaño de 4 bytes, un array de 12 elementos de tipo int tendrá 48 bytes. Luego, el tamaño del primer elemento (o cualquiera de ellos) será 4. Así, 48 dividido entre 4 es 12, que es el tamaño de nuestro array. Para más detalles de esto, verifica la información sobre el operador sizeof.
Línea 3 a 6: Desde la tercera línea hasta la sexta, tenemos entonces un ciclo for que comienza en cero y termina en el límite (es importante notar que la condición usada es estrictamente menor "<" y no menor o igual "<="), al interior de este ciclo, es donde accedemos a cada uno de los elementos del vector por medio de la sintaxis explicada anteriormente Línea 5: La quinta línea es quizá la más vital, aunque sin las demás no tendríamos nada. En esta línea, estamos accediendo a cada uno de los elementos del array de edades, un elemento por cada vuelta que da el ciclo, accedemos a cada elemento poniendo entre los corchetes la variable i, que es la que está cambiando a medida que el ciclo va girando, así estaremos accediendo a todos los elementos e imprimiéndolos por pantalla Ejemplo de arrays de una dimensión o Vectores en C++ El problema es simple, queremos crear un programa con el cual podamos guardar los títulos y los autores de diferentes libros sin perder ninguno de ellos. El usuario es el encargado de suministrar la información de cada libro. Vamos a suponer que el usuario solo podrá ingresar un máximo de 5 libros, para así tener un tamaño de vector fijo. Veamos entonces como se haría esto:
44
Imagen:: Ejemplo de arrays de una dimensión o Vectores en C++ Fuente:Arrays, arreglos y vectores en C++: Uso y sintaxis en C++ (programarya.com)
7.2 Arreglos bidimensionales(Matriz) Las matrices o como algunos las llaman "arreglos multidimensionales" son una estructura de datos bastante similar a los vectores o arreglos. De hecho, una matriz no es más que una serie de vectores contenidos uno en el otro (u otros), es decir, una matriz es un vector cuyas posiciones son otros vectores. Hablemos con más detalle de esto para quedar más claros. Primero, dejemos claro qué es una matriz. En términos generales, una matriz es una estructura conformada por filas y columnas, idealmente más de dos filas y columnas, de hecho, podemos decir que, si una "matriz" tiene una única fila o una única columna, entonces estamos hablando de un vector y no una matriz como tal. ¿Cómo se crea una Matriz en C++? Declarar una matriz en C++ es muy similar a la de un vector, se deben seguir las mismas normas para declarar una variable, pero una vez más con un pequeño cambio en la sintaxis. Primero necesitaremos saber el tipo de los datos que irán al interior de este (números, decimales o cadenas de texto, etc.) necesitamos también, como siempre, un nombre para la matriz y un tamaño máximo tanto para las filas como para las columnas. La sintaxis para declarar una matriz en C++ es la siguiente:
Imagen:: ¿Cómo se crea una Matriz en C++? Fuente:Matrices en C++. Declaración, uso y sintaxis en C++ (programarya.com)
Tenemos entonces, como podrás ver, que la sintaxis es casi la misma excepto que hemos añadido un par de corchetes "[]" más esta vez y al interior de éstos debemos poner el número de filas y columnas máximas de la matriz, respectivamente. Veamos un ejemplo en el cual pondré la declaración de varias matrices de diferentes tipos y tamaños en C++.
45 Declaración de una matriz en C++
Imagen:: Declaración de una matriz en C++ Fuente:Matrices en C++. Declaración, uso y sintaxis en C++ (programarya.com)
Veamos rápidamente que representa cada línea del código anterior.
Línea 1 Esta línea contiene la declaración de una matriz llamada myMatriz1 que tendrá 10 filas y 5 columnas y cada una de las 50 casillas tendrá datos de tipo entero.
Línea 2 Esta línea contiene la declaración de una matriz llamada myMatriz2 que tendrá 5 filas y 10 columnas y cada una de las 50 casillas tendrá datos de tipo flotante.
Línea 3 Esta línea contiene la declaración de una matriz llamada myMatriz3 que tendrá 15 filas y 15 columnas (una matriz cuadrada) y cada una de las 225 casillas tendrá datos de tipo string. Línea 4 Esta línea contiene la declaración de una matriz llamada myMatriz4 que tendrá 1000 filas (sí, leíste bien) y 3 columnas y cada una de las 3000 casillas (también leíste bien, tres mil casillas) tendrá datos de tipo booleano. ¿Cómo inicializar una matriz en C++? En cuanto tenemos declarado una matriz, es posible asignarle valores a cada una de sus casillas, evidentemente estos valores deben coincidir con el tipo de dato que le asignamos a dicha matriz
Voy a mostrar a continuación formas distintas de inicializar una matriz, todas son válidas, ya es cuestión de nuestras necesidades y conocimientos determinar cuál es útil y en qué momento. Forma 1 de declarar una matriz
Imagen:: Forma 1 de declarar una matriz
46 Fuente:Matrices en C++. Declaración, uso y sintaxis en C++ (programarya.com)
Aquí hemos declarado una matriz de tipo int de dos filas y dos columnas y la hemos inicializado con diferentes valores. El valor inicial corresponde a la casilla 0,0 (fila cero, columna cero) y tiene el valor de 1, en la fila cero columnas uno tenemos el valor de 2, en la fila uno columna cero el valor de 3 y finalmente en la fila uno columna uno el valor de 4. Es importante notar que el primer tanto la fila como la columna comienzan desde cero y no desde uno, por esto la primera casilla corresponde a la fila y columna cero.
Recorrer una matriz en C++ Para obtener todos los datos que se encuentran al interior de una matriz, debemos acceder a cada posición y esto se hace fácilmente con dos ciclos for (anidados). La lógica de este procedimiento es la siguiente, el primer ciclo for comenzará desde cero e ira hasta el número de filas, de modo que la variable de control que generalmente llamamos "i", será la que va a ir variando entre cero y el tamaño del array multidimensional (matriz), de esta forma al poner la i al interior de los corchetes, estaremos accediendo al valor de cada fila y el segundo ciclo irá de cero al número de columnas y normalmente se usa la variable llamada j para acceder a cada columna,
Imagen::Recorrer una matriz en C++ Fuente:Matrices en C++. Declaración, uso y sintaxis en C++ (programarya.com)
Línea 1: Tenemos en la primera línea la declaración de una matriz que contiene las edades de tres parejas de personas y asignamos cada uno de los valores.
Líneas 2 y 3:
47 En estas líneas, tenemos la declaración del número de filas y columnas de la matriz, que serán el límite del primer y segundo ciclo, respectivamente. Para más detalles de esto, verifica la información sobre el operador sizeof.
Líneas 4 a 7: Aquí, tenemos entonces un ciclo for que comienza en cero y termina en el número de filas y luego tenemos otro ciclo for (anidado) que irá de cero hasta el número de columnas (es importante notar que la condición usada en ambos ciclos es estrictamente menor "<" y no menor o igual "<="), al interior del segundo ciclo, es donde accedemos a cada una de las casillas de la matriz usando los corchetes.
Línea 8: La octava línea es quizá la más vital, aunque sin las demás no tendríamos nada. En esta línea, estamos accediendo a cada una de las casillas de la matriz, fila por fila y columna por columna. Accedemos a cada elemento poniendo entre los corchetes la variable i y j, que son las que están cambiando a medida que los ciclos van "girando", así estaremos accediendo a todos los elementos e imprimiéndolos por pantalla por medio de cout.
Matrices en C++ ejemplo El problema es simple, queremos crear un programa con el cual podamos guardar los títulos y los autores de diferentes libros sin perder ninguno de ellos. El usuario es el encargado de suministrar la información de cada libro. Vamos a suponer que el usuario solo podrá ingresar un máximo de 5 libros, para así tener un tamaño de vector fijo. Veamos entonces cómo se haría esto usando matrices:
Imagen::Matrices en C++ ejemplo
48 Fuente:Matrices en C++. Declaración, uso y sintaxis en C++ (programarya.com)
en el código anterior, debido a que tenemos la completa certeza de sólo usar dos columnas, no es necesario usar otro ciclo for (de hecho, eso complicaría todo) basta con poner de manera explícita que el valor del título va en la columna cero y el del autor en la columna uno.
En este caso tenemos una matriz con una cantidad de fila que dependen de la cantidad de libros y dos columnas. Para el ejemplo, decidimos tener 5 posibles libros. Donde cada uno tendrá su respectivo título y autor. Así entonces, en la columna cero (0) iría el titulo y en la columna uno (1) el autor.
Por cada libro que queremos agregar, debemos especificar su título y su autor. Por ello, la segunda posición que se especifica en esta matriz de libros siempre será 0 o 1, según sea el caso. Mientras que en la primera posición usamos la variable i del ciclo, que va a variar de 0 a 4, para un total de cinco libros.
7.3 Ordenamiento Ordenamiento Ascendente • Existen numerosos algoritmos para ordenar. A continuación se verán algunos algoritmos de ordenamiento. Ordenamiento Burbuja (bublesort): vamos comparando elementos adyacentes y empujamos los valores más livianos hacia arriba (los más pesados van quedando abajo). Idea de la burbuja que asciende, por lo liviana que es.
Imagen::Ordenamiento Burbuja (bublesort): Fuente:Microsoft PowerPoint - Tema9.ppt (utfsm.cl)
Algoritmo Ordenamiento Burbuja
49
Imagen::Ordenamiento Burbuja Fuente:Microsoft PowerPoint - Tema9.ppt (utfsm.cl)
7.3 Búsqueda Algoritmos de Búsqueda Los procesos de búsqueda involucran recorrer un arreglo completo con el fin de encontrar algo. Lo más común es buscar el menor o mayor elemento (cuando es puede establecer un orden), o buscar el índice de un elemento determinado. Para buscar el menor o mayor elemento de un arreglo, podemos usar la estrategia, de suponer que el primero o el último es el menor (mayor), para luego ir comparando con cada uno de los elementos, e ir actualizando el menor (mayor). A esto se le llama Búsqueda Lineal.
Estos nos sirven para encontrar un dato dentro de un arreglo, para ello existen diversos algoritmos que varían en complejidad, eficiencia, tamaño del dominio de búsqueda
Búsqueda Secuencial Consiste en ir comparando el elemento que se busca con cada elemento del arreglo hasta cuándo se encuentra.
Imagen::Búsqueda secuencial Fuente:Microsoft PowerPoint - Tema9.ppt (utfsm.cl)
50
Imagen::Búsqueda secuencial Fuente:Microsoft PowerPoint - Tema9.ppt (utfsm.cl)
Ejemplo de búsqueda Secuencial Desarrollar un programa que posea una función que reciba como parámetro un arreglo de 10 enteros, y un entero, y retorne la posición del entero si es que se encuentra, de lo contrario devolver.
Imagen:: Ejemplo deBúsqueda secuencial Fuente:Microsoft PowerPoint - Tema9.ppt (utfsm.cl)
Eficiencia y Complejidad • Considerando la Cantidad de Comparaciones Mejor Caso: El elemento buscado está en la primera posición. Es decir, se hace una sola comparación. Peor Caso: El elemento buscado está en la última posición. Necesitando igual cantidad de comparaciones que de elementos el arreglo. En Promedio: El elemento buscado estará cerca de la mitad. Necesitando en promedio, la mitad de comparaciones que de elementos. Por lo tanto, la velocidad de ejecución depende linealmente del tamaño del arreglo Búsqueda Binaria En el caso anterior de búsqueda se asume que los elementos están en cualquier orden. En el peor de los casos deben hacerse n operaciones de comparación. Una búsqueda más
51 eficiente puede hacerse sobre un arreglo ordenado. Una de éstas es la Búsqueda Binaria. La Búsqueda Binaria, compara si el valor buscado está en la mitad superior o inferior. En la que esté, subdivido nuevamente, y así sucesivamente hasta encontrar el valor
Imagen:: Busqueda Binaria Fuente:Microsoft PowerPoint - Tema9.ppt (utfsm.cl)
Algoritmo de Búsqueda Binaria
Imagen::Algoritmo de Búsqueda Binaria Fuente:Microsoft PowerPoint - Tema9.ppt (utfsm.cl)
Capítulo II 1. Programación en C#(POO) – Por Keneth López 1.1 Introducción La programación
orientada a objetos (POO),
es un
paradigma de
programación; un paradigma de programación es un estilo de desarrollo de software, es decir, un modelo para resolver uno o varios problemas computacionales.
52 C# (pronunciado "si Sharp" en inglés) es un lenguaje de programación moderno, basado en objetos y con seguridad de tipos. C# permite a los desarrolladores crear muchos tipos de aplicaciones seguras y sólidas que se ejecutan en .NET. C# tiene sus raíces en la familia de lenguajes C, y a los programadores de C, C++, Java y JavaScript les resultará familiar inmediatamente. C# es un lenguaje de programación orientado a componentes, orientado a objetos. C# proporciona construcciones de lenguaje para admitir directamente estos conceptos, por lo que se trata de un lenguaje natural en el que crear y usar componentes de software. Desde su origen, C# ha agregado características para admitir nuevas cargas de trabajo y prácticas de diseño de software emergentes. Varias características de C# facilitan la creación de aplicaciones sólidas y duraderas. La recolección de elementos no utilizados: reclama de forma automática la memoria ocupada por objetos no utilizados inalcanzables. Los tipos que aceptan valores NULL: ofrecen protección ante variables que no hacen referencia a objetos asignados. El control de excepciones: proporciona un enfoque estructurado y extensible para la detección y recuperación de errores. Las expresiones lambda: admiten técnicas de programación funcional. C# resalta el control de versiones para asegurarse de que los programas y las bibliotecas pueden evolucionar con el tiempo de manera compatible. Los aspectos del diseño de C# afectados directamente por las consideraciones de versionamiento incluyen los modificadores virtual y override independientes, las reglas para la resolución de sobrecargas de métodos y la compatibilidad para declaraciones explícitas de miembros de interfaz.
Imagen::Ejemplo creación nuevo archivo |
Imagen: Ejemplo login básico
Fuente:programacion orientada a objetos c# - Búsqueda de Google
53
1.2 Conceptos 1. 2.1 Arquitectura .NET Los programas de C# se ejecutan en .NET, un sistema de ejecución virtual denominado Common Language Runtime (CLR) y un conjunto de bibliotecas de clases. CLR es la implementación de Microsoft del estándar internacional Common Language Infrastructure (CLI). CLI es la base para crear entornos de ejecución y desarrollo en los que los lenguajes y las bibliotecas funcionan juntos sin problemas. El código fuente escrito en C# se compila en un lenguaje intermedio (IL) que guarda conformidad con la especificación de CLI. El código y los recursos de IL, como los mapas de bits y las cadenas, se almacenan en un ensamblado, normalmente con una extensión .dll.
Imagen:Ejemplo Arquitectura .NET Fuente:arquitectura en .NET - Búsqueda de Google
1. 2. 2 Programación Básica en C# En el caso del lenguaje de programación C# la sintaxis si tienes conocimiento previo de lenguajes como C y C++ notaras que es bastante parecida, ya que estos fueron tomados como referencia a la hora de la creación del mismo.
Clases y Objetos. Clases: Una clase es una implementación total o parcial de un tipo abstracto de dato (TAD). Sus características más destacables son que se trata de entidades sintácticas y que describen objetos que van a tener la misma estructura y el mismo comportamiento. Estructura Los componentes principales de una clase, que a partir de ahora llamaremos miembros, son: Atributos, que determinan una estructura de almacenamiento para cada objeto de la clase,
54 y Métodos, que no son más que operaciones aplicables sobre los objetos. Ejemplo programa en c#
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Para empezar, vamos a crear un nuevo proyecto en archivo y y presionando donde dice “Aplicación de Windows form” y agregamos el nombre del proyecto.
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Después nos vamos a la sección herramientas y elegimos el botón.
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
El botón lo podemos personalizar a nuestro gusto propio en la ventana de propiedades, después solo agregamos varios botones para nuestra calculadora.
55
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
De esta forma quedaría la finalizar de poner los botones y ajustarlos a nuestro gusto.
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Como siguiente agregamos el textbox e igual lo ajustamos a nuestro gusto y le agregamos un nombre.
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Como siguiente vamos a comenzar a programar, después de ponerle nombre a los botones y a los textbox le damos doble click al botón de cero y nos va a salir esta pestaña:
56
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Después lo que vamos a realizar es copiar el nombre de nuestro textbox y vamos a hacer que haga la función de .text como podemos ver acá, prácticamente lo que estamos haciendo acá es darle una función a nuestro botón que al presionarlo haga la operación de agregar el 0 al textbox..
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Realizamos esta misma acción hasta llegar al botón del punto como podemos ver acá (los únicos botones a los que no realizamos esta función es a los que definen la operación matemática).
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Después de esto vamos a darle doble click al formulario y nos saldrá otra. parte de código
57
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Después en esta parte de código vamos a declarar estas variables.
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Como siguiente vamos a programar los botones, vamos a empezar por el de la suma, le damos doble click y le ponemos esto:
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Lo que hace esto es que el primero valor lo convierte a doble ya que trabaja con decimal y el clear lo que hace es limpiar la pantalla del textbox, hacemos esto con todos los operadores solo cambiando el signo.
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Después vamos a agregar una nueva carpeta y vamos a hacer 4 clases, 1 para cada operación.
58
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
La carpeta que creemos se va a llamar clase y vamos a meter ahí todas las clases.
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Después den cada clase vamos a hacer este tipo de método, donde hacemos que sume n1 y n2.
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Después hacemos esto mismo en todas las clases, pero con una diferencia, la variable del double cambia a Restar o la variable con la que vayamos a identificar, la variable S la cambiamos también y la función que pasa de ser un + a un -, esto dependiendo la operación que vayamos a hacer.
59
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Como siguiente vamos a la parte donde programamos los botones y hasta arriba en esta parte vamos a mandar a llamar todas las clases y les agregamos el nombre de un objeto en este caso “obj”
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Por último programamos el botón igual de esta manera:
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
Lo que hace acá prácticamente es declarar nuevas variables que van a servir para mostrarse en el textbox, después creamos un switch dependiendo operador ya que es la variable que tiene el símbolo de las operaciones, después dependiendo cada signo hacemos un case y dentro del case hacemos la operación que debe hacer, esto gracias a la clase a la cual le pusimos obj. Sumar ya que esta tiene la operación que debemos de hacer, y después hacemos que la variable sum se muestre en el textbox y un break para cerrar y por último hacemos esto mismo solo cambiando las variables dependiendo la operación.
60
Imagen:Creación de calculadora en c# Fuente:CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
1. 2. 3 Normas básicas en la sintaxis de C# ● Todas las sentencias terminan en punto y coma (;) ● Los espacios en las sentencias son ignorados. Es decir, cuando colocamos más de un espacio entre keywords en compilador simplemente ignora los demás espacios. ● Es un lenguaje case sensitive, lo que quiere decir que se distingue de minúscula y mayúscula. Ejemplo: no es lo mismo una variable llamada miVariable que otra llamada MiVariable. ● Es un lenguaje static typing, lo que significa que al momento declarar las variables se deben definir el tipo de datos que es, por ejemplo: si vamos a crear una variable que almacene un entero numérico colocamos primero el l tipo de datos int y luego el nombre de la variable, lo que quedaría de la siguiente forma: int nombreVariable. ● Se pueden incluir comentarios dentro del código. Los comentarios nos permiten escribir información adicional sobre nuestro código que puede ayudar a otros programadores.
61
Imagen:Ejemplo sintaxis c# Fuente:sintaxis de c# - Búsqueda de Google
1. 2. 4 Palabras reservadas de C# Las palabras clave son palabras reservadas del lenguaje c#. Dado su carácter reservado, no pueden ser usados como identificadores. class, public o void son algunos ejemplos de palabras clava- son nombres de elementos permanentes del lenguaje. Las palabras clave son palabras reservadas por el sistema y tienen significados especiales predefinidos. El uso de las palabras clave en cualquier contexto distinto de aquel para el que han sido definidas en el lenguaje c# equivale a hacer el código ilegible. Esta es la razón principal de que las palabras clave sean reservadas. Están pensadas para ser usadas sólo por constructores que son parte del lenguaje. Las palabras claves de c# son: abstract
enum
long
stackalloc
as
event
namespace
static
base
explicit
new
string
bool
extern
null
struct
break
false
object
switch
byte
finally
operator
this
62
case
Fixed
out
throw
catch
float
override
true
char
for
params
try
checked
foreach
private
typeof
class
goto
protected
uint
const
if
public
ulong
continue
implicit
readonly
unchecked
decimal
in
ref
unsafe
default
int
return
ushort
delegate
interface
sbyte
using
1. 2. 4 Identificadores de C# Algunos validos son:
MiVariable
_contador
Contado_
mi_variable_
Algunos no validos son: § 1Variable: error porque comienza con un número. § $Variable: error porque comienza con un signo $. § ###Contador###: error porque comienza con un signo #.
63 § default: error porque default es una palabra reservada. Lo ideal es que el identificador de una variable vaya acorde a su función, es decir un nombre que describa lo mejor posible lo que representa dentro del programa.
2. Uso de Controles – Por Diego López Cada control utilizable en Visual C# está representado por una clase de la cual vamos a poder crear instancias para diseñar la interfaz de la aplicación. La mayoría de los controles derivan de la clase Control y por ello heredan una buena cantidad de sus propiedades, métodos y eventos. ·
Dimensiones y posición
Las propiedades Left, Top, Width, Height permiten ubicar controles. Se pueden modificar estas propiedades de forma individial. Aceptan valores de tipo Integer. Por lo tanto, es posible utilizar en nuestro código la siguiente sintaxis: ● TextBoxNombre.Left = 100; ● TextBoxNom.Top = 50; ● TextBoxNom.Width = 150; ● TextBoxNom.Height = 50;
Otras dos propiedades permiten trabajar con la posición y el tamaño de un control: la propiedad Location acepta un objeto de tipo punto gracias al cual podemos especificar la posición de nuestro control. De igual manera, la propiedad Size, que acepta un objeto de tipo Size, gestiona las dimensiones del control. Las líneas anteriores se pueden sustituir por: ● TextBoxNombre.Location = New Point(100, 50); ● TextBoxNombre.Size = New Size(150, 50); en las cuales construimos una instancia de Point y de Size, antes de asociarlas a las propiedades correspondientes.
64 Imagen:Calculadora simple en c#, usando diferentes controles, Fuente:formejem.gif (555×245) (tripod.com)
2.1 Cuadro de Texto El control TextBox permite a un usuario escribir texto en una aplicación. Se usa normalmente para capturar una sola línea de texto, pero se puede configurar para capturar varias. El texto se muestra en la pantalla en un formato simple, uniforme y no cifrado. El control TextBox tiene varias características que pueden simplificar la entrada de texto. Incluye un menú contextual integrado y familiar que permite copiar y pegar texto. Usa un control TextBox para permitir al usuario escribir y editar texto sin formato, como en un formulario. Puedes usar la propiedad Text para obtener el texto y establecerlo en un control TextBox. Puedes hacer que un control TextBox sea de solo lectura, pero este debe ser un estado temporal y condicional. Si el texto nunca se puede editar, piensa en la posibilidad de usar un TextBlock en su lugar. Propiedades: Las propiedades del control TextBox, son en su mayoría, las mismas que la de los controles ya descritos; por lo que puede abrir la ventana propiedades de este control para conocer y revisar sus propiedades. En la siguiente imagen puede ver una parte de la ventana de propiedades del TextBox:
65
Imagen: propiedades del TextBox Fuente:27659_4304.es.png (260×673) (aulafacil.com)
Ejemplo: ● 5 TextBox para ingresar las notas y hacer el cálculo ● 5 Labels para mostrar I, II, III, IV trimestre y Promedio ● 3 botones con la propiedad Text que diga Calcular, Borrar y Salir.
Imagen: Ejemplo de la demostración y utilización de TextBox Fuente:27664_4309.es.png (397×318) (aulafacil.com)
Abra el editor de código desde el Submenú código del Menú Ver y escriba lo siguiente
66 En el botón Calcular escriba las siguientes instrucciones:
Imagen: Programar cada uno de los textbox. Fuente:ejemplo_cadena.png (1000×217) (unam.mx)
En el botón Borrar escriba:
Imagen: Programar uno de los textbox. Fuente:27665_4310.png (222×90) (aulafacil.com)
Y en el botón Salir que le permitirá terminar Application.Exit();
la aplicación, escriba:
2.2 Etiquetas <summary> Se utiliza usualmente para describir un objeto. Es la primera línea de las etiquetas de la documentacion. También es utilizado para ayudar al Intellisense cuando se muestra un tooltip sobre un objeto. <remarks> Se utiliza para escribir una descripción detallada de un objeto o método. <example> Se utiliza para describir ejemplos sencillos de la implementación. <seealso> Agrega enlaces asociados al método. <param> Describe un parámetro en un método, también es mostrado en el intellisense. <typeparam> Describe un parámetro o método de tipo genérico. <returns> Se utiliza para describir el valor a retornar por un método. <exception> Describe una excepción que podría ser lanzada por un método. <permission> Se utiliza para describir el nivel de acceso a un método. <include> Utilizado para incluir en la documentación un archivo o parte de otro en el código. <para> Utilizado para definir un bloque, solo se utiliza a nivel del elemento de documentación. <list> Crea una lista con uno o diferentes formatos (bullet, number, table) .. se utiliza solamente a nivel del elemento de documentación. <code> Se utiliza para especificar el formato que tendrá el código.
67 <c> Similar al anterior, la unica diferencia es que “code” permite escribir en multiples líneas. <see> Se utiliza para definir un enlace a una página interna (cref) o externa (href). <paramref> Hace referencia a un parámetro dentro de otra etiqueta. <typeparamref> Hace referencia a un tipo de parámetro genérico Ejemplo:
Imagen: Ejemplo de la implementación de etiquetas. Fuente:xml-doc.png (454×236) (qbit.com.mx)
2.3 PictureBox Este control sirve para mostrar imágenes. En el cuadro de herramientas se reconoce por que su ícono tiene la figura de una montaña con un sol. Y una vez agregado al formulario se ve así:
Imagen: Implementación de un pictureBox en un form de C#. Fuente:27744_4801.png (302×197) (aulafacil.com)
Si da clic en el control Picture Box y luego en la pestaña que se ve, tendrá acceso a un menú, en donde puede elegir como se desplegará la imagen. Una de las que mejor funcionan es la característica StretchImage y el Zoom pero es bueno que pruebe cada una de ellas para ver el resultado.
68
Imagen: Ingresar imágenes en un picture box Fuente:27745_4802.png (372×159) (aulafacil.com)
Para insertar una imagen en un Picture Box lo puede hacer dando clic derecho sobre el control PictureBox que está en el formulario y en el menú que se muestra debe seleccionar Elegir imagen, que le abrirá una ventana en donde le da la opción de abrir un archivo local o un archivo de recurso del proyecto. También lo puede hacer desde la propiedad Imagen del Control PictureBox que le abrirá la misma ventana.
Imagen: Importar una imagen de nuestro equipo al picture box Fuente:27747_4804.es.png (579×382) (aulafacil.com)
Ponga un Check en Recurso local y se activará el botón Importar y al darle clic le abrirá una ventana que le permitirá buscar una imagen en su PC. En este paso, elija una imagen que tenga guardada en los archivos de su computadora.
2.4 Botones El control Button o botón es de mucha utilidad, pues a través de él, podemos dar órdenes, o sea, sirve como comando, por eso en las primeras versiones de Visual Basic se llamaba Command Button o botón de comando.
69
Imagen: Agregar un Boton a nuestra área de trabajo. Fuente: Fuente:www.bing.com
Algunos de los resultados que se podrían programar en un botón podrían ser las siguientes: ● Cerrar un programa ● Ver archivos ● Desplegar una imagen ● Ejecutar operaciones matemáticas multiplicar, etc.) ● Minimizar o maximizar una ventana ● Desplegar formularios ● Funcionar como menú ● Mostrar un formulario.
(sumar,
restar,
dividir,
El control Botón, se abrevia generalmente como Btn y asíse llama con frecuencia en el Name para ser reconocido en el código; pero hay que agregarle una frase que identifique o dé la idea del para que sirve ese botón. Por ejemplo si usamos un botón para ver un resultado de una operación matemática como suma o resta entonces podría llamarle BtnResultado.
Eventos en el control Botón: El control Botón responde a varios eventos, es decir acciones que al aplicarlas al control, desencadenan un resultado. Uno de los eventos más utilizados es el evento clic que significa que al dar clic en el botón se producirá el resultado para el cual se programó. Los eventos para el botón son variados y se pueden ver en la siguiente captura de pantalla
Imagen: Diferentes eventos que se pueden utilizar en los botones. Fuente:27495_pos24.png (223×278) (aulafacil.com)
2.5 Menús
70 El menú permite escoger entre varias opciones, y salir si se escoge una de ellas. Por ejemplo para salir del programa vamos a usar la tecla “s” y de momento sólo vamos a crear la opción de imprimir hola mundo, ya que este paso aunque sea una idea sencilla conlleva muchos conceptos nuevos, que una vez aprendidos, sí que serán escalables para hacer muchas opciones. Los menús suelen usar una estructura de bucle, es decir, de repetir lo mismo (el menú) hasta que se escoja la opción de salir “s” en nuestro caso. Hay tres bucles, el for, el while, y el dowhile, este último es el adecuado para el menú. Además tenemos que crear una variable de opción “opc” que leerá una tecla o carácter (char de Cháracter) y mientras no sea “s” repetirá el menú.
Imagen: Ejemplo de un menu bar en C# Fuente:csharp4.png (732×447) (wordpress.com)
2.6 Vídeo Para reproducir un fichero debemos realizar los siguientes pasos 1. Añadir la referencia COM “Windows Media Player” 2. En la toolbox, en la sección general, botón derecho y choose items, de de COm components, seleccionas el Windows Media Player”. 3. Ahora te aparecerá en la toolbox para poder arrastrarlo a tu Win form . 4. Añades el archivo o archivos de sonido, al proyecto. Lo ideal es añadirlos como recursos. 5. Ha estos archivos, hay que establecer la propiedad “copy to output directory” a “Copy always”. 6. Añadir el código C# para reproducir el archivo. 7. Simplemente
asignando
=”Resources/cancion.mp3″;
el
archivo
basta
axWindowsMediaPlayer1.URL
71 8. .Si deseas controlar o realizar cambios de sus propiedades, simplemente añade using AxWMPLib; axWindowsMediaPlayer1.Ctlcontrols.play(); axWindowsMediaPlayer1.Ctlcontrols.stop();
Imagen: Ejemplo de incorporación de vídeo en C# Fuente:Playing Audio and Video Files In C# (c-sharpcorner.com)
2.7 Sonido WPF tiene una clase llamada SoundPlayer, que reproduce contenido de audio basado en el formato WAV. El formato WAV hoy ya no es ampliamente utilizado, principalmente porque no es comprimido y por lo tanto ocupa MUCHO espacio. Así, mientras la clase SoundPlayer es fácil de usar, no es demasiado útil. En su lugar, nos centraremos en las clases MediaPlayer y MediaElement , que permiten la reproducción de ficheros MP3, pero primero, echemos un vistazo a la forma más simple de producir un sonido en su aplicación WPF: la clase SystemSounds. La clase SystemSounds ofrece varios sonidos diferentes, que corresponden al sonido definido para cada evento en Windows, como Exclamation (exclamación) y Question (pregunta). Puede probar estos sonidos y reproducirlos con una simple línea de código:
Imagen: Ejemplo de incorporación de sonido en C# Fuente:Playing audio - The complete WPF tutorial (wpf-tutorial.com)
2.8 ComboBox Por Pablo Hernández
72
El ComboBox es un control que funciona como un cuadro de lista desplegable que prácticamente permite seleccionar un dato en específico. El ComboBox permite especificar que datos debe incluir en la lista o que datos no, a diferencia de un ListBox, el ComboBox no muestra la lista inmediatamente, solo se muestra al hacer clic en el control, al hacer esto nos permite ahorrar un espacio en la interfaz y hacerlo aún más efectivo y eficiente.
Imagen: Ejemplo de Combobox en C# Fuente:lista-desplegable-combobox-en-tkinter.png (316×239) (recursospython.com)
Ejemplo:
Imagen: Ejemplo de Combobox en C# Fuente:lista-desplegable-combobox-en-tkinter.png (316×239) (recursospython.com)
En este Ejemplo podemos llegar a ver un ComboBox con su lista desplegada, así mismo con las opciones H, Mild, Medium y Hot, estas opciones son escritas por el programador, así mismo la propia interfaz puede ser personalizada por el mismo programador, ya que esta queda al gusto, algunas de las propiedades que pueden llegar a parecer durante su personalización son: Modifiers, Cursor, DropDownStyle.
2.9 ListBox Un ListBox es un cuadro de lista que muestra múltiples datos o opciones en un mismo cuadro, a diferencia de un ComboBox, el ListBox solo muestra múltiples opciones con una barra vertical Conocida como scrollbar, también existe la opción de mostrar las opciones sin que el
73 usuario tenga que cliquear el ListBox, pero esto depende de la necesidad del usuario. El ListBox nos sirve más como un control informativo. .
Imagen: Ejemplo de Listbox en C# Fuente (aulafacil.com)
Ejemplo
Imagen: Ejemplo de Listbox en C# Fuente (aulafacil.com)
En este Ejemplo podemos notar un ListBox que contiene cierto numero de elementos o opciones, tales como: Teclado, Cpu, Impresora, Monitor, etc. En el ejemplo podemos notar que tiene seleccionada la opción de Cpu, al ser un ListBox podemos seleccionar para visualizar de una mejor manera la opción, pero solo llega hasta ahí, ya que al ser un ListBox solo nos permite ver las opciones, también existe la opción de ingresar datos en un ListBox por medio de un textBox.
2.10 Calendarios El Month Calendar o Calendar, es un controlador que permite mostrar un calendario mensual en el cual podemos seleccionar una fecha en específico, este controlador suele ser muy útil para llevar un control de fechas, esto va a depender de la necesidad del usuario, pero, no solo permite mostrarnos los días del mes sino también mostrarnos los meses y los años.
74
Imagen: Calendarios en C# Fuente HighlightedDate.png (339×318) (codeguru.com)
Ejemplo
Imagen: Calendarios en C# Fuente HighlightedDate.png (339×318) (codeguru.com)
En este Ejemplo podemos notar que se muestran los días del mes en que se encuentre, así mismo, podemos seleccionar un día en específico, también en la parte inferior se puede notar que muestra la fecha actual, en el ejemplo muestra la fecha 20-07-2014 lo que lo hace un controlador ideal para poder manejar ciertas fechas. Si se cliquea la parte superior podemos ir cambiando entre meses y años.
2.11 RadioButton El RadioButton o Botón de opción es un controlador que nos muestra múltiples opciones, pero con la diferencia que solo se puede seleccionar una, esta selección se hacer marcando la deseada, este controlador se caracteriza por mostrar un botón circular a un lado de la opción, al seleccionar la misma, entonces se rellena el botón circular.
75
Imagen: RadioButton en C# Fuente 27710_4702.png (295×218) (aulafacil.com)
Ejemplo
Imagen: RadioButton en C# Fuente 27710_4702.png (295×218) (aulafacil.com)
En este ejemplo podemos ver que hay 3 opciones, las cuales hacen referencia del numero 1 al 3, como se puede apreciar, el usuario selecciono el botón 3, cabe destacar que el número de RadioButtons que se pueden agregar es ilimitado pero la opción que se va a seleccionar es solo una, en este caso, al seleccionar la opción 3 se rellenó el circulo a la izquierda, estos botones suelen ser muy útiles en cuestiones de formularios o opciones donde se tiene que escoger un sexo en específico, la forma del botón o el color puede ser cambiado o alterado por medio de las propiedades del controlador.
2.12 CheckBox El CheckBox es un controlador que permite seleccionar entre múltiples opciones, a diferencia del RadioButton, el CheckBox puede seleccionar varias opciones a la vez, no necesariamente una como en el RadioButton, al marcar un CheckBox se marca con un signo en el cuadro que suele aparecer al lado. Este controlador suele ser muy útil en Formularios o Programas donde se necesita especificar y marcar un numero de opciones.
76
Imagen: CheckBox n en C# Fuente 27710_4702.png (295×218) (aulafacil.com)
Ejemplo
Imagen: CheckBox n en C# Fuente 27710_4702.png (295×218) (aulafacil.com)
En este ejemplo podemos apreciar que existen 10 CheckBox y que a su vez solo están marcados 5, esto muestra que se pueden marcar algunas opciones y otras no, esto va a depender del mismo usuario, así como otros controladores, este permite una amplia personalización que puede hacer mas vistoso y atractivo el controlador, en este caso el ejemplo muestra la forma predeterminada que el controlador trae.
2.13 Timer El controlador Timer nos sirve para poder cronometrar y en consecuencia medir el tiempo, suele ser en extremo útil cuando hablamos de aplicaciones que necesiten un contador de tiempo o cronometrar ciertas cosas, cabe destacar que Timer suele agregarse en la parte de abajo del Form.
77
Imagen: Timer en C# Fuente v4-460px-Add-a-Timer-in-Visual-Basic-Step-3-Version-2.jpg.webp (460×347) (wikihow.com)
Ejemplo
imagen: Timer en C# Fuente v4-460px-Add-a-Timer-in-Visual-Basic-Step-3-Version-2.jpg.webp (460×347) (wikihow.com)
En este ejemplo podemos observar que la parte donde configuramos el Timer es en sus propiedades ya que, al agregar este controlador, nos lo agrega en la parte inferior y en sus propiedades configuramos lo que viene siendo el tiempo en la parte de Interval que es Intervalo, también podemos ver que se encuentra Inhabilitado ya que esta en False, esto es muy importante ya que de esta manera podemos deshabilitarlo y habilitarlo.
2.14 Panel Form El controlador Panel nos permite agrupar una colección de controladores en un mismo espacio. Cabe destacar que el tamaño del panel se puede aumentar y reducir, esto va a depender de cuantos controladores ingresaremos en el mismo panel.
78
imagen: Panel Formr en C# Fuente: Working With Panel Control In Windows Forms Using Visual Studio 2017 (c-sharpcorner.com)
Ejemplo
imagen: Panel Formr en C# Fuente: Working With Panel Control In Windows Forms Using Visual Studio 2017 (c-sharpcorner.com)
En este ejemplo podemos ver un panel siendo agregado con un diseño predeterminado, en este caso, los paneles no suelen verse, pero ayudan a definir un área en específico para así mantener un orden en la misma aplicación. Estos mismos pueden personalizarse, pero va a depender por completo del programador.
3. Conexión Access – Por Herbert Mayca 3.1 Origen de las Bases de Datos Para iniciar debemos de saber que es una Base de Datos, en el ámbito informático y computacional a lo que se orienta nuestra carrera, sabemos
79 que una base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos. Un sistema que gestiona base de datos en un software, específico dedicado a ser utilizado como una interfaz entre las bases de datos, el usuario y las aplicaciones que las utilicen. De esta forma almacenamos y luego accedemos a nuestros datos de forma segura, estructurada y eficaz. Entre estos Software podríamos mencionar: Acces, SQL, MySQL, etc. Estas son las aplicaciones más utilizadas para gestionar, crear y desarrollar bases de datos. Luego de haber explicado que es una Base de datos procederemos a explicar el origen de las mismas. Los orígenes de las bases de datos se remontan a la Antigüedad donde ya existían bibliotecas y toda clase de registros. Además, también se utilizaban para recoger información sobre las cosechas y censos. Sin embargo, su búsqueda era lenta y poco eficaz y no se contaba con la ayuda de máquinas que pudiesen reemplazar el trabajo manual. Posteriormente, el uso de las bases de datos se desarrolló a partir de las necesidades de almacenar grandes cantidades de información o datos. Sobre todo, desde la aparición de las primeras computadoras, el concepto de bases de datos ha estado siempre ligado a la informática. En 1884 Herman Hollerith creó la máquina automática de tarjetas perforadas, siendo nombrado así el primer ingeniero estadístico de la historia. En esta época, los censos se realizaban de forma manual. Ante esta situación, Hollerith comenzó a trabajar en el diseño de una maquina tabuladora o censadora, basada en tarjetas perforadas.
imagen: Origen de las bases de datos Fuente: Historia de las Bases de Datos – Historia de la Informática (upv.es)
Posteriormente en la época de los sesenta, las computadoras bajaron los precios para que las compañías privadas las pudiesen adquirir; dando paso a que se popularizara el uso de los discos, cosa que fue un adelanto muy efectivo en la época, debido a que a partir de este soporte se podía consultar la información directamente, sin tener que saber la ubicación exacta de los datos. En esta misma época se dio inicio a las primeras generaciones de bases de datos de red y las bases de datos jerárquicas, ya que era posible guardar estructuras de datos en listas y árboles. En la década de los setenta, Edgar Frank Codd, científico informático ingles conocido por sus aportaciones a la teoría de bases de datos
80 relacionales, definió el modelo relacional a la par que publicó una serie de reglas para los sistemas de datos relacionales a través de su artículo “Un modelo relacional de datos para grandes bancos de datos compartidos”. Como consecuencia de esto, durante la década de 1970, Lawrence J. Ellison, más conocido como Larry Ellison, a partir del trabajo de Edgar F. Codd sobre los sistemas de bases de datos relacionales, desarrolló el Relational Software System, o lo que es lo mismo, lo que actualmente se conoce como Oracle Corporation, desarrollando así un sistema de gestión de bases de datos relacional con el mismo nombre que dicha compañía.
imagen: Origen de las bases de datos Fuente: Historia de las Bases de Datos – Historia de la Informática (upv.es)
Por su parte, a principios de los años ochenta comenzó el auge de la comercialización de los sistemas relacionales, y SQL comenzó a ser el estándar de la industria, ya que las bases de datos relacionales con su sistema de tablas (compuesta por filas y columnas) pudieron competir con las bases jerárquicas y de red, como consecuencia de que su nivel de programación era sencillo y su nivel de programación era relativamente bajo. En la década de 1990 la investigación en bases de datos giró en torno a las bases de datos orientadas a objetos. Las cuales han tenido bastante éxito a la hora de gestionar datos complejos en los campos donde las bases de datos relacionales no han podido desarrollarse de forma eficiente. Así se desarrollaron herramientas como Excel y Access del paquete de Microsoft Office que marcan el inicio de las bases de datos orientadas a objetos. En la actualidad, las tres grandes compañías que dominan el mercado de las bases de datos son IBM, Microsoft y Oracle. Por su parte, en el campo de internet, la compañía que genera gran cantidad de información es Google. Aunque existe una gran variedad de software que permiten crear y manejar bases de datos con gran facilidad Cabe destacar que Visual Studio es un entorno de desarrollo integrado para sistemas operativos Windows que soporta varios lenguajes de programación tales como Visual C++, Visual#, Visual J#, ASP.NET y Visual Basic.NET, aunque se están desarrollando las extensiones necesarias para otros, cuyo objetivo es permitir crear aplicaciones, sitios y aplicaciones web, así como servicios web a cualquier entorno que soporte la plataforma .Net, creando así aplicaciones que intercomuniquen entre estaciones de trabajo, páginas web y dispositivos móviles.
81
imagen: Origen de las bases de datos Fuente: Historia de las Bases de Datos – Historia de la Informática (upv.es)
4. Manejo de Cadenas – 4.1 Creación de Cadenas Teniendo claro qué es una base de datos y sus orígenes, procederemos a explicar como realizar una conexión utilizando el software Access y Visual Studio Professional 2015 en el lenguaje de C# Para ellos los pasos a seguir serán los siguientes: Lo primero que necesitaremos será tener instalados los programas antes mencionados anteriormente, que son los siguientes: https://www.microsoft.com/es-es/download/details.aspx?id=13255
https://download.microsoft.com/download/1/0/6/1060A61D-45B5-4CAC8C3B- 7E11E17906EE/vs2015.pro_esn.iso
Seguido de esto crearemos una base de datos, podemos tomar como ejemplo de como desarrollarla el siguiente ejemplo:
82 imagen: Ejemplo de creación de una BD en Access
Luego de haber creado nuestra base de datos, procederemos a incorporarla nuestro proyecto de C# en Visual Studio de la siguiente manera: Procederemos dirigirnos a la pestaña proyecto dentro de Visual Studio:
imagen: Captura interfaz visual studio 2015
Seguido Seleccionaremos base de datos y posteriormente conjunto de datos en las pestañas emergentes que nos aparecerán:
imagen: Captura interfaz visual studio 2015
Luego crearemos una conexión y seleccionaremos el tipo de nuestra base de datos que es de Microsoft Access
imagen: Captura interfaz visual studio 2015
Seguido de esto procederemos a especificar la ruta en la que se encuentra la base de datos que creamos.
83
imagen: Captura interfaz visual studio 2015
En este punto luego de especificar la ruta de nuestra base de datos ya habremos conectado nuestro proyecto a nuestro origen de manera correcta, es importante que verifiquemos bien los datos y la ubicación de nuestra base de datos, posteriormente tendremos que realizar la conexión también desde el código de nuestro proyecto por medio de módulos y cadenas de conexión.
4.2 Búsqueda
Por Donovan Monge El tipo de cadena , que es un alias de la clase System.String , proporciona varios métodos útiles para buscar el contenido de una cadena. Entre ellos se encuentran Contains, StartsWith, EndsWith, IndexOf, LastIndexOf. The System.Text.RegularExpressions.Regex proporciona un rico vocabulario para buscar patrones en el texto. En este artículo, aprenderá estas técnicas y cómo elegir el mejor método para sus necesidades. Buscar un texto o frase: Los métodos String.Contains , String. StartsWith y string.EndsWith buscan un texto específico en una cadena. Las búsquedas distinguen entre mayúsculas y minúsculas de forma
predeterminada. Utilice
el
valor
de enumeración
StringComparison.CurrentCultureIgnoreCase para especificar una búsqueda que no distinga entre mayúsculas y minúsculas. Buscar la ubicación del texto: Los métodos IndexOf y LastIndexOf también buscan texto en cadenas. Estos métodos devuelven la ubicación del texto que se busca. Si no se encuentra el texto, devuelven -1. Encontrar texto específico usando expresiones regulares: La clase System.Text.RegularExpressions.Regex se puede usar para buscar cadenas
84
4.3 Concatenación de cadenas La concatenación es el proceso de agregar una cadena al final de otra cadena. Concatenas cadenas usando el signo ‘+’. Para los literales de cadena y las constantes de cadena, la concatenación ocurre en tiempo de compilación; no se produce ninguna concatenación en tiempo de ejecución. Para las variables de cadena, la concatenación se produce solo en tiempo de ejecución. Concatenar Usando ‘+’ y ‘+=’: Para concatenar variables de cadena, puede utilizar los operadores +o , la interpolación
de
cadenas o los
métodos
String.Format
,
String.Concat , String.Join o StringBuilder.Append . El operador es fácil de usar y permite un código intuitivo. Incluso si usa varios operadores en una declaración, el contenido de la cadena se copia solo una vez. El siguiente código muestra ejemplos del uso de los operadores y para concatenar cadenas: +=++++=
imagen: magen: Concatenar Usando ‘+’ y ‘+=’: Fuente: How to concatenate multiple strings (C# Guide) | Microsoft Docs
imagen: magen: Concatenar Usando ‘+’ y ‘+=’: Fuente: How to concatenate multiple strings (C# Guide) | Microsoft Docs
Interpolación de cadenas: En algunas expresiones, es más fácil concatenar cadenas mediante la interpolación de cadenas, como muestra el siguiente código:
85
imagen: nterpolación de cadenas Fuente: How to concatenate multiple strings (C# Guide) | Microsoft Docs
imagen: nterpolación de cadenas Fuente: How to concatenate multiple strings (C# Guide) | Microsoft Docs
String.Format: Otro método para concatenar cadenas es String.Format . Este método funciona bien cuando crea una cadena a partir de una pequeña cantidad de cadenas de componentes. StringBuilder: En otros casos, puede estar combinando cadenas en un bucle en el que no sabe cuántas cadenas de origen está combinando y el número real de cadenas de origen puede ser grande. La clase StringBuilder se diseñó para estos escenarios.
String.Concat o String.Join; Otra opción para unir cadenas de una colección es usar el método String.Concat . Use el método String.Join si las cadenas de origen deben estar separadas por un delimitador. LINQ y Enumerable.Aggregate: Por fin, puede usar ‘LINQ’ y el método ‘Enumerable.Agregate’ para unir cadenas de una colección. Este método combina las cadenas de origen mediante una expresión lambda. La expresión lambda hace el trabajo de agregar cada cadena a la acumulación existente
4.4Comparación de Cadenas La manera más simple de comparar dos cadenas es utilizar los operadores == y !=, que realizan una comparación con distinción entre mayúsculas y minúsculas.
86
imagen: Comparación de cadenas Fuente: How to concatenate multiple strings (C# Guide) | Microsoft Docs
Los objetos String también tienen un método CompareTo() que devuelve un valor entero, basado en si una cadena es menor que () otra. Al comparar las cadenas, se utiliza el valor Unicode, y las minúsculas tienen un valor menor que las mayúsculas
imagen:Comparación de cadenas Fuente: How to concatenate multiple strings (C# Guide) | Microsoft Docs
Para buscar una cadena dentro de otra, utilice IndexOf(). IndexOf() devuelve -1 si la cadena de búsqueda no se encuentra; en caso contrario devuelve el índice de la primera posición de la cadena, con base cero.
4.5 Generación de subcadenas Dividir una cadena en subcadenas (al igual que dividir una frase en palabras) es una tarea común de programación. El método Split() toma una matriz de char de delimitadores (por ejemplo, un carácter de espacio) y devuelve una matriz de subcadenas. Para obtener acceso a esta matriz con foreach:
imagen:generación de subcadenas Fuente: How to concatenate multiple strings (C# Guide) | Microsoft Docs
87
Capítulo III 1. Visual Basic – Por Diego Almengor 1.1Estructuras condicionales simples y compuestas Estructura condicional simple :Cuando se presenta la elección tenemos la opción de realizar una actividad o no realizar ninguna.
88
imagen:Diagrama Estructura Simple Fuente: foto031.jpg (402×241) (tutorialesprogramacionya.com)
Estructura condicional compuesta :Cuando se presenta la elección tenemos la opción de realizar una actividad u otra. Es decir tenemos actividades por el verdadero y por el falso de la condición. Lo más importante que hay que tener en cuenta es que se realizan las actividades de la rama del verdadero o las del falso, NUNCA se realizan las actividades de las dos ramas.
imagen:Diagrama Estructura compuesta Fuente:foto031.jpg (402×241) (tutorialesprogramacionya.com)
1.2 Estructuras condicionales anidadas La conveniencia de coger nombres de funciones y datos fuera del espacio de nombre global es aplicable a las estructuras. Puede anidar una estructura dentro de otra estructura, y por tanto guardar juntos elementos asociados. La sintaxis de declaración es la que podría esperarse, tal como puede ver en la siguiente estructura, que implementa una pila como una lista enlazada simple de modo que«nunca» se queda sin memoria.
imagen:Diagrama Estructura anidada Fuente:10-1.jpg (357×228) (aulafacil.com)
89
1.3 Estructuras condicionales con condiciones compuestas y operadores lógicos.
Por Karen Alvarado Estos dos operadores se emplean fundamentalmente en las estructuras condicionales para agrupar varias condiciones simples. Operador And: Traducido se lo lee como “Y”. Si la Condición 1 es verdadera Y la condición 2 es verdadera luego ejecutar la rama del verdadero. Cuando vinculamos dos o más condiciones con el operador "And", las dos condiciones deben ser verdaderas para que el resultado de la condición compuesta de Verdadero y continúe por la rama del verdadero de la estructura condicional.
imagen:Diagrama Estructura compuestas con operador AND
Operador Or: Traducido se lo lee como "O". Si la condición primera es Verdadera o la condición segunda es Verdadera, luego ejecutar la rama del Verdadero. Cuando vinculamos dos o más condiciones con el operador "Or", con que una de las dos condiciones sea Verdadera alcanza para que el resultado de la condición
imagen:Diagrama Estructura compuestas con operador OR
1.4 Estructura repetitiva do…while La estructura do while 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. La condición de la estructura está abajo del bloque a repetir, a diferencia del while o del for que está en la parte superior. La sintaxis es la siguiente: do { //sentencias del bucle } while (condición) El bucle se
90
imagen:Diagrama Estructura repetitiva do while
1.5 Estructura repetitiva Do ... Loop While (condición)
Por Mónica Barrera La estructura Do ... Loop While (condición) permite ejecutar al menos una vez su bloque repetitivo, a diferencia del Do While (condición) ... Loop que puede no ejecutar el bloque. Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo. La condición de la estructura está abajo del bloque a repetir, a diferencia del Do While (condición) ... Loop que está en la parte superior. Esta estructura permite hacer un bucle que se repetirá mientras se siga cumpliendo la condición. El flujo del programa se ejecuta de arriba hacia abajo. Al llegar a la linea superior del bucle se analiza la condición y si es verdadera se ejecutan las líneas interiores del bucle. Al llegar al Loop se devuelve el flujo del programa al inicio, y se vuelve a analizar la condición. Este proceso se repite mientras la condición sea verdadera, por tanto, en algún momento se debe producir algún cambio en las sentencias interiores del bucle que hagan que la condición se transforme en falsa para que no se siga repitiendo el bucle de forma indefinida. En el momento en el que la condición es falsa el bucle ya no se ejecuta y se devuelve el control del flujo del programa a las sentencias que se encuentres debajo del Loop. No debemos confundir la representación gráfica de la estructura repetitiva Do While ... Loop (Mientras) con la estructura condicional If (Si) Funcionamiento En primer lugar se verifica la condición, si la misma resulta verdadera se ejecutan las operaciones que indicamos por la rama del Verdadero. A la rama del verdadero la graficamos en la parte inferior de la condición. Una línea al final del bloque de repetición la conecta con la parte superior de la estructura repetitiva. En caso que la condición sea Falsa continúa por la rama del Falso y sale de la estructura repetitiva para continuar con la ejecución del algoritmo.
91 El bloque se repite MIENTRAS la condición sea Verdadera. Importante Si la condición siempre retorna verdadero estamos en presencia de un ciclo repetitivo infinito. Dicha situación es un error de programación, nunca finalizará el programa.
imagen:Diagrama Estructura repetitiva do loop while Fuente:Estructura repetitiva Do While (condición) ... Loop (tutorialesprogramacionya.com)
1.6 Estructura repetitiva For... Next Cualquier problema que requiera una estructura repetitiva se puede resolver empleando la estructura Do While (condición) ... Loop. Pero hay otra estructura repetitiva cuyo planteo es más sencillo en ciertas situaciones. En general, la estructura For... Next se usa en aquellas situaciones en las cuales CONOCEMOS la cantidad de veces que queremos que se ejecute el bloque de instrucciones. Ejemplo: cargar 10 números, ingresar 5 notas de alumnos, etc. Conocemos de antemano la cantidad de veces que queremos que el bloque se repita. Los procesos repetitivos o llamados bucles, se utilizan para ejecutar código un número determinado de veces. La sentencia FOR / NEXT es un tipo de bucle automático que podemos utilizar para cumplir ese objetivo. En su forma más típica y básica, esta estructura requiere una variable que cumple la función de un CONTADOR de vueltas. El primer valor que indicamos es el valor inicial que toma el contador. Cada vez que se ejecuta el bloque a repetir el contador se incrementa en uno y si no supera el valor final especificado en el For vuelve a ejecutar el bloque.
92 Si conocemos la cantidad de veces que se repite el bloque es muy sencillo emplear un For, por ejemplo si queremos que se repita 50 veces el bloque de instrucciones puede hacerse así:
imagen:Diagrama Estructura repetitiva for next Fuente Estructura repetitiva For... Next (tutorialesprogramacionya.com)
Sintaxis For <variable numérica> = <valor inicial> To <valor final> [Step <incremento>] ‟Contenido del bucle, lo que se va a repetir Next
imagen:Estructura de sintaxis bucle for Fuente Estructura repetitiva Bucle for - Programación Visual Basic.
1.7 Cadena de Caracteres
Por Cindi Benito Es una secuencia ordenada de símbolos, con una longitud arbitraria (con tantos símbolos como queramos). Se llama cadena, haciendo la analogía con una cadena física creada por elementos llamados eslabones, donde cada eslabón dentro de la cadena se encuentra acomodado en una secuencia consecutiva, uno detrás de otro. Como las cadenas son una secuencia ordenada de valores unos seguidos de otros, podemos hacer referencia a la posición de cada símbolo dentro de la cadena por medio de un número o indice, hay que tener en cuenta que en computación los índices generalmente se consideran desde la posición 0 y no desde el 1.
imagen:Ejemplo cadena de caracteres Fuente ejemplo_cadena.png (1000×217) (unam.mx)
93 Ejemplo de la cadena 'Hola a todos', debajo se pueden observar los índices de cada elemento de la cadena, comenzando desde 0.
1.8 Cadena de Caracteres y definición de un objeto de dicha clase. Una clase es un molde del que luego se pueden crear múltiples objetos, con similares características. Una clase es una plantilla, que define atributos y métodos. La clase define los atributos y métodos comunes a los objetos de ese tipo, pero luego, cada objeto tendrá sus propios valores y compartirán las mismas funciones.
Debemos crear una clase antes de poder crear objetos (instancias) de esa clase. Al crear un objeto de una clase, se dice que se crea una instancia de la clase o un objeto propiamente dicho.
La estructura de una clase es: Public Class [nombre de la clase] [atributos o variables de la clase] [métodos o procedimientos de la clase] End Class.
1.9 Declaración de métodos con parámetros y/o retorno de datos
Por Pablo Berganza Cuando nosotros estamos en la creación de una clase, en lugar de especificar todo el algoritmo, tenemos otra opción, y esa opción son los métodos, lo que hacemos con este es dividir toda la clase haciendo lo así en un conjunto de métodos. La sintaxis que tiene el método es el siguiente: Public Sub [nombre del método]() [algoritmo] End Sub En los métodos también tenemos otros tipos:
94 Métodos con parámetros: Los métodos con parámetros son los que nos piden uno o varios datos, eso quiere decir que el método necesitara que se le envié un parámetro de tipo concreto. La estructura que va a tener un método con parámetros seria esta: Public Sub [nombre del método]( [Parámetros]) [algoritmo] End Sub Los parámetros se les puede tomar como variables locales, pero este inicia con los valores que tiene cuando nosotros le llamemos Métodos que retornan un dato: Cuando queremos que un método retorne un dato la estructura cambia ya que no estaremos usando el Sub, este se estará sustituyendo por Function. Esta seria la estructura que tendría los métodos que retornan: Public Function [nombre del método]( [Parámetros]) As [Tipo de dato] [algoritmo] return [dato] End Function Cuando el dato retorna un dato final estamos nosotros indicado que tipo de dato es el que devuelve, para emplear eso lo que hacemos es hacer algo en el algoritmo, como podemos ver con la palabra return, esto a la hora que finalice este retorne el dato que nosotros empleamos con el valor respectivo
1.10 Estructura de datos tipo vector Las estructuras de datos en VB.Net son tipos de datos compuestos, estos nos permiten almacenar una serie de variables, almacenándolas ordenadamente, estas estructuras de datos mas comunes son los vectores y matrices, aunque haya otros mas Los vectores también conocidos como arrays. Los arrays de solo una dimensión, estos serían vectores, también pueden ser de dos, llamados matrices. Ahora veremos un ejemplo de lo que seria la sintaxis de un vector
95 imagen:Estructura de un Vector Fuente Arrays (arreglos) Matrices Vectores - Programación en Visual Basic.
Ahora, nosotros para definir un array (vector) se necesita la utilización de la siguiente clausula: Dim, tenemos que detallar la dimensión del arrray, también tenemos que especificar el tipo de dato que tendrá Dim paises(4) As String A la hora de poner la clausula Dim, podemos ver que nosotros estamos especificando lo que el nombre con la cual se estará identificando nuestro array para luego ingresar la dimensión, seguido del As, que este lo que estaría haciendo de declarando el tipo de dato que será nuestro array. Dim paises = New String() {"Colombia", "Perú", "Ecuador", "USA", "Brasil"} En este ejemplo lo que hemos creado es un array que se llama países, seguido de insertar los datos que serían 5 países. En este estamos viendo viendo nuestros datos ya ingresados en un vector, como podemos ver en el (4) los valores que indica son 4, pero no es asi, en realidad son 5, ya que en un vector, este estaria contando tambien el 0, contando asi: 0,1,2,3,4,5.
1.11 Recuperación de tamaño y redimensionar
Por Erwin Blanco Vector: Recuperación de tamaño y redimensionar Como hemos visto, cuando se define un vector indicamos entre paréntesis un valor entero que nos indica cuantos elementos podemos almacenar, a dicho valor hay que sumarle uno ya que los componentes se enumeran a partir de cero: Private sueldos(4) As Integer.
En la línea anterior estamos definiendo un vector con 5 componentes de tipo entero.
Luego cuando tenemos que recorrer dicho vector, disponemos una estructura repetitiva For: Aquí estaría con código:
96
imagen: recuperat tamaño de un vector
En la línea anterior estamos definiendo un vector con 5 componentes de tipo entera. Luego cuando tenemos que recorrer dicho vector disponemos una estructura repetitiva For:
Como vemos el For se repite mientras el contador f vale menos o igual a cuatro. Esta estructura repetitiva es idéntica cada vez que recorremos el vector. Que pasa ahora si cambiamos el tamaño del vector cuando lo definimos: Private sueldos(7) As Integer Con esto tenemos que cambiar todos los For que recorren dicho vector. Ahora veremos que un vector al ser un objeto tiene un método llamada GetUpperBound que retorna el valor del último índice del vector. Luego podemos modificar todos los For con la siguiente sintaxis:
imagen: recuperat tamaño de un vector
Cuando llamamos a GetUpperBound debemos pasar el valor cero (ya
veremos
más
adelante
con
matrices
y
arreglos
multidimensionales porque es este valor cero)
imagen: redimensionar un vector
Así quedaría el código ya con el vector, el usuario puede indicar el tamaño ya cuando lo este ejecutando, al ejecutarlo pide que ingrese los sueldos, ya después de eso puede escoger el tamaño del vector.
1.12 Vectores paralelos
97 Se da cuando hay una relación entre los componentes de igual subíndice, es decir, a veces con la misma posición y algunas veces no.
imagen: Ejemplo de un vector paralelo
Esta relación solo la conoce el programador, así facilitar el desarrollo de algoritmos que procesan los datos en la base de datos., Aquí podemos ver dos vectores, podemos ver que el vector nombre esta en paralelo al vector edades si en la componente 0 de cada vector se almacena la información relacionada a una persona. Es decir, hay una relación en cada componente de los vectores. Para imprimir los nombres de las personas mayores de edad, verificamos cada componente del vector de edades, en caso que sea igual o mayor a 18 procedemos a mostrar el elemento de la misma posición del otro vector que es nombres. Aquí ya en código:
Vectores y Estructuras ¿Qué es un vector en Visual Basic? En todos los lenguajes de programación podemos encontrar 3 tipos de vectores o arreglos según su dimensión: -Unidimensionales -Bidimensionales -Multimensionales Arreglos-Vectores Unidimensionales Un arreglo unidimensional o vector es aquel en el que se almacenan los datos de forma ordenada y seguida, y que a la hora de recorrerlos solo se necesita especificar solo un índice.
98
imagen:Estructura de un Vector paralelo Fuente ArraysVB.jpg (515×215) (bp.blogspot.com)
Para definir un Array o vector unidimensional en Visual Basic.Net, es necesario utilizar la capsula “Dim”, detallar la dimensión de nuestro arreglo y siempre especificar el tipo de datos que contendrá: “Dim países(4) As String” Como podemos apreciar, luego de la cláusula “Dim”, especificamos el nombre con el cual se identificará nuestro arreglo, según seguido de la dimensión (4 posiciones que en realidad serán 5) y “As” detallado el tipo de dato que contendrá; luego procedemos a llenar nuestro vector. También se puede llenar de una vez: “Dim Países = New String () {“colombia”, “perú”, “ecuador”, “usa”, “guatemala”}” Como podemos ver en el código que colocamos anteriormente, creamos un vector llamado “paises” y lo hemos llenado con el nombre de 5 paises, para recorrer y utilizar los datos almacenados en nuestro arreglo, basta con colocar el nombre del arreglo, y en medio de paréntesis especificar su índice, que vendría siendo la posición en el array en la que se encuentra el dato; para entender mejor, veamos mas claro el ejemplo anterior:
imagen:Estructura de un Vector paralelo Fuente ArraysVB.jpg (515×215) (bp.blogspot.com)
1.13 Vectores Mayor y menor elemento 1. Construir un vector de 5 elementos tipo entero 2. Solicite al usuario valores correspondientes de cada elemento 3. Investigue el valor mayor y menor y muestre el usuario el resultado 4. Calcule la medida de todos los valores del array y muestre el resultado al usuario.
99
imagen:Estructura de un Vector paralelo Fuente ArraysVB.jpg (515×215) (bp.blogspot.com)
1.14 Vectores-Ordenamiento de sus componentes El ordenamiento de un vector se logra intercambiando los componentes de manera que: vec[0] <= vec[1] <=vec[2] etc. El contenido de la componente vec[0] sea menor o igual al contenido de la componente vec[1] y así sucesivamente. Si se cumple lo dicho anteriormente decimos que el vector está ordenado de menor y mayor. Igualmente podemos ordenar un vector de mayor a menor Ejemplo: Se debe crear un vector donde almacenar 5 sueldos. Ordenar el vector de menor a mayor
imagen:Diagrama de array de ordenamiento Fuente Numero Mayor, Menor y Media de un Array numerico -
1.15 Ordenamiento con Vectores Paralelos
100
Esta
primera
aproximación
tiene
por
objetivo
analizar
los
intercambios de elementos dentro del vector.
El algoritmo consiste en comparar si la primera componente es mayor a la segunda, en caso de que la condición sea verdadera, intercambiamos los contenidos de las componentes. Vectores = ordenamiento con vectores paralelos: Definimos vectores “private string[] nombres; private int[] notas;” Creamos los vectores paralelos con 5 elementos
cada
1:
“nombres=new
string[5]; notas=new int[5];”
imagen:Diagrama de array de ordenamiento Fuente Numero Mayor, Menor y Media de un Array numerico -
en el proceso de ordenamiento dentro de los for verificamos si debemos intercambiar elementos del vector de notas: “for (int k = 0; k < notas.Length; k++)
101 { for (int f = 0; f < notas.Length - 1 - k; f++) { if (notas[f] < notas[f + 1]) {” En el caso de la posición F sea menor a la de la siguiente F+1 procedemos a intercambiar notas:
“int auxnota; auxnota = notas[f]; notas[f] = notas[f + 1]; notas[f + 1] = auxnota;” y simultáneamente procedemos a intercambiar los elementos del vector paralelo “string auxnombre; auxnombre = nombres[f]; nombres[f] = nombres[f + 1]; nombres[f + 1] = auxnombre;”
1.16 Estructura de datos tipo Matriz
Por William Guzmán Una estructura de tipo matriz puede contener uno o varios elementos.
imagen:Diagrama de array de ordenamiento Fuente Numero Mayor, Menor y Media de un Array numerico -
Se entra a los números o miembros de una matriz dentro de una estructura de la misma manera que se accede a una propiedad en un objeto.
102
imagen:Diagrama de array de ordenamiento Fuente Numero Mayor, Menor y Media de un Array numerico -
Se siguen las mismas instrucciones para acceder a los componentes de esta arquitectura de datos.
imagen:Diagrama de array de ordenamiento Fuente Numero Mayor, Menor y Media de un Array numerico -
1.17 Matrices-Cantidad de filas y columnas El número de filas y columnas de una matriz se denomina dimensión de una matriz. (no lleva paréntesis). Un elemento se distingue de otro por la posición que ocupa, es decir, la fila y la columna a la que pertenece. Para especificar un elemento de una matriz, proporcione un índice o subíndice para cada una de sus filas y columnas. Los elementos son contiguos a lo largo de cada dimensión desde el índice 0 hasta el índice más alto de esa dimensión. En las ilustraciones siguientes se muestra la estructura conceptual de las matrices con diferentes rangos. Cada elemento de las ilustraciones muestra los valores de índice que acceden a él. Por ejemplo, puede tener acceso al primer elemento de la segunda fila de la matriz bidimensional especificando índices (1, 0).
imagen:Diagrama de array de ordenamiento Fuente Dimensiones de matriz - Visual Basic | Microsoft Docs
1.18 Matrices y Vectores paralelos Matrices
103 Una matriz es un conjunto de valores, que se denominan elementos, que están relacionados lógicamente entre sí. Mediante el uso de una matriz, puede hacer referencia a estos valores relacionados con el mismo nombre y usar un número denominado índice o subíndice para identificar un elemento individual en función de su posición en la matriz. Los índices de una matriz oscilan entre 0 y uno menos que el número total de elementos de la matriz.
imagen:Diagrama de array de ordenamiento Fuente 14.Programación en Visual Basic. Net con Visual Studio 2019 || Array o vectores y Bucle For
Each. - YouTube
Vectores paralelos Es decir, hay una relación entre cada componente de los dos vectores. Esta relación la conoce únicamente el programador y se hace para facilitar el desarrollo de algoritmos que procesen los datos almacenados en las estructuras de datos
imagen:Diagrama de array de ordenamiento Fuente 14.Programación en Visual Basic. Net con Visual Studio 2019 || Array o vectores y Bucle For
Each. - YouTube
Capítulo IV
104
1. Visual Studio .NET POO – Por Diego Almengor Visual Studio Basic El Visual Basic ha sido desarrollado con el objetivo de entregar a los usuarios de programación informática un paquete de utilidades simples y accesibles. Su base parte del dialecto BASIC pero con componentes novedosos que lo adaptan a los lenguajes informáticos modernos
imagen:Propiedad de Controles Fuente toolbox2.gif (118×269) (tripod.com)
¿Qué es programación orientada a objetos POO en Visual Basic? La programación orientada a objetos (POO) es una forma de programación en donde se desarrollan soluciones utilizando componentes u objetos de software. A diferencia de la programación estructurada, la POO se parece mas al mundo real, por que se trabaja con objetos.
1.1 Formularios de Windows System.Windows.Forms contiene clases para crear aplicaciones basadas en ventanas que aprovechan las ventajas de las características avanzadas de la interfaz de usuario disponibles en el sistema operativo Microsoft Windows.
105
1.2 Controles de Windows GroupBox: Componente que muestra un marco alrededor de un grupo de controles con un título opcional. Button: Componente que permite implementar un Botón de pulsación. Label: Proporciona información en tiempo de ejecución o texto descriptivo para un control. TextBox: Componente que permite ingresar una línea de texto y editarlo. PictureBox: Componente permite mostrar una imagen en el formulario. CheckBox: Permite seleccionar o deseleccionar uno o varios ítems de un conjunto de opciones. RadioButton: Componente para mostrar varias opciones de las cuales sólo se puede seleccionar una. ComboBox: Usado para implementar una lista desplegable de varias opciones de las cuales sólo se puede seleccionar una. DataGridView: Muestra filas y columnas de datos en una cuadrícula que se puede personalizar. Propiedades de los Controles BackColor: Permite modificar el color de fondo de un componente. ForeColor: Propiedad para modificar el color de la letra de un componente. Font: Permite modificar la fuente, el estilo y el tamaño de la letra de un componente. Visible: Propiedad que permite establecer si el control estará o no visible. Text: Para definir la línea de texto que se va a visualizar en el componente
106
imagen:Controles Visual Basic Fuente toolbox2.gif (118×269) (tripod.com)
2. SQL SERVER – Por Emanuel Beltrán
Es uno de los principales sistemas de gestión de bases de datos que presta servicio a un amplio abanico de aplicaciones de software destinadas a la inteligencia empresarial y análisis sobre entornos corporativos
107
imagen:logo SQL Server Fuentesql-server.png (298×240) (proyectoa.com)
2.1 Sistema Manejador de base de datos
Por Mishel Alvarado Un sistema manejador de bases de datos (SGBD, por sus siglas en inglés) o DataBase Management System (DBMS) es una colección de software muy específico, orientado al manejo de base de datos, cuya función es servir de interfaz entre la base de datos, el usuario y las distintas aplicaciones utilizadas. Características y funcionalidad Un sistema SGBD es sinónimo de independencia, una redundancia mínima, consistencia de la información (control de la concurrencia), abstracción de la información sobre su almacenamiento físico, así como un acceso seguro y la adopción de las medidas necesarias para garantizar la integridad de los datos
imagen:logo SQL Server Fuente Unidad 1. Sistema Manejador de Bases de Datos (slideshare.net)
2.2 Tipos de datos en SQL
108
Al importar metadatos de la tabla de base de datos, el controlador ODBC correlaciona estos tipos de datos con tipos de datos SQL adecuados. Puede ver los tipos de datos utilizados en la definición de tabla del repositorio o cuando edite una etapa en el diseño del trabajo.
La etapa BCPLoad soporta los siguientes tipos de datos de SQL Server:
·
Bit: El bit puede tomar un valor de 1, 0 o NULL.
·
Char: Es el tipo de datos de texto.
·
DateTime: Para almacenar valores de tipo FECHA Y HORA.
·
Decimal: restringen al número almacenado a estar dentro de la escala elegida.
·
Float: se usa para almacenar valores numéricos con decimales. Se utiliza como
separador el punto (.). ·
Entero: Es un tipo de datos entero que ocupa 4 Bytes y
puede guardar números de -231 a +231. ·
Money: almacenas cantidades de moneda.
·
Numérico: escala es el número de decimales.
·
Real: representa la aproximación de un número real.
·
VarChar: almacena series de caracteres de hasta 255 bytes en un campo de
longitud variable. Los datos pueden consistir en letras, números y símbolos.
La etapa BCPLoad no soporta los siguientes tipos de datos de SQL Server:
·
Binario
·
VarBinary
·
Imagen
109 Text (texto largo de tipo binario)
3. DDL – Por Cindi Benito
3.1 Create El CREATE database comando que se utiliza es para crear una nueva base de datos SQL. El siguiente SQL crea una base de datos llamada "testDB":
Create en SQL
3.2 Drop El DROP COLUMN comando se usa para eliminar una columna en una tabla existente. El siguiente SQL elimina la columna "ContactName" de la tabla "Clientes".
Drop en SQL
3.2 Alter El ALTER TABLE comando agrega, elimina o modifica columnas en una tabla. El ALTER TABLE comando también agrega y elimina varias restricciones en una tabla. El siguiente SQL agrega una columna "Correo electrónico" a la tabla "Clientes":
110
Alter en SQL
4. DML– Por William Guzmán
DML Data Manipulation Language (DML) es un vocabulario utilizado para recuperar y trabajar con datos en SQL Server y SQL Data base
4.1 Select La declaración SELECT es una forma limitada de declaración DML en la que solo se puede acceder a los datos en la base de datos. No puede manipular datos en la base de datos, aunque puede operar sobre los datos accedidos antes de devolver los resultados de la consulta
Consulta SELECT
4.2 Delete La instrucción DELETE de SQL Server se usa para eliminar filas existentes de una tabla. Una subconsulta se puede anidar en la sentencia DELETE. Ejecutar la declaración DELETE de SQL Server sin utilizar la cláusula WHERE de SQL Server da como resultado la eliminación de todas las filas de la tabla
111
Consulta Delete
4.3 Update La instrucción UPDATE nos sirve para actualizar datos en una base de datos SQL este lo utilizamos mas en las tablas ya que hay veces que necesitamos modificar los datos ingresados.
Consulta Update
4.4 Insert La instrucción UPDATE nos sirve para actualizar datos en una base de datos SQL este lo utilizamos mas en las tablas ya que hay veces que necesitamos modificar los datos ingresados
Consulta Insert
5. Conexión–
112
Por Emanuel Beltrán
5.1 Base de datos de SQL Server Es un sistema de gestión de bases de datos relacionales (RDBMS) que admite una amplia variedad de aplicaciones de procesamiento de transacciones, inteligencia empresarial y análisis en entornos informáticos corporativos. es un sistema de gestión de base de datos relacional desarrollado como un producto de software con la función principal de almacenar y recuperar datos según lo solicitado por otras aplicaciones. Crear base de datos: Seleccionamos New Query después refrescamos la carpeta database y de ultimo el Execute.
ejemplo para crear una base de datos en SQL
Después ponemos un créate Database y usamos un USE con el nombre de la base de datos y ya en este punto ya podemos poner todos los datos crear tablas insertar datos etc.
ejemplo para crear una base de datos en SQL
Como conectar: Hay que crearnos un nuevo proyecto usando el Windows forms, visual basic. De ahí en la barra de menús, seleccione Project Agregar > nuevo elemento.
113 De ahí nos desplazamos hacia abajo y seleccionamos base de datos basadas en servicio.
ejemplo Conectarr una base de datos en SQL
Le asignamos nombre a la base de datos y le damos en agregar. En la ventana de orígenes de datos, le damos en agregar orígenes.
ejemplo Conectarr una base de datos en SQL
Al darle click, se abrirá el asistente para configurar orígenes de datos. En la página Elegir un tipo de origen de datos , elija Base de datos y, a continuación, elija Siguiente. En la página Elegir un modelo de base de datos, elija Siguiente para aceptar el valor predeterminado (conjunto de datos) En la página Elegir la conexión de datos, seleccione el archivo SampleDatabase.mdf en la lista desplegable y, a continuación, elija Siguiente. En la página Guardar la cadena de conexión en el archivo de configuración de la aplicación, elija Siguiente. En la página Elegir los objetos de base de datos, verá un mensaje que indica que la base de datos no contiene ningún objeto. Elija Finalizar
6. Medidas de Seguridad–
.
114
Por Pablo Berganza 6.1 Anti errores Los anti errores son una forma de prevenir ciertos errores a la hora de programar, esto en lo que nos ayuda es en el que nuestro programa tenga mayor seguridad, previniendo bugs y otros errores que pueden se que nuestro programa sea vulnerable a ciertos ataques.
En la programación, entre mas grande es nuestro programa y complejos, esto puede crear mas errores, hasta para programar con cuidado no evita que surge más de algún error, como había dicho, estos errores pueden ser denominados bugs, y la eliminación de estos errores se les llama depuración. Los errores en la sintaxis son los mas comunes, son simples errores que se crean a la hora de no declarar bien una variable, a la hora de no cerrar la condición, son errores fáciles de solucionar, están los otros errores que hacen vulnerables nuestros programas. Estos errores se pueden evitar, implementado las medidas de seguridad, entre estas medidas tenemos lo que son los Try Catch, medidas de seguridad que ayudan a que nuestro programa sea mas seguro
Estructura deantierror
6.2 Try-Catch
115 Los Try Catch con una gran novedad que trajo Visual Basic.Net. El mecanismo Try Catch, nos sirve para atrapar errores, este es posible de escribir manejadores que nos ayudan a no tener errores en la ejecución de nuestro programa. Los Try Catch son un sistema de anti errores muy eficaz, por eso es que aun sigue existiendo este, pero también hay otro nuevo método que se llama Err.GetException, este obtiene la excepción que se creo a la hora del error Un ejemplo que podemos dar de los Try Catch seria a la hora de conectarnos con nuestra base de datos, este es uno de los métodos que realizábamos para ver si había un error en la conexión con SQL.
¿Qué es un erro en tiempo de ejecución? Este es un error que se puede dar en Visual Basic ya que este en un programa hace que no se pueda recuperar, ya que, al no tener la instrucción completada, Visual no tiene una instrucción que haga a la hora de ejecutar alguno de estos errores, para evitar esos errores tenemos los Try Catch, esta es la función que tienen, atrapar los errores que dan, este define las acciones cuando detecta los errores, ahora veremos lo que es la sintaxis del Try Catch:
Mensaje de error estructura trycatch
Sintaxis: Try “inicio de la sintaxis” ‘sentencia/as que puede generar el error. Catch (error que se generó) Sentencia/as que definen las acciones a seguir. Finally Sentencia que restablecen las condiciones. End Try “Cierre del Try” Ejemplo ya con un código
La palabra Finally es opcional Finally: no siempre vamos a estar usando lo, lo usaremos a la hora a ejecutar un código de limpieza, este lo podemos usar a la hora de
116 cerrar una conexión a una base de datos, esta sería la función que tiene la expresión Finally Esta expresión siempre tenemos que agregar el Try Catch, ya que como hemos visto este nos ayuda a controlar los errores en la ejecución.
117
Teoría de la información
Cuarto Grado
Capítulo I 1. Software. – Por Jonatan Monzón 1.1. Concepto El software es el conjunto de instrucciones que una computadora debe seguir, es decir, todas aquellas indicaciones sobre lo que tiene que hacer y cómo. El concepto de software
118 engloba todo aquello que es intangible en la computadora, lo que no se puede tocar, como, por ejemplo, los programas y los sistemas operativos. Esta definición contrasta con hardware, que se refiere a los componentes físicos de la computadora, aquellos dispositivos, aparatos y equipos que pueden ser tocados, vistos y manipulados. Sin el software, no importa lo grande o costoso que sea el hardware, este no funcionará. Software de sistema: Permite gestionar y administrar los recursos relativos a la memoria, discos, puertos, dispositivos de comunicaciones, periféricos. Estos proporcionan al usuario interfaces de alto nivel, controladores, servidores, herramientas y utilidades para el mantenimiento del sistema. 1.2 Software de programación: Se trata de un conjunto de herramientas y utilidades que permiten a los programadores desarrollar programas informáticos utilizando diferentes lenguajes de programación o bases de datos. Incluye de manera general: editores de texto, compiladores, intérpretes, enlazadores y depuradores. También Entornos de Desarrollo Integrados (IDE): que agrupan en un mismo entorno, habitualmente visual (GUI), todas las herramientas necesarias, anteriormente mencionadas, para cubrir el ciclo completo de desarrollo de un programa. Es en esta categoría en la que nos vamos a centrar en este artículo. 1.3 Software de aplicación: Es el que permite a los usuarios realizar tareas específicas, en muchos casos a través de una interfaz visual de alto nivel (GUI). En otras palabras, son los programas que se crean con los softwares de programación, para realizar numerosas tareas tanto laborales, como administrativas, de gestión o con el objetivo simplemente de ocio, como videojuegos. En esta categoría podríamos englobar a todo el software de gestión empresarial, de telecomunicaciones, todas las aplicaciones ofimáticas y de control, programas específicos de cualquier área, así como bases de datos o videojuegos.
1.2. Clasificación Software de Sistema Este es el software que básicamente permite que un dispositivo funcione de la forma que lo hace, de hecho, sin él no podría funcionar una computadora. Se trata del software que permite funcionar a nuestros dispositivos. Sin el software de sistema no sería posible usar un móvil, una computadora o una tableta. El software de sistema es, en términos simples, el que nos permite interactuar con un dispositivo por medio de su hardware. Este software base está compuesto principalmente por el sistema operativo y por los drivers o controladores, y en menor medida también podemos incluir a las librerías dentro de esta categoría. Tipos de Software de Sistema ●
Sistema operativo: el sistema operativo es el principal conjunto de software de un dispositivo y define muchos aspectos de lo que se puede hacer o no con dicho dispositivo.
119 ●
●
●
●
●
Controladores o drivers: los controladores, que también llamamos drivers, es lo que permite que nuestro sistema operativo identifique un hardware correctamente y podamos usarlo en él. Librerías: las librerías son, básicamente, un conjunto de funciones que permiten al sistema operativo interpretar un código, de forma que podamos abrir o ver distintos tipos de archivos. Interfaz gráfica: la interfaz gráfica por otro lado es un complemento del sistema operativo y puede estar presente o no, su utilidad radica en poder interactuar en forma más sencilla y vistosa con nuestro dispositivo. Interfaz de línea de comandos: las interfaces de líneas de comando son una forma que posee el usuario de interactuar con un dispositivo. Se trata de una consola mediante la cual el usuario puede ejecutar distintos comandos para lograr toda clase de cometidos. BIOS: el BIOS es otra pieza de software clave para el funcionamiento de un dispositivo, es quien da el chispazo inicial y determina si se lanza directamente un sistema operativo o un gestor de arranque. Es un software que ya viene integrado en el dispositivo, es decir que es ajeno al sistema operativo, controladores y librerías.
Imagen: Software de Sistema. Fuente: https://conceptoabc.com/wp-content/uploads/2021/05/tecno-soft-sistemas.png
Software de aplicación Un software de aplicación es el término que define cualquier programa que sea instalado en un ordenador con el fin de realizar las tareas que un usuario necesite. Un software de aplicación puede ser un editor de texto, una hoja de cálculo, un reproductor multimedia y otros más. Es bastante seguro que exista un software de aplicación programado para casi cualquier cosa que se nos ocurra.
Funciones Las funciones de un software de aplicación dependen de la intención con la cual fue desarrollada, no se pueden definir funciones específicas a este término desde un punto de vista global. Según el tipo de software de aplicación, este contará con unas u otras funciones.
120 Imagen: Software de Aplicación. Extraído de ConceptoABC.Fuente: Fuente:https://conceptoabc.com/wp-content/uploads/2021/05/tecno-aplicacion-office.jpg
Software de programación El software de programación es un tipo de software bastante peculiar que destaca por ser el usado para crear otros softwares, es decir, son programas y herramientas a los que se le da uso para crear otros programas y herramientas. La mayoría de los softwares de programación vienen equipados con todo lo que un programador puede necesitar para llevar a cabo sus tareas. Entre las utilidades que se integran se puede encontrar por ejemplo un procesador de texto, un depurador, distintos tipos de compiladores, entre otros. Si pensamos por un momento seguramente vamos a darnos cuenta de que el software de programación es una especie de paradoja, ya que son programas para crear programas.
Imagen: Software de Programación. Extraído de Actualízate hoy Fuente: https://actualizatehoy.com/wp-content/uploads/2021/05/Programa-para-programar-1.jpg
2. Ofimática. – Por Cristofer Morales 2.1. Concepto La ofimática es un conjunto de herramientas de informática que se utilizan para optimizar, mejorar y automatizar los procedimientos que se realizan en una oficina. La palabra ofimática es un acrónimo formado por oficina e informática. Las herramientas de ofimática permiten idear, crear, almacenar y manipular información, pero deben estar las computadoras sí o sí conectadas a una red de internet. La estructura ofimática suele estar constituida por las computadoras y sus periféricos. Toda actividad que se realice manualmente dentro de un complejo de oficinas puede realizarse con las herramientas de la ofimática de forma mucho mejor, más simple y rápida.
121 Imagen: Ofimática Fuente: https://watchandact.eu/wp-content/uploads/2021/10/ofimatica..jpg
2.2. Historia La ofimática o la automatización de la oficina moderna, comienza con la máquina de escribir y con la fotocopiadora, que permitieron mecanizar tareas que antes eran manuales. Más cerca en el tiempo, la automatización de la oficina también comenzó a incluir el traspaso de información hacia medios electrónicos. Pero la revolución de la automatización llegó de la mano de las computadoras, en especial de las computadoras personales en 1980. La ofimática básicamente se originó para la gestión de datos (gracias al poder de cálculo y procesamiento de las computadoras), luego para el almacenamiento de información (dado que la capacidad de almacenamiento crecía y se hacía más barato) y finalmente el intercambio de datos (gracias a las facilidades de las redes, la conexión a internet, etc.).
Imagen: Backup o subir una copia de seguridad a la nube Fuente: https://empresayeconomia.republica.com
2.3. Herramientas ● Hojas de cálculo: Una hoja de cálculo es un programa o aplicación informática que permite la manipulación sobre datos números dispuestos en tablas para la operación sobre cálculos complejos de contabilidad, finanzas y negocios . ● Herramientas de presentación multimedia: Son documentos informáticos que pueden incluir textos, esquemas, gráficos, fotografías, sonidos, animaciones o fragmentos de videos entre otros. ● Base de datos: En el entorno de trabajo de cualquier tipo de oficina ha sido habitual tener un archivo con gran parte de la información necesaria para el desempeño de la actividad diaria de la organización. Toda esta información debidamente clasificada y almacenada según criterios precisos recibe el nombre de base de datos. ● Utilidades (agendas, calculadoras, etc): Existen diferentes herramientas que vienen por defecto en nuestros sistemas operativos como lo es agenda, calculadora, organizadores personales.
122 ● Programas de correo electrónico, correo de voz, mensajeros: Sirven para el envío, almacenamiento y recuperación de mensajes, ya sean documentos, mensajes de audio, entre otros. ● Suite ofimática: Paquete de múltiples herramientas ofimáticas.
Imagen: Herramientas de la Ofimática Fuente: https://www.alegsa.com.ar/Imagen/ofimatica.png
Paquetes ofimáticos Microsoft Office es una suite ofimática que abarca el mercado completo en internet e interrelaciona aplicaciones del mercado, servidores y servicios para
los sistemas
operativos Microsoft Windows y MacOS. Word Con esta herramienta el usuario puede hacer muchas tareas, gracias a su procesador de textos. Redactar una carta, un fax, 121 un currículum, llevar a cabo un informe o memorando, incluso si quiere hacer un folleto, un manual, una tesis, monografía o resumen, crear una agenda o un calendario. Excel Su función principal es la de una hoja de cálculo o planilla electrónica. Podemos confiarle estadísticas y complicados cálculos, compartir los datos de manera sencilla e incluso ponerlos en la web. Además, podemos insertar todo tipos de objetos al igual que en Word, sonidos, imágenes, etc. Como beneficio adicional, maneja de forma muy útil los datos, filtrando los contenidos para darnos solo la información que nos interesa. Access Una base de datos por excelencia. Esta se ha ganado por sí misma un reconocimiento del usuario a cualquier nivel. Puede llevar la administración de contactos y llamadas, controlar
123 el inventario y los pedidos, llevar un registro de libros, revistas, música, etc. Las aplicaciones son innumerables. PowerPoint Con esta herramienta puede crear animaciones, insertar imágenes, gráficos, películas, música o sus propias palabras, si lo desea. Es el formato ideal para acompañarlo en sus discursos o presentaciones. Outlook Administra su correo electrónico. Permite hacer un seguimiento de los mensajes y contactos que usted tenga, reciba o envíe. También puede organizar los mensajes en carpetas, por colores o vistas, puede seleccionar el correo no deseado y mucho más. Incluye además la posibilidad de llevar su agenda con calendario, puede recordarle sus tareas a realizar y le permite escribir notas, que puede ordenar según diferentes colores si es que necesita hacer un apunte.
Imagen: Herramientas de la Ofimática Fuente: https://userscontent2.emaze.com/images/0b738289-8ac4-41f8-8553-5f6fc074827e/765aa12050e59078b51c7bcc2b86e02a.png
3. Mecanet. – Por María Morales 3.1 Concepto Mecanet es un curso de mecanografía gratis en español y en inglés nos enseñara a escribir de la manera más rápida y segura posible. Es un software para PC que permite adquirir una mayor velocidad para escribir textos sin mirar el teclado del ordenador sin cometer errores. Competencias que ayuda a desarrollar de forma interactiva: ● Ayuda en el aprendizaje de la lectura y la ortografía. ● Mejora la coordinación y los problemas de lateralidad. ● Ejercita la atención, la concentración y el autocontrol.
124 ● Un correcto uso del ordenador con la consiguiente ganancia en tiempo y en productividad. ● Enseña a escribir correctamente en el teclado del ordenador. Mecanet está dividido en 20 lecciones cada una con indicaciones de la posición y movimiento de los dedos, una gran cantidad de ejercicios de mecanografía y varios juegos de mecanografía. Nos permite cargar a diferentes usuarios toda la información del desarrollo de cada lección, así mismo, nos permite guardar cada lección. Mecanet es imprescindible para la carrera de quienes quieran trabajar como administrativos o que desean adquirir un puesto de trabajo en las administraciones públicas, pero también puede ser utilizado como programa de mecanografía para los niños.
Imagen: MECA-NET Fuente:https://www.cursomecanet.com/img/imagen-basic3.png
Dispone de las siguientes funciones para el seguimiento de los progresos del usuario: ● Consulta de estadística resultante del progreso en cada tema, siendo reseñable el nivel de aciertos de cada dedo. ● Permite generar nuevas lecciones para adaptarlas a ciertos textos e incluso crear perfiles o grupos de alumnos. Ámbitos en los que se basa Meca-net: ●
Al ser un programa en español puede reforzar la lectura y la ortografía.
● Puede mejorar la coordinación, problemas de lateralidad, déficit de atención, concentración o autocontrol.
3.2 Prácticas El método de aprendizaje que ofrece Mecanet es el adecuado para por fin soltarnos en el teclado y escribir rápido y con seguridad como verdaderos profesionales. Mediante repetitivas prácticas donde combinamos pulsaciones de teclas, logramos asimilar las lecciones en un corto periodo de tiempo. Una vez dominemos las fases de destreza con los dedos y teclas, avanzaremos al tecleado de palabras y posteriormente al de textos. En todas las prácticas ofrecidas por Meca-Net contaremos con un teclado virtual para poder situarnos, donde cada tecla cuenta con un color diferente que corresponde al que debe pulsarse. También podremos realizar un seguimiento de nuestros progresos en mecanografía, creando para ello un perfil de usuario en Mecanet. De esta forma obtendremos
125 estadísticas de fallos y caracteres tecleados por minuto, entre otras. Y por si fuera poco tendremos disponibles exámenes con cuenta atrás y divertidos juegos para asimilar las lecciones con un mayor interés, en definitiva, aprender jugando también es una muy buena opción. Objetivos de las prácticas: ● Superar las 300 pulsaciones por minuto es el objetivo principal del curso. Esta es una velocidad que te permite trabajar con un alto rendimiento y productividad. ● Identificar cada parte del teclado con el propósito de lograr un conocimiento sobre cada una de sus funciones. ● Manejar con propiedad el programa de Mecanet. ● Aprender a escribir correctamente sin mirar el teclado evitando cometer errores ortográficos. ● Lograr en el estudiante las habilidades y destrezas para la confección de archivos de texto.
Imagen: Cursos de MECA-NET, Prácticas de MECA-NET Fuente: https://www.cursomecanet.com/mecanet-collection/imagen.png https://garibaldy.blogia.com/upload/20110925001152-mecanet-23.jpg
4. Sistemas operativos WINDOWS. – Por Luis Ortiz Un sistema operativo es un conjunto de programas que permite manejar la memoria, disco, medios de almacenamiento de información y los diferentes periféricos o recursos de nuestra computadora, como son el teclado, el mouse, la impresora, la placa de red, entre otros. Los periféricos utilizan un driver o controlador y son desarrollados por los fabricantes de cada equipo estos a su vez trabajan en conjunto para ser compatible con cada sistema operativo. Encontramos diferentes sistemas operativos como Windows, Linux, MAS OS, en sus diferentes versiones. También los teléfonos y tabletas poseen un sistema operativo. Dentro de las tareas que realiza el sistema operativo, en particular, se ocupa de gestionar la memoria de nuestro sistema y la carga de los diferentes programas, para ello cada programa tiene una prioridad o jerarquía y en función de la misma contará con los recursos de nuestro sistema por más tiempo que un programa de menor prioridad. El sistema operativo se encarga de hacer funcionar otros procesos, los cuales tal vez a la vista no miramos, pero que están funcionan de igual manera un ejemplo de esto puede ser el antivirus que estas funcionan desde el encendido de nuestra computadora hasta la hora de apagado.
126
Imagen: Sistemas Operativos de Windows. Fuente: http://diarium.usal.es/carmennmartin/files/2015/11/windows-logo_large_verge_super_wide.jpg
4.1. Historia La informática tal y como se le conoce hoy día, surgió a raíz de la II Guerra Mundial, en la década de los 40. En esos años no existía siquiera el concepto de "Sistema Operativo" y los programadores interactuaban directamente con el hardware de las computadoras trabajando en lenguaje máquina. El concepto de Sistema Operativo surge en la década de los 50. El primer Sistema Operativo de la historia fue creado en 1956 para un ordenador IBM 704, y básicamente lo único que hacía era comenzar la ejecución de un programa cuando el anterior terminaba. En los años 60 se produce una revolución en el campo de los Sistemas Operativos. Aparecen conceptos como sistema multitarea, sistema multiusuario, sistema multiprocesadores y sistema en tiempo real. Es en esta década cuando aparece UNIX, la base de la gran mayoría de los Sistemas Operativos que existen hoy en día. En los años 70 se produce un boom en cuestión de ordenadores personales, acercando estos al público general de manera impensable hasta entonces. Esto hace que se multiplique el desarrollo, creándose el lenguaje de programación C (diseñado específicamente para reescribir por completo el código UNIX). Como consecuencia de este crecimiento exponencial de usuarios, la gran mayoría de ellos sin ningún conocimiento sobre lenguajes de bajo o alto nivel, hizo que, en los años 80, la prioridad a la hora de diseñar un sistema operativo fuese la facilidad de uso, surgiendo así las primeras interfaces de usuario. En los 80 nacieron sistemas como MacOS, MS-DOS, Windows. En la década de los 90 hace su aparición Linux, publicándose la primera versión del núcleo en septiembre de 1991, que posteriormente se uniría al proyecto GNU, un sistema operativo completamente libre, similar a UNIX, al que le faltaba para funcionar un núcleo funcional. Hoy en día la mayoría de la gente conoce por Linux al Sistema Operativo que realmente se llama GNU/Linux.
4.2. Versiones Windows 1.0 El 20 de noviembre de 1985 no se anunció de manera oficial esta es la primera versión del sistema. Una versión que ofrecía poca funcionalidad y que no se trataba de un sistema operativo más bien como extensión gráfica de MS-DOS
127
Imagen: Windows 1.0 Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2015/11/windows-1.0.png
Windows 2.0 Dos años más tarde, en noviembre de 1987, llegaba Windows 2.0. Fue actualizada rápidamente con la v2.03 y que ya incluía por primera vez ventanas que podían solaparse entre ellas.
Imagen: Windows 2.0 Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2020/04/windows2-1.png
Windows 3.0 El 22 de mayo de 1990, se libera y se lanza el sistema operativo Windows 3.0 que llega con una interfaz gráfica en la que ya se comenzaban a apreciar nuevos elementos visuales además de las exitosas ventanas.
Imagen: Windows 3.0 Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2020/04/windows3-1.png
Windows 95 El 24 de agosto de 1995 es una fecha importante en la vida del sistema operativo de Microsoft, es el día en el que fue lanzada la versión Windows 95. La primera versión que ofrece una interfaz muy mejorada y donde ya aparecen la barra de tareas y el menú Inicio, dos elementos muy importantes y característicos de Microsoft
128
Imagen: Windows 95 Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2015/05/windows-95.jpg
Windows NT 4.0 Windows NT o Windows New Technology nació como una nueva línea del sistema operativo de Microsoft orientado a estaciones de trabajo y servidores de red. Un sistema con interfaz gráfica propia de Windows 95, estable y características similares a los sistemas de red UNIX.
Imagen: Windows NT 4.0 Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2020/04/windowsNT.png
Windows 98 El 25 de junio de 1998, Microsoft lanzaba la nueva versión de su sistema operativo: Windows 98. Al igual que la anterior, adquirió como nombre las dos últimas cifras del año de su lanzamiento y era una versión que llegaba con el sistema de archivos FAT32 que trató de potenciar el acceso a la red. Además, incluyó la compatibilidad con lectores de DVD y la incorporación de los primeros puertos USB.
129 Imagen: Windows 98 Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2015/11/Windows-98-443x332.png
Windows 2000 El 29 de marzo de 1999 se lanza el sistema operativo Windows NT 5.0 EUR Edition, que no era otra cosa que la versión alemana de Windows NET 5.0 y que pasaría a llamarse Windows 2000 posteriormente. Una versión del sistema que Microsoft desarrolló como parte de su línea profesional.
Imagen: Windows 2000 Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2020/04/w2000-768x576.jpg
Windows XP El 25 de octubre del año 2001, momento en el que se lanzaba Windows XP. La primera versión del siglo XXI y que supuso un gran éxito al ser un producto de gran calidad. Una versión que fue construida a partir del kernel de Windows NT y que llegó en dos ediciones distintas, Home y Professional.
Imagen: Windows XP Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2015/11/windows-xp.jpg
Windows Vista El 30 de enero de 2007, llegaba 6 años después con infinidad de nuevas características y funciones. Un Shell rediseñado y una interfaz con grandes cambios y enfocada en mejorar la seguridad de los usuarios que, por el contrario, no fue del agrado de la gran mayoría de ellos. Con Windows Vista pudimos ver la interfaz Aero UI que, sin duda,
130 ofrecía un gran atractivo a nivel visual, pero que resultó ser demasiado problemático en equipos menos potentes.
Imagen: Windows Vista Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2020/04/vista-768x432.jpg
Windows 7 El 22 de octubre de 2009, Microsoft anunció el lanzamiento de Windows 7 como solución al fiasco de Windows Vista y que resultó una de las versiones más importantes del sistema operativo de Microsoft desde el anterior Windows XP.
Imagen: Windows 7 Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2020/04/windows7.jpg
Windows 8 Tres años después, el 26 de octubre de 2012, se lanzó Windows 8. Una versión que añadía soporte para microprocesadores ARM y cuya interfaz llegaba modificada para hacerla más adecuada para su uso con pantallas táctiles, mostrando nuevos efectos planos para ventanas y botones con un color simple. Esto supuso también la eliminación del clásico menú de Inicio de Windows por Tiles, algo que no fue del agrado de la gran mayoría de usuarios.
Imagen: Windows 8 Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2020/04/windows8.jpg
Windows 8.1 Para intentar dar respuesta a los usuarios que echaban de menos algunos elementos tradicionales del sistema y que recuperaba algunas de las características.
131
Imagen: Windows 8.1 Fuente: https://i0.wp.com/www.ardilu.com/wp-content/uploads/2020/05/Windows-8.1.jpg?ssl=1
Windows 10 Una versión que cuenta con un gran conjunto de aplicaciones, una interfaz moderna con un gran rendimiento y que, además, es multiplataforma. Es decir, permite su utilización en ordenadores y dispositivos móviles. Pero no son las únicas novedades, ya que también cabe destacar el uso de aplicaciones universales, el nuevo navegador de Internet Edge, el gran protagonismo de su asistente Cortana, la nueva página de Configuración del sistema, el TimeLine o la vuelta del menú de Inicio.
Imagen: Windows 10 Fuente: https://www.adslzone.net/app/uploads-adslzone.net/2020/04/w10-768x379.jpg
5. Unidades de medida en informática. – Por Carlos Paz 5.1. Concepto Así como usamos medidas para saber cuánto pesan o miden las cosas, también hay unidades de medida que te permiten calcular la capacidad de almacenamiento de información o procesamiento de datos. Se le llama unidad de medida de la información al registro del espacio que hay en un dispositivo dado para grabar datos e información de manera permanente o temporal. También se puede decir que una unidad de medida de la información es aquella práctica que se realiza con el interés de optimizar el rendimiento y aprovechar todo el espacio que existe dentro de una unidad. Las unidades de medida más usadas son el Bit, Byte, Kilobyte, Megabyte, Gigabyte y Terabyte. ¿Qué es un bit?
132 Bit proviene de las palabras Binary Digit o dígito binario. Es la unidad de medida unitaria para medir la capacidad de almacenamiento de una memoria digital, y se representa con la magnitud “b”. El bit es la representación numérica del sistema de numeración binario, el cual trata de representar todos los valores existentes mediante los valores 1 y 0. Y están directamente relacionados con los valores de tensión eléctrica en un sistema. Y es precisamente por esto que estos valores difieren según el sistema que utilicemos, y es debido a que para la representación de los múltiplos de cada unidad se utiliza la base 10 propia del sistema de numeración decimal. Entonces, según la Comisión electrotécnica Internacional (IEC) la tabla de múltiplos de Byte y nombre quedaría de la siguiente forma
5.2. Múltiplos. Bit: Es la unidad mínima de información empleada en informática. Byte (B): Equivale a 8 bits. Con dos bytes guardas o procesas una letra. Kilobyte (kB): 1024 bytes forman un Kilobyte. Megabyte (MB): Equivale a 1024 Kilobytes. Gigabyte (GB): Es igual a 1024 Megabytes. Es la unidad de medida que se suele usar para determinar la capacidad de almacenamiento de las USB. Terabyte (TB): Lo componen 1024 Gigabytes. Muchas veces esta medida determina la capacidad de almacenamiento de los discos duros.
Imagen: Cuadro de medida, simbología y equivalencia Fuente: https://sites.google.com/site/losequiuposinformaticos/home/unidades-de-medida-de-la-informaci
133
5.3. Conversiones.
Imagen: Equivalencia de distintas medidas en con un byte Fuente:https://www.profesionalreview.com/2018/12/12/unidades-de-medida/
6. Sistemas numéricos. – Por Dina Perez 6.1. Concepto En aritmética, álgebra y análisis matemático, un sistema numérico es un conjunto provisto de dos operaciones que verifican ciertas condiciones relacionadas con las propiedades conmutativa, asociativa y distributiva. El conjunto de los números enteros, los racionales o los reales son ejemplos de sistemas numéricos, aunque los matemáticos han creado muchos otros sistemas numéricos más abstractos para diversos fines. Además, debe tenerse en cuenta que dado un sistema numérico existen diversas formas de representarlo, por ejemplo, en los enteros podemos usar la representación decimal, la binaria, la hexadecimal, etc. En los racionales podemos optar por expresarlos de manera decimal o como fracción de enteros, etc. ¿Qué sistemas numéricos veremos? ● Sistema binario ●
Sistema octal
● Sistema hexadecimal
6.2. Sistema Binario El sistema binario es una técnica de numeración donde solo se utilizan dos dígitos, el 0 y el 1. Suele emplearse particularmente en la informática. Es decir, este método se vale solo de dos
134 símbolos, la unidad y el cero. Cualquier número puede expresarse tanto en el sistema decimal como en el binario.
Imagen: Números Binarios del 0 al 15 Fuente:https://www.areatecnologia.com/informatica/imagenes/numeros-binarios.jpg
6.3. Sistema Octal El sistema de numeración octal es un sistema de numeración en base 8, una base que es potencia exacta de 2 o de la numeración binaria. Esta característica hace que la conversión a binario o viceversa sea bastante simple. En informática, a veces se utiliza la numeración octal en vez de la hexadecimal.
6.4. Sistema Hexadecimal El sistema hexadecimal es una técnica de numeración que tiene como base el 16. Se trata de un esquema alternativo al sistema decimal y al binario. El sistema hexadecimal es aquel que utiliza entonces dieciséis dígitos, que serán los siguientes: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F En dicho conjunto, las letras del alfabeto latino tienen el siguiente valor expresado en el sistema decimal: A=10, B=11, C=12, D=13, E=14 y F=15 Cabe señalar que estas letras podrían colocarse en minúsculas. Además, vale indicar que este sistema es posicional, pues el valor de cada dígito dependerá de su posición, como explicaremos a continuación.
6.5. Conversiones Conversión de Decimal a Binario Para hacer la conversión de decimal a binario, hay que ir dividiendo el número decimal entre dos y anotar en una columna a la derecha el resto. Nota: 0 si el resultado de la división es par y un 1 si es impar. La lista de ceros y unos leídos de abajo a arriba es el resultado. Ejemplo Vamos a pasar a binario 7910 1.
79
1 (impar). Dividimos entre dos:
2.
39
1 (impar). Dividimos entre dos:
3.
19
1 (impar). Dividimos entre dos:
4.
9
1 (impar). Dividimos entre dos:
135 5.
4
0 (par). Dividimos entre dos:
6.
2
0 (par). Dividimos entre dos:
7.
1
1 (impar).
El resultado es: 791010 = 10011112
Conversión de Binario a Decimal Antes que nada, dado un número binario, necesitamos tomar un dígito a la vez y multiplicarlo por (2 ^ x) donde x corresponde a la posición del dígito. Al ver el ejemplo, será más fácil entender cómo hacerlo. Ejemplo 1. Podemos hacer el número binario 100111 en su número decimal, haciendo el siguiente cálculo: 1 * 25 + 0 * 24 + 0 * 23 + 1 * 22 + 1 * 21 + 1 x 2^0 = 1 * 32 + 0 * 16 + 0 * 8 + 1 * 4 + 1 * 2 + 1 * 1 = 32 + 0 + 0 + 4 + 2 + 1 = 39 2. Como resultado, 39 representa el número equivalente del sistema decimal. El resultado es: 1001112 = 3910
Conversión de Decimal a Octal Supongamos que queremos convertir el número 50010 a sistema octal. 1.
El sistema hexadecimal trabaja con base 8, por lo tanto, vamos a dividir ese 500 entre 8.
2.
8 cabe 62 veces en 500 y queda de residuo 4.
3.
Seguimos dividiendo, 62 entre 8, ahora vemos que 8 cabe 7 veces en 62 y queda de residuo 6. No podemos dividir más porque 8 no cabe en 7. Todos los residuos hay que contarlos del final hacia el principio y como resultado nos da 764.
4. 5.
El resultado es: 50010 = 7648
Imagen: Como pasar de Octal a Decimal Fuente: https://cual-es-mi-ip.online/wp-content/uploads/conversor-numerico-octal-a-decimal-ejemplo1-img.png
Conversión de Octal a Decimal Supongamos que queremos convertir el número 378 a sistema decimal.
136 1.
Hacemos el siguiente cálculo: 3*81 + 7*80 = 3*8 + 7*1 = 24 + 7 = 31
2.
Como resultado, 3110 representa el número equivalente del sistema decimal.
El resultado es: 378 = 3110 Conversión de Decimal a Hexadecimal Supongamos que queremos convertir el número 50010 a sistema octal. 1. 2. 3. 4. 5.
Dividimos 500 entre 16 y vemos que 16 cabe 31 veces en 500 y queda de residuo 4 Dividimos 31 entre 16 y vemos que únicamente cabe 1 vez por lo que no se puede seguir dividiendo. Queda de restante 15 Todos los residuos hay que contarlos del final hacia el principio y como resultado nos da 1-15-4. Como sabemos en el Hexadecimal los números del 10-15 se sustituyen por letras en este caso 15=F. Ordenándose queda 1F416. El resultado es: 50010 = 1F416
Imagen: : Diferencias entre Decimal y Hexadecimal Fuente: https://www.elvisualista.com/wp-content/uploads/2016/11/numeros-decimales-hexadecimales.png
7. Sistemas de archivos. – Por Javier Petzey Se le denomina sistema de archivos porque cada archivo contiene unos datos independientes, por lo que es necesario que la información que contiene cada archivo se agrupe con cierto orden. Para ello, el sistema operativo utiliza las famosas carpetas o directorios con el fin de organizar todas las rutas y localizar la información contenida en el disco duro, que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos manejan su propio sistema de archivos. El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud. En conclusión, el sistema de archivos de un sistema operativo es el que organiza todos los datos contenidos en el disco duro de una forma determinada. Ya no sólo eso, sino que cada unidad de almacenamiento tiene un sistema de archivos que es impuesto tras su formato.
137
Imagen: Sistema De Archivos, Fuente: https://www.osi.es/sites/default/files/images/concienciacion/carpeta-documentos-juegos.png, https://d3lqdljps13i2n.cloudfront.net/recursos/107/3448538/imagen_1_1515083835.png
7.1. Rutas y nombres de archivos La estructura de directorios suele ser jerárquica, ramificada o en árbol, aunque en algún caso podría ser plana. En algunos sistemas de archivos los nombres de archivos son estructurados, con sintaxis especiales para extensiones de archivos y números de versión. En otros, los nombres de archivos son simplemente cadenas de texto y los metadatos de cada archivo son alojados separadamente En los sistemas de archivos jerárquicos, usualmente, se declara la ubicación precisa de un archivo con una cadena de texto llamada ruta. Una ruta es la forma de referenciar un archivo informático o directorio en un sistema de archivos de un sistema operativo determinado. Una ruta señala la localización
exacta de un archivo o directorio mediante una cadena de caracteres concreta. Ésta puede ser de diversas formas dependiendo del sistema operativo y del sistema de archivos en cuestión. En líneas generales se compondrá de los nombres de los directorios que conforman el camino hasta nuestro archivo o directorio a lo largo del árbol de directorios, y finalmente estará el nombre del archivo o directorio que se quiere referenciar. Estos nombres estarán separados por un carácter delimitador que usualmente será "\" en sistemas MS-DOS/Windows o "/" en sistemas UNIX/Linux.
Imagen: Sistema de Archivos rutas y nombres Fuente:https://www.proyectoautodidacta.com/wp-content/uploads/2008/07/MBS-post-06rutas_sistema_de_archivos-destacada.png
Ejemplo: /home/pedro/musica/cancion.ogg
138 “/” representa el directorio raíz donde está montado todo el sistema de archivos. “home/pedro/musica/” es la ruta del archivo. “canción.ogg” es el nombre del archivo.
7.2. Extensiones FAT, NTFS, ext2, ext3, ext4. Extensiones Hay diversos sistemas de archivos estándar para Windows, macOS, Linux, Unix y el resto de sistemas operativos. En los últimos años, con el desarrollo de las nuevas tecnologías, se han ido diferenciando cada vez más: por ejemplo, se han creado sistemas de archivos adecuados para los dispositivos de almacenamiento flash, cada vez más populares, entre los que se incluyen las memorias USB y las unidades SSD. Todos los sistemas de archivos comparten la característica de utilizar una estructura de árbol para organizar los archivos, que parte del directorio raíz. A partir de ahí, se ramifican el resto de carpetas o directorios y subcarpetas. En la actualidad, existen bastantes sistemas de archivos, aunque no todos están igual de extendidos. Los más habituales hasta la fecha son FAT16, FAT32, exFAT y NTFS para Windows y HFS+ y APFS para macOS/Mac OS X. Linux utiliza actualmente ext4 (sucesor de ext3 y ext2), entre otros.
Imagen: Extensiones de un Sistema de Archivos Fuente:https://www.defectodigital.com.mx/wp-content/uploads/2018/12/FAT32vsNTFSvsexFAT-4.jpg
FAT El sistema de archivos FAT se caracteriza por la tabla de asignación de archivos, que es realmente una tabla que reside en la parte superior del volumen. Para proteger el volumen, se mantienen dos copias del FAT en caso de que se dañe una. Además, las tablas FAT y el directorio raíz deben almacenarse en una ubicación fija para que los archivos de arranque del sistema se puedan encontrar correctamente. Un disco con formato FAT se asigna en clústeres, cuyo tamaño viene determinado por el tamaño del volumen. Cuando se crea un archivo, se crea una entrada en el directorio y se establece el primer número de clúster que contiene datos. Esta entrada de la tabla FAT indica que este es el último clúster del archivo o apunta al siguiente clúster. La actualización de la tabla FAT es muy importante y requiere mucho tiempo. Si la tabla FAT no se actualiza periódicamente, puede provocar la pérdida de datos. Lleva mucho tiempo porque los cabezales de lectura del disco deben volver a colocarse en la pista lógica cero de la unidad cada vez que se actualiza la tabla FAT. No hay ninguna organización en la estructura del directorio FAT y los archivos reciben la primera ubicación abierta en la unidad. Además, FAT solo admite atributos de archivo de solo lectura, oculto, sistema y archivo.
139
Imagen: Extensión FAT Fuente: https://www.defectodigital.com.mx/wp-content/uploads/2018/12/FAT32vsNTFSvsexFAT-1.jpg
NTFS NTFS son las siglas de New Technology File System, es decir, sistema de archivos de nueva tecnología. Se trata de un sistema de archivos muy extendido gracias a la popularidad de Microsoft y que sirve para organizar datos en discos duros y otros soportes de almacenamiento. Desde el lanzamiento de Windows XP en el año 2001, NTFS es el estándar obligatorio en los sistemas operativos Windows. En este artículo te contamos cómo funciona, qué ventajas tiene y cómo se diferencia de otros sistemas como, por ejemplo, FAT. El tamaño máximo de una partición en el sistema NTFS es de unos 2 terabytes. El sistema no presenta restricciones para archivos sueltos, de manera que, en teoría, sería posible guardar un solo archivo de casi 2 terabytes en un soporte de datos formateado con NTFS. El tamaño del clúster de NTFS ha sido ampliado notablemente en comparación con los sistemas de archivos clásicos como FAT32 y es de aproximadamente 16×10^18. En el sistema de archivos FAT32, en cambio, esta cifra se reduce a 4 294 967 296. Según el estándar NTFS, un nombre de archivo puede contener, como máximo, 255 caracteres.
Imagen: Extensión NTFS Fuente: https://www.kakasoft.com/wp-content/uploads/2021/09/image-20-768x387.png
Ext2(SECOND EXTENDED FILESYSTEM) El sistema de ficheros EXT2 se construye con la premisa de que los datos contenidos en los ficheros se guardan en Bloques de Datos. Estos bloques de datos son todos de la misma longitud y, si bien esa longitud puede variar entre diferentes sistemas de ficheros EXT2 el tamaño de los bloques de un sistema de ficheros EXT2 en particular se decide cuando se crea. El tamaño de cada fichero se redondea hasta un número entero de bloques. Si el tamaño de bloque es 1024 bytes, entonces un fichero de 1025 bytes ocupará dos bloques de 1024 bytes. No todos los bloques del sistema de ficheros contienen datos, algunos deben usarse para mantener la información que describe la estructura del sistema de ficheros. EXT2 define la topología del sistema de ficheros describiendo cada uno de ellos con una estructura de datos inodo. Un Inodo describe que bloques ocupan los datos de un fichero y también los permisos de acceso del fichero, las horas de modificación del fichero y el tipo del fichero. Cada fichero en el sistema EXT2 se describe por un único inodo y cada inodo tiene un único número que lo identifica. Los inodos del sistema de ficheros se almacenan juntos en Tablas de inodos.
140
Imagen: : Extensión Ext2 Fuente: https://www.ecured.cu/images/2/21/SistemaExt2.jpg
Ext3(THIRD EXTENDED FILESYSTEM) Básicamente, el sistema de archivos ext3 es una versión mejorada de ext2; ext3 es un sistema de archivos con registro por diario journaling. Es el sistema de archivo más usado en distribuciones GNU Linux, aunque en la actualidad está siendo reemplazado por ext4. La principal diferencia con ext2 es el registro por diario. Un sistema de archivos ext3 puede ser montado y usado como un sistema de archivos ext2. Otra diferencia importante es que ext3 utiliza un árbol binario balanceado e incorpora el asignador de bloques de disco Orlov. El sistema de archivos ext3 proporciona una integridad superior de los datos si se produce un cierre no limpio del sistema. El sistema de archivos ext3 permite seleccionar el tipo y el nivel de protección de los datos. Por defecto, los volúmenes ext3 son configurados para mantener un nivel de consistencia de los datos elevado en relación con el estado del sistema de archivos. El sistema de archivos ext3, aparte de permitir escribir datos más de una vez, en la mayoría de los casos tiene un rendimiento superior al que proporciona ext2 porque los journals de ext3 optimizan el movimiento de los cabezales de los discos duros. Se pueden seleccionar tres modos de journaling para optimizar la velocidad, pero, como contrapartida, la integridad de los datos se verá afectada.
Imagen: Extensión Ext3 Fuente: https://dwaves.de/wp-content/uploads/2017/12/ext3_logo.png
EXT4.(fourth extended filesystem) no es una extensión de archivo, sino más bien la abreviatura de un sistema de archivos de diario para el sistema operativo Linux para computadoras de escritorio, servidores y otras plataformas. Aparece con frecuencia en nuestras consultas de búsqueda. Es capaz de trabajar con volúmenes de gran tamaño, hasta 1 exbibyte y ficheros de tamaño de hasta 16 TB. Es parcialmente compatible hacia atrás con ext3 ya que puede ser montado como una partición ext3 con la excepción de que si la partición ext4 usa extents. Permite la reserva de espacio en disco para un fichero. ext4 tendrá timestamps medidos en nanosegundos.Adicionalmente se han añadido 2 bits del timestamp extendido a los bits más significativos del campo de segundos de los timestamps para retrasar casi 500 años el problema del año 2038.
141
Capítulo II 1. Teoría de base de datos. – Por Daniel Puluc ¿Qué es una base de datos? Conjunto de datos estructurados en tablas, relacionadas entre sí, que tienen como característica fundamental facilitar las consultas para realizar reportes, que permitan tomar decisiones con menor grado de incertidumbre. Las bases de datos están formadas por: tablas, informes, formularios y consultas. Hay varios tipos de bases de datos, como bases de datos analíticas, almacenes de datos y bases de datos distribuidas. Cada columna
142 corresponde a un atributo, mientras que cada fila representa un registro. Son muy importantes en la vida diaria, en empresas, instituciones públicas y educativas, etc. Se desglosa de la siguiente manera: ● Base de datos: Lugar donde almacenamos nuestras tablas que contienen campos, registros, etc. Es como un libro enorme en donde almacenamos información de cualquier tipo. ● Tabla: Permiten almacenar nuestros datos, imaginemos que una tabla es como nuestro cuaderno, en donde almacenamos información. ● Campos: Serán las características de lo que el usuario esté solicitando, imaginemos que cada uno de nosotros tiene características que nos sirven para identificarnos, como el color de tez, medida, edad, etc. ● Registros: Serán los datos que el usuario ingrese, básicamente los registros nos servirán para alimentar nuestra base de datos, por ejemplo, podemos decir que nuestro color de tez es, moreno claro, podemos medir 1 metro y medio, contamos con una edad de 18, 20, etc.
Imagen: ejemplo de tabla de una base de datos Fuente: https://269897850919953718.weebly.com/uploads/2/4/5/7/24574958/1992433.jpg?624
1.1. DBMS (Database Management System). Son las siglas en inglés para referirnos a los Sistemas de Gestión de Bases de Datos(SGBD). Es un software que controla la organización, almacenamiento, recuperación, seguridad e integridad de los datos en una base de datos. Acepta solicitudes de la aplicación y ordena al sistema operativo transferir los datos apropiados. Existen diferentes tipos de SGBD y algunos de ellos están diseñados para la correcta gestión de bases de datos configuradas para fines específicos. Proporcionan asignación de diferentes niveles de privilegios para diferentes usuarios, lo que hace posible que sea controlado por un solo administrador o asignado a varias personas diferentes.
Imagen: Software de gestión de base de datos Fuente: http://1.bp.blogspot.com/-veoijwaVEhU/US2UtsJeWBI/AAAAAAAALM8/kmF_Q5jiTWQ/s1600/dbms+new.gif
1.2. Tipos de DBMS
143
Jerárquico Emplea la relación “padre-hijo” de almacenamiento de datos. Este tipo de DBMS rarab vez se utilizan en la actualidad. Su estructura es como un árbol de nodos que representan registros y ramas que representan campos. Red de DBMS Un tipo de DBMS que admite muchas relaciones. Genera estructuras de datos bastante complejas, RDM server es un ejemplo. DBMS Relacional Este tipo define las relaciones de bases de datos en forma de tablas, se conoce también como relaciones. No admite muchas relaciones como la red de DBMS. Es la más popular y utilizada, como ejemplo podemos mencionar a MySQL. Relación de objetos orientada a DBMS. Admite el almacenamiento de nuevos tipos de datos. Como lo dice su nombre, los almacena en forma de objetos. Los objetos tienen atributos y métodos que definen qué hacer con los datos. Tenemos a PostgreSQL como un ejemplo.
1.3. Diferencia entre BD y DBMS ¿Cuál es la diferencia entre un BD y un DBMS? La base de datos, es un sistema diseñado para almacenar, recuperar y organizar fácilmente amplias cantidades de datos. Contiene un paquete de datos organizados para uno o más usuarios. Es el lugar en el cual almacenamos los registros, campos y las celdas de datos. Por otro lado, un DBMS es una colección de programas de computadora que se dedica como se menciona anteriormente, a la organización, almacenamiento y a la recuperación de todas las bases de datos que están instaladas en un sistema. Por nombrar algunos ejemplos para su mayor comprensión, entre los sistemas de gestión de bases de datos más famosos que se conocen tenemos a Oracle, DB2 y Microsoft Access. Al igual que se necesita un sistema operativo para acceder y modificar archivos en el sistema, se necesita de un DBMS para manipular las bases de datos almacenadas en el sistema de base de datos.
1.4. DBMS Access Es una herramienta para administrar bases de datos relacionales. Permite almacenar datos, buscar datos, analizar e imprimir información, manejar datos y compartir datos. Una base de datos Access puede contener seis tipos diferentes de objetos. Algunos se utilizarán siempre (como las tablas), otros rara vez (como los módulos). Es una de las aplicaciones que vienen incluidas en la suite ofimática Microsoft Office en su versión profesional. ¿Qué herramientas nos ofrece? ● Tablas: en ellas almacenamos los datos de forma estructurada.
144 ● Consultas: De las tablas, podemos extraer información filtrada según nuestras necesidades, o actualizar algunos datos concretos, o eliminar ciertos registros que cumplan una determinada condición. Para todo esto y mucho más se usan las consultas. ● Formularios: Usamos los formularios para trabajar con la base de datos, estos están vinculados a las tablas y nos ofrecen una forma más práctica y bonita, según el gusto y el empeño que le ponga el usuario, para trabajar con nuestra información. ● Informes: que podemos configurar a nuestra necesidad específica, con los datos,, colores, gráficas y posición de los mismos según los necesitemos. La diferencia más notable o importante que encontramos con otros gestores, es que es bastante sencillo lograr comprender este software, puede ser usado por pequeñas empresas o usuarios casuales, sin embargo ahí radica también su desventaja, porque no es recomendado para sistemas masivos más grandes de datos, para los que requerimos un sistema mucho más robusto de gestión de bases de datos.
Imagen: Funcionalidades de de access Fuente:https://descubrecomohacerlo.com/wp-content/uploads/2021/04/datos-access_3102.jpg
1.5. Modelo Entidad-Relación Es un tipo de diagrama de flujo, que ilustra cómo las “entidades”, se relacionan entre sí dentro de un sistema. Diagramas que se usan a menudo para depurar o diseñar bases de datos de tipo relacional, en campos como la ingeniería de software. Los diagramas ER se componen de entidades, relaciones y atributos. También representan cardinalidad, que define las relaciones en términos de números. Las diferentes entidades (objetos de la base de datos) tienen atributos que son las propiedades y características, las entidades se relacionan entre ellas. Un atributo o un conjunto de atributos de una entidad puede ser una clave primaria, que es la propiedad que identifica como único a un registro en una tabla.
Imagen:Ejemplo de modelo entidad relación. Fuente:https://www.e-dea.co/hsfs/hubfs/2021/Lucidchart/Diagrama%20ER.png?width=1210&name=Diagrama%20ER.png
1.6. Reglas
145 Cardinalidad Como se sabe, para que exista una entidad-relación, debe haber dos o más entidades, entonces la cardinalidad indica cuántas entidades pueden estar relacionadas con una entidad dada. Tenemos tipos de cardinalidades: ● Uno a uno(1:1): un registro de la entidad A, se relaciona a uno de la entidad B y viceversa. ● Uno a varios(1:N): un registro de la entidad A se relaciona a muchos de B, pero B solamente a 1 de A. ● Varios a uno(N:1): un registro de la entidad A se relaciona a uno de B, pero B se relaciona a muchos de A. ● Varios a Varios(N:N): un registro de la entidad A se relaciona a muchos de B y viceversa. Participaciones Tenemos una participación total cuando cada entidad de elementos se relaciona con al menos, un elemento de todo nuestro conjunto de relaciones. Tenemos también la participación parcial, cuando al menos uno, no tiene ninguna relación.
1.7. Relaciones Por ejemplo, tenemos una entidad “trabajadores”, y luego tenemos la entidad “puestos”. El atributo será la clave primaria en cada una de las tablas, por ejemplo, tenemos que, para trabajadores la clave primaria será el “código de trabajador”, para la tabla puestos, será el código del puesto, por ejemplo, mantenimiento tiene el código “man001”. Definido eso pasamos a la relación, en la entidad de “trabajadores” tenemos un campo llamado “puesto”, teniendo en cuenta esto, entonces el código de “puestos”, irá relacionado al campo “puesto” en trabajadores. Tenemos la siguiente cardinalidad: un trabajador puede estar en un puesto, y un puesto puede estar en muchos trabajadores, porque un área de la empresa puede tener varios o muchos trabajadores, ya hablando en el entorno real.
Imagen: Representación de una relación entre entidades. Fuente: Daniel Estuardo Puluc Patzán
1.8. Llave primaria Es un campo único, que no se puede repetir y sirve para identificar los registros de una tabla como distintos. Además, como mencionamos anteriormente en el tema de los modelos entidad-relación, son útiles para realizar las relaciones entre entidades o tablas que tengamos dentro de nuestra base de datos. De hecho, esto se considera un requisito para que sea una tabla relacional, aunque únicamente debe llevar una clave primaria cada una
146 de nuestras tablas, claro que sí es requerida, porque también hay tablas, que sirven como uniones entre otras tablas. Esta llave es almacenada en un índice que asegura que cada registro identificado con esta llave realmente es único. Es importante para el diseño de una base de datos, ya que es el elemento clave que nos permite unirnos a otra tabla y lo que definimos como base de datos relacional.
Imagen: referencia hacia lo que llamamos una llave primaria. Fuente: https://userscontent2.emaze.com/images/c47063e6-c04f-4b1e-8d7b2a47c3a38740/37b7d8ef862b2e2c47c1cafc261f6e74.png
1.9. Llave foránea Definimos que la llave foránea es ese campo que hace referencia o hacen referencia, ya que puede ser más de uno, a una llave primaria de otra tabla, que está relacionada con un campo de la entidad en la que ya la llamamos llave foránea. Los datos en los campos de ambas deben coincidir. Podemos pensar a una llave foránea como una embajada, por ejemplo, el país de Estados Unidos, tiene una embajada en nuestro país Guatemala. La tabla “Estados Unidos”, por medio del campo “gobierno”, tiene una relación con la tabla “Guatemala”, en la que tiene una “embajada”, que es una relación directa de su clave primaria “gobierno”, hacia un campo “embajada”, un ejemplo para comprender con una situación de la vida real, lo que representa una llave foránea en una relación.
Imagen: referencia hacia lo que llamamos una llave foránea. Fuente: https://pngimg.com/uploads/key/key_PNG1173.png
1.10. Llave Candidata Se trata de un atributo, que se utiliza para identificar de forma exclusiva una entrada de fila de base de datos dentro de una tabla. Una clave candidata es un subconjunto de algo llamado “superllave” que es un tipo de identificador para una entidad en una tabla. El número mínimo de columnas necesarias para hacer que cada fila sea única es la parte de la “superllave” que podría contar como una llave candidata. Las llaves candidatas funcionan en conjunto con las “superllaves”, funcionan para evitar redundancias entre las filas, que cada fila tenga un elemento que la haga única. Por ejemplo, existen de alguna manera existen muchas personas en el mundo, en varios lugares podemos encontrar personas con nuestro mismo nombre y apellidos o similares, es importante tener algo que nos diferencie, un atributo, por ejemplo, puede haber otro Daniel, pero por ejemplo uno puede tener el pelo rizado y el otro el pelo lizo, un atributo que se encargue que el pelo no redunde en ambos personajes, sino que sean íntegramente distintos. Nos hace más fácil encontrar ciertos datos.
147
2. Estructura en un sistema de base de datos. – Por Fernando Raxón. La estructura de una base de datos hace referencia a los tipos de datos, los vínculos o relaciones y las restricciones que deben cumplir esos datos (integridad de datos y redundancia de datos) La estructura de una base de datos es diseñada o descrita empleando algún tipo de modelo de datos. También se puede emplear un lenguaje coloquial para describir la estructura de la base de datos, para luego pasarlo a un modelo de datos formal. Un ejemplo a modo de descripción de la estructura de una base de datos puede ser: ALUMNO: número de alumno (entero de 6 números), nombre (cadena de 30 caracteres), apellido (cadena de 30 caracteres), año de nacimiento (entero de 4 números), especialidad (entero de 3 números) ESPECIALIDAD: número de especialidad (entero de 3 números), nombre de especialidad (cadena de 30 caracteres) Cada bibliografía tendrá su forma de describir la estructura de la base de datos, algunas empleando notación en inglés, otras en español. Algunas emplearán ayudas visuales para marcar claves foráneas. Cuando hablamos de programación, la estructura de datos está representada por una forma determinada que tenemos de organizar los datos de un equipo informático para que podamos utilizarlos de la manera más efectiva posible. Dependiendo del tipo de aplicación o recurso que vayamos a usar requerimos una estructura de datos independiente y distinta a las demás, dado que cada una encaja en el contexto de forma determinada y con una serie de objetivos. Con estas estructuras tenemos la posibilidad de administrar todo tipo de datos sin ningún tipo de obstáculo, algo que en la actualidad se usa en la red para poder llevar a cabo, por ejemplo, los sistemas de indexado de contenidos. Y también juegan un papel clave en la creación de los mejores algoritmos, así como en su uso con lenguajes de programación que se benefician de ellas.
2.1. DDL Un lenguaje de definición de datos (Data Definition Language, DDL por sus siglas en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos, así como de los procedimientos o funciones que permitan consultarlos. La definición de la estructura de la base de datos incluye tanto la creación inicial de los diferentes objetos que formarán la base de datos, como el mantenimiento de esa estructura. Las sentencias del DDL utilizan unos verbos que se repiten para los distintos objetos. Por ejemplo, para crear un objeto nuevo el verbo será CREATE y a continuación el tipo de objeto a crear. CREATE DATABASE es la sentencia para crear una base de datos, CREATE TABLE nos permite crear una nueva tabla, CREATE INDEX crea un nuevo índice. Para eliminar un objeto utilizaremos el verbo DROP (DROP TABLE, DROP
148 INDEX…) y para modificar algo de la definición de un objeto ya creado utilizamos el verbo ALTER (ALTER TABLE, ALTER INDEX…). Las principales funcionalidades de SQL como lenguaje de definición (DDL) son la creación, modificación y borrado de las tablas que componen la base de datos, así como de los índices, vistas, sinónimos, permisos, etc. que pudieran definirse sobre las mismas. Este documento introduce los comandos para el trabajo básico con tablas.
o o o o
CREATE TABLE: Crear una tabla SHOW TABLES: mostrar tablas DROP TABLE<nombre de tabla>: Borrar tabla DESCRIBE <nombre de tabla> Mostrar estructura de una tabla
Imagen: DDL Fuente: http://4.bp.blogspot.com/-HlTUkqRQdas/VUbd6MVm2zI/AAAAAAAAAck/u2cOSLlcbo/s1600/DDLSentencias.png
2.2. DML Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un idioma proporcionado por los sistemas gestores de bases de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o modificación de los datos contenidos en las Bases de Datos del Sistema Gestor de Bases de Datos. El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL y otras. Elementos del lenguaje de manipulación de datos: Select, Insert, Delete y Update Clasificación de los DML Se clasifican en dos grandes grupos: ● Lenguajes de consulta procedimentales: En este tipo de lenguaje el usuario da instrucciones al sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final. ● Lenguajes no procedimentales: el usuario describe la información deseada sin un procedimiento específico para obtener esa información.
149
Imagen: DML Fuente: http://1.bp.blogspot.com/Fv8mseWWD40/VUVHCTCs0aI/AAAAAAAAAbo/bQBdgS9gdcQ/s1600/DMLSentencias.png
3. Seguridad de la información. – Por Fernando Raxón. 3.1. Conceptos La seguridad de la información es el conjunto de medidas preventivas y reactivas de las organizaciones y sistemas tecnológicos que permiten resguardar y proteger la información buscando mantener la confidencialidad, la disponibilidad e integridad de datos. El concepto de seguridad de la información no debe ser confundido con el de seguridad informática, ya que este último sólo se encarga de la seguridad en el medio informático, pero la información puede encontrarse en diferentes medios o formas, y no solo en medios informáticos. Para el ser humano como individuo, la seguridad de la información tiene un efecto significativo respecto a su privacidad, la que puede cobrar distintas dimensiones dependiendo de la cultura e idiosincrasia de la sociedad donde se desenvuelve. El campo de la seguridad de la información ha crecido y evolucionado considerablemente a partir de la Segunda Guerra Mundial, convirtiéndose en una carrera acreditada a nivel mundial. Este campo ofrece muchas áreas de especialización, incluidos la auditoría de sistemas de información, planificación de la continuidad del negocio, ciencia forense digital y administración de sistemas de gestión de seguridad, entre otros. Hoy en día la rápida evolución del entorno técnico requiere que las organizaciones adopten un conjunto mínimo de controles de seguridad para proteger su información y sistemas de información. El propósito del plan de seguridad del sistema es proporcionar una visión general de los requisitos de seguridad del sistema y se describen los controles en el lugar o los previstos para cumplir esos requisitos. El plan de seguridad del sistema también delinea las responsabilidades y el comportamiento esperado de todos los individuos que acceden al sistema. Debe reflejar las aportaciones de distintos gestores con responsabilidades sobre el sistema, incluidos los propietarios de la información, el propietario de la red, y el alto funcionario de la agencia de información de seguridad.
150
Imagen: Seguridad de la Información Fuente: https://media.istockphoto.com/vectors/information-security-concept-vectorid512691084?s=612x612
3.2 Tipos de amenazas Dentro de lo que es la seguridad de tu computador hay que considerar las diversas amenazas que pueden afectar al funcionamiento de tu computador como lo son los virus, los spywares, los caballos de Troya (o más bien conocidos como troyanos), los gusanos (o Worms) y los hackers. Dentro de esta unidad se tratará en profundidad qué es lo que son cada uno de estos entes maliciosos, el daño que pueden llegar a ser capaces de causar y la forma más eficaz de combatirlos y mantener tu computador seguro. También se mencionan algunos softwares que pueden ser de utilidad en lo que es mantener tu computador limpio y libre de amenazas.
3.3 Virus Informático Un virus informático es un programa que se copia automáticamente y que tiene por objeto alterar el normal funcionamiento de la computadora, sin el permiso o el conocimiento del usuario. Los virus son programas que se replican y ejecutan por sí mismos. Los virus, habitualmente, reemplazan archivos ejecutables por otros infectados con el código de este. Los virus pueden destruir, de manera intencionada, los datos almacenados en un ordenador, aunque también existen otros más «benignos», que solo se caracterizan por ser molestos. Los virus informáticos tienen, básicamente, la función de propagarse, replicándose, pero algunos contienen además una carga dañina (payload)[efectos nocivos y a veces irreparables que puede causar un virus] con distintos objetivos, desde una simple broma hasta realizar daños importantes en los sistemas, o bloquear las redes informáticas generando tráfico inútil. Aunque no tenemos solamente virus, vamos a enumerar otras amenazas que podemos encontrar: Gusanos Pueden, por ejemplo, copiarse y enviarse a cada uno de tus contactos mediante tu servicio de correo electrónico o mensajería instantánea, y repetir la operación con la
151 libreta de direcciones de cada uno de tus contactos. Su capacidad de propagación crece de forma exponencial.
Imagen: Gusanos Fuente: https://cutewallpaper.org/24/computer-virus-clipart/2718926031.jpg
Troyanos Un Caballo de Troya o troyano informático habitualmente entra en tu equipo o tu dispositivo aprovechando la descarga de software legítimo. (Ojo a la descarga de programas, cuidado con la palabra gratis en este contexto, casi siempre lleva algo escondido).
Imagen: Troyano Fuente: https://media.pasionmovil.com/2012/08/Zeus-trojan-blackberry.jpeg
Adware El adware es un tipo de software aparentemente inofensivo si se compara con alguno de los anteriores tipos de malware, pero que puede bajar drásticamente el rendimiento de los trabajadores que necesitan navegar por Internet para realizar sus tareas.
152
Imagen: Adware Fuente: https://4.bp.blogspot.com/SXlHmRe5HtM/WAnTDDtXmTI/AAAAAAAAB7g/zg0dZQpWXuUNKZAgfMavXCYizJtZ04YVQCEw/s320/a dware%2B1.png
Rootkit Es un software que permite a los ciber intrusos acceder a equipos sin ser detectados para robar información sensible. Los rootkits permiten acceso privilegiado a un usuario (el hacker), que se conecta de forma remota, alterando el sistema operativo para ocultar la maniobra.
Imagen: RootKit Fuente: https://2.bp.blogspot.com/-1bd5DkVcfw/WzzkRFWVlYI/AAAAAAAAEPM/YCXt2_mGOOMRM_hW9XCpLhLFZCuAncpEQCEwYBhgL/s160 0/rootkit.png
Keylogger Aunque también existen versiones que funcionan a través de dispositivos o complementos para hardware, hablamos básicamente de programas que pueden llegar a un equipo a través de virus, troyanos, etc., y que se dedican a memorizar las pulsaciones de teclado que realiza el usuario.
153 Imagen: Keylogger Fuente: https://imag.malavida.com/mvimgbig/download-fs/elite-keylogger-10572-2.jpg
Man in The Middle Es un tipo de ataque en que el hacker intercepta tráfico que viaja de un equipo emisor a otro receptor.
Imagen: Ataque Man in The Middle Fuente: https://3.bp.blogspot.com/2ZTKA8BI6vY/W_AXDbGzAKI/AAAAAAAAZJA/4qdE8QhgVvkhOFl9Fj9xt84g5XtbcIPCwCLcBGAs/s1600 /man-in-the-middle-attack.png
Ataques DOS Un ordenador lanza peticiones al servidor en el que se aloja el sitio web hasta que lo satura y empieza a denegar el acceso.
Imagen: Ataque Dos Fuente: https://internet10.com.mx/images/ataque-dos.jpg
3.3.1 Cómo proteger los equipos de los virus Tener un antivirus y tenerlo activado Resulta indispensable contar con un buen antivirus y antispyware que te ayude a proteger tu dispositivo frente a amenazas como troyanos, programas espía. Actualizar nuestro software periódicamente
154 La desactualización de este supone mayor vulnerabilidad, ya que normalmente las últimas versiones comportan mayor protección y la solución de fallos de versiones anteriores. Utilizar contraseñas Seguras A mayor dificultad de la contraseña, mayor seguridad. En este sentido, es importante que utilicemos contraseñas seguras en aquellas aplicaciones que así nos lo requieran. Tener cuidado con los archivos y los enlaces en los correos electrónicos Es más, si un correo nos parece sospechoso, aunque provenga de alguien conocido, siempre es aconsejable cerciorarse de que es seguro , consultando.
3.4 Medidas de seguridad 3.4.1. Acciones preventivas ● Realizar copias de seguridad fiables de toda la información relevante. ● Proteger los navegadores. Debemos de activar, revisar y configurar las aplicaciones con las que accedemos a Internet. ● Limitar y registrar el uso de aplicaciones que permiten el acceso remoto. ● Conectarse a Internet mediante puntos de acceso seguros . ● Cuidar las contraseñas.
3.4.2. Acciones detectivas ● Analizar con el antivirus todos los puntos del equipo. ● Verificar las cookies y los certificados de seguridad de los sitios por los que navegamos. ● En caso de un sitio web, probar el rendimiento, por el tema de las “peticiones”. ● Ejecutar una aplicación o programa, con el antivirus ejecutándose. ● Verificar el tiempo que tarda en encender un equipo, y compararlo con tiempos anteriores de carga.
155
3.4.3. Acciones de restauración ● Si ya tuvimos un ataque, podemos cargar nuestra copia de seguridad previamente creada. ● Formatear nuestro disco de almacenamiento. ● Buscar archivos cifrados, ahora existen muchos software que nos ayudan en este sentido. ● Desinstalar cualquier tipo de aplicación extraña, para volver al estado original el equipo.
Capítulo III 1. Traducción y generación de código. – Por Alexsandro Camel y Kevin Cárcamo. 1.1. Compiladores Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación, definido “código fuente”, a otro lenguaje de alto (COBOL, PASCAL, BASIC, C, etc.), medio o más bajo nivel (código intermedio o código máquina) como puede ser C/C++.
156 Sin estos Compiladores no existiría ninguna aplicación informática ya que estos son la base de la programación de cualquier plataforma, Un compilador puede tener la capacidad de código máquina en varias plataformas Tipos de compiladores. ● Compiladores Cruzados: generan código para una plataforma distinta a aquella en la que están funcionando los programas. ● Compiladores Optimizados: realizan cambios en el código para mejorar su eficacia, pero manteniendo la funcionalidad del programa original. ● Compiladores de una pasada: generan el código máquina a partir de una única lectura del código fuente. ● Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina. ● Compiladores JIT (just in time): Forman parte de un intérprete y compilan partes del código según se necesitan. Partes de un compilador. 1. Front-end o Analizador: se encarga de hacer el análisis del código fuente a compilar esta lo valida y después interactúa con el usuario y esta es más común que sea independientemente de la plataforma en el que se trabaja 2. Back-end o generador: luego de pasar por el analizador a partir de los resultados del análisis, se encarga de generar el código para la máquina según la plataforma específica.
1.2. Fases del compilador 1. Análisis Léxico: La primera fase de escáner funciona como un texto escáner. Esta fase busca en el código fuente como una secuencia de caracteres y la convierte en un lexema resultante. Analizador Léxico 2. Sintaxis Análisis: Toma el token de análisis léxico como entrada y genera un árbol para analizar en esta fase, el analizador comprueba si la expresión de los tokens es sintácticamente correcta. 3. Análisis Semántico: Análisis semántico comprueba si el análisis árbol construido sigue las reglas del idioma, además, el analizador semántico realiza un seguimiento de los identificadores, sus tipos y expresiones; si los identificadores se declaran antes de su uso, o no, etc. 4. Generación de código intermedio: Tras análisis semántico el compilador genera un código intermedio del código fuente para el equipo de destino. Este código intermedio debe ser generado de tal manera que sea más fácil de traducir en la máquina de destino.
157 5. Optimización de código: La siguiente fase de optimización de código es el código intermedio. La optimización puede ser asumida como algo que elimina código innecesario, y organiza la secuencia de declaraciones con el fin de acelerar la ejecución del programa sin desperdicio de recursos. 6. Generación de código: En esta fase, el generador de código optimiza la representación del código intermedio y la asigna a la máquina de destino. Secuencia de instrucciones de código máquina realiza la tarea como el código intermedio. 7. Tabla de símbolos: Es una estructura de datos mantendrá en todas las fases de un compilador. Todos los nombres de identificador junto con sus tipos se almacenan aquí. La tabla de símbolos hace que sea más fácil para que el compilador pueda buscar con rapidez el registro de código y recuperarla.
1.3. Intérpretes Un intérprete es un programa informático que procesa el código fuente de un proyecto de software durante su tiempo de ejecución, es decir, mientras el software se está ejecutando, y actúa como una interfaz entre ese proyecto y el procesador. Un intérprete siempre procesa el código línea por línea, de modo que lee, analiza y prepara cada secuencia de forma consecutiva para el procesador. El funcionamiento: se caracteriza por traducir y ejecutar, de una en una,las instrucciones del código fuente de un programa, pero sin generar como salida código objeto. El proceso que realiza un intérprete es el siguiente: lee la primera instrucción del código fuente, la traduce a código objeto y la ejecuta; a continuación, hace lo mismo con la segunda instrucción; y así sucesivamente, hasta llegar a la última instrucción del programa, siempre y cuando, no se produzca ningún error que detenga el proceso. Características de un intérprete: Son más fáciles de aprender que los lenguajes compilados. Son sencillos de implementar y alta flexibilidad en depurar. Facilita la búsqueda de errores. El programa se puede ejecutar de inmediato, sin esperar a ser compilado. Puede ser interrumpido con facilidad. Puede ser rápidamente modificado y ejecutado nuevamente. Suelen ser más lentos. A la hora de construir un intérprete es conveniente utilizar una Representación Interna (RI) del lenguaje fuente a analizar.
1.4. Fases de un intérprete Estos pasos se corresponden con las tres fases en las que frecuentemente se divide el análisis: 1. 2. 3.
Análisis léxico: divide la entrada en componentes léxicos. Análisis sintáctico: encuentra las estructuras presentes en la entrada. Análisis Semántico: comprueba que se cumplen las restricciones semánticas del lenguaje.
Mientras que el objetivo de los compiladores es obtener una traducción del programa fuente a otro lenguaje, los intérpretes tienen como objeto la obtención de los resultados del programa. Para ello deben realizar dos tareas: analizar su entrada y llevar a cabo las acciones especificadas por ella. La parte de análisis puede realizarse de manera idéntica a como se lleva a cabo en los compiladores. Es la parte de síntesis la que se
158 diferencia sustancialmente. En el caso de la interpretación, se parte del árbol de sintaxis abstracta y se recorre, junto con los datos de entrada, para obtener los resultados. En el caso del árbol. El recorrido consistiría en: Analizar el nodo asignado. Visitar su hijo derecho (la suma) para obtener el valor que hay que asignar:
o Visitar el hijo izquierdo de la suma, recuperar el valor actual de valor. o Visitar el hijo derecho de la suma, recuperar el valor actual de inc. o Hacer la suma. Guardar el resultado de la suma en valor. Actualmente es habitual encontrar híbridos entre la compilación y la interpretación que consisten en compilar a un lenguaje intermedio para una máquina virtual y después interpretar este lenguaje. Esta aproximación es la que se sigue, por ejemplo, en Java, Python o la plataforma .NET.
Imagen: Fases de un intérprete. Fuente: https://2.bp.blogspot.com/-A3QiGjQ9keI/TzAKoZteYI/AAAAAAAAAHI/KoEUfXmcI84/s400/compilador.png
2. Ciencias auxiliares de la informática. – Por Yasmin Carrillo y José Culajay. Es un conjunto de disciplinas que se ocupan de los fundamentos que sustentan computación como los lenguajes de programación y los propios fundamentos matemáticos y lógicos de esta rama de conocimiento.
2.1. Inteligencia artificial Se relaciona un fenómeno natural con una analogía artificial a través de programas de computador. Puede ser tomada como una ciencia que se enfoca hace posible que las máquinas aprendan de la experiencia, se ajusten a nuevas aportaciones y realicen tareas como seres humanos. Es una de las características de la inteligencia artificial más sobresalientes. ¿El motivo? Pues, mediante estos sistemas se imita la forma en que la mente humana piensa y solventa problemas. De modo que se hacen inferencias, se interpreta el entorno y se toman decisiones. Es posible que no todo pueda ser idéntico; sin
159 embargo, los desarrolladores y científicos trabajan arduamente para alcanzar plenamente esta particularidad.
Imagen:inteligencia artificial. Fuente: https://fractaliasystems.com/wp-content/uploads/2020/05/shutterstock_1071703310-scaled.jpg
2.2. Robótica Es la ciencia de la investigación, estudio y tecnología de los robots. Se ocupa del diseño, manufactura y aplicaciones de los robots. La robótica combina diversas disciplinas como el álgebra, la mecánica, la electrónica, la informática, la inteligencia artificial y la ingeniería de control, con el objetivo de diseñar máquinas robotizadas que sean capaces de realizar tareas automatizadas o de simular el comportamiento humano o animal, en función de la capacidad de su software.
Imagen: robótica. Fuente: https://www.eltiempo.com/files/article_main/uploads/2019/05/16/5cddd72d0f2e2.jpeg
3. Licenciamiento de software. – Por Yasmin Carrillo y José Culajay 3.1. Concepto Una licencia de software es un contrato entre el autor titular de los derechos de explotación y distribución y el comprador de dicha licencia, para utilizar la licencia de software cumpliendo una serie de términos y condiciones establecidas por el fabricante. Una licencia de software no es más que el derecho de hacer uso de un programa.
3.2. Tipo de licencia 3.2.1. Privada Distribuido normalmente en formato binario, sin acceso al código fuente, en el cual el autor no transmite ninguno de los derechos, sino que establece las condiciones en que el software puede ser utilizado, limitando normalmente los derechos de ejecución, copia, modificación, cesión o redistribución y especifíca que el propietario, sea bien aquél que lo ha desarrollado o bien quien lo distribuye, sólo vende derechos restringidos de uso del mismo, con lo que el usuario no ‘adquiere’ sino que más bien ‘alquila’; es decir, el producto pertenece
160 al propietario, desarrollador o proveedor, que concede al usuario el ‘privilegio’ de utilizarlo. Características: ● Este software no te pertenece no puedes hacerle ningún tipo de modificación al código fuente. ●
No puedes distribuirlo sin el permiso del propietario.
●
El usuario debe realizar cursos para el manejo del sistema como tal debido a su alta capacidad de uso.
●
Este posee accesos para que el usuario implemente otro tipo de sistema en él.
●
Cualquier ayuda en cuanto a los antivirus.
Imagen: Licencia Privada. Fuente: https://www.google.com/search?q=licencias+software+privada&source=lnms&tbm=isc h&sa=X&ved=2ahUKEwjmmqP40_P1AhXBSDABHU6yAdYQ_AUoAXoECAEQAw&bi w=1920&bih=975&dpr=1#imgrc=Ey2eJQj9V0XTsM
3.2.2. Copyleft La Fundación Copyleft define estas licencias como aquellas que, permitiendo un mayor control de los creadores sobre sus obras, investigaciones y proyectos y una remuneración compensatoria más razonable por su trabajo, también permiten a los usuarios finales un mejor acceso y disfrute de los bienes bajo este tipo de licencias no restrictivas. Características: ● Libertad para elegir qué tipo de licencia se adapta mejor a tus objetivos. ● Control absoluto sobre la obra. ● Independencia sobre cualquier sociedad gestora sobre la que no tienes ● ningún tipo de control. ● Cobertura legal como si fuera una Licencia Copyright.
161
Imagen: Licencia Privada. Fuente: https://commons.wikimedia.org/wiki/File:Copyleft.svg
3.2.3. GPL Es una licencia de derechos de autor ampliamente usada en el mundo del software libre y código abierto, lo que hace es permitir que los usuarios finales (personas, organizaciones, etc.) tengan libertad de usar, estudiar, compartir (copiar) y modificar el software. Su objetivo es doble: recalcar que el software cubierto por esta licencia es libre y, por otro lado, protegerlo mediante una práctica conocida como copyleft de intentos de apropiación que restrinjan esas libertades a nuevos usuarios cada vez que la obra (software, plugin, template) es distribuida, modificada o mejorada.
Características: ● Permite ejecutar programas con total libertad. ● Otorga capacidad de modificar el código fuente del programa para mejorar su desempeño o adaptarlo a una condición específica. ● Ofrece libertad de distribución. ● Permite obtener el código fuente original del software. ● Ofrece la posibilidad de revender la aplicación. ● Bajo costo o incluso adquisición gratuita del software.
Imagen: Licencia GPL. Fuente: https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/GPLv3_Logo.svg/375px-GPLv3_Logo.svg.png
162
3.2.4. Freeware Es un programa informático cuya distribución es gratuita, por lo cual el usuario no tiene que pagar para instalarlo y utilizarlo. Sin embargo, a diferencia de lo que ocurre con el software libre, los usuarios no están habilitados a modificar su código. Por eso es importante distinguir entre el software gratuito o freeware y el software libre. Mientras que el primero tiene como principal característica la gratuidad de distribución, el segundo presenta como propiedad fundamental la autorización a alterar su código de programación original. Características: ● ● ● ● ● ●
Disponible a un coste mínimo. Proporciona total libertad. Sin actualizaciones impuestas. No espiar a los usuarios. Mayor seguridad. Sin estándares de bloqueo.
Imagen: Licencia Freeware Fuente: https://siaguanta.com/wp-content/uploads/2020/01/Freeware-1.png
3.2.5. Shareware Shareware es un software que está disponible sin coste y está destinado a ser compartido con otros para promover el programa, pero a diferencia del freeware, está limitado de una forma u otra. El software compartido es gratuito, pero a menudo está severamente limitado de una o más formas, y solo es completamente funcional con el uso de una licencia de shareware pagada. Si bien el shareware se puede descargar sin coste y a menudo es la forma en que las empresas brindan una versión gratuita y limitada de su aplicación a los usuarios, el programa puede molestar al usuario para que compre la edición completa o impida todas las funciones después de un cierto período de tiempo.
Características:
163
●
●
●
●
● ●
Shareware no es software libre, ya que los autores de programas shareware esperan el pago de aquellos que pretenden usar los programas con regularidad. El shareware generalmente está escrito por individuos o pequeñas empresas, y su calidad y nivel de soporte varían ampliamente. Si bien el shareware se puede copiar libremente, las empresas no pueden cobrar tarifas por copias que excedan significativamente sus costos de duplicación y manejo. Opción de probar el software antes de comprarlo para evitar así la pérdida de dinero o de tiempo realizando las reclamaciones para la devolución de la cantidad abonada. Con este software es más sencilla y directa la comunicación entre los usuarios y los desarrolladores. El precio de este software es menor que el de otros programas comerciales que no disponen de la opción de prueba previa.
Imagen: Licencia Shareware. Fuente: https://definicion.de/wp-content/uploads/2014/08/shareware.jpg
164
Capítulo IV 1. Linux. – Por Diego Castellanos, Josué Chitay, Josué Cujá, Williams Culajay. ¿Qué es linux? Linux nació en 1991, y le debe su nombre a su creador: Linus Torvalds. Empezó como un hobbie, pero poco a poco ha ido ganando repercusión mundial. Este núcleo hoy es utilizado por distribuciones como Debian, Ubuntu, Arch Linux o Red Hat, y Android. Cuando hablamos solo de Linux nos referimos al Kernel que administra la memoria que utilizan los procesos y las aplicaciones que se ejecutan en tu ordenador. También se encarga de administrar y utilizar los drivers que tiene, de forma que las aplicaciones y programas puedan utilizar correctamente los componentes físicos del equipo como el procesador o la tarjeta gráfica. El Kernel de por sí no puede funcionar como sistema operativo si no se le añaden herramientas y aplicaciones.
165 Imagen: Que es Linux y GNU/Linux Fuente: https://es.wikiversity.org/wiki/Archivo:NewTux.svg
GNU/Linux GNU/Linux es el nombre de un sistema operativo desarrollado por Richard Stallman que utiliza el Kernel Linux con componentes heredados de GNU. Este sistema a su vez tiene una familia de distribuciones o versiones del sistema operativo, las cuales han ido madurando hasta llegar a ser bastante diferentes entre ellas, pero manteniendo esta unión como punto en común. Linux es multiusuario, multitarea y multiplataforma, además puede funcionar en modo consola para un consumo mínimo de recursos, pero que también podemos hacer funcionar con entorno gráfico, instalando uno mediante comandos de terminal o adquiriendo un paquete en el que venga uno incluido.
Imagen: Que es Linux y GNU/Linux Fuente:https://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Gnulinux.svg/27 0px-Gnulinux.svg.png
1.1. Historia Creación de Unix y C: En 1969 se crea Unix en los laboratorios “Bell” de AT&T, por “Ken Thompson” y “Dennis Ritz”, Denis también creador del Lenguaje C. Unix únicamente se utilizaba en entornos empresariales o Universidades, ya que era un sistema operativo únicamente para servidores, ya sean Web o de almacenamiento de información. Linus Torvalds creó Linux: En 1991 Linux Torvalds crea Linux, El aun estando en la universidad decide tomar el sistema operativo Unix e intentar adaptarlo a ordenadores personales. ¿Por qué se llama Linux?: Durante un año se llamó “Freak” lo cual era una mezcla entre, Free, Freak, y la X de Unix. Luego decidió cambiarle el nombre a Linux, este
166 siendo su nombre, cambiando únicamente la S de Linus, por la X de Unix, el cual era el sistema operativo en el que estaba basado. Linux en la actualidad: En la actualidad existen muchas distribuciones de Linux, ya que cada una de ellas está enfocada a satisfacer las distintas necesidades de distintos usuarios. Todas estas distribuciones están basadas en Linux, pero realmente Linux no es un sistema operativo sino que es lo que informática se le conoce como un kernel, este es el componente del ordenador que pone en contacto al hardware con el software.
1.2. Distribuciones Es una versión de Software basado en el núcleo Linux que incluye determinados paquetes de Software, esto con el objetivo de satisfacer las necesidades de un grupo específico de usuarios, de esta manera se originaron las ediciones domésticas, empresariales y para servidores. Debian: Si creas una distribución basada en Debian podrás contar con todas las actualizaciones de seguridad, rendimiento y compatibilidad que trae el sistema. ● De las distros más confiables. ● La mayoría de distros se derivan de esta. • De las más Antiguas. ● Muy estable.
Imagen: Logo de debian Fuente:https://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/DebianOpenLogo.svg/245px-Debian-OpenLogo.svg.png
Ubuntu: Nace con el objetivo de llevar Linux a todo el mundo, ya que anteriormente Linux era un sistema operativo difícil de manejar ● Basada en Debian. ● De las más Usadas en el Mundo. ● Bastante usada en escritorio y servidores.
167 Imagen: Logo de Ubuntu Fuente:https://actualizo.com/wp-content/uploads/2017/03/Cómo-actualizar-Ubuntu-auna-versión-más-reciente-1.png
Linux Mint: Esta distro busca acercar Linux aún más a la comunidad general. ● Basada en Ubuntu. ● Orientado al público principiante. ● Brinda Experiencia Similar a Windows.
Imagen: Linux Mint Fuente:https://salmorejogeek.files.wordpress.com/2020/06/mint_logo_400x400.png
Red Hat: Si quieres usar la versión para empresas: Red Hat Enterprise Linux, debes pagar por ella. ● ● ●
Brinda soluciones personalizadas a través de un gran soporte. Servicios basados en Linux. Distro más importante para el entorno corporativo.
Imagen: Red Hat Fuente:https://advantek.com.co/wp-content/uploads/2021/05/Logo-RedHat-B-ColorRGB.png
Fedora: Red Hat auspicia esta distro y contribuye a las mejoras del kernel. ●
Basada en Red Hat.
168 ● Desarrollada por una comunidad libre. ● Usa el mismo manejador de paquetes que Red Hat y es gratuita.
Imagen: Logo Fedora Fuente:https://upload.wikimedia.org/wikipedia/commons/3/3f/Fedora_logo.svg
CentOS: popular entre servidores porque brindaba la estabilidad y confiabilidad de Red Hat, pero sin tener que pagar. ● Basada en Red Hat. ● Es gratuita. ● Destinada a la Comunidad.
Imagen: Logo CentOS Fuente:https://blog.desdelinux.net/wp-content/uploads/2016/02/Centos-Logo600x230.png.webp
SUSE: Suse Enterprise Linux ofrece una distro para el usuario final llamada Open Suse. ● ● ●
De las más importantes. De las más antiguas. Orientada al mundo corporativo.
imagen: Logo SUSE Fuente:https://commons.wikimedia.org/wiki/File:Exquisite-suse.svg
169 Arch Linux: Para usuarios que tienen un perfil más técnico y quieren probar configuraciones y construir sus propios escenarios. ● ●
No tiene interfaz gráfica. Debes configurar herramientas que en otras distros ya están por defecto. ● Orientado a Usuarios Avanzados.
imagen: Logo ArchLinux Fuente:https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Arch_Linux_logo .svg/566px-Arch_Linux_logo.svg.png
Manjaro: Tiene la misma característica rolling release de Arch Linux, por lo que siempre está actualizada. ● Basada en Arch Linux. • Tiene Interfaz Gráfica. ● Orientado a Usuarios en general. ● Tiene un manejador de Paquetes sencillos.
imagen: Logo Manjaro Fuentehttps://upload.wikimedia.org/wikipedia/commons/0/07/Manjarologo.png?20130727135024
Kali: Si quieres comprender el mundo de la seguridad informática, Kali es la mejor opción para ti. ●
Tiene preinstaladas muchas herramientas para los profesionales de la seguridad informática ● herramientas de pentesting, para analizar sistemas, recuperar archivos, etc.
imagen: Logo Kali Fuente:https://k61.kn3.net/taringa/2/0/E/A/F/8/MartyBor465/198.png
1.3. Particionado de disco para la instalación de Linux
170 En esta ocasión tenemos Windows instalado y junto a él queremos instalar Linux y tenemos que particionar el disco para crear las particiones de Linux sin cargarnos Windows, importante, igual que en el artículo anterior de redimensionar el disco si particionamos, añadimos o borramos particiones y nos equivocamos podemos borrar todo lo que tenemos en el disco, así que esto se tiene que hacer con cuidado y teniendo siempre copias de seguridad.
imagen: Partición de disco duro para instalación de Linux Fuente:https://cambiatealinux.com/files/XNGE2GQEOX5BX9EBZEAP0723/instalar-linuxen-nuevo-disco.jpg
Con los 200GB que nos quedan vamos a crear dos particiones, o mejor tres, una para el swap o área de intercambio de datos para Linux, es una partición de sistemas que es bastante recomendable crearla y el tamaño debe ser más o menos la memoria que tengas, por ejemplo si mi ordenador tiene 4GB creo una partición de 4GB. Después creamos otra partición de 30GB para el sistema y otra del resto de GB para los datos. ¿Cómo creamos una partición? pulsando el signo + aparece una ventana como la de la imagen y hay que seleccionar las opciones que queremos.
imagen: Partición de disco duro para instalación de Linux Fuente:https://cambiatealinux.com/files/XNGE2GQEOX5BX9EBZEAP0723/crear-unaparticion-en-linux.jpg
Una vez creadas las particiones el disco nos quedará así. Una vez creadas las particiones el disco nos quedará así.
171
imagen: Partición de disco duro para instalación de Linux Fuente:https://cambiatealinux.com/files/XNGE2GQEOX5BX9EBZEAP0723/particionespara-linux.jpg
Si nos equivocamos podemos borrar la partición recién creada, seleccionándola y pulsando el signo menos. Con el signo - borraremos siempre lo que tengamos seleccionado. Ahora ya podemos instalar Linux con el disco particionado y en la partición NTFS, la /dev/sda2 tendremos Windows.
1.4. Aplicaciones de Linux 1.4.1.Procesador de texto ● LaTeX: Para una escritura más técnica, existe la aplicación de código abierto LaTeX. LaTeX es un procesador de palabra atractivo para Linux porque su código abierto puede ser personalizado por el usuario para sus necesidades particulares ●
LibreOffice: La alternativa gratuita más popular en procesadores de texto para Linux es libreoffice que fue lanzado por primera vez en 2011 como una bifurcación de OpenOffice.org, otro procesador de texto para Linux. Debido a que LibreOffice siempre ha adoptado un proceso de desarrollo colaborativo, invitando a desarrolladores de todo el mundo a unirse al proyecto y contribuir, rápidamente ganó un enorme impulso.
1.4.2.Visores de imágenes ● Gwenview: puede cargar y guardar todos los formatos de imagen compatibles con KDE. Muestra correctamente las imágenes con canal
172 alfa, utilizando el tablero de ajedrez tradicional como fondo para revelar la transparencia. Gwenview le permite controlar con precisión la forma en que se escalan las imágenes: puede acercar y alejar o escalar automáticamente la imagen para que se ajuste a la ventana. El zoom está bloqueado para que pueda comparar fácilmente las imágenes yendo y viniendo. ● DigiKam: DigiKam es un organizador de imágenes y editor de etiquetas libre y de código abierto escrito en C + + que utiliza las aplicaciones del escritorio KDE. DigiKam se ejecuta en la mayoría de los entornos de escritorio y gestores de ventanas conocidos, siempre y cuando se instalen las bibliotecas necesarias. Es compatible con los principales formatos de archivos de imagen, como JPEG y PNG.
1.4.3.Reproducción de audio y vídeo ● Mplayer: Mplayer es ligero, fácil de utilizar y su base de código se ha utilizado para crear otros muchos reproductores a los que simplemente se le ha añadido una interfaz adaptada a un determinado escritorio, como es el caso de Gnome MPlayer o SMPlayer, consiguiendo mejorar el software inicial. Te animamos a que pruebes cualquiera de estas versiones, el resultado te sorprenderá. ● Miro: Miro es mucho más que un excelente reproductor multimedia, es prácticamente una caja de herramientas con la que disfrutarás de todo tipo de contenidos, tanto de forma local, como online. Miro es ideal para quienes prefieren ver vídeos online o seguir podcasts, ya que pueden hacerlo todo desde la misma aplicación, además de tener siempre a mano la colección de vídeo y música almacenada en tu disco duro.
1.5. Instalación de software 1. Bootear una USB con la ayuda de algún software como Rufus (se eliminarán todos los archivos alojados en dicha USB).
173
imagen: Configuración de Rufus. Fuente:https://www.softzone.es/app/uploads-softzone.es/2019/07/Rufus-3.6.jpg
2. Descargar la imagen ISO del distro de Linux que instalaremos y luego hay que grabar esa imagen en la USB booteable con la ayuda de algún software como Universal USB Installer. 3. Cuando ya tengamos la USB con el distro de Linux hay que desconectar la USB y apagar el equipo en el cual se instalará el S.O. 4. Luego hay que conectar la USB con el S.O. a instalar y encender la computadora. 5. Cuando la computadora se esté encendiendo y aparezca la marca del fabricante hay que presionar la tecla de la configuración de la BIOS, generalmente son las teclas F12,F2 o DELETE. 6. Luego hay que seleccionar la opción de “Iniciar desde USB” (en esta ocasión se explicará como instalar el distro de Ubuntu, para otros distros el proceso de instalación es similar). 7. Esperamos un momento y nos aparecerá una pantalla como la siguiente en la cual seleccionaremos nuestro idioma de preferencia y seleccionaremos la opción de “Instalar Ubuntu”.
174
imagen: Bienvenida a la instalacion. Fuente:https://www.softzone.es/app/uploads-softzone.es/2020/07/Instalar-Ubuntu-Cargar-Live.jpg
8. Hacemos doble clic sobre el asistente de instalación.
imagen: Asistente de instalación Fuente:https://www.softzone.es/app/uploads-softzone.es/2020/07/Instalar-Ubuntu-Ejecutarinstalador.jpg
9. Seleccionar el idioma que queremos usar.
175
imagen: Selección de idioma Fuente:https://www.softzone.es/app/uploads-softzone.es/2020/07/Instalar-UbuntuElegir-idioma.jpg
10. Elegir la distribución de teclado.
imagen: Selección de distribución de teclado Fuente:https://www.softzone.es/app/uploads-softzone.es/2020/07/Instalar-UbuntuDistribuci%C3%B3n-de-teclado.jpg
11. Seleccionar el modo de instalación (normal o mínima) y elegir si queremos bajar actualizaciones durante el proceso, o paquetes privativos de terceros.
176
imagen: Partición de disco duro para instalación de Linux Fuente:https://cambiatealinux.com/files/XNGE2GQEOX5BX9EBZEAP0723/particionespara-linux.jpg
12. Elegir cómo instalar Ubuntu en el disco (usarlo todo, o crear particiones y puntos de montaje a mano). También si queremos usar, o no, cifrado de discos.
imagen: Partición de disco duro para instalación de Linux Fuente:https://cambiatealinux.com/files/XNGE2GQEOX5BX9EBZEAP0723/particionespara-linux.jpg
177
Imagen: Selección de tipo de instalación. Fuente:https://www.softzone.es/app/uploads-softzone.es/2020/07/Instalar-Ubuntu-Tipode-instalaci%C3%B3n.jpg
imagen: Selección de cifrado de datos Fuente:https://www.softzone.es/app/uploads-softzone.es/2020/07/Instalar-UbuntuCrear-particiones-2.jpg
178
imagen: Resumen de las particiones Fuente:https://www.softzone.es/app/uploads-softzone.es/2020/07/Instalar-UbuntuCrear-particiones-4.jpg
13. Configurar la ubicación.
imagen: Selección de región Fuente:https://www.softzone.es/app/uploads-softzone.es/2020/07/Instalar-UbuntuCrear-particiones-4.jpg
14. Crear el usuario (nombre, nombre del equipo, contraseña).
179
imagen: Creando un usuario para el sistema Fuente:https://www.softzone.es/app/uploads-softzone.es/2020/07/Instalar-UbuntuCrear-usuario.jpg
15. Oficialmente ya está instalado Linux Ubuntu en la computadora, solo queda reiniciar y empezarlo a usar.
imagen: Instalación correcta de Ubuntu Fuente:https://www.softzone.es/app/uploads-softzone.es/2020/07/Instalar-Ubuntu-Fininstalaci%C3%B3n.jpg
1.6. Bash(scripts básicos)
180 Bash (Bourne Again Shell) es un intérprete de comandos que actúa como interfaz entre el kernel Linux y los usuarios o programas. Su funcionamiento se basa en ejecutar una a una las instrucciones que introduce el usuario o que forman parte de un script, y a continuación devolver unos resultados. Bash no es una terminal, es solo una de las varias shell que hay disponibles en Unix. Bash está disponible en casi todas las versiones de Linux y no requiere de instalación adicional. La lista de shells disponibles se puede verificar escribiendo el comando: cat /etc/shells Para ver el manual se usa el comando man bash.
imagen: Scripts básicos I Fuente:https://es.wikibooks.org/wiki/El_Manual_de_BASH_Scripting_Básico_para_Principi antes/Comandos_básicos_de_una_shell
181
imagen: Scripts básicos II Fuente:https://es.wikibooks.org/wiki/El_Manual_de_BASH_Scripting_Básico_para_Principi antes/Comandos_básicos_de_una_shell
1.7. Sistema de usuario y manejo básico Linux es un sistema operativo multiusuario y multitarea. Multitarea significa que se puede realizar más de una tarea a la vez. Multiusuario significa que el sistema puede ser empleado por más de un usuario. Por ser multiusuario, Unix debe diferenciar a los usuarios y su información, para lograrlo a cada usuario se le asigna una identificación única (en inglés login), un grupo, una clave de acceso (en inglés password) y un espacio independiente del espacio de los demás usuarios (ese espacio se llama directorio personal y permite organizar información del usuario en archivos). Unix brinda también un esquema de permisos, con el que un usuario puede conceder o quitar permisos para ver o modificar sus archivos a otros usuarios o a usuarios de su mismo grupo. Gracias al sistema de usuarios y al esquema de permisos no es posible que un usuario normal desconfigure el sistema completo o lo infecte con virus, la configuración general del sistema sólo puede cambiarla el administrador del sistema, cuyo login es root. Como usuario de Linux, usted tendrá un login, un grupo principal, un espacio y una clave. Para evitar mala utilización de los recursos por parte de otra persona a nombre suyo, su clave de acceso debe ser secreta. Además por seguridad, es recomendable que cada usuario cambie su clave de acceso al menos cada dos meses, empleando el comando passwd desde un intérprete de comandos.
182
imagen: Representación de usuarios y manejo de claves. Fuente:http://structio.sourceforge.net/guias/AA_Linux_colegio/gdmlogin.png
1.8. Archivos y permisos Los permisos de los archivos en Linux (o GNU/Linux) tienen mucha importancia. Solemos tener varios usuarios en nuestro equipo y no todos tienen acceso a modificar o trabajar con todos los ficheros. por ejemplo, un servidor o nuestro propio ordenador. Cada archivo contiene información sobre sí mismo: ● ● ●
Dueño del archivo. Grupo del archivo. Permisos del archivo.
Cada usuario va a pertenecer como mínimo a un grupo, el cual le es asignado en la creación de dicho usuario. Tipos de permisos Existen 3 tipos de permisos: ●
Lectura: permite a un cierto usuario ver el contenido de un archivo. Si es un directorio, el contenido del mismo. ● Escritura: permite modificar un archivo. Si es un directorio, el contenido del mismo. ● Ejecución: si existe algo que ejecutar, se podrá hacer con este permiso. Definición: ❖ ❖ ❖ ❖
d: tipo de archivo. rwx: permisos de propietario (lectura, escritura y ejecución). r-x: permisos de grupo (lectura y ejecución). r-x: permisos para el resto (lectura y ejecución).
2.Tecnologías de la información. –
183
Por Daniela Colindres y Pablo Contreras . 2.1. Internet y sus servicios Internet es una red de ordenadores conectados en todo el mundo que ofrece diversos servicios a sus usuarios, como puede ser el correo electrónico, el chat o la web. Permite, como todas las redes, compartir recursos. Es decir: mediante el ordenador, establecer una comunicación inmediata con cualquier parte del mundo para obtener información sobre un tema que nos interesa, para ser más exactos, establece vínculos comunicativos con millones de personas de todo el mundo, bien sea para fines académicos o de investigación, o personales. Entre los servicios más importantes que encontramos podemos mencionar: Correo Electrónico Es un servicio de red que permite a los usuarios enviar y recibir mensajes rápidamente, mediante sistemas de comunicación electrónicos. Su eficiencia, conveniencia y bajo coste está logrando que el correo electrónico desplace al correo habitual para muchos usos habituales. Chat o Mensajería Instantánea Designa una comunicación escrita instantánea realizada a través de 2 personas o más, ya sea de manera pública o a través de los llamados chats públicos o privados. HTTP HTTP de HyperText Transfer Protocol (Protocolo de transferencia de hipertexto) es el método más común de intercambio de información en la world wide web, el método mediante el cual se transfieren las páginas web a un ordenador. Todas las páginas web están escritas en lenguaje de hipertexto (hyper-text markup language (HTML)), por lo que el hipertexto es el contenido de las páginas web.
imagen: Internet y sus servicios Fuente:http://structio.sourceforge.net/guias/AA_Linux_colegio/gdmlogin.png
2.2. Extranet. Se trata de una red informática que permite el acceso a terceras partes, es decir, usuarios ajenos a la empresa. En la actualidad, una de las implementaciones más habituales de la extranet a nivel global son los servicios de atención al cliente que ofrecen las diferentes
184 compañías. En un alto porcentaje de casos incluyen la posibilidad de descargar contenidos, como por ejemplo la guía o el libro de instrucciones de un determinado producto.También son muy frecuentes los foros de soporte. En ellos, existe una comunicación bilateral entre los usuarios y moderadores de la empresa. Estos últimos ofrecen ayuda y apoyo sobre el producto o servicio de la compañía. Características 1. Acceso: a diferencia de la intranet, la extranet permite el acceso a clientes y proveedores. La compañía otorga que puedan acceder a determinadas áreas del sitio. 2. Protocolo: la extranet hace uso del protocolo de Internet, así como del sistema de comunicaciones público. De este modo, comparte información relevante para usuarios externos, como proveedores o clientes, de manera segura. 3. Seguridad: la seguridad en la extranet es una cuestión muy importante. La información entre el sitio y los usuarios viaja encriptada, estando así a salvo de posibles ciberataques. Funcionalidades ● Envío de información a socios. ● Descarga de documentación. ● Estado de pedido. ● Preguntas frecuentes.
imagen: Representación de extranet Fuente:https://i2.wp.com/www.loyvan.com/wpcontent/uploads/2014/05/extranet.png?fit=1041%252C351&ssl=1
2.3. Intranet. Es un esquema de red que tiene como objetivo el asistir a los usuarios en el ámbito tecnológico poniendo a su disposición elementos como contenidos, archivos, procesos de negocio y herramientas; facilitando la colaboración, comunicación y comprensión entre las personas y los equipos informáticos.
Características ● ● ● ●
Entorno de múltiples usuarios. Red privada Facilidad en el manejo de usuarios Control en el intercambio de archivos
Ventajas
185 ● Seguridad: ofrece una alta capacidad de no permitir el acceso a virus o violaciones de acceso. ● Integridad: protege los datos de cualquier secuestro informático. ● Autenticación: mantiene un orden y control ante el logueo de la red. ● Auditoría: reporta las actividades dentro del entorno en tiempo real y posterior a este. ● Disponibilidad: asegura el acceso a datos personales. Desventajas ● Planificación: el control suele complicarse al manejar múltiples usuarios. ● Complejidad: el proceso con el que funciona la red es difícil de entender de entender y por efecto a esto, no se aprovecharán todas las funciones que ofrece ● Economía: el costo monetario que se maneja en el proceso de instalación puede ser considerablemente alto. Funcionamiento ● Uso de un Browser. ● Selección de un hipervínculo que se conecta al DNS para una petición sobre información. ● El DNS lee la petición, vuelca el fichero y se dirige al cliente. ● El cliente tiene acceso a la petición o fichero y lo deposita en la ventana del browser.
imagen: Esquema de funcionamiento sobre red INTRANET Fuente:https://i2.wp.com/www.loyvan.com/wpcontent/uploads/2014/05/extranet.png?fit=1041%252C351&ssl=1
2.4. Sistemas expertos Son sistemas basados en computadoras, forman parte de la inteligencia artificial, y son capaces de tomar decisiones y resolver problemas complejos. Son considerados pertenecientes al más alto nivel de inteligencia y experiencia en entorno a lo humano. Son operadores que no tienen ni el más mínimo rango de error, además que son accesibles dentro del nivel de compilación y de manejo de información. Componentes
186 ● Base de conocimiento: representa los hechos y reglas, es donde se almacenan datos necesarios para el dominio. ● Motor de inferencia: es el cerebro del sistema, obtiene el conocimiento y lo aplica según sea necesario. ● Módulo de adquisición de aprendizaje: permite obtener y almacenar mas conocimiento. ● Interfaz de usuario: juega un papel muy importante ante el manejo a un usuario ajeno, básicamente permite manejar la consulta desde el motor de inferencia. ● Módulo de explicación: en este módulo se da una explicación al usuario sobre cómo se llegó a la conclusión. Ejemplos ● ● ● ● ● ●
Gestión de información. Sistemas médicos. Servicios de ayuda. Programación. Bolsa de valores. Planificación en sistemas.
Tipos A. Basados en reglas previamente establecidas: resuelven situaciones con reglas predeterminadas. B. Basados en casos: analizan y resuelven con base a problemas anteriores. C. Basados en Redes Bayesianas: usados para la predicción, clasificación y diagnóstico de datos.
imagen: Esquema de funcionamiento sobre red INTRANET Fuente:https://lestersantamaria.files.wordpress.com/2016/11/sistema_experto
187
Análisis de Sistemas
Cuarto Grado
188
Capítulo I 1. Lógica de Pseint.Por Devin Quiñonez Pseint es una herramienta que ayudará para que a aquellos novatos en la programación se puedan meter de lleno con conceptos básicos de programar, como sería imprimir texto, hacer operaciones, utilizar lógica en lo que se programa, entre otros. Pseint es un lenguaje que viene en español, por lo que su uso es aún más sencillo para poder comprender aquellas funciones que en otros lenguajes vienen en inglés. Mediante un simple e intuitivo Pseudolenguaje, nos ayuda, como mencione antes, en aquellos conceptos más generalizados en la computación y programación en otros lenguajes, como en el caso de Java, PhP, C#, y muchos otros más.
1.1 Ejercicios de Pseint Ahora bien, aquí tenemos una serie de problemas lógicos de Pseint, los cuales debemos aplicar la lógica para poder resolverlos: 1.1.1 Sumar dos números ‘a’ y ‘b’ En este ejercicio, debemos sumar dos números y mostrar el resultado al final. Lógica que usaremos para poder cumplir el proceso: Proceso sumar_a_b; //Proceso: ¿qué desea hacer el 'programa'?: sumar a y b Escribir "ingrese a:"; //escribe/muestra en pantalla Leer a; //introduce por teclado el valor de 'a' Escribir "ingrese b:"; Leer b; //introduce por teclado el valor de 'b' Suma<-(a+b); //operador Suma=a+b Escribir "La suma de a + b es:",Suma ; //escribe/muestra en pantalla + el valor Suma FinProceso
189 Ahora, introducido en Pseint, ejecutado y con Diagrama, nos da el siguiente resultado:
Imagen: Documento de ejercicios de Pseint – Edmodo. Fuente: https://n9.cl/2yjv7
1.1.2 Escribir un el incremento en 1 de un nº menor a 10 hasta 10. Lógica del Proceso: Proceso sin_titulo; Escribir
"Digita un número"; //Muestra en pantalla la instrucción leer a; //ingresa la variable 'a' (número menor a 10)
Para a<-a+1 Hasta 10 Con Paso 1 Hacer //Comando Para: está al final derecha de este IDE Escribir " ", a; //El espacio entre comillas ("") solo ajusta el texto debajo de la variable ingresada FinPara //Fin del comando Para FinProceso //Fin del proceso Introducido en Pseint, ejecutado y con Diagrama:
Imagen: Documento de ejercicios de Pseint – Edmodo. Fuente: https://n9.cl/2yjv7
1.1.3 Sumar n números utilizando REPETIR. Sumar
un
número
Lógica del Proceso: Proceso sumar_numero Repetir
hasta
que
el
número
sea
a=0.
190 a<-a tot<-tot tot<-Tot+a; Escribir "Ingrese un número (0 para salir)"; Leer a; Hasta Que a = 0 Escribir "Total: ",tot; FinProceso Introducido en Pseint, ejecutado y con Diagrama:
Imagen: Documento de ejercicios de Pseint – Edmodo. Fuente: https://n9.cl/2yjv7
1.2 Algoritmos y tipos en Pseint Un algoritmo es cualquier procedimiento computacional bien definido que parte de un estado inicial y un valor o un conjunto de valores de entrada, a los cuales se les aplica una secuencia de pasos computacionales finitos, produciendo una salida o solución. Ahora, en Pseint, Algoritmo y FinAlgoritmo son las palabras claves para iniciar y finalizar un algoritmo o programa. Después, cada acción o instrucción puede consistir en: definición de variables, mostrar texto por pantalla, pedir datos al usuario por texto, borrar la pantalla, etc. Una variable es un espacio donde se puede guardar información. La información que se guarda en la variable puede ser de diversos tipos y pueden ir cambiando a lo largo del programa. A la variable hay que identificarla con un nombre, y ese nombre estará formado solo por letras, números y el guión bajo únicamente; no puede contener espacios ni operadores, ni palabras clave del lenguaje. Cada variable tiene un tipo de dato asociado, por lo que siempre se guardará el mismo tipo de dato.
Una variable que guarde un número no podrá guardar
191 después otro tipo que no sea un número. Los tipos de datos en PSeInt pueden ser: NÚMERO, NUMÉRICO, ENTERO, REAL, CARACTER, TEXTO, CADENA y LÓGICO. Ejemplo de cómo declarar variables:
Imagen: Estructura de datos y expresiones de Pseint. Fuente: https://terepebernal.com/blog/pseudocodigo/algoritmos-pseint-lo-mas-basico/
Una vez declarada la variable se le puede asignar un valor y también pedir por teclado ese valor (leer). También existe una palabra clave para mostrar datos por pantalla, esta es Escribir, si se utiliza Sin Saltar, no se hace un salto de línea después; sino se utiliza, se hará un salto de línea.
ejemplo de una declaración de variables en un algoritmo:
Imagen: Estructura de datos y expresiones de Pseint. Fuente: https://terepebernal.com/blog/pseudocodigo/algoritmos-pseint-lo-mas-basico/
Ahora, existen otras palabras claves que realizan acciones simples, todas ellas junto con las anteriores, son las llamadas “Secuenciales”. Borrar Pantalla se utiliza para limpiar la pantalla, dejarla vacía como que limpia una pizarra. Esperar se utiliza para parar el algoritmo un intervalo de tiempo, como se indica en el ejemplo de a continuación junto a la unidad de dicho intervalo, que puede ser segundos y milisegundos, por ejemplo: Esperar 5 Segundos; Esperar Tecla se utiliza también para parar el algoritmo hasta que el usuario pulsa una tecla.
192 A continuación, una tabla de algunas expresiones y operadores que podemos utilizar en nuestros algoritmos:
Imagen: Estructura de datos y expresiones de Pseint. Fuente: https://terepebernal.com/blog/pseudocodigo/algoritmos-pseint-lo-mas-basico/
1.3 Pseudocódigo El pseudocódigo es la manera más sencilla de poder graficar las distintas instrucciones que se deben hacer para que un programa haga una determinada función o tarea. También, se denomina como pseudocódigo a un método usado para visualizar la solución de un algoritmo de manera detallada. Ahora, una definición más exacta del pseudocódigo es que se trata de la descripción de un algoritmo informático de programación de alto nivel compacto e informal. Las tareas más complejas o repetitivas pueden representarse de forma más sencilla ya que está escrito en un lenguaje sencillo y no estructurado que permite una transición sencilla al lenguaje de programación, más complejo y estructurado. La curva de aprendizaje del pseudocódigo es baja por lo que facilita enormemente el aprendizaje de la programación y la iniciación a lenguajes de programación más avanzados y complejos. Este pseudocódigo vale para pasarlo posteriormente a cualquier lenguaje de programación, no importa el que se quiera usar. Incluso algunas universidades han creado sus propios "intérpretes de pseudocódigo". Su misión es ayudar a los alumnos de primer curso a crear los programas "pensando en español", pero permitiéndoles, además, probar esos programas desde un entorno "casi real". Pero, así como ya dijimos cosas buenas del Pseudocódigo, también daremos a conocer algunas de las que serían sus desventajas. Una de las desventajas del uso de pseudocódigo es la falta de normas, que puede hacer que la lógica de un programa, resulte complicada de ver por el programador que va a implementar este pseudocódigo. Además, en el caso de
193 problemas muy extensos, puede llegar a ser difícil de entender Debido a que un ordenador no puede leer pseudocódigo de forma directa, no es posible representar de forma visual el funcionamiento del software. Debido a la falta de estándares, la forma en la que se escribe el pseudocódigo puede ser subjetiva.
1.4 Por: Gabriel Xanté
Diagramas
de
Flujo
El diagrama de flujo también es llamado flujograma o diagrama de actividades. El diagrama de flujo es un diagrama que describe un proceso, sistema o algoritmo informático. Estos diagramas se usan ampliamente en numerosos campos para documentar, estudiar, planificar, mejorar y comunicar procesos que suelen ser complejos en diagramas claros y fáciles de comprender. Los diagramas de flujo emplean rectángulos, óvalos diamantes y otras numerosas figuras para poder dar una definición de tipo de paso, junto con flechas conectoras que establecen el flujo y la secuencia. Pueden variar desde diagramas simples hasta diagramas sumamente extensos. Este también es uno de los diagramas más comunes del mundo, usados por personas con y sin conocimiento técnico en una variedad de campos. Está relacionado con otros diagramas populares, como los diagramas de flujo de datos (DFD) y los diagramas de actividad de lenguaje unificado de modelado (UML). Características ● Es una herramienta sencilla de usar con un mínimo de formación/capacitación para dibujarlos e interpretarlos. ● Visualmente representa una forma esquemática de todos los pasos por los que atraviesa un proceso ● Para la estructura se utiliza una serie de símbolos es cada uno de los pasos que sigue un proceso ● Se puede utilizar para dibujar un proceso complejo o dividir este en distintos subprocesos. ● Cada paso del proceso aporta algo para conseguir el objetivo final. Estos son algunos ejemplos que podemos apreciar dentro de los diagramas de flujo:
194
Imagen: Diagrama de flujo, algoritmo para tomar café. Fuente: https://www.picuino.com/_images/flowchart-estudiar.png
Imagen: Diagrama de flujo, algoritmo de inicio de sesión. Fuente: https://www.aulafacil.com/uploads/cursos/6368/23459_vi.es.png
Imagen: Diagrama de flujo, algoritmo de estudio. Fuente: https://juegosrobotica.es/wp-content/uploads/diagrama-de-flujo-cafe.jpg
2. Deontología Informática.Por Gabriel Xanté La deontología informática, trata de la moral o ética profesional en el manejo del activo más importante que tienen las empresas un bien cada vez más apreciado, que es la información.
2.1 Medidas o plan de contingencia Las medidas o plan de contingencia es un conjunto de procedimientos que se tienen para poder estar listos y prevenidos ante cualquier situación que represente un
195 peligro y se puedan dañar en cierta parte o hasta llegar a perder la información de cualquier tipo de sistema. Dentro de estas medidas debe incluir un plan de recuperación de desastres, que tendrá como objetivo restaurar el servicio de cómputo en una forma rápida, eficiente y con el menor costo y pérdidas posibles El plan de contingencias es el encargado de sostener el modelo de seguridad informática planteado y de levantarlo cuando se vea afectado. La recuperación de la información está basada en el uso adecuado y eficiente de una política de copias de seguridad (Backup).
Imagen: Plan o medida de contingencia, backup Fuente: https://images.app.goo.gl/AzAwVpb5GbgxHGcB9
2.2 Medidas de seguridad informática. Se refiere a la protección de la información y especialmente al procesamiento que se hace de la misma, con el objetivo de evitar la manipulación de datos y procesos por personas no autorizadas. Algunas medidas adecuadas de seguridad son: ● Sensibilización y capacitación de empleados: Uno de los principales riesgos de las empresas puede ser las prácticas descuidadas de sus trabajadores al usar internet. Esto puede comprometer la transferencia de información e incluso la pérdida de dispositivos de almacenamiento que contienen información relevante o claves de acceso a la empresa. Por eso es importante capacitarlos sobre buenas prácticas en el uso de internet ● Realizar copias de seguridad fiables: La información de las empresas no solo puede estar amenazada por robos o malware, también por sucesos como inundaciones o incendios, para estos casos es recomendable tener respaldo y un plan de recuperación.
196 ● Contar con un servidor propio: Es recomendable esta acción si en la empresa se usan más de cinco computadoras, ya que disminuye el riesgo de la pérdida de archivos. ● Instalación de antivirus y antispam: La instalación de estos tipos de software sirve para evitar malware que puede borrar o dañar archivos, phishing o robo de claves de acceso. ● Cifrar información: Es bastante común que algún dispositivo quiera ser atacado de distintas maneras por lo mismo se debe mantener la información muy bien protegida para no ser vulnerables ante dichas amenazas ● Establecer contraseñas adecuadas y cambiarlas periódicamente: Las claves de acceso a equipos, correos electrónicos o archivos deben ser contraseñas difíciles de descifrar, deben ser de preferencia alfanuméricas y ser cambiadas periódicamente.
Imagen: Referencia a seguridad informática Fuente: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQEL25t0wuZPmpLuVaR1kHTzQWxtjz3bdOAw&usqp=CAU
3. Seguridad Industrial en Informática.Por Diego Solares 3.1 Introducción a la Seguridad Industrial La Seguridad Industrial es un área dentro de las empresas que trata de manera sistemática la prevención de lesiones o accidentes de trabajo en plantas industriales. Su mayor utilidad consiste en minimizar la ocurrencia de accidentes laborales, actuando como agente preventivo en vez de reactivo, sin embargo, cubre también el manejo e investigación de accidentes e incidentes, en caso de llegar a presentarse.
3.1.1 Objetivos de la seguridad industrial El principal objetivo de esta disciplina es alcanzar el indicador de “Cero Accidentes en Planta”. Para lograrlo se trabaja con una planeación detallada en la
197 identificación de peligros de las instalaciones y los procesos. Sobre la base de la planeación efectuada, se determinan acciones de monitoreo, ejecución y control para reducir los riesgos de accidentes.
3.1.2 ¿Por qué es importante la seguridad industrial en la planta? Las actividades de producción en una planta industrial se caracterizan por ser generadoras de empleo masivo. Si bien, el avance tecnológico acelerado ha reducido el personal, en algunos casos, por lo general las plantas y fábricas mantienen un alto número de personas laborando. Cuando grupos significativos de personas se concentran en un lugar para llevar a cabo tareas de producción, las organizaciones pasan a ser responsables de la seguridad de sus empleados. Existen cuatro hallazgos que son protagonistas en los programas de Seguridad Industrial: ● Los accidentes laborales: son sucesos repentinos que sobrevienen por causa del trabajo y producen en el trabajador lesión orgánica, perturbación funcional, invalidez o muerte. También se incluyen daños graves a la instalación o al medio ambiente. ● Los incidentes: estos son acontecimientos no deseados que bajo condiciones un poco diferentes, podrían haber causado lesiones a las personas, daños a la instalación o pérdidas al proceso. ● Acto inseguro: se le llama también acto subestándar y es toda acción que realiza el trabajador de manera insegura o inadecuada, aumentando la probabilidad de que ocurra un accidente de trabajo. ● Condición insegura: medio o situación presente en el lugar de trabajo, caracterizada por la presencia de riesgos no controlados que pueden llevar a la ocurrencia de accidentes laborales.
3.2 Señalizaciones 3.3.1 Tipos de señales: ● Prohibición: Bordes rojos, bandas transversales en sentido descendente de izquierda a derecha de color rojo, contenido en color negro e información en blanco.
198
Imagen: Señalizaciones de prohibición Fuente: https://prezi.com/aydij8gcqsu6/las-senales-de-seguridad-en-la-sala-de-infomatica/
● Advertencia: Señal de color amarillo con pictograma negro
Imagen: Señalizaciones de Alerta Fuente: https://prezi.com/aydij8gcqsu6/las-senales-de-seguridad-en-la-sala-de-infomatica/
● Obligación: Señal en su mayor parte de color azul y con pictograma de color blanco.
Imagen: Señalizaciones de obligación Fuente: https://prezi.com/aydij8gcqsu6/las-senales-de-seguridad-en-la-sala-de-infomatica/
3.4 Señales de Seguridad en aparatos tecnológicos
Imagen: Señalizaciones de prohibición Fuente: https://prezi.com/aydij8gcqsu6/las-senales-de-seguridad-en-la-sala-de-infomatica/
3.3 Mapa de Riesgos Un mapa de riesgo es un instrumento que permite identificar los factores de riesgo que se pueden presentar dentro de una organización, además, brinda la posibilidad de que estos se puedan cuantificar, es decir clasificar en el daño que este podría causar, la escala en la que va a estar dividido (alto, medio o bajo), y la probabilidad de que esto pueda ocurrir. Este tipo de herramientas les brinda a los gestores de la prevención de riesgos tres importantes recursos que les serán de gran ayuda al momento de estar poniéndola en práctica dentro de sus compañías.
199
Imagen: Mapa de riesgo en un ambiente informático Fuente: https://es.slideshare.net/dansua07/mapa-de-riesgo-computacion
3.4 Seguridad Informática La seguridad informática es una disciplina que se encarga de proteger la integridad y la privacidad de la información almacenada en un sistema informático. De todas formas, no existe ninguna técnica que permita asegurar la inviolabilidad de un sistema. Un sistema informático puede ser protegido desde un punto de vista lógico (con el desarrollo de software) o físico (vinculado al mantenimiento eléctrico, por ejemplo). Por otra parte, las amenazas pueden proceder desde programas dañinos que se instalan en la computadora del usuario (como un virus) o llegar por vía remota (los delincuentes que se conectan a Internet e ingresan a distintos sistemas). La seguridad informática también se refiere a la práctica de prevenir los ataques maliciosos, a las computadoras y los servidores, a los dispositivos móviles, a los sistemas electrónicos, a las redes y los datos, etc. En resumen, la seguridad en un ambiente de red es la habilidad de identificar y eliminar vulnerabilidades. Una definición general de seguridad debe también poner atención a la necesidad de salvaguardar la ventaja organizacional, incluyendo información y equipos físicos, tales como los mismos computadores. Nadie a cargo de la seguridad debe determinar quién y cuándo puede tomar acciones apropiadas sobre un ítem en específico. Cuando se trata de la seguridad de una compañía, lo que es apropiado varía de organización en organización. Independientemente, cualquier compañía con una red debe tener una política de seguridad que se dirija a la conveniencia y la coordinación. La seguridad informática debe establecer normas que minimicen los riesgos a la información o infraestructura informática. Estas normas incluyen horarios de funcionamiento, restricciones a ciertos lugares, autorizaciones, denegaciones, perfiles de usuario, planes de emergencia, protocolos y todo lo necesario que permita un
200 buen nivel de seguridad informática minimizando el impacto en el desempeño de los trabajadores y de la organización en general y como principal contribuyente al uso de programas realizados por programadores. La seguridad informática está concebida para proteger los activos informáticos, entre los que se encuentran los siguientes: ● La infraestructura computacional: es una parte fundamental para el almacenamiento y gestión de la información, así como para el funcionamiento mismo de la organización. La función de la seguridad informática en esta área es velar por que los equipos funcionen adecuadamente y anticiparse en caso de fallos, robos, incendios, sabotajes, desastres naturales, fallos en el suministro eléctrico y cualquier otro factor que atente contra la infraestructura informática. ● Los usuarios: son las personas que utilizan la estructura tecnológica, zona de comunicaciones y que gestionan la información. Debe protegerse el sistema en general para que el uso por parte de ellos no pueda poner en entredicho la seguridad de la información y tampoco que la información que manejan o almacenan sea vulnerable. ● La información: esta es el principal activo. Utiliza y reside en la infraestructura computacional y es utilizada por los usuarios.
3.5 Métodos Por Pablo Sarceño
De
Seguridad
Informática
3.5.1 Copias de seguridad Al crear una copia de seguridad podremos tener la seguridad de mantener nuestros datos a salvo en caso de que pueda ocurrir algo catastrófico. También podemos recuperar los datos de una manera más sencilla en caso de borrarlos o estropear los documentos.
3.5.2 Contraseñas seguras Algo que debemos considerar es la importancia de las contraseñas en la seguridad informática, se recomienda en ocasiones cambiar las contraseñas cada cierto tiempo y debemos impedir que las contraseñas sean algo fáciles de descifrar por piratas informáticos.
3.5.3 Proteger Correos Electrónicos
201 Comúnmente hoy en día utilizamos mucho nuestro correo electrónico y debemos utilizar filtros antispam y sistemas de encriptado de mensajes, para asegurar la protección y privacidad de toda esa información.
3.5.4 Herramientas de seguridad (Antivirus): Un buen antivirus protegerá a nuestros sistemas informáticos de intervenciones de malware maliciosas como, por ejemplo: Gusano informático, Troyanos, Spyware, Adware y Ransomware. Esto es algo que debemos aplicarlo sin importar el sistema operativo que estemos utilizando o el tipo de dispositivo. Además, también podemos contar con la posibilidad de utilizar un firewall para nuestra red doméstica.
3.5.5 Actualizaciones puntuales en nuestro SO: Son muchas las ocasiones en las que podemos sufrir vulnerabilidades. Todo tipo de programa o sistema operativo puede tener fallos de seguridad que podrían ser explotados por piratas informáticos. Es vital que contemos con todas las actualizaciones necesarias para protegernos. Por un lado, evitaremos que esos fallos sean explotados, pero también mejoraremos el rendimiento de los equipos.
Imagen: ICONOS DE LA SEGURIDAD INFORMÁTICA EN GENERAL Fuente: https://blogs.unitec.mx/content/dam/blogs/imagenes/corp_samara/tips-super-basicos-deseguridad-informatica-5.png
3.6 Procesos De Seguridad Industrial La seguridad industrial es el conjunto de normas obligatorias enfocadas a la prevención y protección de los accidentes laborales capaces de producir daños a las personas, a los bienes o al medioambiente de la institución o empresa. El principal uso de la seguridad industrial consiste en minimizar los accidentes laborales actuando como agente preventivo, pero también cubre la investigación de accidentes en caso de presentarse. Toda empresa o industria deberá tener siempre claros los aspectos de responsabilidad que tiene en relación con sus trabajadores. Para ello, se deberán tomar todas las medidas consideradas como necesarias con el fin de que el ambiente
202 de trabajo cumpla con una serie de normas y condiciones que garanticen que la seguridad y la protección, si no es completa, por lo menos lo es en la mayor medida de lo posible.
3.6.1 ¿Cómo prevenimos los Riesgos Laborales? Todas las empresas deben adoptar la responsabilidad de planificar medidas de protección cumplan la función de minimizar una serie de accidentes futuros. Educar a los individuos mediante cursos de protección civil sobre ciertas precauciones y frente a escenarios donde el riesgo sea inminente, reduce los riesgos y da seguridad al trabajador.
3.6.2 Prevención de Accidentes Utilizar las herramientas y maquinaria de manera adecuada, con los dispositivos de seguridad adquiridos. Colocar de manera correcta todos los materiales o productos a utilizar en el área laboral.
Imagen: ICONO DE ACCIDENTES GENERALES Fuente: https://cdn-icons-png.flaticon.com/512/130/130159.png
3.6.3 Protección contra incendios La protección contra incendios es una de las prevenciones más importantes en la industria ya que si llegara a ocurrir este suceso, pueden perderse muchos bienes materiales. Recomendamos utilizar Extintores portátiles, bocas de incendios equipadas, columna húmeda y centro de alarmas detectoras de fuego.
Imagen: ICONO DE PREVENCIÓN DE INCENDIOS Fuente: https://cdn-icons-png.flaticon.com/512/63/63948.png
3.6.4 Protección ambiental Esta protección se basa en cuidar nuestro ambiente natural, siempre tratando la manera de no contaminar y preservándola del deterioro.
203
Imagen: ICONO DE PROTECCIÓN AMBIENTAL Fuente: https://cdn-icons-png.flaticon.com/512/101/101944.png
3.6.5 Protección de bienes Contribuye a preservar, en el largo plazo, la dignidad de las víctimas del conflicto, así como de las comunidades y las sociedades a las que pertenecen.
Imagen: ICONO DE PROTECCIÓN BIENES Fuente: https://cdn-icons-png.flaticon.com/512/2072/2072729.png
204
Capítulo II 1. Concepto de vida del Software.Por Pablo Sarceño Es la forma en la cual se describen las fases de la creación de un software, iniciando desde una necesidad hasta llegar a la puesta en marcha de una solución y su apropiado mantenimiento. El ciclo de vida para un software comienza cuando se tiene la necesidad de resolver un problema, y termina cuando el programa que se desarrolló para cumplir con los requerimientos deja de ser utilizado. El estándar internacional que regula el método de selección, implementación y monitoreo del ciclo de vida del software es ISO 12207. Este sistema de desarrollo (o ciclo de vida del proceso de software), necesita de varios pasos imprescindibles para garantizar que los programas ofrezcan una buena experiencia al usuario, seguridad, eficiencia, estabilidad y fiabilidad de uso.
Imagen: CICLO DE VIDA DEL SOFTWARE IMAGEN RELACIONADA AL CONCEPTO Fuente: https://www.aplicacionespara.org/wp-content/uploads/2020/11/Ciclo-de-vida-del-software5.jpg
1.1 Fases básicas de la vida del Software 1.1.1 Planificación Esta fase es importante debido a que siempre debemos planificar un producto y siempre debemos tener en cuenta el análisis en los requisitos del producto a planificar.
205
Imagen: ICONO DE PLANIFICACIÓN Fuente: https://cdn-icons-png.flaticon.com/512/3380/3380783.png
1.1.2 Pruebas y Documentación Esta fase está más enfocada al mejoramiento de nuestro software desarrollado. En esta fase nosotros podremos detectar las fallas que tiene nuestro sistema y así poder corregirlas en el menor lapso de tiempo.
Imagen: ICONO DE PRUEBAS Fuente: https://cdn-icons-png.flaticon.com/512/1934/1934025.png
1.1.3 Despliegue, Entrenamiento y Soporte El despliegue comienza cuando el código ha sido suficientemente probado, ha sido probado para su liberación y ha sido distribuido en el entorno de producción. Entrenamiento y soporte para el software es de suma importancia y algo que muchos desarrolladores de software descuidan.
Imagen: ICONO DE SOPORTE Fuente: https://cdn-icons-png.flaticon.com/512/675/675523.png
206
1.1.4 Mantenimiento El mantenimiento y mejora del software con problemas recientemente desplegados puede requerir más tiempo que el desarrollo inicial de software. Es posible que haya que incorporar código que no se ajusta al diseño con el objetivo de solucionar o ampliar la funcionalidad para un cliente. Si los costos de mantenimiento son muy elevados puede que sea oportuno rediseñar el sistema para poder contener los costos de mantenimiento.
Imagen: ICONO DE MANTENIMIENDO Fuente: https://img.icons8.com/wired/512/maintenance.png
2. Tipos de modelos del software.Por Andrés Tobar Ingeniería de software es la aplicación de enfoques sistemáticos y disciplinados al desarrollo de software, para esto se han creado modelos y metodologías para la correcta utilización del tiempo y recursos que una empresa o entidad dispone. Los modelos de desarrollo de software ofrecen un marco de trabajo usado para controlar el proceso de desarrollo de sistemas de información, estos marcos de trabajo consisten en una filosofía de desarrollo de programas la cual debe de contar con las herramientas necesarias para la asistencia del proceso de desarrollo. Entre este tema se encuentran estos tipos de modelo: ● Modelo en cascada o Clásico (modelo tradicional) ● Modelo de prototipos ● Modelo en espiral ● Desarrollo por etapas ● Desarrollo iterativo y creciente o Iterativo e Incremental ● RAD ● Desarrollo concurrente ● Proceso Unificado ● RUP
207
Resumen del Tema El desarrollo de software ha sido históricamente cuestionado debido a problemas asociados a sus resultados finales. Estos inconvenientes dieron origen al concepto de “crisis del software” en 1968, que prácticamente surgió conjuntamente con la creación del software. Una parte importante de la ingeniería de software es el desarrollo de metodologías y modelos para lograr sistemas más eficientes y de mayor calidad, con la documentación necesaria en perfecto orden y en el tiempo requerido. Existen diferentes modelos y metodologías que han sido utilizados en los últimos años como herramientas de apoyo para el desarrollo del software. La interrogante principal está en conocer cuál modelo utilizar en el proceso de desarrollo de software de un proyecto. Para darle solución a este problema se define como objetivo de la investigación proponer alternativas viables a la hora de seleccionar un modelo para el desarrollo de software teniendo en cuenta las características del proyecto.
2.1 Cascada Este es el modelo en el cual se ordena rigurosamente las etapas del desarrollo del software, de esto se obtiene que el inicio de una etapa de desarrollo deba de esperar el fin de la etapa anterior. De esto se obtiene que cualquier error detectado lleve al rediseño del área de código afectado, lo cual aumenta de costo el desarrollo del proyecto.
2.1.1 Función El desarrollo del modelo se atribuye al teórico de la informática Winston W. Royce. Sin embargo, Royce no es el inventor de este modelo. Muy al contrario, en su ensayo de 1970 titulado Managing the Development of Large Software Systems, el teórico presenta una reflexión crítica acerca de los procedimientos lineales. A modo de alternativa, Royce presenta un modelo iterativo incremental en el que cada una de las fases se basa en la anterior y verifica los resultados de esta.
2.1.2 Ejercicio Práctico ● Análisis: Todo proyecto de software comienza con una fase de análisis que incluye un estudio de viabilidad y una definición de los requisitos. ● Diseño: La fase de diseño sirve para formular una solución específica en base a las exigencias, Tareas y estrategias definidas en la fase anterior
208 ● Implementación: La arquitectura de software concebida en la fase de diseño se ejecuta en la fase de implementación, en la que se incluye la programación del software, la búsqueda de errores y las pruebas unitarias. ● Verificación: La fase de prueba incluye la integración del software en el entorno seleccionado. Por norma general, los productos de software se envían en primer lugar a los usuarios finales seleccionados en versión beta (pruebas beta). ● Mantenimiento: Una vez que la fase de prueba ha concluido con éxito, se autoriza la aplicación productiva del software. La última fase del modelo en cascada incluye la entrega, el mantenimiento y la mejora del software.
Imagen: Esta imagen representa como se debe de hacer y el orden en el cual está bien. Fuente: https://www.ionos.es/digitalguide/fileadmin/DigitalGuide/Screenshots_2019/wasserfallmodellES-1.jpg
2.2 Espiral Es el modelo en el cual las actividades se desarrollan en espiral, estas actividades se realizan conforme se van seleccionando de acuerdo al análisis de riesgo.En cada iteración en este modelo, se deberán de tomar en cuenta los objetivos, las alternativas que se deberán de tomar de acuerdo a las características, estas son experiencia personal, requisitos a cumplir, las formas de gestión del sistema, entre otros. Este modelo tiene dos formas en las cuales se debe de planificar el proyecto, la forma angular, la cual indica únicamente el avance del software dentro del proyecto y la forma radial, la cual indica el aumento del costo dado que cada iteración conlleva más tiempo de desarrollo.
2.2.1 Función El proceso pasa por distintas etapas, desde la conceptualización, siguiendo el desarrollo, luego una fase de mejoras, para finalizar con el mantenimiento. En definitiva, el equipo de desarrollo en este modelo de desarrollo en espiral comienza con un pequeño conjunto de requisitos y pasa por cada fase de desarrollo para ese conjunto de requisitos. El equipo de desarrollo agrega la funcionalidad para el
209 requerimiento adicional en espirales cada vez mayores, hasta que la aplicación está lista para la fase de producción.
2.2.2 Ejercicio Práctico
Imagen: En esta gráfica se muestran las partes y sus divisiones de cada tema a escribir en el mismo. Fuente: https://www2.deloitte.com/content/dam/html/es/common-img/img-desarrollo-espiral.png
2.2.3 ¿Cómo elaborarlo? ● Definición de objetivos y alternativas y descripción de las condiciones generales ● Valoración de las alternativas ● Desarrollo y revisión del resultado intermedio ● Planificación del siguiente ciclo
2.3 Prototipo Es similar al modelo por etapas, sin embargo, se diferencia en que, al momento de la crítica o bien retroalimentación por parte del usuario final, no se obtendrán completamente las características del software. Estas se irán descubriendo en el proceso del avance del software, mediante la creación de las diferentes versiones del código. En este modelo, se distinguen las siguientes fases: 1. Especificación conceptual 2. Análisis de requisitos 3. Diseño inicial 4. Codificación y depuración
2.3.1 ¿Cómo elaborarlo? ● Elabora un pequeño documento con: Cliente objetivo, propuesta de valor, funcionalidades y poco más. ● Elabora un esquema visual de las pantallas que va a tener tu software.
210 ● Desarrolla un prototipo de software clickable. (Te garantizo que no hace falta saber
programar.
Te
enseñaré qué herramienta
empleamos
nosotros
habitualmente) ● Da diseño al prototipo, si el proyecto lo requiere. ● Realiza “Entrevistas de solución”. ● Analiza el resultado de las entrevistas.
2.3.2 Ejercicio Práctico
3. UML.Por William Salvador Ingeniería de software es la aplicación de enfoques sistemáticos y disciplinados al desarrollo de software, para esto se han creado modelos y metodologías para la correcta utilización del tiempo y recursos que una empresa o entidad dispone.
Imagen: Todos los diagramas UML. Teoría y Ejemplos Fuente: https://diagramasuml.com/
3.1 Introducción a UML Las siglas UML hacen referencia a Unified Modeling Language, lo que en español significa Lenguaje de Modelado Unificado, como su nombre indica es un lenguaje que está basado en diagramas para la especificación, visualización, construcción y documentación de cualquier sistema complejo.
211 En otras palabras, podemos decir que UML es un lenguaje utilizado para describir modelos, y un modelo es una simplificación de la realidad que construimos para comprender mejor el sistema que queremos desarrollar. UML es una combinación de varias notaciones orientadas a objetos: diseño orientado a objetos, técnica de modelado de objetos e ingeniería de software orientada a objetos. De hecho, UML aprovecha las fortalezas de estos enfoques para presentar una metodología más uniforme que sea más sencilla de usar. Por ende, UML va a representar buenas prácticas para la construcción y documentación de diferentes aspectos del modelado de sistemas de software y de negocios. Es muy importante tener en claro que UML no es un lenguaje de programación, pero existen herramientas que se pueden usar para generar código en diversos lenguajes usando los diagramas UML. Entonces UML mantiene una relación directa con el análisis y el diseño orientado a objetos. Ahora bien, UML como tal es independiente de las metodologías de análisis, diseño y de los lenguajes de programación que son utilizados para la creación de cualquier tipo de software, es importante destacar que se basa en el paradigma de la orientación a objetos. Por tanto, es especialmente adecuado cuando se ataca la construcción de sistemas software desde la perspectiva de la orientación a objetos. UML tiene la ventaja que incorpora toda una serie de diagramas y notaciones gráficas y textuales destinadas a mostrar el sistema desde las diferentes perspectivas, que pueden utilizarse en las diferentes fases del ciclo de desarrollo del software.
3.2 Diagrama de Casos de Uso Este diagrama es una descripción de las acciones de un sistema desde el punto de vista del usuario. Es una herramienta muy valiosa debido a que es considerado como una técnica de aciertos y errores para obtener los requerimientos del sistema, justamente desde el punto de vista del usuario. En otras palabras, estos diagramas modelan la funcionalidad del sistema usando actores y casos de uso. Los casos de uso son funciones provistas por el sistema para sus usuarios.
212
3.2.1 Elementos del diagrama de Casos de uso Sistema: Está representado por un rectángulo, ahora bien, este rectángulo representa los límites del sistema que contiene los casos de uso. Los actores se ubican fuera de los límites del sistema.
Imagen: Sistema Fuente: https://drive.google.com/drive/u/0/recent
Los casos de uso: Está representado por una elipse la cual contiene un texto donde se describe el proceso que lleva a cabo.
Imagen: Casos de uso Fuente: https://drive.google.com/drive/u/0/recent
Los actores: En pocas palabras los actores son los usuarios del sistema que se está desarrollando. Están representados por un stickman.
Imagen: Actores Fuente: : https://drive.google.com/drive/u/0/recent
Las relaciones: Están representadas por una línea la cual une al actor con el caso de uso. Para relaciones entre casos de uso, se utilizan flechas etiquetadas "incluir" o "extender." Una relación "incluir" indica que un caso de uso es necesitado por otro para poder cumplir una tarea. Una relación "extender" indica opciones alternativas para un cierto caso de uso.
213
Imagen: Relaciones Fuente: https://drive.google.com/drive/u/0/recent
Ejemplo En este caso el ejemplo es el de un cajero automático, el cliente del banco, el actor que va a utilizarlo, y el caso de uso, “sacar dinero”. Este último se relaciona con otros dos casos de uso mediante asociaciones de inclusión, a saber, “autenticación” y “control de PIN y cuenta”. Si la autenticación no es válida, no se atenderá la solicitud del cliente. Para que los intentos del cliente no se repitan de manera indefinida, el cajero debe retener la tarjeta cuando el PIN se introduce incorrectamente tres veces. Por lo tanto, para el caso de uso de la “autenticación”, se define un punto de extensión con la condición “PIN incorrecto tres veces”. Si se cumple esta condición, se ejecuta el caso de uso de “retener tarjeta”, relacionado con el caso de uso de la “autenticación” mediante una asociación de tipo extend. Con todos estos elementos, nuestro diagrama de casos de uso tendría este aspecto:
Imagen: Diagrama de Casos de Uso: Estructura y Función Fuente: https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/diagrama-de-casos-de-uso/
3.3 Diagrama de Colaboraciones Este tipo de diagramas nos describen las interacciones entre los objetos en términos de mensajes secuenciados. Estos representan una combinación de información tomada de los diagramas de clases, de secuencias y de casos de uso, describiendo el comportamiento, tanto de la estructura estática, como de la estructura dinámica de un sistema. Una de las características principales de este tipo de diagramas es que no existe una secuencia temporal, es decir que la colocación de los mensajes en el diagrama no indica cuál es el orden en el que se suceden.
214 Debido a esto las colaboraciones de los objetos es un poco más flexible y ayuda a mostrar de mejor forma cuáles son las colaboraciones entre ellos.
3.3.1 Elementos del Diagrama: Rol de la clase: Este elemento describe cómo se comporta un objeto. En este caso los atributos del objeto no se listan.
Imagen: Rol de la clase. Fuente: https://drive.google.com/drive/u/0/recent
Rol de las asociaciones: Describen cómo se comporta una asociación en una determinada situación. Se usan líneas simples etiquetadas con un estereotipo.
Imagen: Rol de las asociaciones Fuente: https://drive.google.com/drive/u/0/recent
Mensajes: Este tipo de diagramas no tienen una manera explícita para mostrar el tiempo, entonces lo que se hace es enumerar los mensajes en el orden de ejecución. La condición para un mensaje se suele colocar entre corchetes. Para indicar un loop se usa * después de la numeración.
Imagen: Mensaje Fuente: https://drive.google.com/drive/u/0/recent
Ejemplo Diagrama de colaboración para el caso de uso: Prestar un ejemplar de una aplicación encargada de los préstamos y reservas de una biblioteca.
215
Imagen: Diagrama de Colaboración-manuel.cillero.es Fuente: https://manuel.cillero.es/doc/metodologia/metrica-3/tecnicas/diagrama-deinteraccion/diagrama-de-colaboracion/
3.4
Diagrama
de
componentes
Por Angel Velásquez Los diagramas de componentes UML representan las relaciones entre los componentes individuales del sistema mediante una vista de diseño estática. En el contexto del UML, los competentes son partes modulares de un sistema independiente entre
sí,
que
pueden
reemplazarse
con
componentes
equivalentes.
Son
autocontenidos y encapsulan estructuras de cualquier grado de complejidad. Los elementos encapsulados solo se comunican con los otros a través de interfaces. Los componentes no solo pueden proporcionar sus propias interfaces, sino que también pueden utilizar las interfaces de otros componentes. Los componentes suelen encapsular clases y, también se los conoce como subformas o especializaciones de clases. Al igual que las clases, tienen una estructura compuesta y pueden definirse en más detalle por medio de atributos, métodos y operaciones, si bien los componentes suelen requerir interfaces para la interacción, una clase también puede acceder directamente a un método. El término” COMPONENTE” en UML tiene una definición muy amplia. Se utiliza para denominar varias partes del sistema, como bases de datos, paquetes, archivos y bibliotecas (Por ejemplo, bibliotecas de enlace dinámico/DLL).
Imagen: Primera aproximación al diagrama de competentes Fuente: https://diagramasuml.com/wp-content/uploads/2018/08/comp9.png
En conjunto, varios componentes forman una arquitectura de sistema más amplia. Los componentes pueden también contener otros componentes y basarse unos en otros,
216 de modo que un componente puede presuponer la existencia de otros componentes (relación de dependencia).
3.4.1 ¿Para qué se utilizan los diagramas de componentes UML? Un diagrama de componentes proporciona una visión general del sistema y documenta la organización de los componentes del sistema y sus dependencias mutuas. Los diagramas de componentes proporcionan una visión orientada a la ejecución, es decir, dan al desarrollador información sobre si un sistema funciona de forma
coherente
y
cumple
sus
tareas
y
objetivos.
Imagen: Diagrama de componentes gestión de biblioteca Fuente: https://diagramaweb.com/wp-content/uploads/2020/09/diagrama-de-componentes.png
3.5 Vistas UML Diagrama de Clases: En ingeniería de software, un diagrama de clases en Lenguaje Unificado de Modelado (UML) es un tipo de diagrama de estructura estática que describe la estructura de un sistema mostrando las clases del sistema. Diagrama de robustez: Sirve de puente para pasar del análisis del diseño. Ayuda a identificar bloques de la estructura. Diagrama de actividades: Muestra el flujo de actividades de un sistema. Un diagrama de actividades muestra el flujo de control general. Es parecido al diagrama de flujos.
Imagen: Implementación de interfaces y la herencia de clases Fuente: https://sekthdroid.files.wordpress.com/2012/08/ejemplo12.jpg
Diagrama de secuencia: Muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada caso de uso. Contiene
217 detalles de implementación del escenario, incluyendo los objetos y clases que se usan para implementar el escenario.
Imagen: Ejemplo de agregación Fuente: https://diagramasuml.com/wp-content/uploads/2018/08/clases3.png
Diagrama de Estado: Es un diagrama utilizado para identificar cada una de las rutas o caminos que puede tomar un flujo de información luego de ejecutarse cada proceso. Permite identificar bajo qué argumento se ejecuta cada uno de los procesos y en qué momento podrían tener una variación. Las vistas muestran diferentes aspectos del sistema modelado. Una vista no es una gráfica, pero sí una abstracción que consiste en un número de diagramas y todos esos diagramas juntos muestran una “fotografía” completa del sistema.
3.6 Diagrama De Objeto El diagrama de objetos fue definido en la ahora obsoleta especificación UML 1.4.2 como “Un gráfico de instancias , incluyendo objetos y valores de datos. Cada diagrama de objetos representa una instancia de un diagrama de clase, muestra una fotografía del estado detallado de un sistema en un punto específico del tiempo”. Muestra
este
diagrama
de
objetos
como
un
diagrama
completamente
independiente del mencionado diagrama de clases.
Imagen: Ejemplo de herencia Fuente: https://diagramasuml.com/wp-content/uploads/2018/08/clases6.png
3.6.1 Elementos del Diagrama de objetos: El diagrama de objetos se compone, principalmente, de los siguientes elementos:
218 ● Objeto: Cada objeto se representa con un rectángulo con su nombre y el de su clase superior subrayados y separados por dos puntos. En caso de ser un objeto anónimo no se escribe su nombre. ● Atributos: De igual forma que el diagrama de clases, se muestra en un compartimento en la parte inferior del nombre del objeto. ● Vínculos: Son asociaciones entre dos objetos y se representan con los mismos elementos que en el diagrama de clases.
Imagen: Backup o subir una copia de seguridad a la nube Fuente: https://empresayeconomia.republica.com
Imagen: Asociación entre dos objetos Fuente: https://diagramasuml.com/wp-content/uploads/2018/11/obj3.png
3.7 Atributos Las clases tienen atributos que representan alguna propiedad de la clase que comparten todos los objetivos. Un atributo es una propiedad nombrada de una clase, que describe un rango de valores que puede tomar es propiedad en las instancias Cada nombre de atributo es único dentro de una clase, diferentes objetos pueden tener los mismo o distinto valores para un atributo dado. Un atributo debería ser un valor de datos, los valores de datos puros, a diferencia de los objetos, no tienen identidad. Los atributos, también conocidos como variables miembros, definen el estado de una clase. Vamos a echarle un ojo a añadir atributos y operaciones a un diagrama UML. Los atributos son las características individuales que diferencian un objeto de otro y determina su apariencia, estado u otras cualidades. Los atributos se guardan en variables denominadas de instancias, y cada objeto. Las variables de instancias también denominados miembros datos, La cuales se aplican a la clase y a todas sus instancias.
219
Imagen: Método Equals Fuente: https://n9.cl/aqjv1
Un atributo es una característica o propiedad de un clase de la cual se puede extraer un valor. Los valores de los atributos definen el estado de una instancia y son los que la hacen diferente de otras instancias un atributo tiene: ● Un nombre: es obligatorio ● Un tipo de datos: es el tipo de datos al que pertenece el atributo.
3.8 Métodos UML es un lenguaje para hacer modelos y es independiente de los métodos de análisis y diseño. Existen diferencias importantes entre u n método y un lenguaje de modelado. Un método es una manera explícita de estructurar el pensamiento y las acciones de cada individuo. Un modelo es expresado en un lenguaje de modelado. Un lenguaje de modelado consiste de vistas, diagramas, elementos de modelo, símbolos utilizados en los modelos y un conjunto de mecanismo generales o reglas que indican cómo utilizar para describir algo y comunicar los resultados del uso del método. Un método orientado a objetos que fusiona mucho del trabajo reciente en métodos orientados a objetos, y además ofrece técnicas específicas para modelar componentes distribuidos. Un método de caso de uso guiado para el desarrollo, creado por Ivar Jacobson.
Imagen: Elementos y símbolos en los diagramas de clases UML Fuente: https://www.webyempresas.com/wp-content/uploads/2021/11/diagrama-de-clases-uml696x448.jpg
Además, el método le dice al usuario qué hacer, cómo hacerlo, y por qué hacerlo; mientras que el lenguaje de modelado carece de estas instrucciones. Los métodos
220 contienen modelos y esos modelos son utilizados para describir algo y comunicar los resultados del uso del método.
Imagen: UML Fuente: http://profesores.fi-b.unam.mx/carlos/aydoo/Image1.gif
Es lo que la clase puede realizar, o que esté (u otra clase) pueden hacer a una clase. Así como es posible adicionar información a los atributos, también se puede hacer en los métodos.
221
Capítulo III 1. Introducción de DB2.Por William Gonzáles Varios profesionales de la industria y usuarios han elogiado las novedosas herramientas que IBM desarrolló para facilitar la gestión y uso de DB2 Mundial Database, construido con base a 2 productos integrados en el DB2 de AIX en 1994: el DB2 Common Server, que para fines en general integraba funcionalidades avanzadas para el mercado de servidores de bases de datos con soporte de hardware SMP y OLTP; y el DB2 Parallel Edition, que fue creado para tolerar aplicaciones de enorme escala, como el Data Warehousing y Data Gato y aplicaciones de negocios en todo el mundo como la SAP, People Soft y Baan. DB2 incluye todo lo primordial para llevar a cabo una solución de replicación de datos en cualquier tipo de ambiente compartido o heterogéneo, puesto que posibilita mandar los datos a cualquier lugar para cubrir todos los requerimientos de una compañía, a partir de oficinas centrales a sucursales, usuarios móviles, proveedores, consumidores y aliados de negocios.
Imagen: DB2 Fuente: https://th.bing.com/th/id/OIP.drGk0yhmRzzH7JcTDtdlBgAAAA?pid=ImgDet&rs=1
Debido a su alcance universal y de bajo precio, Internet podría ser una solución de negocios bastante poderosa para hacer operaciones comerciales garantizando un grado de estabilidad y fiabilidad con sus servicios de autorización y autenticación incluidos a redes y sistema operativos, aguantando el network−computing usando Java y JDBC, incluyendo capacidad nativa de guardar diversos tipos de datos: alfanuméricos, clip de video, imagen, audio y los definidos por el cliente. DB2 y SQL Server tenían monumentales compañías detrás con otros negocios que les permitió soportar la política agresiva de Oracle.
222
Imagen: IBM DB2 Fuente: https://th.bing.com/th/id/R.4ce43169a1d8c181add1e7fd8d1223f9?rik=WOmJxb0yHjit5g&pid=ImgRaw &r=0
2. Instalación del Servidor DB2 En esta labor se explica cómo empezar el Ayudante de instalación de Db2 en los sistemas operativos Linux y UNIX. El Ayudante de instalación de Db2 se usa para conceptualizar las preferencias de instalación y para instalar el producto de base de datos Db2 en el sistema. Si va a instalar el Db2 pureScale Feature, consulte el asunto Instalación de un Db2 pureScale environment. DB2 consta de una aplicación compradora que se utiliza para hacer una migración de DB2 a SQL Server y Azure SQL Database. Además, tiene un paquete de extensiones que admite la migración de datos y la utilización de funcionalidades del sistema DB2 en las bases de datos migradas. Instale la aplicación compradora en los equipamientos a partir del que realizará los pasos de migración.
El programa debería ser descargado a partir de IBM Passport Advantage o a partir del Programa Access Catalog dependiendo si quien descarga el programa es un comprador o un partner de IBM. El documento descargado será un.tar.gz, el mismo se debería descomprimir en una localización temporal (ej.: /tmp/ibm). El servidor DB2 se ocupa de actualizar las fronteras del kernel automáticamente, empero estas modificaciones se pierden después de reiniciar el sistema operativo. Un punto de optimización va a ser cambiar
223 las fronteras con valores apropiados según las propiedades del ámbito, consulte Requisitos de los límites del kernel (Linux) en la parte de referencias. Cada réplica de instalación tiene una lista de archivos históricos libre. Si se descarta una réplica de instalación, los archivos históricos de dicha vía de instalación además se eliminarán.
3. Instancias de DB2 La instancia es un ámbito de administración de base de datos lógica donde puede clasificar la base de datos y entablar límites de configuración. Con base en necesidades, puede generar numerosas instancias en un servidor, y el servidor da un ámbito de servidor de base de datos exclusivo para cada instancia. Directorio de instancia: este directorio tiene archivos de configuración del administrador de base de datos, directorio de base de datos del sistema, directorio de nodos, directorio de servicio de conexión de base de datos y todos los registros de diagnóstico y archivos de volcado. El directorio de instancias cambia conforme con la versión del sistema operativo Windows. Para revisar el directorio establecido en Windows.
Imagen: Instancia DB2 Fuente: https://desktop.arcgis.com/es/arcmap/10.3/manage-data/gdbs-in-informix/GUID-45DDC693264D-42BE-B049-EE6364AEFFA8-web.png
Al instalar el DB2 en nuestras propias máquinas se crea una instancia por default llamada DB2 o db2inst1 en los sistemas operativos Linux empero ¿Qué son estas instancias? Prácticamente una instancia es un ambiente libre donde tienen la posibilidad de ejecutar aplicaciones y en esta situación crearse bases de datos. Para describir mejor esto usaré ejemplos de IBM db2 para que se comprenda mejor.
224 Una de los beneficios de las instancias es que tienen la posibilidad de generar algunas en un servidor de datos pudiendo ofrecer un uso distinto a cada una. A qué me refiero con esto puesto que un caso muestra es que una instancia puede tener las bases de datos que se utilizan para la producción, otra para los ambientes de pruebas y otra para el ambiente de desarrollo.
Imagen: Instancia DB2 Fuente: https://desktop.arcgis.com/es/arcmap/10.3/manage-data/gdbs-in-informix/GUID-45DDC693264D-42BE-B049-EE6364AEFFA8-web.png
Las instancias son independientes una de otra por lo cual cualquier operación que se haga en una de ellas, no perjudica a las demás. En DB2 si queremos generar una totalmente nueva instancia se utiliza el comando db2icrt *nombre de la instancia que le deseamos dar* este nombre debería ser de más alto 8 letras y números. Ejemplificando para producir una totalmente nueva instancia con el nombre myinst poseemos que realizar el siguiente comando: db2icrt myinst.
4. Bases de datos de DB2.Por William Guzmán Db2 es una familia de productos de sistemas de gestión de bases de datos (DBMS) de IBM que sirven a varias plataformas de sistemas operativos (SO) diferentes. Utilizado por organizaciones de todos los tamaños, Db2 proporciona una plataforma de datos para operaciones tanto transaccionales como analíticas, así como disponibilidad continua de datos para mantener los flujos de trabajo transaccionales y los análisis operando de manera eficiente. Ventajas de base de datos DB2 ● La
compresión
procesable
puede
ofrecer
ahorros
de
espacio
de
almacenamiento sin sacrificar el rendimiento. Se pueden evaluar muchos predicados de consulta sin tener que descomprimir los datos. ● HTAP, es acelerado por el almacén de columnas Db2 BLU con una sola instrucción, datos múltiples o SIMD, tecnología de explotación y omisión de datos en plataformas LUW y por IBM Db2 Analytics Accelerator en z/OS. Desventajas de base de datos DB2
225 ● Un desajuste de impedancia entre orientado a objetos (OO) y relacional significa que el mapeo relacional de objetos es necesario para que los programas de aplicación OO, como Java, accedan a los datos. ● El
modelo
relacional
requiere
un
esquema
rígido
que
no
encaja
necesariamente con algunos tipos de desarrollo moderno. Los sistemas de bases de datos NoSQL cubren áreas específicas para las que el RDBMS no es adecuado. ● Db2 no se escala tan bien horizontalmente como NoSQL debido al modelo de coherencia que utiliza, pero puede escalar verticalmente agregando CPU y memoria. ● Debido a que hay más usuarios de sistemas de bases de datos como Oracle y Microsoft SQL Server, puede resultar difícil encontrar profesionales de DB2 con talento y conocimientos.
Imagen: Bases de datos db2 Fuente: https://2.bp.blogspot.com/-6_XcsTRT7L4/VLopN3fqoI/AAAAAAAAE6U/GiIUDzGX7XY/s1600/3.JPG
5. Buffer pools de DB2 Un grupo de búfer es un área de la memoria principal que ha sido asignada por el administrador de la base de datos con el fin de almacenar en el caché los datos de la tabla e inicie a medida que se leen del disco. Cada base de datos de Db2 debe tener una agrupación de almacenamientos intermedios. Cada
nueva
base
de
datos
tiene
definida
una
agrupación
de
almacenamientos intermedios predeterminada, denominada IBMDEFAULTBP. Se pueden crear, descartar y modificar agrupaciones de almacenamiento intermedio Las instrucciones Buffer CREATE BUFFERPOOL, DROP BUFFERPOOL y ALTER BUFFERPOOL. La vista de catálogo SYSCAT.BUFFERPOOLS accede a la información de las agrupaciones de almacenamiento intermedio definidas en la base de datos. Cada miembro tiene su propia agrupación de LBP (almacenamiento intermedio local). Sin embargo, hay una agrupación de almacenamiento intermedio de grupo
226 adicional que mantiene la función de almacenamiento en caché del clúster. La GBP es compartida por todos los miembros.
Imagen: Buffer Fuente: https://higherlogicdownload.s3.amazonaws.com/IDB2UG/SociousInlineImages/1ef046cb30ba4974ae7 eafcded173eb4_cmwqrgdz.jpg
6. Tablespaces de DB2 Un espacio de tablas de Db2 es un conjunto de volúmenes en discos que contienen los conjuntos de datos en los que se almacenan realmente las tablas. Un espacio de tabla consta de una serie de conjuntos de datos lineales VSAM. Los espacios de tabla se dividen en unidades de igual tamaño, llamadas páginas . Cada página se lee desde el disco al grupo de búfer asignado, o se escribe desde el grupo de búfer al disco, en una sola operación. El tamaño de la página está controlado por el grupo de búfer que asigna al espacio de tablas (4 KB, 8 KB, 16 KB o 32 KB de tamaño) para los datos. El tamaño de página predeterminado es de 4 KB. Los datos en la mayoría de los espacios de tabla se pueden comprimir, lo que le permite almacenar más datos en cada página de datos. Puede dejar que Db2 cree y gestione el espacio de tablas por usted emitiendo una sentencia CREATE TABLE que no especifique un espacio de tablas existente. Db2 crea un espacio de tabla de partición por crecimiento o partición por rango. Las ventajas de tablespaces particionados, donde pueden tener una capacidad mayor a 64Gb, y tablespaces segmentados que tienen el beneficio de gestión de los space maps dentro de cada partición.
Imagen: Tablespaces de Db2 Fuente: https://technowizardz.files.wordpress.com/2012/07/listtablspace.jpg
7. Grupos de Almacenamiento de DB2.-
227
Por Francisco Pérez Un conjunto de rutas de almacenamiento para almacenar la tabla u objetos de la base de datos es un grupo de almacenamiento. En DB2 se pueden asignar los espacios de tabla al grupo de almacenamiento, Cuando crea una base de datos, todos los espacios de tabla toman el valor predeterminado de almacenamiento.
Imagen: Pila de datos de almacenamiento Fuente: https://www.freepng.es/hd-png/la-base-de-datos.html
Cuando se crea una nueva base de datos, el grupo de almacenamiento predeterminado está activo, si pasa el parámetro y al final del comando "create database". La base de datos no tiene ningún grupo de almacenamiento predeterminado. En almacenamiento intermedio: tenemos bufferpool, pero ¿qué es bufferpool en db2? En db2, bufferpool es una parte del espacio de la memoria principal que asigna el administrador de la base de datos. El propósito de los bufferpools es almacenar en caché la tabla y los datos de índice del disco. Todas las bases de datos tienen sus propios bufferpool, pero esto es otro dato porque en realidad el tamaño intermedio de los datos se basan en diferentes opciones donde el tamaño de página predeterminado de un grupo de almacenamiento intermedio es de 4 kb.
7.1 Crear un grupo de almacenamiento Aquí hay una sintaxis para crear un grupo de almacenamiento en la base de datos: Para crear un nuevo grupo de trabajo. El New foreground indica el nombre del nuevo grupo de almacenamiento e indica la ubicación donde se almacenan los datos que conocemos como tablas. Imagen: Código fuente creación de tablas Fuente: https://isolution.pro/es/t/db2/db2-indexes/db2-indices
228 Para otros nombres denominamos almacenamiento en base de los objetos y en esta el resguardo es para las grandes cantidades que se tienen su extensión es tan grande que para tener las divisiones los datos no son estructurados estos se ajustan a las cantidades de lo que nosotros queremos por lo tanto le llamaremos a estos aspectos filas y columnas de datos Hoy en día, las organizaciones y los usuarios requieren almacenamiento de datos para satisfacer las necesidades computacionales de alto nivel actuales, como proyectos de big data, inteligencia artificial, machine learning e Internet de las cosas . Y el otro lado de requerir grandes cantidades de almacenamiento de datos es protegerse contra desastres llamados copias de seguridad de datos.
8. Esquemas en DB2 La relación de esquemas en DB2 es una colección de objetos con nombre que se clasifican lógicamente en la base de datos. En una base de datos, no es posible crear varios objetos de base de datos con el mismo nombre., para ello, el esquema proporciona un entorno de grupo se puede crear varios esquemas en una base de datos, así como varios objetos de base de datos con el mismo nombre, con diferentes grupos de esquemas.
Imagen: Entrada y salida en las bases db2 Fuente: http://www.dataprix.com/files/uploads/32image/Mineria%20de%20datos%20aplicada%20a%20la%20e ncuesta%20permanente%20de%20hogares/capitulo2/fig_2_13.png
Un esquema puede contener tablas, funciones, índices, tablas, procedimientos, disparadores, entre otros Por ejemplo si se crean dos esquemas diferentes llamados Entrada y salida para una base de datos de nombre empleados está en realidad quiere darnos a entender 2 de los puntos más importantes las pilas y colas los últimos en entrar son los primeros en salir También puede crear dos tablas diferentes con el mismo nombre Empleado, donde una tabla tiene información regular y la otra tiene información de tiempo parcial del empleado y crear una conexión
229
Imagen: Representación de los esquemas en db2 columnas Fuente: https://www.javatpoint.com/db2-tutorial
Para la misma creación de esta vamos a aplicar los siguientes puntos ● Insert into créate DATABASE ● Establece esquema <NombreEsquema> ● Establecer esquema =cambiado_esquema ● Insertar los valores requerido por el procedimiento ● Usaremos de ejemplo nombres, números y el ID ● Y por último a estos valores le agregamos un llave primaria que identifica la propiedad
Imagen: Esquema Representativo de una tabla en bases de datos Fuente: https://www.ibm.com/docs/es/SSEPEK_11.0.0/intro/src/art/db2z_applicationprep.gif
9. Tipos de datos y tablas en DB2 En las tablas de DB2 Database, cada columna tiene su propio tipo de datos según los requisitos del desarrollador. Se dice que el tipo de datos es el tipo y el rango de los valores en las columnas de una tabla Por ejemplo los datos incorporados que va a manejar son: Datetime ● HORA: Representa la hora del día en horas, minutos y segundos. ● TIMESTAMP: Representa siete valores de fecha y hora en forma de año, mes, día, horas, minutos, segundos y microsegundos. ● FECHA: Representa la fecha del día en tres partes en forma de año, mes y día.
230
Imagen: Nota: Contador de tiempo calendario Fuente: https://www.saberalgodetodo.com/wp-content/uploads/calendario.jpg
Datos: ● CHAR longitud fija: longitud fija de cadenas de caracteres. ● VARCHAR: cadenas de caracteres de longitud variable. ● CLOB: cadenas de objetos grandes, se usa cuando una cadena de caracteres puede exceder los límites del tipo de datos VARCHAR
Imagen: Un ingeniero datos columnas y filas en Db2 datos null y full Fuente: jose-gaitan.blogspot.com
Para lo que son los datos Numéricos se tienen otros: Entero binario ● SMALLINT 16BIT: al usar esto, puede insertar pequeños valores int en columnas ● INTEGER 32BIT: al usar esto, puede insertar valores int grandes en columnas ● BIGINT 64BIT: al usar esto, puede insertar valores int más grandes en las columnas Decimal ● DECIMAL: de tipo díez ● FLOAT: sobre el decimal con esto, puede insertar números de coma flotante decimal. Puntos flotantes ● REAL: con este tipo de datos, puede insertar números de punto flotante de precisión simple. ● DOUBLE: con este tipo de datos, puede insertar números de coma flotante de doble precisión.
231 Imagen: 32 y 64 bits imagen representación 1 Fuente: https://softvi.info/wp-content/uploads/2014/03/32-Bit-and-64-Bit.jpg
10. Tablas DB2 Las tablas son una estructura lógica mantenida por el administrador de la base de datos. En una tabla, cada bloque vertical se llama columna y cada bloque horizontal se llama fila; La colección de datos almacenados en forma de columnas y filas se conoce como tabla, en las tablas, cada columna tiene un tipo de datos diferente, las tablas se utilizan para almacenar datos persistentes tipo de tablas
Hay diferentes tipos de tablas base, que incluyen: ● Tablas regulares: las tablas de propósito general, las tablas comunes con índices son tablas de propósito general. ● Tabla de agrupamiento multidimensional: este tipo de tabla se agrupa físicamente en más de una clave y se usa para mantener grandes entornos de bases de datos. Este tipo de tablas no se admiten en DB2 .
Imagen: Tablas y filas llave primaria 1 Fuente: https://www.javatpoint.com/db2-instances
● Insertar tabla de agrupamiento de tiempo: similar a las tablas de agrupamiento, las filas se agrupan en el momento en que se insertan en las tablas. Pueden ser tablas particionadas. Ellos tampoco son compatibles con el entorno DB2 ● Tablas temporales: el historial de una tabla en una base de datos se almacena en tablas temporales, como detalles de las modificaciones realizadas anteriormente.
Imagen: Reposte de datos ingresados 1 Fuente: https://www.ibm.com/docs/SSLVMB_28.0.0/pdf/es/IBM_SPSS_Custom_Tables.pdf
232
11. Alias DB2.Por Dylan Solares Un alias es un sustituto del nombre de tres partes de una tabla o vista. Se puede definir en un servidor local y puede hacer referencia a una tabla o vista que se encuentra en el servidor actual o en un servidor remoto. El nombre de alias se puede usar siempre que el nombre de la tabla o el nombre de la vista se pueda usar para hacer referencia a la tabla o la vista en una instrucción SQL. Un alias puede tener un máximo de 128 caracteres, calificado por un ID de propietario. Utilice las declaraciones CREATE ALIAS y DROP ALIAS para administrar los alias.
Imagen: Alias DB2 Fuente: https://www.db2tutorial.com/db2-basics/db2-alias/
El objeto para el que está definiendo un alias no necesita existir cuando ejecuta la sentencia CREATE ALIAS. Sin embargo, el objeto debe existir cuando se ejecuta una declaración que hace referencia al alias. Cuando desee que una aplicación acceda a un servidor que no sea el servidor especificado por un nombre de ubicación, no necesita cambiar el nombre de la ubicación. Puede acceder a varias bases de datos de Db2 que tienen el mismo nombre, pero diferentes direcciones de red. Los alias de ubicación permiten una migración más sencilla a un servidor Db2 y minimizan los cambios en la aplicación. Después de crear un alias, cualquier persona que tenga autoridad sobre el objeto al que hace referencia el alias puede usar ese alias. Un usuario no necesita un privilegio separado para usar el alias.
12. Restricciones DB2 Se definen restricciones de referencia entre una clave foránea y su clave padre. Antes de empezar a definir las relaciones y restricciones de referencia, debe
233 comprender qué hace Db2 para mantener la integridad de referencia. Debe comprender las reglas que sigue Db2 cuando los usuarios intentan modificar la información de columnas implicadas en las restricciones de referencia. Para mantener la integridad de referencia, Db2 impone restricciones de referencia en respuesta a cualquiera de los sucesos siguientes: ● Una inserción en una tabla dependiente ● Una actualización en una tabla padre o una tabla dependiente ● Una supresión de una tabla padre Al definir restricciones, dispone de las opciones siguientes: ● CASCADE: Db2 propaga la acción a los dependientes de la tabla padre. ● NO ACTION: Se produce un error y Db2 no realiza ninguna acción. ● RESTRICT: Se produce un error y Db2 no realiza ninguna acción. ● SET NULL: Db2 coloca un valor nulo en cada columna anulable de la clave foránea que hay en cada dependiente de la tabla padre. Por lo tanto, debería tener en cuenta las restricciones en la definición de reglas de supresión y en el uso de determinadas sentencias. Las restricciones están relacionadas con las siguientes sentencias de SQL: CREATE TABLE, ALTER TABLE, INSERT, UPDATE, MERGE y DELETE. Debería utilizar este tipo de restricción de referencia únicamente cuando un proceso de aplicaciones comprueba los datos en una relación de integridad de referencia. ● Reglas de inserción: Las reglas de inserción para integridad de referencia se aplican a tablas padre y dependientes. ● Reglas de actualización: Las reglas de actualización para integridad de referencia se aplican a tablas padre y dependientes. ● Reglas de supresión: Las reglas de supresión, que se aplican a tablas padre y dependientes, constituyen una parte importante de la integridad de referencia de Db2.
Imagen: Restricciones DB2 Fuente: https://learntutorials.net/es/db2/topic/9381/informacion-de-restriccion-de-db2
234
13. Diseño de índices para mejorar el rendimiento DB2 Los índices pueden proporcionar un acceso a datos eficaz en muchas situaciones, y Db2 los utiliza para otros fines también. Sin embargo, también hay algunos costes asociados con la creación y el mantenimiento de índices, y es necesario tener en cuenta dichos costes en el diseño de la base de datos. Procedimiento: ● Los índices requieren espacio de almacenamiento. Los índices rellenados necesitan más espacio que los índices no rellenados para las claves de índice largas. ● Cada índice necesita un espacio de índice y un conjunto de datos, o tantos conjuntos de datos como el número de particiones de datos si el índice está particionado, y existen restricciones de sistema operativo en el número de conjuntos de datos abiertos. ● Los índices se deben cambiar para reflejar cada operación de inserción o supresión en la tabla base. ● Los índices se pueden crear automáticamente cuando se cargan los datos, pero este proceso requiere tiempo. Se deben recuperar o volver a crear si se recupera el espacio de tabla subyacente, lo que puede tardar tiempo. Información de esta área: ● Elección de tamaños de página de índice: Con la sentencia CREATE INDEX, puede especificar tamaños de agrupación de almacenamiento intermedio de 4 KB, 8 KB, 16 KB y 32 KB para índices. ● Reserva de espacios libres para índices: Es posible reducir los problemas de rendimiento que se producen por causa de divisiones de página de índice si se reserva espacio libre al reorganizar los índices. ● Eliminación de índices de particionamiento innecesarios: Puede recuperar el espacio que utilizan los índices particionados mediante la conversión a particionamiento controlado por tabla. Un índice de particionamiento necesita tantos conjuntos de datos como el espacio de tabla particionado. ● Índices para evitar clasificaciones: Además de proporcionar un acceso selectivo a datos, los índices también pueden ordenar datos y, a veces, eliminar la necesidad de clasificar los datos.
235 ● Eliminación de índices creados para evitar clasificaciones: Los índices que se definen solo para impedir una clasificación para consultas con una cláusula ORDER BY son innecesarios si Db2 puede realizar una exploración hacia atrás de otro índice para impedir la clasificación.
Imagen: Índices DB2 Fuente: https://programmerclick.com/article/63941510495/
14. Disparadores DB2 Un disparador define un conjunto de acciones que se ejecutan cuando se produce una operación de eliminación, inserción o actualización en una tabla o vista especificada. Los disparadores básicos admiten un conjunto limitado de sentencias SQL y requieren la cláusula MODE DB2SQL en la sentencia CREATE TRIGGER, los valores en blanco en la columna SQLPL identifican los disparadores básicos. Los activadores avanzados admiten un conjunto más amplio de instrucciones SQL, incluido el lenguaje de procedimientos SQL (SQL PL). Puede usar disparadores junto con restricciones referenciales y verificar restricciones para hacer cumplir las reglas de integridad de datos. Los disparadores son más poderosos que las restricciones porque puede usarlos para hacer lo siguiente: ● Actualizar otras tablas ● Genere o transforme automáticamente valores para filas insertadas o actualizadas ● Invocar funciones que realizan operaciones tanto dentro como fuera de Db2 El activador puede sustituir un valor válido e invocar un procedimiento que envía un aviso a un administrador sobre el intento de actualización no válida. Mueven la lógica de la aplicación de reglas de negocios a la base de datos, lo que da como resultado un desarrollo de aplicaciones más rápido y un mantenimiento más sencillo. Los disparadores se definen con la instrucción CREATE TRIGGER. ● El administrador de la base de datos garantiza que la operación y los disparadores que se ejecutan como resultado de esa operación se completan
236 o se restituyen. Las operaciones que ocurrieron antes de la operación de activación no se ven afectadas. ● El administrador de la base de datos verifica efectivamente todas las restricciones (excepto una restricción con una regla de eliminación RESTRICT) después de que se hayan ejecutado la operación y los activadores asociados.
Imagen: Disparadores DB2 Fuente: https://es.slideshare.net/Kamisutra/db2-ibm
15. Secuencias DB2 Es un objeto almacenado que permite generar una secuencia de números en forma ascendente o descendente. Aunque hay similitudes con una columna IDENTITY, la principal diferencia es que mientras la columna IDENTITY se define dentro del ámbito de una tabla, una SEQUENCE no está ligada a una sola tabla, por lo que puede ser usada desde varias. Esto permite usar la SEQUENCE para generar una clave primaria y coordinarse entre registros de distintas tablas. Se llega a definir una columna de una tabla con IDENTITY, para que de esa forma se nos autogeneren valores y no tengamos que preocuparnos de realizar el típico SELECT MAX. Otro método un poco más desconocido para realizar esto son las SEQUENCES.
Imagen: Secuencias DB2 Fuente: http://www.consultoriocobol.com/2013/12/db2-sequences.html
237 Las principales características de una secuencia son: ● Garantiza valores únicos. ● Genera valores de forma creciente o decreciente dentro de un rango. ● Puede incrementar valores en más de 1 unidad ● Si se produce un error en DB2 la secuencia se reconstruye a partir del log, lo que garantiza que se seguirán generando correctamente los valores tras un fallo.
Capítulo IV 1. Windows Server 2012.Por Robinson Dávila Windows Server 2012 es un sistema operativo destinado a servidores lanzado por Microsoft. Es la versión para servidores de Windows 8 y es el sucesor de Windows Server 2008 R2. El software está disponible para los consumidores desde el 4 de septiembre de 2012. Windows Server 2012 no tiene soporte para computadoras con procesadores Intel Itanium y se venden cuatro ediciones. La primera beta de Windows Server 2012 fue llamada Developer Preview, destinada a los desarrolladores. La beta para consumidores se lanzó junto a la versión beta de Windows 8 para consumidores el 29 de febrero de 2012, sus novedades son: ● Mejora de la fiabilidad de las estructuras en disco. ● Capacidad de resiliencia incorporada. ● Compatibilidad con las APIs y tecnologías existentes.
238 ● Limitaciones de ReFS frente a NTFS. Los principales requisitos son: ● Arquitectura de procesador: x64 (64 bit). ● Procesador: 1,4 GHz. ● Memoria RAM: 512 MiB. ● Espacio libre en disco duro: 32 GB (más si hay 16 GB o más de RAM). ● DVD-ROM. ● Monitor SVGA con resolución 800×600 o superior. ● Teclado. ● Mouse o dispositivo apuntador compatible Una característica a tomar en cuenta es que Windows Server 2012 es que el asistente de instalación de los Servicios de Dominio de Active Directory se ha reemplazado por una nueva sección en el Administrador de Servidores, y el Centro Administrativo de Active Directory se ha mejorado. Y su fecha de lanzamiento inicial fue el 4 de septiembre de 2012.
Imagen: Logotipo de Windows Server 2012 Fuente: https://www.kemik.gt/comprar/microsoft-windows-server-2012-r2-essentials-edition-licencia-2procesadores/
2. Diseño de la red Se refiere a diseñar un proyecto para la instalación y montaje de un conjunto de medios, tecnologías, protocolos necesarios para el intercambio de información entre los usuarios de la red. Como en todo proceso de comunicación, se requiere de un emisor, un mensaje, un medio y un receptor. La finalidad es compartir los recursos y la información en la distancia, asegurar la confiabilidad y la disponibilidad de la información y aumentar la velocidad de transmisión de los datos.
239
Imagen: Diseño de redes de datos y telecomunicaciones Fuente: https://casandrasoft.com/diseno-de-redes-de-datos-ytelecomunicaciones/#:~:text=El%20dise%C3%B1o%20de%20redes%20de,intercambio%20de%20inform aci%C3%B3n%20entre%20los
En el diseño de la red tenemos algunos conceptos básicos como: ● Telecomunicaciones: Comunicación por medios electrónicos, generalmente a cierta distancia. Se puede transmitir, voz, datos, imágenes y video. ● Redes: Dos o más computadoras enlazadas para compartir datos o recursos. ● Sistema de telecomunicaciones: Conjunto de hardware y software que actúa conjuntamente para comunicar información de un lugar a otro. ● Protocolo: Conjunto de reglas y procedimientos que regulan la transmisión entre los componentes de una red. ● Topología: Forma o configuración de una red. Entre las ventajas que trae un correcto diseño e implantación de red y telecomunicaciones podemos tener: ● Incremento en la productividad del personal. ● Optimización del presupuesto en comunicaciones. ● Mayor integración entre las distintas secciones que conforman una empresa. ● Disminución de riesgo de pérdida de datos. Tenemos 2 tipos de transmisión de datos por medio de la red que son: ● Transmisión analógica: Se caracterizan por el continuo cambio de amplitud de la señal. ● Transmisión digital: Es la transferencia física de datos por un canal de comunicación punto a punto o punto a multipunto.
3. Creación Inicial de la red.Por Edwin de León ¿Cómo nació la red de internet?
240 Los orígenes de Internet se remontan a la década de 1960. Durante la Guerra Fría, Estados Unidos creó una red militar especializada con el objetivo de hacer accesible la información militar desde cualquier lugar del país en caso de un hipotético ataque ruso. La red se creó en 1969 y se denominó ARPANET.
Imagen: Red interconectada en la guerra fría. Fuente: https://www.muyhistoria.es/contemporanea/articulo/internet-hija-de-la-guerra-fria691487081931
Historia de Internet: ARPA En los años siguientes, la investigación continuó hasta 1969, cuando Michel Elie, considerado uno de los pioneros de Internet, ingresó a la Universidad de California, Los Ángeles (UCLA) y recibió una beca de investigación para unirse a ARPA. A finales de año, la computadora de la UCLA se conectó a otra computadora del SRI (Stanford Research Institute). En poco tiempo, ya había cuatro universidades estadounidenses interconectadas. La red se llamó ARPANET, y el objetivo de este desarrollo era mantener las comunicaciones ante la incertidumbre y el miedo de la época en caso de guerra. La red se ha expandido desde las instituciones militares hasta las universidades y los programas de defensa del país, y se está fortaleciendo. Los científicos lo utilizan y desarrollan para permitir también compartir opiniones y permitir la colaboración en el trabajo. Para 1972, había consolidado 50 universidades y centros de investigación repartidos por los Estados Unidos. A medida que floreció la comercialización de computadoras, aumentó la cantidad de computadoras en red y aparecieron otras redes a partir de la década de 1980 y, como podemos imaginar, se creó confusión debido a la variedad de formatos de computadoras en red. Una vez unificada y consolidada, nació Internet.
Imagen: Red de computadoras que prácticamente inició lo que hoy conocemos como internet. Fuente: https://www.timetoast.com/timelines/historia-del-internet-e-introduccion-a-html-79af6ff3-f6e3496d-8dcf-3cddd8d8ee72
4. Instalación de Windows Server 2012
241 El primer paso es descargar el ISO de este Sistema Operativo en la página de Microsoft, que nos ofrece una evaluación de 180 días sin costo.
Imagen: Descarga de la iso en la página de Microsoft. Fuente: http://blogs.itpro.es/driverafer/2012/09/09/como-instalar-windows-server-2012/
Seleccionamos el idioma que como Yo lo estoy instalando en español ya me aparece en idioma que va a instalar aparece español, el formato de Hora y moneda Español y teclado o método de entrada Español no hay que modificar nada ya viene todo configurado predeterminada. 1. Hacemos click en siguiente:
Imagen: Selección de lenguaje. Fuente: http://blogs.itpro.es/driverafer/2012/09/09/como-instalar-windows-server-2012/
2. Hacemos click en instalar ahora:
Imagen: Presionar el botón de instalar para continuar con el proceso. Fuente: http://blogs.itpro.es/driverafer/2012/09/09/como-instalar-windows-server-2012/
3. Escribimos la clave de Producto le hacemos Clic a Siguiente:
Imagen: Ingreso de la clave de acceso. Fuente: http://blogs.itpro.es/driverafer/2012/09/09/como-instalar-windows-server-2012/
242 4. Seleccionamos el sistema operativo, si queremos con Entorno Gráfico seleccionamos (Servidor con una GUI) en caso contrario si queremos sin entorno gráfico seleccionamos (instalación Server Core) 5. Seleccionamos la versión y hacemos clic en siguiente. 6. Leemos los términos de la licencia cosa que nadie o casi nadie lo hace, hacemos un clic en acepto los términos y le hacemos otro click a siguiente.
Imagen: Aceptación de los términos y condiciones. Fuente: http://blogs.itpro.es/driverafer/2012/09/09/como-instalar-windows-server-2012/
7. Seleccionamos
que
queremos
hacer:
Una actualización: los archivos, las configuraciones y aplicaciones se migran a la nueva versión de Windows y no se pierden aplicaciones ni sus configuraciones. Personalizada: es una instalación limpia no se migran los archivos, las configuraciones
ni
las
aplicaciones.
En mi instalación seleccionamos personalizada es una instalación limpia.
Imagen: Seleccionar actualización dependiendo del casos Fuente: http://blogs.itpro.es/driverafer/2012/09/09/como-instalar-windows-server-2012/
8. Seleccionamos donde vamos a instalar, y hacemos clic en siguiente
243
Imagen: Seleccionar lugar de instalación. Fuente: http://blogs.itpro.es/driverafer/2012/09/09/como-instalar-windows-server-2012/
9. Después
de
reiniciar.
Ahora nos pide la contraseña del administrador, la ponemos.
Imagen: Ingresar usuario y contraseña del administrador. Fuente: http://blogs.itpro.es/driverafer/2012/09/09/como-instalar-windows-server-2012/
10. Arranca el S.O todo correcto ya tenemos el S.O instalado.
Imagen: Arranque del S.O normalmente. Fuente: http://blogs.itpro.es/driverafer/2012/09/09/como-instalar-windows-server-2012/
11. Después de arrancar el S.O correctamente se carga automáticamente el administrador del servidor.
244 Imagen: Cargar el sistema de Windows Server con normalidad. Fuente: http://blogs.itpro.es/driverafer/2012/09/09/como-instalar-windows-server-2012/
5. Instalación de Servidores DHCP.Por Brandon Díaz 5.1 ¿Qué son los servidores DHCP? Antes de proceder con la instalación debemos conocer qué es un DHCP, Las siglas de Dynamic Host Configuración Protocolo, o en español Protocolo de Configuración Dinámica de equipos, Este tipo de servidores pueden llegar a asignar una ip diferente a cada uno de los diferentes equipos que se conecten a él y también poderle asignar un rango de IP disponibles a las cuales se puedan conectar en el área que se trabajara como clientes en el dominio. Haciendo más fácil lo que es la asignación de IPs que en una red LAN, Esta puede llegar a recabar los datos de los clientes conectados a la red, que son: ● Dirección IP ● Máscara de subred ● Puerta de enlace ● Servicio DNS Ya que sabemos que es un DHCP podemos proseguir a la instalación.
5.2 Instalación del servidor DHCP Windows Server Antes de iniciar la instalación del DHCP tomemos en cuenta que tenemos que tener el servidor DNS instalado en nuestro equipo. 1. Debemos entrar al “Administrador de servidor.” Una vez dentro, pulsamos en la zona superior “Administrar” y pulsamos en la opción de “agregar roles y características”, en la siguiente ventana que nos aparece deberemos dar clic en “siguiente”.
245 Imagen: Dentro del administrador del servidor Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-01.png
2. En la siguiente ventana debemos de elegir la opción “Instalación basada en características o en roles”.
Imagen: Dentro del asistencia de instalación: Tipo de instalación Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-02.png
3. Luego, en la siguiente ventana elegimos la opción “Seleccionar un servidor del grupo de servidores.”, luego damos en “Siguiente”.
Imagen: Dentro del asistencia de instalación: Selección de servidor Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-03.png
4. En la siguiente ventana que se nos mostrará deberemos buscar en la lista la opción de “Servidor DNS” y la de “Servidor DHCP” y activarlas ambas. Sin hacer caso a la opción de Active Directory. Y dar clic en “Siguiente”.
Imagen: Dentro del asistencia de instalación: Roles de servidor Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-04.png
5. Luego nos describe lo que instalaremos y pulsaremos en siguiente.
246
Imagen: Dentro del asistencia de instalación: servidor DHCP Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-05.png
6. Luego en la ventana final se nos mostrará la opción “Instalar” y pulsamos en ello para comenzar el proceso. Y fijarse si no requiere configuración adicional.
Imagen: Dentro del servidor DHCP: Notificaciones Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-06.png
6. Configuración Servidor DHCP 1. Una vez en la pantalla principal pulsaremos sobre el icono de notificaciones. Y veremos la opción de “Completar configuración DHCP”.
Imagen: Dentro del servidor DHCP: Notificaciones Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-07.png
2. Ahora tendremos que colocar un nombre de usuario, que normalmente será Administrador, y el dominio, si tenemos activo el rol de Active Directory, y de nuevo pulsamos en “Siguiente”.
247 Imagen: Asistente de instalación: Resumen de la instalación Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-08.png
3. De nuevo en la ventana de Administrador de servidor, nos situamos sobre la opción de “Herramientas” y accedemos al apartado “DHCP”
Imagen: Servidor DHCP: Herramientas Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-09.png
4. Luego debemos autorizar lo que es el dominio DHCP que se encuentra en la parte de acción y hay esta autorizar, si ya está autorizado estará la opción no autorizar.
Imagen: DHCP: Acción Fuente:https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-08-1.png
5. Para empezar la configuración directa al DHCP, deberemos colocarnos en el apartado de IPV4 para comenzar con su configuración primero, deberemos presionar botón derecho sobre él para elegir la opción “Ámbito nuevo”
Imagen: DHCP: seleccionando IPV4 Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-10.png
248 6. Luego nos abrirá una pestaña en la cual deberemos colocarle el nombre de ámbito y luego pulsamos “Siguiente”.
Imagen: Asistente para ámbito nuevo: Nombre de ámbito Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-10-1.png
7. Luego en la siguiente pestaña nos aparecerá la parte de configuración de el rango de direcciones IP, Usted puede elegir desde 1 a 50 direcciones de rango, en longitud será de 24 por defecto y la máscara de subred será de 255.255.255.0 y pulsamos “siguiente”.
Imagen: Asistente para ámbito nuevo: Intervalo de direcciones IP Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-11.png
8. Luego en la siguiente ventana, estará la configuración de exclusión de rangos de IP para que no sean asignadas o que estén dirigidas a dispositivos como impresoras, luego de configurar el rango pulsamos en “siguiente”
Imagen: Asistente para ámbito nuevo: Agregar exclusiones y retraso Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-12.png
249 9. En la siguiente ventana, tendremos la configuración para poder establecer el tiempo que un equipo tendrá la misma dirección, por defecto lo dejaremos en 8 días y pulsamos “Siguiente”.
Imagen: Asistente para ámbito nuevo: Duración de la concesión Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-13.png
10. Pasaremos por una pantalla en la que debemos elegir la opción de “Configurar estas opciones ahora”, luego en “Siguiente” 11. Luego de esto escribiremos la dirección de puerta de enlace o enrutador que tengamos, vamos a añadir la dirección IP de la tarjeta de red a ala que ira la red LAN conectada.
Imagen: Asistente para ámbito nuevo: Enrutador (puerta de enlace predeterminada) Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-14.png
12. Si no la recordamos exactamente, estará en “Administrador del servidor” en la parte de “Servidor local”.
Imagen: Servidor local: Verificar tarjeta de red Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-14-1.png
13. Colocaremos el nombre del dominio y especificar qué equipo utilizaremos para resolverlo, luego vamos a escribir el nombre de nuestro servidor en el apartado
250 “nombre de servidor” y vamos a darle a “Resolver”. La dirección ip que se mostrará debería ser la de tarjeta de red LAN.
Imagen: Asistente para ámbito nuevo: Nombre de dominio y servidores DNS Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-16.png
14. En la siguiente pantalla podremos configurar los servidores WINS para resolver el nombre de NetBIOS. Nosotros pasaremos de esto olímpicamente.
Imagen: Asistente para ámbito nuevo: Servidores WINS Fuente: https://www.profesionalreview.com/wp-content/uploads/2018/12/Instalar-servidor-DHCPWindows-Server-2016-paso-16-1.png
15. Finalmente pasaremos por un par de pantallas más para finalizar el asistente. Ya tendremos configurado nuestro servidor DHCP en Windows Server 2016.
7. Instalación del Servidor DNS.Por Eldan Escobar 1. Para instalar el Servidor DNS en Windows Server 2012, iremos a “Administrador del Servidor” en el menú de inicio, luego damos clic en “Administrar”, y seleccionaremos “Agregar roles y características”.
Imagen: Iniciar a configurar DNS. Fuente:
251 http://www.juntadeandalucia.es/empleo/recursos/material_didactico/especialidades/materialdidact ico_administrador_servidores/Content/3-servicios_web/1-InstalacionConfiguracionDNS.pdf
2. Luego, seleccionamos el rol “Servidor DNS”, y damos clic en “Siguiente”.
Imagen: Seleccionar servidor DNS. Fuente: http://www.juntadeandalucia.es/empleo/recursos/material_didactico/especialidades/materialdidact ico_administrador_servidores/Content/3-servicios_web/1-InstalacionConfiguracionDNS.pdf
3. Después, seleccionaremos las características que deseamos instalar, y damos clic en “Siguiente”.
Imagen: Seleccionar herramienta del servidor DNS. Fuente: http://www.juntadeandalucia.es/empleo/recursos/material_didactico/especialidades/materialdidact ico_administrador_servidores/Content/3-servicios_web/1-InstalacionConfiguracionDNS.pdf
4. Después de leer unas cuestiones, nos mostrará las características que hemos seleccionado previamente, y tendremos que confirmarlas.
Imagen: Confirmación de instalación de servidor DNS. Fuente:
252 http://www.juntadeandalucia.es/empleo/recursos/material_didactico/especialidades/materialdidact ico_administrador_servidores/Content/3-servicios_web/1-InstalacionConfiguracionDNS.pdf
5. Y luego, iniciará la instalación, y al finalizar, nos mostrará esto:
Imagen: Finalización de instalación de servidor DNS. Fuente: http://www.juntadeandalucia.es/empleo/recursos/material_didactico/especialidades/materialdidact ico_administrador_servidores/Content/3-servicios_web/1-InstalacionConfiguracionDNS.pdf
6. Para verificar que nuestro servidor se haya instalado correctamente, iremos a “Inicio”, y veremos que ahora aparece un ícono de DNS.
Imagen: Comprobación de que el servidor DNS se haya instalado exitosamente. Fuente: http://www.juntadeandalucia.es/empleo/recursos/material_didactico/especialidades/materialdidact ico_administrador_servidores/Content/3-servicios_web/1-InstalacionConfiguracionDNS.pdf
8. Configuración Servidor DHCP 1. Una vez tengamos instalado el servidor, lo podremos configurar haciendo clic en su ícono, y luego tendremos la siguiente ventana, donde tendremos que ir a la opción “Acción”, y seleccionaremos “Configurar el servidor”; en este caso, será mostrada en Windows Server 2000.
253
Imagen: Configuración del servidor DNS desde la pantalla principal. Fuente: https://sites.google.com/site/manualservermariacarcamo/instalacion-del-servidor-de-dns
2. Luego, se ejecutará el asistente para la configuración, en este punto, seleccionaremos
la
opción
que
deseemos.
Imagen: Selección de instalación del asistente del servidor. Fuente: https://sites.google.com/site/manualservermariacarcamo/instalacion-del-servidor-de-dns
3. Una vez seleccionada la opción deseada para configurar el servidor, ingresamos el dominio, y el nombre del archivo donde se almacenará la base de datos.
Imagen: Ingreso de datos para utilizar el servidor. Fuente: https://sites.google.com/site/manualservermariacarcamo/instalacion-del-servidor-dedns
254 4. Una vez llegado a este punto, el servidor estará configurado y listo para usar.
Imagen: Servidor listo para usar Fuente: https://sites.google.com/site/manualservermariacarcamo/instalacion-del-servidor-dedns
9. Insercion de clientes al dominio.Por José Garcia Primero que nada, debemos de tener un cliente previamente instalado dispuesto para unirlo al dominio ya configurado en el servidor. Recordemos que debemos de establecer una dirección IP al cliente en el mismo segmento de la red. Después hay que hacer un ping entre desde el cliente al servidor, y desde el servidor al cliente, después en el equipo debemos dar clic en las propiedades de para cambiar la configuración de este equipo para que podamos insertar al cliente.
Imagen: Inserción de domino Fuente: https://encryptedtbn0.gstatic.com/images?q=tbn:ANd9GcSYr0kxxx8vHtQBmNKScHDVNHbRkt4Y08R89g&usqp=CAU
Dentro de nuestra ventana de propiedades del sistema debemos cambiar en la venta de cambios a domino en o en el nombre de los equipos, debemos de elegir la opción de dominios y escribiremos el nombre que tiene asignado el servidor para aceptar los cambios aparecerá una ventana de seguridad de Windows donde escribiremos el nombre de usuario del cliente y la contraseña, ala dar clic en aceptar,
255 al aparecer una ventana que nos indica que hemos unido correctamente al dominio que tiene asignado el servidor.
Imagen: Cliente servidor Fuente: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTwQYKWCofFsoizHzFB6FL8X5n0pQKX0sVuQ&usqp=CAU
Imagen: Unión de cliente a un dominio Fuente: https://www.solvetic.com/uploads/monthly_02_2021/tutorials-9832-0-19803300-1612777804.png
10. Configuración de Clientes Los objetos de datos y las condiciones de cliente, así como valores de autorización de cliente para un grupo de seguridad, determina la información a nivel de cliente a la que los usuarios puedan acceder. Políticas específicas y grupos de seguridad para la complementación de las condiciones y los objetos de datos que han configurado para objetos de cliente. Creación de los datos de referencia para las aplicaciones que figuran en lista para cada cliente, este puede restringir el acceso a los registros en estas aplicaciones con los permisos de acceso de clientes que se han especificado anteriormente.
256 Imagen: Configuración de clientes inalámbricos Fuente: https://manejoderedes6203.files.wordpress.com/2015/02/redes1.jpg
Configure los valores del sistema adicional, según sea necesario, especifique cómo se crearan las, cómo se aplican y utilizan los acuerdos de nivel del servicio, y cómo se gestionan y utilizan las direcciones del servicio. Podemos definir ahora los acuerdos del cliente y los términos para los clientes. Los términos de un acuerdo incluyen los detalles del acuerdo del cliente, y las acciones en los planes de respuesta por los precios de servicio en planificaciones de precios y planificaciones de facturación, y los acuerdos del nivel del servicio. Después de la instalación se deben de realizar tareas de configuración del sistema para asegurar su completa instalación funcional según las necesidades de la empresa del proveedor.
Imagen: Registro y configuración Fuente: https://conocimiento.blob.core.windows.net/conocimiento/2021/Comerciales/DocumentosComparti dos/CP_Complemento_CartaPorte/drex_registro_y_configuracion_de_clientes_3_custom_6.png
10.1 Instalación y configuración de ADDS en subdominio Los ADDS o también conocidos como extensiones, plugins, snap-ins, etc, son programas que solo funcionan anexados a otro y que sirven para incrementar o complementar sus funcionalidades, a continuación, veremos la configuración de la implementación. En la siguiente captura de pantalla verás las opciones para agregar un dominio secundario:
257
Imagen: Opciones para agregar un dominio secundario Fuente: https://docs.microsoft.com/es-es/windows-server/identity/ad-ds/deploy/media/install-a-newwindows-server-2012-active-directory-child-or-tree-domain--level-200/adds_smi_tr_childdeployconfig.png
En la siguiente captura de pantalla verás las opciones para agregar un dominio de árbol:
Imagen: Opciones para agregar un dominio de árbol Fuente: https://docs.microsoft.com/es-es/windows-server/identity/ad-ds/deploy/media/install-a-newwindows-server-2012-active-directory-child-or-tree-domain--level-200/adds_smi_tr_treedeployconfig.png
Para crear un nuevo dominio secundario, haz clic en Agregar un nuevo dominio a un bosque existente y selecciona Dominio secundario. Para un nombre de dominio primario, escribe o selecciona el nombre del dominio primario. A continuación, escribe el nombre del nuevo dominio en el cuadro Nuevo nombre de dominio y este debe cumplir los requisitos de nombre de dominio DNS.
258 Imagen: Opciones del controlador de dominio Fuente: https://docs.microsoft.com/es-es/windows-server/identity/ad-ds/deploy/media/install-a-newwindows-server-2012-active-directory-child-or-tree-domain--level-200-/adds_smi_dcoptions_child.gif
Para crear un nuevo dominio de árbol, haz clic en Agregar un nuevo dominio a un bosque existente y selecciona Dominio de árbol. Escribe el nombre del dominio raíz del bosque y después el nombre del nuevo dominio y este también debe cumplir los requisitos de nombre de dominio DNS.
E grafía •
Variables y constantes en C++. Uso de "#define" y "const" (programarya.com)
•
Variables y constantes en C++. Uso de "#define" y "const" (programarya.com)
•
tipos_variables.png (228×205) (wordpress.com)
•
Operadores lógicos y relacionales en lenguaje C. Igual que, distinto, and &&, or ||, not ! Ejemplos. (CU00519F) (aprenderaprogramar.com)
•
Arrays, arreglos y vectores en C++: Uso y sintaxis en C++ (programarya.com)
•
Matrices en C++. Declaración, uso y sintaxis en C++ (programarya.com)
•
CREAR CALCULADORA USANDO C# | VISUAL STUDIO (1/2) | LINK EN LA DESCRIPCION - YouTube
•
sintaxis de c# - Búsqueda de Google
•
:27659_4304.es.png (260×673) (aulafacil.com)
•
How to concatenate multiple strings (C# Guide) | Microsoft Docs
•
foto031.jpg (402×241) (tutorialesprogramacionya.com)
•
Numero Mayor, Menor y Media de un Array numerico –
•
sql-server.png (298×240) (proyectoa.com)
•
https://conceptoabc.com/wp-content/uploads/2021/05/tecno-soft-sistemas.png
•
http://1.bp.blogspot.com/-veoijwaVEhU/US2UtsJeWBI/AAAAAAAALM8/kmF_Q5jiTWQ/s1600/dbms+new.gif
• •
https://commons.wikimedia.org/wiki/File:Copyleft.svg https://actualizo.com/wp-content/uploads/2017/03/Cómo-actualizar-Ubuntu-a-una-versiónmás-reciente-1.png
•
https://www.softzone.es/app/uploads-softzone.es/2019/07/Rufus-3.6.jpg
•
https://es.wikibooks.org/wiki/El_Manual_de_BASH_Scripting_Básico_para_Principiantes/Coman dos_básicos_de_una_shell
•
•
https://prezi.com/aydij8gcqsu6/las-senales-de-seguridad-en-la-sala-de-infomatica/ https://cdn-icons-png.flaticon.com/512/2072/2072729.png
•
https://cdn-icons-png.flaticon.com/512/675/675523.png
•
https://diagramasuml.com/wp-content/uploads/2018/08/comp9.png
•
https://desktop.arcgis.com/es/arcmap/10.3/manage-data/gdbs-in-informix/GUID-45DDC693264D-42BE-B049-EE6364AEFFA8-web.png
• https://www.solvetic.com/uploads/monthly_02_2021/tutorials-9832-0-19803300-1612777804.png • https://docs.microsoft.com/es-es/windows-server/identity/ad-ds/deploy/media/install-a-newwindows-server-2012-active-directory-child-or-tree-domain--level-200/adds_smi_dcoptions_child.gif