Вы находитесь на странице: 1из 264

Índice

Capítulo 1 ............................................................................................................................................ 10
Sistematización ............................................................................................................................. 10
1.1 Concepto de Sistemas .......................................................................................... 10
1.2 Subsistemas ......................................................................................................... 10
1.2.1 Ejemplo de sistemas .......................................................................................... 11
1.2.2 Ejemplo de subsistemas .................................................................................... 12
1.2.3 Partes fundamentales de un sistema ................................................................. 13
1.2.4 Etapas de la Sistematización ............................................................................. 14
Capítulo 2 ............................................................................................................................................ 15
Información .................................................................................................................................... 15
2.1 Conceptos e Importancia ...................................................................................... 15
2.2 Características de la información y de sus datos................................................... 15
2.2.1 Niveles operativos de la información .................................................................. 16
2.2.2 Cómo se genera la información.......................................................................... 17
2.2.3 Seguridad Informática ........................................................................................ 22
Capítulo 3 ............................................................................................................................................ 25
Modelo Entidad Relación ............................................................................................................. 25
3.1 Las rutas de los sistemas de archivos: ........................................................................... 25
3.2 Simbología ............................................................................................................ 26
3.2.1 Reglas ................................................................................................................ 27
3.2.2 Relaciones ......................................................................................................... 29
3.2.3 Llave Primaria .................................................................................................... 31
3.2.4 Llave Candidata ................................................................................................. 33
Capítulo 4 ............................................................................................................................................ 34
Orientado a objetos UML ............................................................................................................. 34
4.1 Diagrama Casos de Uso ....................................................................................... 34
4.2 Diagrama de actividades ....................................................................................... 35
4.2.1 Diagrama de colaboración ................................................................................. 36
4.2.2 Lenguajes de programación ............................................................................... 41
4.2.4 Ciclo de vida del software .................................................................................. 44
4.2.5 Generación de Código ....................................................................................... 45
Capítulo 5 ............................................................................................................................................ 52
Acces .............................................................................................................................................. 52
5.1 ¿Que son las tecnologías de la información? ........................................................ 52
2|Página
5.2 Creación de la Primera Tabla ................................................................................ 52
5.2.1 Propiedades de los campos ............................................................................... 55
5.2.2 Añadir Descripción a una tabla........................................................................... 56
5.2.3 Como modificar la estructura de las tablas en Access........................................ 56
5.2.4 Guardar una tabla .............................................................................................. 57
5.2.5 Editar Registros En Access ................................................................................ 62
5.2.6 Insertar datos en una tabla Access. ................................................................... 65
Capítulo 6 ............................................................................................................................................ 73
Sistemas Operativos .................................................................................................................... 73
6.1¿Qué significa? ...................................................................................................... 73
6.2 Historia de los sistemas operativos ....................................................................... 73
6.3 Tipos de sistemas operativos ................................................................................ 76
6.3.1 Multiprogramados .............................................................................................. 77
6.4 Distribuidos de red ................................................................................................ 79
Capítulo 7 ............................................................................................................................................ 83
Sistemas de Archivos ................................................................................................................... 83
7.1 Sistema de archivos .............................................................................................. 83
Capítulo 8 ............................................................................................................................................ 88
Linux ................................................................................................................................................ 88
8.1 Historia de Linux ................................................................................................... 89
8.2 Partición del disco duro para instalar linux ............................................................ 90
8.3 Aplicaciones de Linux ........................................................................................... 93
8.4 Instalación del Sistema Operativo Linux ................................................................ 94
8.5 Bash...................................................................................................................... 98
8.6 Sistema de usuarios y manejo de clave en Linux .................................................. 98
8.7 Archivos y Permisos de Linux ............................................................................... 99
Capítulo 9 .......................................................................................................................................... 100
9.1 Creación de máquina virtual................................................................................................. 100
9.2 Montar sistema operativo .................................................................................... 102
Capítulo 10 ........................................................................................................................................ 108
Que son las tecnologías de la información ............................................................................. 108
10.1 Internet y Sus Servicios..................................................................................... 109
10.2 Intranet .............................................................................................................. 110
Capítulo 10 ........................................................................................................................................ 112
Software........................................................................................................................................ 112
3|Página
10.2...................................................................... Clasificación del software del sistema.
................................................................................................................................. 112
10.2.2 Software de programación ............................................................................. 114
10.2.3 Software de Aplicación ................................................................................... 115
Capítulo 11 ........................................................................................................................................ 117
Ofimática ...................................................................................................................................... 117
11.1 Concepto........................................................................................................... 117
11.2 Historia .............................................................................................................. 118
11.3 Herramientas .................................................................................................... 123
Capítulo 12 ........................................................................................................................................ 130
Unidades de medida en informática......................................................................................... 130
12.1 Concepto........................................................................................................... 130
12.2 Múltiplos ............................................................................................................ 133
Capítulo 13 ........................................................................................................................................ 135
Sistemas numéricos ................................................................................................................... 135
13.1 Concepto........................................................................................................... 135
13.2 Sistema de numeración binario ......................................................................... 135
13.3 Sistema de numeración octal ............................................................................ 136
13.4 Sistema de numeración hexadecimal ................................................................ 136
13.5 Conversiones .................................................................................................... 136
13.5 De sistema binario ............................................................................................ 136
13.5.2 De Sistema octal ............................................................................................ 140
13.5.3 De Sistema Hexadecimal ............................................................................... 141
Capítulo 14 ........................................................................................................................................ 147
Framework ................................................................................................................................... 147
14.1 Arquitectura de Framework ............................................................................... 147
14.2 Estructura del framework .................................................................................. 147
Capítulo 15 ........................................................................................................................................ 149
Introducción a SQL ..................................................................................................................... 149
15.1 DML (data manipulation language).................................................................... 149
15.2 Comando select ................................................................................................ 152
15.3 Cláusula from .................................................................................................... 153
15.3 Consultas basicas de sql................................................................................... 153
Capítulo 16......................................................................................................................................... 157
Java ............................................................................................................................................... 157
4|Página
16.1 Comandos básicos ............................................................................................................ 157
16.1.2 Programación orientada a objetos .................................................................. 157
16.1.2 Independencia de la plataforma: .................................................................... 157
7.1.3 En recolector de basura de Java ...................................................................... 158
16.2 Sintaxis ................................................................................................................................ 159
16.2.1 Aplicaciones Autónomas De Java .................................................................. 159
16.2.2 Applets ........................................................................................................... 160
16.2.3 Servlets .......................................................................................................... 161
16.3 Entornos De Funcionamientos ......................................................................................... 163
16.3.1 En Dispositivos Móviles y Sistemas Embebidos ............................................. 163
16.3.2 En Navegador Web ........................................................................................ 163
16.3.3 En Sistemas de Servidos ............................................................................... 164
16.3.4 En Aplicaciones De Escritorio ........................................................................ 164
16.3.5 Plataformas Soportadas ................................................................................. 165
16.4 Programación...................................................................................................................... 165
16.4.1 Expresiones ................................................................................................... 165
16.4.2 Operadores .................................................................................................... 166
16.4.3 Operadores A Nivel Bit ................................................................................... 169
16.4.3 Operadores De Procedencia .......................................................................... 170
16.4.5 Sentencias ..................................................................................................... 172
Capítulo 17 ........................................................................................................................................ 177
Programación básica en C# (Consola) .................................................................................... 177
17.1 Definición e Historia de C# ............................................................................................... 177
17.2 Programa de C# ................................................................................................................. 177
17.2.1 Sintaxis C# ..................................................................................................... 178
17.2.2 Palabras reservadas ...................................................................................... 178
17.2.3 Variables ........................................................................................................ 179
17.2.4 Constantes ..................................................................................................... 179
Capítulo 18 ........................................................................................................................................ 181
Tipos de dato primitivo ............................................................................................................... 181
18.1 Enteros ............................................................................................................. 181
18.2 Decimal ............................................................................................................. 181
Capítulo 19 ........................................................................................................................................ 182
Operadores aritméticos .............................................................................................................. 182
19.1 Suma: ............................................................................................................... 182
5|Página
19.2 Resta: ............................................................................................................... 182
19.3 Multiplicacion: ................................................................................................... 182
19.4 Division: ............................................................................................................ 182
19.5 Residuo: ............................................................................................................ 182
Capítulo 20 ........................................................................................................................................ 183
Operadores de igualdad y relacionales ................................................................................... 183
20.1 Operadores lógicos: &&, ||,! ............................................................................... 183
20.2 Operadores de igualdad: == y != ....................................................................... 184
Capítulo 21 ........................................................................................................................................ 186
Estructuras de decisión .............................................................................................................. 186
21.1 If-else ................................................................................................................ 186
21.2 If y sentencias compuestas ............................................................................... 187
21.3 Switch ............................................................................................................... 187
Capítulo 22 ........................................................................................................................................ 188
Estructura de Repetición............................................................................................................ 188
22.1 While ................................................................................................................. 189
22.2 Do While ........................................................................................................... 189
22.3 For .................................................................................................................... 190
Capítulo 23 ........................................................................................................................................ 191
Operadores Lógicos ....................................................................................................................... 191
23.1 And ................................................................................................................... 191
23.2 Or ...................................................................................................................... 192
23.3 Not .................................................................................................................... 193
Capítulo 24 ........................................................................................................................................ 194
Manejo de cadenas .................................................................................................................... 194
24.1 Declaración de una Cadena de Caracteres. ...................................................... 194
24.2 Búsqueda .......................................................................................................... 195
24.3 Concatenación .................................................................................................. 197
Capítulo 25 ........................................................................................................................................ 198
Programación en C# (POO) ...................................................................................................... 198
25.1 Sintaxis ............................................................................................................. 199
25.1.2 Conexión de Entrada y Salida ........................................................................ 200
25.1.3 Operaciones Básicas ..................................................................................... 201
25.1.4 Condiciones If: ............................................................................................... 201

6|Página
Capítulo 26 ........................................................................................................................................ 202
Manejo de Cadenas.................................................................................................................... 202
26.1 Concatenación .................................................................................................. 202
26.2 Comparación..................................................................................................... 203
Capítulo 27 ........................................................................................................................................ 204
Operaciones de Fecha y Hora .................................................................................................. 204
27.1 Resta y suma de fecha y hora ........................................................................... 204
27.2 Manejo del tipoDateTime.Date- DATE .............................................................. 206
27.3 Creación de ventanas ....................................................................................... 207
Capítulo 28 ........................................................................................................................................ 208
Eventos ......................................................................................................................................... 208
28.1 Concepto........................................................................................................... 208
28.2 Eventos básicos ................................................................................................ 208
Capítulo 29 ........................................................................................................................................ 209
Uso de controles ......................................................................................................................... 209
29.1 Text Box ............................................................................................................ 211
29.2 Etiquetas ........................................................................................................... 211
29.3 PictureBox......................................................................................................... 212
29.4 Button ............................................................................................................... 213
29.5 SoundPlayer ..................................................................................................... 213
29.6 ComboBox ........................................................................................................ 214
29.7 ListBox .............................................................................................................. 214
29.8 Calendario......................................................................................................... 215
29.9 RadioButton ...................................................................................................... 215
29.10 CheckBox........................................................................................................ 216
29.11 Timer ............................................................................................................... 217
29.12 Control Panel .................................................................................................. 217
29.14 Controles......................................................................................................... 218
Capítulo 30 ........................................................................................................................................ 222
Métodos ........................................................................................................................................ 222
30.1 Tipo de valor de retorno .................................................................................... 223
30.2 Variables Globales ............................................................................................ 225
30.3 Parámetros ....................................................................................................... 226
Capítulo 31 ........................................................................................................................................ 227
Access y conexiones a C#......................................................................................................... 227
7|Página
31.1 Introduccion a Access ....................................................................................... 227
31.2 Creación de una tabla ....................................................................................... 228
31.3 Añadir Campos ................................................................................................. 229
31.3.1 Propiedades de los campos ........................................................................... 230
31.4 Añadir descripción a una tabla .......................................................................... 230
31.5 Modificaciones dentro de la tabla ...................................................................... 231
31.6 Como modificar las estructuras de las tablas .................................................... 232
Capítulo 32 ........................................................................................................................................ 233
Conexión de C# a Base de Datos en Access......................................................................... 233
32.1 Sin Utilizar Origen de Datos .............................................................................. 233
32.2 Utilizando Origen de Datos ............................................................................... 236
32.2.1 Insertar datos en una tabla ............................................................................. 238
32.2.2 Actualizar datos.............................................................................................. 240
Capítulo 33 ........................................................................................................................................ 241
Diagramas de componentes ..................................................................................................... 241
33.1 UML .................................................................................................................. 241
33.1.1 Lectura de diagramas de componentes.......................................................... 241
Capítulo 34 ........................................................................................................................................ 244
Programación básica V.B (consola) Nivel 1............................................................................ 244
34.1 Definiciones e historia ....................................................................................... 244
34.2 Variables ........................................................................................................... 246
34.3 Constantes ........................................................................................................ 246
34.4 Tipos de dato primitivo ...................................................................................... 247
Capítulo 35 ........................................................................................................................................ 247
Operadores aritméticos .............................................................................................................. 247
35.1 Suma, resta, multiplicación, división y residuo................................................... 247
Capítulo 36 ........................................................................................................................................ 249
Operadores de igualdad y relacionales ................................................................................... 249
36.1 Menor que: ........................................................................................................ 249
36.2 Mayor que ......................................................................................................... 250
36.3 Mayor o igual que.............................................................................................. 251
36.4 Igualdad ............................................................................................................ 252
36.5 Son desiguales.................................................................................................. 253
36.6 Menor o igual que ............................................................................................. 254
Capítulo 37 ........................................................................................................................................ 255
8|Página
Estructuras de Condición ........................................................................................................... 255
37.1 If simple............................................................................................................. 255
37.2 if – else ............................................................................................................. 255
37.3 if -elseif:............................................................................................................. 256
37.4 Select Case....................................................................................................... 256
Capítulo 38 ........................................................................................................................................ 257
Ciclos repetitivos ......................................................................................................................... 257
38.1 While ................................................................................................................. 257
38.2 Do while ............................................................................................................ 257
38.3 For .................................................................................................................... 258
38.4 Switch ............................................................................................................... 259
Capítulo 39 ........................................................................................................................................ 260
Operadores Lógicos ................................................................................................................... 260
39.1 And ................................................................................................................... 260
39.2 Or ...................................................................................................................... 260
39.4 Not .................................................................................................................... 261
Capítulo 40 ........................................................................................................................................ 262
Manejo de Cadenas.................................................................................................................... 262
40.1 Creación de cadenas ........................................................................................ 262
40.2 Búsqueda de Cadenas ...................................................................................... 263
40.3 Concatenación de Cadenas .............................................................................. 264

9|Página
Capítulo 1

Sistematización

1.1 Concepto de Sistemas


Un sistema es un conjunto de elementos relacionados y organizados entre sí para
cumplir con algún objetivo. Poseen una frontera o limite definido, la frontera permite
intercambiar datos y / o información con el ambiente.

Una computadora
 Está formada por partes (elementos)
 Las partes están organizadas
 Las partes interactúan entre si
 Tienen un límite físico definido
 Tienen un objetivo

En este caso es un sistema artificial


ya que es creado por el hombre

Un sistema puede estar constituido por otros sistemas llamados subsistemas, o


pueden ser parte de otro sistema padre el cual es llamado súper sistema.

1.2 Subsistemas
Son las partes, estructuras o bloques de piezas que forman un sistema. Cada sistema
está compuesto de "subsistemas", los cuales a su vez son parte de otros
subsistemas, cada subsistema es delineado por sus límites.
Las interconexiones y las interacciones entre los subsistemas se llaman interfaces.
Las interfaces ocurren en el límite y toman la forma de entradas y salidas.

10 | P á g i n a
Como vemos en la imagen está el procesamiento periódico de la nómina y se divide
en subsistemas que son los bloques de cálculo del sueldo total deducciones y sueldo
neto a pagar, preparación de los registros de nómina y de los controles, impresión de
cheques y registro de la nómina y controles de salida.

1.2.1 Ejemplo de sistemas


Se entiende como sistema informático al conjunto de elementos que trabajan todos
hacia un fin común. Estos elementos son el hardware o computadoras que se utilizan
en el proceso, el software que programa las computadoras para que realicen ciertas
tareas y el empleado humano, que es quien maneja y que a través del manejo del
software logra que el hardware realice las tareas adecuadas.
Forman parte de los sistemas de información públicos y privados; su finalidad es que
se pueda almacenar la información fácilmente y que su clasificación y recuperación
sea ágil. Actualmente las empresas utilizan grandes cantidades de información que
les sirven en la toma de decisiones. Sin un sistema informático recuperar, organizar
y analizar esta información sería prácticamente imposible.

11 | P á g i n a
Ejemplos de sistemas informáticos:
 Sistema de nómina
Es una solución informática diseñada para maximizar la productividad de las
personas encargadas de registrar y controlar correctamente todos los aspectos de
la nómina de los obreros y empleados de las empresas, permitiendo reducir las
cargas excesivas de trabajo y disminuyendo errores, considerando la legislación
fiscal y laboral vigente de cada país incluyendo los cálculos de impuestos locales y
retención de los mismos.
 Sistema de contabilidad.
La Contabilidad es un sistema de información, ya que captura, procesa, almacena y
distribuye información vital para la correcta toma de decisiones en la empresa. El
papel fundamental que ha desempeñado la contabilidad es controlar y organizar las
diferentes actividades de la empresa con el fin de conocer la situación en que esta
se encuentra, de una manera ágil, oportuna y útil, para llevar a cabo los propósitos
que se quieren realizar y así cumplir con los objetivos.
 Sistemas de Integrados de Administración Financiera
Los sistemas integrados de administración financiera (SIAF) son sistemas
informáticos que automatizan los procedimientos financieros necesarios para
registrar los recursos públicos recaudados y aplicarlos a la concreción de
los objetivos del sector público.

1.2.2 Ejemplo de subsistemas


Un subsistema es un sistema que es parte de otro sistema mayor que lo contiene.
En otras palabras, un subsistema es un conjunto de elemento interrelacionados que,
en sí mismo, es un sistema, pero a la vez es parte de un sistema superior.
Un sistema puede estar constituido por múltiples componentes y subsistemas.
Siempre es importante establecer los límites de un sistema (el sistema principal que
estamos estudiando) para saber qué componentes y qué subsistemas forman parte
de este.
En teoría de sistemas, los niveles de organización (o jerarquías) se refieren al orden
en distintos niveles de organización de los sistemas más simples a los más

Complejos; por ejemplo, la identificación de un subsistema, dentro de un sistema,


dentro de un supra sistema. Un ejemplo práctico en informática: el subsistema
"memoria RAM", contenido en el sistema "placa madre", contenido en el súper
sistema "computadora".

12 | P á g i n a
 Sistema árbol
Otro ejemplo es un árbol visto como sistema natural.
Sistema principal: Árbol.
Componentes: hojas, corteza, ramas, troncos, agua, células vegetales, etc.
Entradas: dióxido de carbono, luz solar, agua, nutrientes, etc.
.

1.2.3 Partes fundamentales de un sistema

El “objeto” es el sistema real a tratar. Un sistema es un conjunto de elementos


interrelacionados. El mínimo de elementos es de dos y cada uno de los elementos
del sistema se conecta con cada uno de los otros elementos directa o indirectamente.
Los sistemas tienen subsistemas y a la vez son subsistemas de otros sistemas
mayores.

Subsistema: Puede ser el objeto de estudio y forma parte de un sistema mayor en


el que se integra.
Modelo: Relación de semejanza.
Elementos o características: Son las variables de un sistema.
Sistema determinado: Colección de variables o de elementos.
Nivel de resolución: Espacio y tiempo del sistema analizado.
Actividad del sistema: Línea de conducta, sistema general temporal, grafo
cronológico y clases de funciones temporales.
Conducta: Relaciones invariantes con el tiempo entre ciertos tipos de variantes.
Micro-entorno: Medio interno del sistema.
Macro-entorno: Medio externo del sistema.

13 | P á g i n a
Estructura formal: Es una organización es la oficialmente establecida, el esqueleto
del sistema.
Estructura conceptual o ideal: Es la que podemos establecer en base a unas
necesidades concretas del sistema analizado o descrito.

 Calidad: Es dar conformidad a las exigencias de un sistema, entendiendo por


exigencias las características de un intercambio a partir del momento en que
han sido acordadas entre proveedor y cliente. El resultado final es el producto
–servicio- que sale al mercado; si aquél no tiene defecto –cero defecto- nos
encontramos entonces ante la “calidad total”.

 Organigrama: Es la representación básica simplificada de la estructura formal


adoptada por la organización, por el sistema. También podemos representar
la estructura informal ideal de la organización y sus canales de información.

 El manual o guía: Es un documento básico para el subsistema analizado,


donde quedan reflejadas las funciones, atributos y relaciones entre elementos
del mismo en relación el sistema y con la organización.

1.2.4 Etapas de la Sistematización


Análisis: El análisis se utiliza para ver cómo va a ser los procesos y pasos que
seguir.

Diseño: Es el encargado de gestionar el funcionamiento de la tarea a Sistematizar.

Implementación: Se empieza desarrollar y utilizar poniendo en marcha el


funcionamiento.

Transición y Puesta en Marcha: Se realizan las pruebas y como se va


desenvolviendo.

Producción: Se empieza a utilizar y ver los resultados.

Cambios de Sistema: Se realizan modificaciones para mejorar o corrección de


errores.

Errores en los Procesos de Sistematización: Su función es la corrección de


errores o mejora miento de algún proceso o verificación si hace falta algún detalle.

14 | P á g i n a
Capítulo 2

Información

2.1 Conceptos e Importancia


Concepto
La información es un conjunto organizado de datos procesados, que constituyen un
mensaje que cambia el estado de conocimiento del sujeto o sistema que recibe dicho
mensaje, Información es un conjunto de datos significativos y pertinentes que
describan sucesos o entidades. Existen diversos enfoques para el estudio de la
información:

- En computación y teoría de la información, como una medida de la


complejidad de un conjunto de datos.

 Significado del sistema operativo


El Sistema Operativo (SO) es el programa o software básico de un ordenador. Es una
plataforma que facilita la interacción entre el usuario y los demás programas del
ordenador y los dispositivos de hardware. Las funciones básicas del Sistema
Operativo son administrar los recursos del ordenador, coordinar el hardware y
organizar los archivos y directorios de su sistema. Los Sistemas Operativos más
utilizados son Windows, Linux y Mac. Tanto Windows como Mac vienen con un
navegador integrado, Windows el navegador Internet Explorer y Mac Safari.

2.2 Características de la información y de sus datos

 Datos: La información es un conjunto de datos, estos son recopilados y


codificados para poder archivarlos y guardarlos.
 Orden: La información sin orden pierde totalmente el sentido, lo que nos
obliga a saber qué datos utilizamos y a decodificarlos de forma adecuada.
 Veracidad: Para poder tener un servicio óptimo la información deberá ser
ordenada, veraz y útil, aunque el sentido puede cambiar, sobre todo en los
nuevos sistemas de difusión en donde la veracidad se encuentra en
 Dirección: La información se debe dirigir a un punto o sentido en específico,
por lo cual la información como los datos médicos, jurídicos o técnicos,
siempre se direccionan en un sentido especifico.
15 | P á g i n a
 Clasificación: Los datos son clasificados para que se puedan acceder a los
mismos, la clasificación de los datos pertenece al control de una ciencia-
técnica denominada archivología, o archivista, quien guarda los datos en
forma óptima.
 Usos: Los usos de la información son muy variados, y en un momento dado
la información se consideró como un tesoro, en tanto que en otros lugares
pertenecía a una elite que controlaba la misma. Era utilizada en sentido
práctico por los obreros, campesinos, artesanos etc., mediante la transmisión
de persona a persona y para ello utilizaron la técnica del aprendiz, quien
pasaba a ser al final maestro.

2.2.1 Niveles operativos de la información

 Nivel estratégico: Se encarga de todas las tascas propias de la alta


dirección y, por lo tanto, las decisiones más importantes para la
organización. Son decisiones no programadas y muy complejas ya que
en definitiva son decisiones que afectan al planteamiento estratégico de
la organización. Se apoyan con los sistemas de apoyo a los ejecutivos
(ESS).

 Nivel tácito: (Incluye el nivel de gestión o administración y el nivel de


conocimiento): Se encarga de realizar las tareas de supervisión y control
de todas aquellas tareas que se han tomada a nivel operativo. Empieza
a tener una visión más amplia del negocio. A menudo son decisiones
semi – programadas y, por lo tanto, son decisiones más complejas que
las tomadas en el nivel operativo. En el nivel de gestión o administrativo,
se apoya con los sistemas de apoyo a la toma de decisiones (DSS) y a
los sistemas de información de gestión (MIS).

 En el nivel de conocimiento, se apoya con los sistemas de oficina


 (OfficeS) y los sistemas de gestión del conocimiento (KWS).
 Nivel operativo: se encarga de las tareas más rutinarias y ejecuta las
operaciones. A menudo son decisiones programadas. Esto hace que
sean decisiones simples y fáciles de tomar. Se apoyan con los sistemas
de procesamiento de transacciones (TPS).

16 | P á g i n a
2.2.2 Cómo se genera la información
Han pasado décadas desde que la información se trabaja y se almacena de forma
digital. Si regresamos a 40 años atrás, las computadoras eran un maravilloso invento,
pero hay que recordar que antes de la aparición de las computadoras, toda la
información era guardada en cientos de libros. Gracias a un genio matemático
llamado “Claude Shannon” el cual puso todo su empeño y conocimiento en elaborar
una teoría que tratase de cómo tratar la información de manera digital.
La computadora solo maneja dos símbolos importantes actualmente, los cuales de
ellos son el “0” y el “1” estos dos tiene su funcionamiento gracias a un circuito
electrónico que es el medio por el cual la computadora capta el mensaje

Este sistema de información se compone por:


1) Fuente
2) Mensaje
3) Código
4) Información
5) Clasificación de fuente
17 | P á g i n a
 Fuente: Una fuente es todo aquello que emite mensajes. Por ejemplo, una
fuente puede ser una computadora y mensajes sus archivos, una fuente puede
ser un dispositivo de transmisión de datos y mensajes los datos enviados, etc.
Una fuente es en sí misma un conjunto finito de mensajes: todos los posibles
mensajes que puede emitir dicha fuente. En compresión de datos tomaremos
como fuente al archivo a comprimir y como mensajes a los caracteres que
conforman dicho archivo.

 Mensajes:
Un mensaje es un conjunto de ceros y unos. Un archivo, un paquete de datos
que viaja por una red y cualquier cosa que tenga una representación binaria
puede considerarse un mensaje. El concepto de mensaje se aplica también a
alfabetos de más de dos símbolos, pero debido a que tratamos con
información digital nos referiremos casi siempre a mensajes binarios.

 Código: Un código es un conjunto de unos y ceros que se usan para


representar a un cierto mensaje de acuerdo a reglas establecidas:

Ejemplo: Conversión de texto a binario.

18 | P á g i n a
En el ejemplo de arriba se puede visualizar una palabra normal para nuestro lenguaje,
pero ¿qué pasa cuando por medio de un correo le enviamos ese “hola” a alguien? al
momento que esa persona recibe el mensaje, su computadora realizará el proceso
inverso, el sistema leerá el mensaje en binario y le devolverá la respuesta en lenguaje
humano, ese mensaje será el “hola”.

 Información: La información contenida en un mensaje es proporcional a la


cantidad de bits que se requieren como mínimo para representar al mensaje.
El concepto de información puede entenderse más fácilmente si consideramos
un ejemplo.
Si no dan un mensaje como “Des……” Vemos que tal palabra no tiene sentido,
pero hay una probabilidad de que lo faltante de esa palabra sea “Des-
componer” “Des-arrollar” “Des-truir”.

Pero si en tal caso nos llegan a proporcionar la palabra completa la cual sea
“Desarrollar” podremos captar con más facilidad el propósito del mensaje.

 Clasificación de fuente: Existen varios tipos de fuentes. Para la teoría de la


información interesan las fuentes aleatorias y estructuradas. Una fuente es
aleatoria cuando no es posible predecir cuál es el próximo mensaje a emitir
por la misma. Una fuente es estructurada cuando posee un cierto nivel de
redundancia, una fuente no estructurada o de información pura es aquella en
que todos los mensajes son absolutamente aleatorios sin relación alguna ni
sentido aparente, este tipo de fuente emite mensajes que no se pueden
comprimir, un mensaje para poder ser comprimido debe poseer un cierto nivel
19 | P á g i n a
de redundancia, la información pura no puede ser comprimida pues
perderíamos un grado de conocimiento sobre el mensaje.

Sistema de procesamientos de datos:


El "procesamiento de datos" es el manejo de estos datos en una forma más útil.
Incluye operaciones por medio de una maquina (ordenador) o manualmente, como
cálculos numéricos, clasificación y transmisión de datos de un lugar a otro, etc. Los
sistemas de procesamiento de datos se pueden clasificar de la siguiente manera:
Sistema de procesamiento electrónico de datos (1940). Este ha pasado por diversas
etapas de desarrollo o generaciones y ha hecho anticuado al sistema de
procesamiento de datos por tarjetas perforadas. La "información" es definida como
los datos ya procesados.
El procesamiento de datos tiene seis etapas:

1. Origen:
Consiste en recoger los datos iniciales. Un registro original de datos recibe el nombre
de "documento fuente".

Ejemplo:
Pruebas calificadas de los estudiantes. Debe observarse que si se presenta alguna
duda acerca de la nota final de un estudiante se puede regresar a los documentos
originales (hojas de exámenes) y observar si se ha cometido algún error durante el
procesamiento.

20 | P á g i n a
2. Entrada:
Los datos iniciales de entrada se clasifican en forma conveniente para su
procesamiento, dependiendo esto de la máquina que se emplee. Por ejemplo:
Cuando se usan dispositivos electromecánicos, los datos de entrada se perforan en
tarjetas y en las computadoras electrónicas los datos se registran en discos o cintas.

3. Procesamiento:
Durante el proceso se ejecutarán las operaciones necesarias para convertir los datos
en información. Cuando la información esté completa se ejecutará la operación de
salida, en la que se prepara un informe que servirá como base para tomar decisiones.

4. Salida:
Se recopila los resultados obtenidos en el proceso. La forma de los datos de salida
depende del empleo que se les vaya a dar a estos.Por ejemplo: Un resumen impreso
de ventas para la gerencia o simplemente datos que se deben almacenar para
procesamientos que se harán después.

5. Distribución:
Los registros de los datos de salida se denominan "Documentos de informe o
reporte".
Por ejemplo: Las hojas que se envían a registro técnico. Los documentos de
información pueden llegar a ser guardados para procesamientos futuros.

6. Almacenamiento:

Los resultados del proceso se almacenan para utilizarlos después como datos de
entrada. Un conjunto unificado de datos en almacenamiento se denomina "archivo".
"Una base de datos" es un conjunto estructurado de archivos.

 Operaciones en el procesamiento de datos

1. Registro:
Tiene que ver con la transferencia de los datos a alguna forma de o documento
modelo es decir un tipo de documento principal. Ejemplo: un profesor anota en su
lista los puntos obtenidos por los estudiantes y al terminar el semestre calcula las
notas finales y las anota en su lista. Recibe un acta y coloca ahí las calificaciones
finales, las registra en la hoja de calificaciones que se envía al estudiante y luego
hace entrega del acta a la oficina respectiva.

2. Duplicación:
Consiste en reproducir los datos en muchos documentos o formas. Ejemplo: se puede
registrar un informe mecanografiándolo y al mismo tiempo sacar copias con papel
carbón. En otro caso ingresándolo en la computadora luego imprimir y fotocopiar en
documento.

21 | P á g i n a
3. Verificación:
Consiste en comprobar cuidadosamente los datos para evitar cualquier error.
Ejemplo: los informes escritos a máquina se pueden volver a leer para corregirlos.

4. Separación:
Se separa los datos en varias categorías como los más importantes secundarios y
los datos que solo complementar la información.

5. Clasifición:
En la organización de los datos en un orden especifico. Ejemplo: los nombres de la
lista telefónica se han clasificado en orden alfabético. En este caso, los datos son
clasificados sin separar. La clasificación también se puede efectuar después de la
separación. Otro ejemplo: un archivo de registro de empleados contiene nombre,
numero del seguro social y lugar de trabajo. Si hay que clasificar el archivo de
acuerdo con el orden alfabético de los nombres, al "campo del nombre" se le
denomina "CLAVE".

6. Intercalación:
Se toman dos o más conjuntos de datos que han sido clasificados con la misma clave
y se resumen para formar un solo conjunto de datos: Por ejemplo, Dos archivos de
una misma persona, pero con algunos datos diferentes se toman los datos y se
convierte en un solo archivo.

7. Calculo:
La palabra cálculo se refiere al cuenta o investigación que se hace de algo por medio
de operaciones matemáticas. Es la ejecución de cálculos numéricos sobre los datos.

8. Recuperación:
La recuperación de datos hace referencia a las técnicas empleadas para recuperar
archivos que han sido perdidos o eliminados de algún medio de almacenamiento.

2.2.3 Seguridad Informática


La seguridad informática, también conocida como seguridad de tecnologías de la
información (ciberseguridad), es el área relacionada con la informática y la telemática
(transferencia de datos por medio de vía telefónica) que se enfoca en la protección
de la infraestructura (Conjunto de medios técnicos, servicios e instalaciones)
computacional y todo lo relacionado con esta y, especialmente, la información
contenida en una computadora o circulante a través de las redes de computadoras.
Para ello existen una serie de estándares, protocolos, métodos, reglas, herramientas
y leyes concebidas para minimizar los posibles riesgos a la infraestructura o a la
información. La ciberseguridad comprende software (bases de datos, metadatos,
archivos), hardware, redes de computadoras y todo lo que la organización valore y
signifique un riesgo si esta información confidencial llega a manos de otras personas,
convirtiéndose, por ejemplo, en información privilegiada.

22 | P á g i n a
La definición de seguridad de la información no debe ser confundida con la de
«seguridad informática», ya que esta última solo 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.
La seguridad informática es la disciplina que se encarga de diseñar las normas,
procedimientos, métodos y técnicas destinados a conseguir un sistema de
información seguro y confiable.

 Tipos de Seguridad

1) Seguridad Activa:
Llamamos seguridad activa al conjunto de acciones encaminadas a proteger
el ordenador y su contenido. Algunos podrían ser:
-Instalación software de seguridad
-Contraseñas
-Certificados digítales
-Encriptación de datos
2) Seguridad Pasiva:
Llamamos seguridad pasiva a la que pretende minimizar el impacto de un
Posible daño informático. Algunos podrían ser:
-Copias de seguridad
-sistemas de alimentación interrumpida
3) Seguridad Física:
La seguridad física trata de proteger el hardware ante posibles desastres
naturales como incendios, inundaciones, robos, sobrecargas eléctricas.
Algunas medidas de protección podrían ser:
-Sistemas anti incendios y anti inundaciones
-Vigilancia para evitar robos
-Sistemas para evitar apagones o sobrecargas eléctricas.

23 | P á g i n a
4) Seguridad Lógica:
La seguridad lógica complementa la física y trata de proteger el software y
los datos de los usuarios.
Para esto es recomendable lo siguiente:
-Protección de la información ante robos o pérdidas con las técnicas de seguridad
activa y pasiva.
5) Seguridad de la Persona:
Seguridad en la persona, consiste en la protección ante amenazas y fraudes
a la persona, que es lo más importante

6) Seguridad de los Medios de Comunicación:


Seguridad en los sistemas de información o amenazas a la máquina,
consiste en la protección ante las amenazas a nuestro ordenador.
Estos son algunos Mecanismos de protección para personas y sistemas de
información:
- Estar informados.
- Usar el sentido común.
- Las leyes nos protegen.
- Protección de la información ante robos o pérdidas con las técnicas de seguridad
activa y pasiva.

 Amenazas y fraudes en sistemas de información


Vamos a comenzar por conocer las principales amenazas a nuestro ordenador, es
decir, de qué es necesario protegerlo y con qué herramientas contamos para ello.
Se llama malware, software malicioso o software malintencionado al software
elaborado con fines maliciosos, como virus, troyanos, gusanos, etc.
 Virus:
Es un programa que se instala en el ordenador sin el permiso del usuario con
el objetivo de causar daños.

 Gusano:
Se trata de un programa malicioso cuya finalidad es desbordar la memoria del
sistema reproduciéndose a sí mismo.

24 | P á g i n a
 Spam o correo de basura:
Son mensajes de correo electrónico que inundan la Red con la finalidad de
anunciar productos, a veces, de dudosa legalidad, para que los destinatarios
los compren. Se envían de forma masiva porque está demostrado que uno de
cada doce millones de los correos enviados obtiene una respuesta positiva.

 Troyano:
Es un tipo de virus en el que se han introducido, instrucciones encaminadas a
destruir la información almacenada en los discos o bien recabar información.
Estos virus suelen estar alojados en elementos aparentemente.

Capítulo 3

Modelo Entidad Relación


3.1 Las rutas de los sistemas de archivos:
Casi todos los sistemas de archivos permiten organizar la información en carpetas.
Este método de organización es muy seguro. Permite que los programas funcionen
mejor y la información está más ordenada.
Para indicar donde se encuentra un archivo, se usa una cadena de texto llamada
“ruta”. Su aspecto cambia un poco de sistema a sistema: su estructura suele indicar
las carpetas y subcarpetas que hay que recorrer para llegar al archivo, terminando
con el nombre del mismo.
Las rutas no nos sirven solamente a nosotros como usuarios, sino también al sistema
operativo para saber dónde.

Ejemplo:
Veamos un ejemplo de ruta en dos sistemas.

 En Windows:
Si yo tuviese una carpeta en el disco duro llamada “MP3”, y en ella hubiese una
carpeta llamada “defcondos”, y dentro de esta carpeta estuviese el archivo
“pocopan.mp3”, la ruta sería esta:
 C:’MP3’defcondos’pocopan.mp3

 En GNU/Linux:
La ruta a la canción podría ser así:
 /home/grissom/mp3/defcondos/pocopan.mp3

En este caso se indica que hay que entrar a la carpeta “home” para después abrir la
carpeta “grissom” que está ahí. En ella está la carpeta “MP3”, donde hay otra carpeta
que se llama “defcondos”, dentro de la cual está el archivo “pocopan.mp3”.

25 | P á g i n a
Fíjate como las carpetas están separadas entre sí por diferentes barras según cada
sistema (“’” en Windows y “/” en GNU/Linux. Este tipo de organización se llama
“jerárquica”.

Cuando usamos una interfaz gráfica de usuario, las carpetas se muestran en un


esquema llamado “vista en árbol”. Al directorio o carpeta principal, desde donde
parten las demás, se le suele llamar “directorio raíz”. En Windows es “C:’” y en
GNU/Linux es “/”.
se encuentran ciertos archivos que uno u otro programa puede necesitar para
funcionar.

3.2 Simbología
Es un modelo de datos que permite representar cualquier abstracción, percepción y
conocimiento en un sistema de información formado por un conjunto de objetos
denominados entidades y relaciones, incorporando una representación visual
conocida como diagrama entidad-relación.
Es una herramienta para el modelado de datos que permite representar las entidades
relevantes de un sistema de información así como sus interrelaciones y propiedades.
El modelo de datos entidad-relación está basado en una percepción del mundo real
que consta de una colección de objetos básicos, llamados entidades, y de relaciones
entre esos objetos.

Ejemplo del uso del diagrama entidad relación.

26 | P á g i n a
3.2.1 Reglas
Para la construcción de un Diagrama E-R. Saber un par de reglas nos harán el diseño
de nuestro Diagrama más fácil. Enseguida listamos algunas reglas que debemos
tomar en cuenta:

1.- En un Diagrama Entidad Relación. Nunca debe haber relaciones circulares:

No Relaciones Circulares.

27 | P á g i n a
2.- En un Diagrama Entidad Relación. No puede haber entidades o relaciones
independientes:

No Relaciones/Entidades Independientes.

3.- En un Diagrama Entidad Relación. Un rombo solo puede unir a dos entidades,
única y exclusivamente.

Solo dos entidades


4.- En un Diagrama Entidad Relación. Una entidad puede estar relacionada con
varias entidades, pero únicamente con rombos separados.

28 | P á g i n a
Entidades Separadas
5.- En un Diagrama Entidad Relación. Cuando se encuentra un atributo que posee
características propias (Atributos) como el dueño del vehículo, este no podrá ser
atributo y pasará a ser una entidad.

Atributo-Entidad

6.- En un Diagrama Entidad Relación. Toda entidad se nombra el plural y los atributos
en singular.

Entidades: En Plural y Atributos: Singular

3.2.2 Relaciones
Una relación es la asociación que existe entre dos o más entidades (Son objetos
que existen y se distinguen de otros objetos de acuerdo a sus características
llamadas atributos. Pueden ser concretas como una persona o abstractas como una
fecha.)

29 | P á g i n a
 Tipos de relaciones
Uno a Uno: (1:1) Un registro de una entidad A se relaciona con solo un registro
en una entidad B. Las relaciones uno a uno no son demasiado.

Ejemplo encontramos el vínculo entre un tutor y su grupo. Como sabemos, un profesor


puede ser tutor de un sólo grupo (UNO) y del mismo modo, cada grupo sólo puede tener un
tutor.

Uno a varios: (1: N) Un registro en una entidad en A se relaciona con cero o


muchos registros en una entidad B. Pero los registros de B solamente se
relacionan con un registro en A.

Ejemplo: sabemos que cada profesor pertenece únicamente a un departamento, pero en


cada departamento existe más de un profesor. De aquí podemos extraer una relación UNO
a MUCHOS entre las entidades Departamentos y Profesores.

Varios a Uno: (N: 1) Una entidad en A se relaciona exclusivamente con una


entidad en B. Pero una entidad en B se puede relacionar con 0 o muchas
entidades en A (ejemplo empleado-centro de trabajo).

Ejemplo: Cualquier alumno (MUCHOS) pertenece sólo a un grupo (UNO), un alumno no


puede estar en más de una clase.

30 | P á g i n a
Varios a Varios: (N: M) Una entidad en A se puede relacionar con 0 o con
muchas entidades en B y viceversa

Ejemplo: si queremos conocer los profesores que dan clase a un grupo o los grupos a los
que da clase un profesor determinado, necesitamos Las entidades: Profesores y Grupos.
Para establecerla podríamos leer que un profesor da clases a varios grupos (1A, 1B, 2C,
etcétera) y un grupo recibe clases de varios profesores (Carlos Pérez, Antonio García,
etcétera).

3.2.3 Llave Primaria


Una llave primaria es un campo o grupo de campos que identifica en forma única un
registro. Ningún otro registro puede tener la misma clave primaria. La clave primaria
se utiliza por distinguir registro con el fin de que se pueda tener acceso a ellos,
organizarlos y manipularlos. En el número de este representa un ejemplo de una
primaria.
También conocida como Primary Key o en su Acrónimo PK. Es una columna o
combinación de columnas que identifican de forma única un registro en la tabla,
además este tipo de claves no permite nulos y debe ser un atributo único en cualquier
dominio. Solo una llave candidata puede ser llave primaria. La selección de una llave
primaria se debe realizar con cuidado, una mala elección puede afectar
negativamente el diseño, la normalización y desempeño de la base de datos.
Es importante que cada entidad tenga al menos un atributo que se único e irrepetible
dentro del conjunto; por ejemplo, muchos empleados pueden llamarse Javier
Hernández, puede tener la misma edad y cantidad de características similares, pero
el ID (Identificación) o DNI (Documento Nacional de Identidad, Nombre, Apellido,
Teléfono) será único para cada Empleado. Entonces, este atributo es la llave
primaria. La Llave Primaria deberá existir en cada entidad y se representará por un
asterisco antes del nombre y también puede representarse subrayado el atributo.

 Reglas de selección para una llave primaria

 Seleccione una llave que no contenga valores desconocidos (NULL).


Técnicamente las claves candidatas pueden contener valores desconocidos
(NULL). En el caso, que una llave candidata pueda contener este tipo de
valores, esta llave se descarta como Llave Primaria.

31 | P á g i n a
 Seleccione una llave que sea única y que no se repita en el tiempo. Es posible
que las claves candidatas que son únicas en este momento puede contener
valor duplicado en otro instante de tiempo. Este tipo de llaves candidatas no
reúnen los requisitos para ser llave principal.

 Las llaves primarias no cambian en el tiempo. Los valores de llave primaria no


deben seguir cambiando en el tiempo. Es conveniente para una base de datos
que los valores almacenados en la columna de la clave primaria sean
estáticos. Un cambio en los valores afecta negativamente la integridad de la
base de datos, los índices primarios y secundarios, ya que la llave primaria
hace referencia a numerosos lugares en la base de datos.

Llave Foránea
Una llave foránea (o Foreign key FK) es una limitación referencial entre dos tablas,
la llave foránea identifica una columna o grupo de columnas en una tabla (tabla hija
o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla
maestra o referenciada). L as columnas en la tabla referendo deben de ser la llave
primaria u otra llave candidata en la tabla referida.

32 | P á g i n a
Ejemplo:
Un Aero puerto necesita saber los datos específicos de sus pasajeros y saber a
dónde se dirigen, se necesitan dos tablas, una de PASAJEROS que contendrá los
nombres, país, teléfono y correo y el otro de PAISES para saber que persona se
dirigirá a X país.

Como podemos ver la tabla principal es PASAJEROS y nuestra FK es PAISES,


porque PAISES es nuestra FK, simple la FK como se mencionó anteriormente es una
referencia es decir un dato que nosotros queremos más a detalle, como el aeropuerto
necesitaba saber que personas en específico necesitaban ir a un país en especial,
se necesita enlazar con un atributo (dato que tengamos adentro de la tabla) como el
que se usó idPais, un dato que nos indica el País a visitar y que a su vez nos muestra
una tabla que especifica las personas que se dirigen a ese País.

3.2.4 Llave Candidata

También llamada “clave candidata”: Se trata de súper-clave mínima, es decir,


cualquier subconjunto de atributos de la misma no puede ser una súper-clave.

Si se almacena información sobre los empleados de una empresa, es preciso tener


la posibilidad de distinguir qué datos corresponden a cada uno de los diferentes
empleados. Toda la información que contiene una base de datos debe poderse
identificar de alguna forma. En el caso particular de las bases de datos que siguen el
modelo relacional, para identificar los datos que la base de datos contiene, se pueden
utilizar las claves candidatas de las relaciones. A continuación, definimos qué se
entiende por clave candidata, clave primaria y clave alternativa de una relación. Para
hacerlo, será necesario definir el concepto de súper-clave.

33 | P á g i n a
Capítulo 4

Orientado a objetos UML

4.1 Diagrama Casos de Uso


Un diagrama de casos de uso representa la interacción de un usuario y un sistema
informático.
Es una técnica de modelado usada para describir lo que debería hacer un sistema
nuevo o un sistema ya existente.
 Los casos de uso describen bajo la forma de acciones y reacciones. El
comportamiento de un sistema desde el punto de vista de un usuario, permiten
definir los límites del sistema y las relaciones del sistema y el entorno.
Los diagramas de casos de uso modelan la funcionalidad del sistema usando actores
y casos de uso.
Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas
computacionales.
Casos de uso es la función del sistema o bien que el usuario va a ejecutar para llevar
a cabo un trabajo.
Entonces un diagrama de casos de uso describe que hará el sistema, pero no
especifica de qué forma lo hará, son ideales para definir los requerimientos
específicos y mostrarlos al usuario de tal forma que este pueda plantear sus ideas y
correcciones de una mejor manera, ya que muchas veces el usuario no está seguro
de lo que desea o como quiere que funcione.

34 | P á g i n a
Representa la funcionalidad de un sistema mostrando su interacción con los usuarios. Esta
representación se hace a través de las relaciones entre los actores (Usuarios) y los casos
de uso (Acciones) dentro de un sistema. En esta imagen se puede visualizar como las
funciones más importantes pueden realizar.

4.2 Diagrama de actividades

El Lenguaje Unificado de Modelado tiene varios subconjuntos de diagramas que


puede modelar, incluidos los diagramas estructurales, los diagramas de interacción y
los diagramas de comportamiento. Los diagramas de actividades son un subconjunto
de estos últimos. Junto con los diagramas de casos de uso y de máquinas de estado,
se usan para describir las actividades de negocios y la funcionalidad de los sistemas
de software. Usarás un conjunto de símbolos especializados, incluidos aquellos para
pasos de inicio, finalización, fusión y recepción en el flujo, para crear un diagrama de
actividades.

Casos de uso para diagramas de actividades


Los diagramas de actividades tienen una serie de beneficios para toda
organización. Prueba usar un diagrama de actividades para :
Demostrar la lógica de un algoritmo.
Describir los pasos realizados en un caso de uso UML.
Ilustrar un proceso de negocios o flujo de trabajo entre los usuarios y el sistema.
Simplificar y mejorar cualquier proceso clarificando casos de uso complicados.
Modelar elementos de arquitectura de software, tales como método, función y
operación.

Componentes de un diagrama de actividades


Algunos de los componentes más comunes de un diagrama de actividades
incluyen:
Acciones: Un paso en la actividad en la que los usuarios o el software realizan una
tarea dada. Esto se simboliza con un rectángulo redondeado.
Nodo de decisión: Una rama condicional en el flujo que se representa con un
diamante. Incluye una sola entrada y dos o más salidas.
Flujos de control: Este es otro nombre para los conectores que muestran el flujo
entre pasos en el diagrama.
Nodo inicial: Simboliza el inicio de la actividad. Se representa con un círculo negro.
Nodo terminal: Representa el paso final en la actividad. Se modela con un círculo
negro con contorno blanco.

35 | P á g i n a
Ejemplos de diagramas de actividades:

4.2.1 Diagrama de colaboración


En las versiones de UML 1.x es esencialmente un diagrama que muestra
interacciones organizadas alrededor de los roles. A diferencia de los diagramas de
secuencia, los diagramas de colaboración, también llamados diagramas de
comunicación, muestran explícitamente las relaciones de los roles. Por otra parte, un
diagrama de comunicación no muestra el tiempo como una dimensión aparte, por lo
que resulta necesario etiquetar con números de secuencia tanto la secuencia de
mensajes como los hilos concurrentes.

 Muestra cómo las instancias específicas de las clases trabajan juntas para
conseguir un objetivo común.
 Implementa las asociaciones del diagrama de clases mediante el paso de
mensajes de un objeto a otro. Dicha implementación es llamada "enlace".
Un diagrama de comunicación es también un diagrama de clases que contiene roles
de clasificador y roles de asociación en lugar de sólo clasificadores y asociaciones.
Los roles de clasificador y los de asociación describen la configuración de los objetos
y de los enlaces que pueden ocurrir cuando se ejecuta una instancia de la
comunicación. Cuando se instancia una comunicación, los objetos están ligados a
los roles de clasificador y los enlaces a los roles de asociación. El rol de asociación
puede ser desempeñado por varios tipos de enlaces temporales, tales como
argumentos de procedimiento o variables locales del procedimiento. Los símbolos de
enlace pueden llevar estereotipos para indicar enlaces temporales.

36 | P á g i n a
 Usos
Un uso de un diagrama de colaboración es mostrar la implementación de una
operación. La comunicación muestra los parámetros y las variables locales de la
operación, así como asociaciones más permanentes. Cuando se implementa el
comportamiento, la secuencia de los mensajes corresponde a la estructura de
llamadas anidadas y el paso de señales del programa.
Un diagrama de secuencia muestra secuencias en el tiempo como dimensión
geométrica, pero las relaciones son implícitas. Un diagrama de comunicación
muestra relaciones entre roles geométricamente y relaciona los mensajes con las
relaciones, pero las secuencias temporales están menos claras.

 Tipos
Es útil marcar los objetos en cuatro grupos: los que existen con la interacción entera;
los creados durante la interacción (restricción {new}); los destruidos durante la
interacción (restricción {destroyed}); y los que se crean y se destruyen durante la
interacción (restricción {transient}).

Aunque las comunicaciones muestran directamente la implementación de una


operación, pueden también mostrar la realización de una clase entera. En este uso,
muestran el contexto necesario para implementar todas las operaciones de una
clase. Esto permite que el modelador vea los roles múltiples que los objetos pueden
desempeñar en varias operaciones.
No hay ejemplos de los diagramas, diferentes casos o sistemas, ya que con UML se
modelan áreas de un negocio, así como los sistemas que estos requieren

 Mensajes
Los mensajes se muestran como flechas etiquetadas unidas a los enlaces. Cada
mensaje tiene un número de secuencia, una lista opcional de mensajes precedentes,
una condición opcional de guarda, un nombre, una lista de argumentos y un nombre
de valor de retorno opcional. El nombre de serie incluye el nombre (opcional) de un
hilo. Todos los mensajes del mismo hilo se ordenan secuencialmente. Los mensajes
de diversos hilos son concurrentes a menos que haya una dependencia secuencial
explícita. En conclusión, en un diagrama muy sencillo de hacer.

 Flujos
Generalmente, un diagrama de comunicación contiene un símbolo para un objeto
durante una operación completa. Sin embargo, a veces, un objeto contiene diferentes
estados que se deban hacer explícitos. Por ejemplo, un objeto pudo cambiar de
localización o sus asociaciones pudieron diferenciarse.

37 | P á g i n a
Los diferentes símbolos de objeto que representan un objeto se pueden conectar
usando flujos "become" o "conversión". Un flujo "become" es una transición, a partir
de un estado de un objeto a otro. Se dibuja como una flecha de línea discontinua con
el estereotipo "become" o "conversión" y puede ser etiquetado con un número de
serie para mostrar cuando ocurre. Un flujo de conversión también se utiliza para
mostrar la migración de un objeto a partir de una localización a otra distinta para otro
lugar también se deben marcar con el número en secuencias.

Diagrama de componentes
Un diagrama de componentes es un diagrama tipo del Lenguaje Unificado de Modelado.
Un diagrama de componentes representa cómo un sistema de software es dividido
en componentes y muestra las dependencias entre estos componentes. Los componentes
físicos incluyen archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables,
o paquetes. Los diagramas de Componentes prevalecen en el campo de la arquitectura de
software, pero pueden ser usados para modelar y documentar cualquier arquitectura de
sistema.
Debido a que los diagramas de componentes son más parecidos a los diagramas de casos
de usos, éstos son utilizados para modelar la vista estática y dinámica de un sistema.
Muestra la organización y las dependencias entre un conjunto de componentes. No es
necesario que un diagrama incluya todos los componentes del sistema, normalmente se
realizan por partes. Cada diagrama describe un apartado del sistema.
En él se situarán librerías, tablas, archivos, ejecutables y documentos que formen parte del
sistema.
Uno de los usos principales es que puede servir para ver qué componentes pueden
compartirse entre sistemas o entre diferentes partes de un sistema.

38 | P á g i n a
Aquí en esta imagen podemos ver como se
implementa el Diagrama de Componentes.
Los componentes pueden tener interfaces (es
decir clases abstractas con operaciones) que
permiten asociaciones entre componentes.

Los diagramas de componentes describen los elementos físicos del sistema y sus
relaciones
Muestran las opciones de realización incluyendo código fuente, binario y ejecutable
Los componentes representan todos los tipos de elementos software que entran en la
fabricación de aplicaciones informáticas
Pueden ser simples archivos, paquetes, bibliotecas cargadas dinámicamente, etc.

Elementos del diagrama de componentes


Componentes.
interfaces.
relaciones de dependencia, generalización, asociación y realización.
paquetes o subsistemas.

Componente
Es una parte física de un sistema (modulo, base de datos, programa ejecutable,
etc.). se puede decir que un componente es la materialización de una o más clases,
por qué una abstracción con atributos y métodos pueden ser implementados en los
componentes. los componentes se pueden agrupar en paquetes, así como los
objetos en clases, además puede haber entre ellos relaciones de dependencia
como: generalización, asociación, agregación y realización.
Aquí podemos ver como se relacionan los componentes.

39 | P á g i n a
Interfaces: Es el lazo de unión entre varios componentes.

Como podemos ver las interfaces se pueden representar de varias formas.


Subsistemas:
1. Los distintos componentes pueden agruparse en paquetes según un criterio lógico
y con vistas a.
2. Simplificar la implementación.
3. Son paquetes estereotipados en <<subsistemas>>.
4. Los subsistemas organizan la vista de realización de un sistema.
5. Cada subsistema puede contener componentes y otros subsistemas.
6. La descomposición en subsistemas no es necesariamente una descomposición
funcional.
7. La relación entre paquetes y clases en el nivel lógico es el que existe entre
subsistemas y componentes en el nivel físico.

40 | P á g i n a
"los diagramas de componentes se generan a partir del diagrama de clases"
Pasos para la elaboración de un diagrama de componentes:

previamente al diagrama de componentes debemos tener hecho el diagrama de las


clases.
se debe identificar a todas las clases que participaran en el sistema o sub sistema a
desarrollar.
una vez identificadas las clases, se procede a identificar sus métodos.
estos métodos pasaran a ser módulos con líneas de código independientes.
estos módulos serán los componentes de nuestro diagrama.
Estos componentes se relacionan entre sí por medio de sus interfaces.

4.2.2 Lenguajes de programación


Un lenguaje de programación es un lenguaje formal diseñado para
realizar procesos que pueden ser llevados a cabo por máquinas como
las computadoras. Pueden usarse para crear programas que controlen el
comportamiento físico y lógico de una máquina, para expresar algoritmos (Un
algoritmo es una estructura lógica antes del código),con precisión, o como modo de
comunicación humana.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que
definen su estructura y el significado de sus elementos y expresiones. Al proceso por
el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene
el código fuente de un programa informático se le llama programación.
Existe un error común que trata por sinónimos los términos 'lenguaje de
programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los
lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el
marcado de páginas web que no es propiamente un lenguaje de programación, sino
un conjunto de instrucciones que permiten estructurar el contenido de los
documentos).
Permite especificar de manera precisa sobre qué datos debe operar una
computadora, cómo deben ser almacenados o transmitidos y qué acciones debe
tomar bajo una variada gama de circunstancias. Todo esto, a través de
un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural.
Una característica relevante de los lenguajes de programación es precisamente que
más de un programador pueda usar un conjunto común de instrucciones que sean
comprendidas entre ellos para realizar la construcción de un programa de forma
colaborativa.

41 | P á g i n a
Un 4.2.2 ejemplo de código
fuente escrito en el lenguaje
de programación Java, que
imprimirá el mensaje "Hello
World!" a la salida estándar
cuando es compilado y
ejecutado.

Lenguajes de programación de bajo nivel:


Son mucho más fáciles de utilizar que el lenguaje máquina, pero dependen mucho
de la máquina o computadora como sucedía con el lenguaje máquina. El lenguaje
ensamblador fue el primer lenguaje de programación que trato de sustituir el lenguaje
máquina por otro lenguaje que fuese más parecido al de los seres humanos.
En este lenguaje se conoce como programa fuente, que traduce las instrucciones a
un programa escrito en lenguaje ensamblador por el programador, y programa objeto
es la traducción a lenguaje máquina del programa fuente.
Los lenguajes de este tipo pueden crear programas muy rápidos, pero son difíciles
de aprender, son específicos de cada procesador (de cada máquina), si nos llevamos
el programa a otro computador será preciso reescribir el programa desde el
comienzo.
Lenguajes de programación de alto nivel:
Este tipo de lenguajes de programación son independientes de la máquina, los
podemos usar en cualquier computador con muy pocas modificaciones o sin ellas,
son muy similares al lenguaje humano, pero precisan de un programa interprete o
compilador que traduzca este lenguaje de programación de alto nivel a uno de bajo
nivel como el lenguaje de máquina que la computadora pueda entender.
Los lenguajes de programación de alto nivel son más fáciles de aprender porque se
usan palabras o comandos del lenguaje natural, generalmente del inglés. Este es el
caso del BASIC, el lenguaje de programación más conocido.
Existen muchos lenguajes de programación de alto nivel con sus diferentes
versiones. Por esta razón es difícil su tipificación, pero una clasificación muy
extendida desde el punto de vista de trabajar de los programas y la filosofía de su
creación es la siguiente:

42 | P á g i n a
Lenguajes de programación imperativos: entre ellos tenemos el Cobol, Pascal, C y
Ada.
Lenguajes de programación declarativos: el Lisp y el Prolog.
Lenguajes de programación orientados a objetos: el Smalltalk y el C++.
Lenguajes de programación orientados al problema: son aquellos lenguajes
específicos para gestión.
Lenguajes de programación naturales: son los nuevos lenguajes que pretender
aproximar el diseño y la construcción de programas al lenguaje de las personas.
Otra clasificación de los lenguajes de programación de alto nivel, es teniendo en
cuenta el desarrollo de las computadoras según sus diferentes generaciones:
Lenguajes de programación de primera generación: el lenguaje máquina y el
ensamblador.
Lenguajes de programación de segunda generación: los primeros lenguajes de
programación de alto nivel imperativo (FROTRAN, COBOL).
Lenguajes de programación de tercera generación: son lenguajes de programación
de alto nivel imperativo, pero mucho más utilizados y vigentes en la actualidad
(ALGOL 8, PL/I, PASCAL, MODULA).
Lenguajes de programación de cuarta generación: usados en aplicaciones de gestión
y manejo de bases de datos (NATURAL, SQL).
Lenguajes de programación de quinta generación: creados para la inteligencia
artificial y para el procesamiento de lenguajes naturales (LISP, PROLOG).

4.2.3 Paradigmas de Programación


Un paradigma de programación es un modelo básico de diseño y desarrollo de
programas, que permite producir aplicaciones con un conjunto de normas específicas
que facilitan el uso y creación del mismo. En ocasiones ciertos paradigmas de
programación sirven para resolver ciertos tipos de problemas de mejor forma que
otros.
Clasificación
Estructurada:
La programación estructurada es un paradigma de programación orientado a mejorar
la claridad, calidad y tiempo de desarrollo de un programa de computadora. La
característica más importante de este paradigma es que el programador define cual
va a ser el flujo del programa, es decir el programador decide cuales son las
decisiones que tomara la aplicación.

43 | P á g i n a
Eventos:
Es un paradigma de la programación en el que tanto la estructura como la ejecución
de los programas van determinados por los sucesos que ocurran en el sistema,
definidos por el usuario o que ellos mismos provoquen.
Objetos:
Este paradigma está orientado al desarrollo de aplicaciones de una manera visual y
mucho más dinámica en cuestión sistema-usuario, se basa en una colección de
objetos que están interrelacionados y trabajan en conjunto para la resolución de un
problema.
Lógico:
Es un paradigma de programación basado en la lógica del sistema. Analiza y aplica
la lógica para el planteamiento de problemas y control sobre una serie de reglas
analíticas para alcanzar una solución automática.
4.2.4 Ciclo de vida del software
Es una secuencia estructurada y bien definida de las etapas en Ingeniería de software
para desarrollar el producto software deseado. El SDLC (sus siglas en inglés) aporta
una serie de pasos a seguir con la finalidad de diseñar y desarrollar un producto
software de manera eficiente.
Fases Básicas:
 Definición de objetivos: Define la finalidad del proyecto y su papel en la
estrategia global del proyecto.
 Análisis de los requisitos y su viabilidad: Recopila, examina y formula los
requisitos del cliente, en cualquier restricción que se pueda aplicar.
 Diseño general: Requisitos generales de la arquitectura de la aplicación.
 Diseño en detalle: Definición precisa de cada subconjunto de la aplicación.
 Programación o implementación: Es la implementación en un lenguaje de
programación para crear las funciones definidas durante la etapa del diseño
 Prueba de unidad: La prueba individual de cada subconjunto de la aplicación
para garantizar que se implementaron de acuerdo con las especificaciones.
 Integración: Garantiza que los diferentes módulos que se integren con la
aplicación. El propósito de la prueba de integración tiene que estar
cuidadosamente documentada para evitar problemas.
 Prueba Beta o de validación: Garantiza que el software cumpla con las
especificaciones originales.
 Documentación: Sirve para documentar la información necesaria para los
usuarios del software y para desarrollos futuros.
 Implementación: Aquí se instala el software en máquinas de clientes, ya
que el software necesita instalar las configuraciones para el consumidor
final con posterioridad evaluando su adaptabilidad y su portabilidad.

44 | P á g i n a
 Mantenimiento: Comprende todos los procedimientos correctivos y las
actualizaciones secundarias del software (mantenimiento continuo).

El orden y la presencia de cada uno de estos procedimientos en el ciclo de


vida de una aplicación dependen del tipo de modelo de ciclo de vida acordado
entre el cliente y el equipo de desarrolladores.
Tipos de Modelos:
 Cascada: Es un proceso secuencial de desarrollo en el que el visto y su
desarrollo son hacia abajo, a través de fases, como la de análisis de las
necesidades, el diseño, implementación, pruebas o validación, la integración
y mantenimiento. Está dividido en fases secuenciales. Se mantiene un estricto
control durante la vida del proyecto.
 Prototipado: Pertenece a los modelos de desarrollo evolutivo, este debe de
ser construido en poco tiempo, el diseño es rápido y se centra en una
representación de aspectos del software que son visibles para el cliente.
 Incrementación: Provee una estrategia para controlar la complejidad y los
riesgos desarrollando una parte del producto software reservando el resto de
aspectos para el futuro.
 Espiral: Sus actividades se conforman en un espiral y en cada bucle o
interacción, representa un conjunto de actividades. La atención se centra en
la evaluación y reducción del riesgo del proyecto dividiéndolo en segmentos
más pequeños.
 RAD (Rapid Aplication Development): El desarrollo rápido de aplicaciones
(RAD), es una metodología de desarrollo de software que implica el desarrollo
interactivo y la construcción de prototipos.
4.2.5 Generación de Código
El generador de código emite el código para el lenguaje objeto, utilizando las
direcciones calculadas en la fase anterior. Hemos simplificado esta fase
considerando una máquina orientada a pila: una memoria de pila en la que se
computan las expresiones, un segmento de datos en el que se guardan las variables
y un segmento para guardar las cadenas. La estrategia utilizada es similar a la que
vimos en el plegado de las constantes. Definimos un método para la traducción de
cada clase de nodo del AAA. Entonces, para traducir el programa basta con llamar al
correspondiente método:
$tree = Syntax::Analysis::parser;
... # otras fases
########code generation
local $target = ""; # target code
$tree->translate;
...

45 | P á g i n a
En la cadena $target dejamos el código emitido. Cada método visita los hijos,
traduciéndolos y añadiendo el código que fuera necesario para la traducción del
nodo.
sub PROGRAM::translate {
my $tree = shift;

$target .= "DATA ". $data."\n" if $data;


$tree->STS->translate;
}
Traducir la lista de sentencias es concatenar la traducción de cada una de las
sentencias en la lista:
sub STATEMENTS::translate {
my $statements = shift;
my @statements = @{$statements};

for my $s (@statements) {
$s->translate;
}
}

Si suponemos que disponemos en el ensamblador de nuestra máquina objeto de


instrucciones PRINT_INT y PRINT_STR que imprimen el contenido de la expresión
que está en la cima de la pila, la traducción será:

sub PRINT::translate {
my $self = shift;

$self->EXPRESSION->translate;
if ($self->EXPRESSION->TYPE == $int_type) { emit
"PRINT_INT\n"; }
else {emit "PRINT_STR\n"; }
}
Así, si la sentencia era PC, donde C es del tipo cadena, se debería eventualmente
llamar al método de traducción del identificador:
sub ID::translate {
my $self = shift;

my $id = $self->VAL;
my $type = Semantic::Analysis::get_type($id);
if ($type == $int_type) {
emit "LOAD ".$symbol_table{$id}->{ADDRESS}."\n";
}
46 | P á g i n a
else {
emit "LOAD_STRING ".$symbol_table{$id}-
>{ADDRESS}."\n";
}
}
La función emit simplemente concatena el código producido a la salida:
sub emit { $target .= shift; }
Para la traducción de una sentencia de asignación supondremos de la existencia de
instrucciones STORE_INT y STORE_STRING. La instrucción STORE_STRING
asume que en la cima de la pila están en la dirección y la cadena de almacenar
sub ASSIGN::translate {
my $self = shift;

$self->RIGHT->translate;
my $id = $self->LEFT;
$id->translate;
my $type = Semantic::Analysis::get_type($id->VAL);

if ($type == $int_type) {
emit "STORE_INT\n";
}
else {
emit "STORE_STRING\n";
}
}
Si se está traduciendo una sentencia como a = “hola”, se acabará llamando al método
de traducción asociado con la clase STR el cual actúa empujando la dirección y la
longitud de la cadena en la pila:
sub STR::translate {
my $self = shift;

emit "PUSHSTR ".$self->OFFSET." ".$self->LENGTH."\n";


}
Así es la traducción de esta fuente:
$ cat test06.tutu
string a;
a = "hola";
p a

47 | P á g i n a
 Compiladores

Un compilador es un programa informático que traduce un programa que han


sido escritos en un lenguaje de programación a un lenguaje común, usualmente
lenguaje de máquina, aunque también puede ser traducido a un código
intermedio (bytecode) o a texto. Este proceso de traducción se conoce como
compilador

La construcción de un compilador involucra la división del proceso en una serie de


fases que variará con su complejidad. Generalmente estas fases se agrupan en dos
tareas: el análisis del programa fuente y la síntesis del programa objeto.

 Análisis: Se trata de la comprobación de la corrección del programa fuente, e


incluye las fases correspondientes al análisis léxico (que consiste en la
descomposición del programa fuente en componentes léxicos), análisis
sintáctico (agrupación de los componentes léxicos en frases gramaticales ) y
análisis semántico (comprobación de la validez semántica de las sentencias
aceptadas en la fase de análisis sintáctico).
 Síntesis: Su objetivo es la generación de la salida expresada en el lenguaje
objeto y suele estar formado por una o varias combinaciones de fases de
generación de código (normalmente se trata de código intermedio o de código
objeto) y de optimización de código (en las que se busca obtener un código lo
más eficiente posible).
Alternativamente, las fases descritas para las tareas de análisis y síntesis se pueden
agrupar en:

 Analizador o front-end: Es la parte que analiza el código fuente, comprueba su


validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos.
Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya
a compilar, y está compuesta por las fases comprendidas entre el análisis léxico
y la generación de código intermedio.
 Generador o back-end: Es la parte que genera el código máquina, específico de
una plataforma, a partir de los resultados de la fase de análisis, realizada por este
generador.
Esta división permite que el mismo generador se utilice para crear el código
máquina de varios lenguajes de programación distintos y que el mismo analizador
que sirve para examinar el código fuente de un lenguaje de programación concreto
sirva para producir código máquina en varias plataformas. Suele incluir la generación
y optimización del código dependiente de la máquina.

48 | P á g i n a
Diagramas a bloques de la operación de un buen compilador.

 Fases de un Compilador

Análisis Léxico: Esta fase se encarga de verificar si todas las cadenas pertenecen
o no al lenguaje. Es decir, realiza un análisis símbolo por símbolo indicando el token
por cada uno de los elementos reconocidos o el error en caso de no reconocer. Este
análisis no logra detectar muchos errores por su característica.

Ejemplo:

total=valor*5
Luego del análisis léxico:
id = id * num

Análisis Sintáctico: En esta fase se analiza la estructura de las expresiones en base


a gramáticas. Aquí ya se puede determinar si una estructura por ejemplo una
expresión matemática mal formada. El análisis que se realiza es jerárquico es decir
en base a árboles de derivación que se obtienen de las mismas gramáticas.
Ejemplo: position:=initial + rate*60
49 | P á g i n a
Generación de Código Intermedio: El código intermedio es una representación en
base a elementos de 3 y 4 direcciones. Lo que nos permite llegar a la fase de
optimización de código.

a=b+c
1: + b c T1
2: = a T1
Optimización de Código: Consiste en realizar una mejora en el código intermedio,
para reducir el número de líneas y hacer que la ejecución sea más rápida.

a=b+c
1: + b c a
Generación de Código: Llegamos a la generación de código ensamblador o código
máquina del procesador que nos interese, por ejemplo:
a:=b+c
 Interpretes

En ciencias de la computación, intérprete o interpretador, es un programa informático


capaz de analizar y ejecutar otros programas. Los interpretes se diferencian de los
compiladores o de los ensambladores en que mientras esos traducen un programa
desde su descripción en un lenguaje de programación código de máquina del
sistema, los interpretes solo realizan la traducción a medida que sea necesaria,
típicamente, instrucciones y normalmente no guardan el resultado de dicha
traducción.

Los programas interpretados suelen ser más lentos que los compilados debido a la
necesidad de traducir el programa mientras se ejecuta, pero a cambio son más
flexibles como entornos de programación y depuración (lo que se traduce, por
ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o
añadir módulos completamente nuevos), y permiten ofrecer al programa interpretado
un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del
propio intérprete (lo que se conoce comúnmente como máquina virtual).

50 | P á g i n a
Para mejorar el desempeño, algunas implementaciones de programación de
lenguajes de programación pueden interpretar o compilar el código fuente original en
una más compacta forma intermedia y después traducir eso al código de máquina
(ej. Perl, Python, MATLAB, y Ruby). Algunos aceptan los archivos fuente guardados
en esta representación intermedia (ej. Python, UCSD Pascal y Java).

 Tipos de intérprete

Interpretes duros: Los intérpretes puros son los que analizan y ejecutan
sentencia a sentencia todo el programa fuente. Siguen el modelo de
interpretación iterativa y, por tanto, se utilizan principalmente para lenguajes
sencillos.
Los intérpretes puros se han venido utilizando desde la primera generación de
ordenadores al permitir la ejecución de largos programas en ordenadores de
memoria reducida, ya que sólo debían contener en memoria el intérprete y la
sentencia a analizar y ejecutar en cada momento. El principal problema de
este tipo de intérpretes es que, si a mitad del programa fuente se producen
errores, se debe de volver a comenzar el proceso.

 Interpretes avanzados: Los intérpretes avanzados o normales incorporan un


paso previo de análisis de todo el programa fuente. Generando posteriormente
un lenguaje intermedio que es ejecutado por ellos mismos. De esta forma en
caso de errores sintácticos no pasan de la fase de análisis. Se utilizan para
lenguajes más avanzados que los intérpretes puros, ya que permiten realizar
un análisis más detallado del programa fuente

 Interpretes incrementales: Existen ciertos lenguajes que, por sus


características, no se pueden compilar directamente. La razón es que pueden
manejar objetos o funciones que no son conocidos en tiempo de compilación,
ya que se crean dinámicamente en tiempo en ejecución. Entre estos
lenguajes, pueden considerarse Smalltalk, Lisp o Prolog. Con el propósito de
obtener una mayor eficiencia que en la interpretación simple, se diseñan
compiladores incrementales.

 Evaluadores parciales: La utilización de evaluadores parciales o


especializados, surge al considerar que muchos programas contienen dos
tipos de datos de entrada. Existen una serie de datos de entrada que son
diferentes en cada ejecución mientras que otros datos no varían de una
ejecución a otra. El primer conjunto, se conoce como datos de entrada
dinámicos (se denotará como Din), mientras que el segundo conjunto, serían
los datos de entrada estáticos.

51 | P á g i n a
Capítulo 5
Acces

5.1 ¿Que son las tecnologías de la información?


La tecnología de la es la aplicación de ordenadores y equipos de telecomunicación
para almacenar, recuperar, transmitir y manipular datos, con frecuencia utilizado en
el contexto de los negocios u otras empresas. El término es utilizado como sinónimo
para los computadores, y las redes de computadoras, pero también abarca otras
tecnologías de distribución de información, tales como la televisión y los teléfonos.
Múltiples industrias están asociadas con las tecnologías de la información, incluyendo
hardware y software de computador, electrónica, semiconductores, internet, equipos
de telecomunicación, e-commercey servicios computacionales.
La tecnología de la información facilita la difusión del conocimiento:

5.2 Creación de la Primera Tabla


Para crear una tabla, puede crear una base de datos, insertar una tabla en una base
de datos existente, o bien importar o vincular a una tabla desde otro origen de datos
(como un libro de Microsoft Excel, un documento de Microsoft Word, un archivo de
texto u otra base de datos). Al crear una base de datos en blanco, se inserta
automáticamente una nueva tabla vacía. Después, puede escribir datos en la tabla
para empezar a definir los campos.

52 | P á g i n a
 Crear una tabla en una nueva base de datos

1. Lo primero que debemos hacer es pulsar el botón Diseño de tabla que se


encuentra dentro del grupo Tablas en la ficha Crear.

2. Una vez que se muestra la cuadrícula en el panel derecho el procedimiento


será el mismo para todos los campos.

53 | P á g i n a
3. En la columna Nombre del campo colocaremos los nombres de los campos
de la tabla y en la columna Tipo de datos elegiremos el tipo de dato para cada
campo de la tabla. De esta manera podemos crear todos los campos de nuestro
ejemplo:

4.Como regla general siempre colocamos primero el campo clave. Para establecer el
campo clave debemos seleccionar el campo correspondiente y pulsar el botón Clave
principal que se encuentra en la ficha Diseño.





54 | P á g i n a
5.2.1 Propiedades de los campos

Después de crear un campo y establecer su tipo de datos, se pueden establecer otras


propiedades de campo. El tipo de datos del campo determina qué otras propiedades
se pueden establecer. Por ejemplo, se puede controlar el tamaño de un campo de
texto estableciendo su propiedad Tamaño del campo.

Para los campos Número y Moneda, la propiedad Tamaño del campo es


especialmente importante, porque determina el intervalo de valores de campo. Por
ejemplo, un campo Número de un bit solo puede contener los enteros comprendidos
entre 0 y 255.

La propiedad Tamaño del campo también determina cuánto espacio en disco


requiere que cada valor de un campo Número. Dependiendo del tamaño del campo,
el número puede usar exactamente 1, 2, 4, 8, 12 o 16 bytes.

55 | P á g i n a
5.2.2 Añadir Descripción a una tabla
La función de cada campo es evidente con solo leer su título, pero es posible que
alguna vez el nombre del campo no sea tan significativo.

La tercera columna está titulada "Descripción":


En ella escribiremos la descripción de la función de cada campo, y será útil cuando
estemos utilizando la tabla. Así es como quedaría la tabla naturalmente cada uno
podrá escribir la información que crea más apropiada para recordar el motivo del
campo.

5.2.3 Como modificar la estructura de las tablas en Access

Modificar el diseño de una tabla en Vista Diseño:


Si una vez creada una tabla, queremos cambiar algo de su definición (por ejemplo,
añadir una nueva columna, ampliar una columna que ya existe, borrar una columna,
etc.) tendremos que realizar una modificación en su diseño:
Abrir la base de datos donde se encuentra la tabla a modificar, en el caso de que no
lo estuviera.

56 | P á g i n a
Hacer clic derecho sobre la tabla que queremos modificar en el Panel de navegación,
seleccionar Vista Diseño en el menú contextual:

Para modificar la definición de un campo, posicionar el cursor sobre el campo a


modificar y realizar las sustituciones necesarias.
Luego de eso podremos modificar la estructura de las tablas a nuestro gusto ya sea
el nombre o los atributos que van en ella ya sean de los diferentes tipos de datos que
serían estos:

5.2.4 Guardar una tabla


Para guardar una tabla, podemos:
Ir a la pestaña Archivo y elegir la opción Guardar.

57 | P á g i n a
O bien hacer clic sobre el botón Guardar de la barra de Acceso Rápido.

Como nuestra tabla aún no tiene nombre asignado, aparecerá el siguiente cuadro
de diálogo:

Escribir el nombre de la tabla.


Hacer clic sobre el botón Aceptar.
Nota: Si no hemos asignado clave principal antes de guardar la tabla, nos aparece
un cuadro de diálogo avisándonos de ello, y preguntándonos si queremos que Access
cree una, si le decimos que Sí nos añade un campo de tipo auto numeración y lo
define como clave principal. Si le decimos que No se guarda la tabla sin clave
principal ya que una clave principal en una tabla es conveniente pero no obligatoria.
Introducir datos en tablas
Una base de datos de Access es una colección de objetos: tablas, formularios,
informes, consultas y así sucesivamente, que debe trabajar conjuntamente para que
una base de datos para que funcione correctamente.
Además, estos objetos deben cumplir con un conjunto de principios de diseño o la
base de datos se deficiencias o incluso no funcionar. A su vez, estos principios de
diseño afectan a cómo introducir datos. Recuerde los siguientes puntos acerca de
los objetos de base de datos y diseño durante el proceso.

Tipo de datos Efecto en la entrada de datos

Texto:
Campos de texto aceptan caracteres de texto o numéricos, incluidos delimitadas
listas de elementos. Un campo de texto acepta un número más pequeño de
caracteres que un campo Memo: de 0 a 255 caracteres.

58 | P á g i n a
Memo:
Puede introducir grandes cantidades de texto y datos numéricos en este tipo de
campo. Además, si el Diseñador de base de datos establece el campo para que
admita el formato de texto enriquecido, puede aplicar los tipos de formato que se
encuentran normalmente en los programas de procesamiento de texto, como Word.
Por ejemplo, puede aplicar diferentes fuentes y tamaños de fuente a caracteres
específicos del texto y que estén en negrita o cursiva y así sucesivamente. También
puede agregar etiquetas de lenguaje de marcado de hipertexto (HTML) a los datos.
Número:
Puede introducir números solo en este tipo de campo y puede realizar cálculos con
los valores de un campo numérico.
Fecha/Hora:
Puede escribir solo fechas y horas en este tipo de campo. Según cómo el Diseñador
de base de datos del campo.
Hipervínculo:
Puede introducir los datos en este tipo de campo y, a continuación, Access lo
convertirá en una dirección Web. Por ejemplo, si escribe un valor en el campo, Access
coloca el texto con http://www..comde texto del usuario. Si escribe una dirección Web
válida, el vínculo funcionará.
Moneda:
Puede escribir solo los valores de moneda en este tipo de campo. Además, no tiene
que introducir manualmente un símbolo de moneda. De forma predeterminada,
Access aplica el símbolo de moneda (¥, £, $ etc.) especificado en la configuración
regional de Windows.
Auto numeración:
No puede especificar o cambiar los datos de este tipo de campo en cualquier
momento. Access incrementa los valores de un campo Auto numeración cuando se
agrega un nuevo registro a una tabla.

Ejemplo de cómo introducir datos en una tabla :


Puede que el titular parezca fácil, y de hecho muchas personas con un conocimiento
básico de Access, se lanzarían a abrir por ejemplo la primera tabla de la lista y
empezar a picar datos; pero si no quieres provocar errores hay que aprender a
efectuar la escritura de la información de manera correcta.
Antes de comenzar a escribir datos en una tabla
Nuestro punto de partida va a ser una base de datos sencilla, que controlará los
exámenes que realizan los alumnos de un colegio, teniendo en cuenta que cualquier

59 | P á g i n a
profesor puede vigilar o controlar un examen, pero que sólo puede impartir clases de
una única asignatura.
Tras definir las tablas y hacer las relaciones como se indicaban en el post Tipo de
relaciones, hemos obtenido un diagrama similar al siguiente:

Si las tablas están correctamente definidas y enlazadas, el siguiente paso natural es,
precisamente, escribir la información que se debe almacenar, operación que
podemos realizar directamente en la tabla.
Sin embargo, para no tener ningún problema deberemos comenzar SIEMPRE por las
tablas auxiliares, que en este caso sólo hay una, (Asignaturas), luego seguir por
las dependientes (Alumnos y Profesores), hasta llegar a la principal, Exámenes.

60 | P á g i n a
Vamos a comenzar con Asignaturas, por lo que simplemente hacemos un doble clic
sobre el nombre de la tabla, para abrir la vista Hoja de datos.

Como la clave principal de la tabla, el campo casig, se ha definido como de tipo Auto
numeración, no es necesario indicar el código de la asignatura, sino que simplemente
pulsaremos el tabulador y pasaremos a escribir las distintas denominaciones. El
resultado final puede ser parecido al de la figura:

Una vez añadidos los datos en la tabla auxiliar, podemos introducir los
correspondientes a las tablas Alumnos y Profesores.

El problema se plantea, por ejemplo, cuando tenemos que asignar una asignatura a
un profesor; ya que, a pesar de haber relacionado las dos tablas, la tarea no será
fácil, porque si no indicamos nada en contra, DEBEREMOS ESCRIBIR directamente
el código de la materia que imparte, ya que no aparecerá ninguna lista para elegirlo.

En este caso, la situación ideal para el campo casi es que aparezca un desplegable
que ofrezca al usuario directamente los datos de la tabla Asignaturas

61 | P á g i n a
5.2.5 Editar Registros En Access
A veces, puede que desee realizar cambios en un registro existente, por ejemplo,
para cambiar una dirección. Para editar un registro existente, abra un formulario o
una tabla, vaya al registro que desee cambiar y, a continuación, realice los cambios.
Abrir una tabla o un formulario
Paso 1:
Selecciona la pestaña Inicio y ubica el grupo Buscar.
Paso 2:
El cuadro de diálogo Buscar y reemplazar, aparecerá. Selecciona la
opción Reemplazar.

Paso 3:
Haz clic en la caja Buscar y escribe el término que deseas buscar.

62 | P á g i n a
Paso 4:
Haz clic en la caja Reemplazar por y escribe la palabra por la cual deseas
reemplazar el término original.

Paso 5:
Haz clic en la flecha desplegable de la opción Buscar en: para seleccionar el área
en el que deseas realizar la búsqueda. Allí encontrarás dos opciones principales:
Campo actual: Selecciónalo si deseas limitar tu búsqueda al campo seleccionado
recientemente.
Documento actual: Selecciónalo si deseas buscar en toda la tabla.

Paso 6:
Haz clic en la flecha desplegable de la opción Coincidir, para seleccionar el punto
en el cual deseas que los resultados coincidan con tu búsqueda.
Cualquier parte del campo: Para buscar tu término de búsqueda en cualquier parte
de la celda.

63 | P á g i n a
Hacer coincidir todo el campo: Para buscar solo las celdas que coinciden
exactamente con tu término de búsqueda.
Comienzo del campo: Para buscar sólo las celdas que empiezan con tu término de
búsqueda.

Paso 7: Haz clic en el botón Buscar siguiente, para buscar la siguiente aparición de
tu término de búsqueda.

64 | P á g i n a
Paso 8: Haz clic en Reemplazar para sustituir la palabra original con la nueva.

5.2.6 Insertar datos en una tabla Access.


Introducir datos en tablas de Access es muy similar a introducir datos en Excel. Para
trabajar con registros, tendrás que introducir datos en las celdas

Añadir un nuevo registro:


Hay tres opciones para agregar un registro nuevo a una tabla:

Opción 2:
En la barra de navegación de registros, ubicada en la parte inferior de la ventana,
haz clic en el botón Nuevo registro.

65 | P á g i n a
Opción 3:
Simplemente comienza a escribir en la fila bajo el último registro agregado.

Ocasionalmente, cuando introduzcas información en un registro, aparecerá una


ventana avisando que la información que has introducido no es válida
Esto significa que el campo que estás trabajando posee una regla de validación, la
cual es una norma sobre el tipo de datos que pueden estar en dicho campo.
Haz clic en Aceptar y sigue las instrucciones de la ventana emergente para introducir
nuevamente tus datos.
Introducción a las consultas (Acces)
Con las consultas, es más fácil ver, agregar, eliminar y cambiar datos en una base
de datos de Access. Otros motivos para usar consultas:
Encontrar datos específicos rápidamente, filtrándolos según criterios concretos
(condiciones).
Calcular o resumir datos.
Automatizar tareas de administración de datos como, por ejemplo, revisar de vez en
cuando los datos más actuales.
Las consultas pueden ayudarle a buscar datos y trabajar con ellos:
En una base de datos bien diseñada, los datos que se quieren plasmar en un
formulario o informe suelen estar repartidos en varias tablas. Con una consulta, se
puede extraer información de diversas tablas y ensamblarla para mostrarla en el
formulario o informe. Una consulta puede servir para pedir resultados de datos de la
base de datos, para llevar a cabo una acción relativa a los datos o para ambas cosas.
También sirve para obtener una respuesta a una pregunta sencilla, efectuar cálculos,
combinar datos de distintas tablas o agregar, cambiar o eliminar datos de una base
de datos. Dada su enorme versatilidad, existen muchos tipos de consulta y el tipo que
se cree depende de la tarea que quiera realizarse.

66 | P á g i n a
Principales tipos de consulta:
Seleccionar: Es utilizada para recuperar datos de una tabla o hacer cálculos.
Acción: Agregar, cambiar o eliminar datos. Cada tarea tiene un tipo específico de
consulta de acciones. Las consultas de acciones no están disponibles en las
aplicaciones de Access.
Consultas Simples en Acces
¿Qué es una consulta y cómo utilizarla?
Las consultas son una forma de buscar y recopilar información de una o más
tablas para conseguir información detallada de una base de datos. Al crear una
consulta en Access 2010, defines condiciones específicas de búsqueda para
encontrar, exactamente, la información que deseas.
¿Cómo se utilizan las consultas?
Las consultas son mucho más que filtros o búsquedas simples que puedes usar para
encontrar los datos de una tabla. Con estas puedes acceder a información de
múltiples tablas. Por ejemplo, puedes utilizar una búsqueda en la tabla de clientes
para encontrar la dirección de uno de ellos o un filtro en la tabla vehículos para ver
cuál es el carro que corresponde a determinado cliente. Debes tener en cuenta que
una consulta bien diseñada te puede dar información que no podrías averiguar
examinado cada uno de los registros de la tabla de datos.
Diseño de consultas
vistas de consultas

67 | P á g i n a
Clic en el botón Ver para que puedas acceder a la lista desplegable que te mostrará
las diferentes opciones de vista para las consultas.
Panel de relación de objeto

Todas las tablas que decidas incluir en una consulta aparecerán como pequeñas
ventanas en la parte superior de la pantalla, este espacio es conocido con el nombre
de Panel de relación de objeto. Cada ventana contiene una lista con el nombre de
todos los campos disponibles en tabla que seleccionaste.

68 | P á g i n a
Tablas de criterio de búsqueda
Consultas Múltiples (Acces)
Las consultas son los objetos de una base de datos que permite recuperar datos de
una tabla, modificarlos e incluso almacenar resultados en otra tabla.
Pasos para crear una consulta en múltiples tablas
Paso 1:
Selecciona la pestaña Crear y haz clic en el comando Diseño de consulta.
Paso 2:
Se abrirá el cuadro de diálogo Mostrar tabla. Allí selecciona las tablas que van a hacer
parte de la consulta. Luego, haz clic en el botón Agregar.
Paso 3:
Las tablas aparecerán en forma de pequeñas ventanas en el panel de relación de
objeto, unidos por una línea de combinación. Haz doble clic en la sección media de
esta línea para que puedas configurar la dirección en la que va la relación de las
tablas, es decir, de derecha a izquierda o viceversa.

Paso 4:
Aparecerá el cuadro de diálogo Propiedades de combinación. Allí, selecciona la
dirección en la que irá la línea de unión de las dos tablas. Puedes hacer clic en la
opción 2 para que la unión quede de izquierda a derecha, es decir, que todos los
clientes que cumplieron con los criterios de ubicación, se incluirían en los resultados.
Si haces clic en la opción 3 la unión queda de derecha a izquierda, es decir, que con
esta opción vamos a trabajar con las personas que han visitado el taller en el mes de
diciembre.

69 | P á g i n a
Paso 5:
En las ventanas, haz doble clic en los nombres de los campos que deseas que
aparezcan en los resultados de la consulta. Estos se añaden en la tabla que se
encuentra en la parte inferior de la pantalla.

70 | P á g i n a
Paso 6:
Establece los criterios de búsqueda que llevará cada campo. Recuerda que los debes
escribir en la fila criterio justo debajo del campo en el que deseas que vaya.

Paso 7:
Después de haber establecido los criterios de búsqueda, haz clic en el botón Ejecutar
ubicado en el grupo Resultados de la ficha Herramientas de consulta.

Paso 8:
Los resultados de la consulta se mostrarán en una hoja de datos, parecida a una
tabla. Si deseas guardar la consulta, haz clic en el comando Guardar que se
encuentra en la barra de herramientas de acceso rápido, ponle un nombre y haz clic
en el botón Aceptar.

Gestión de consultas (ACCES)


En Access las tareas básicas de gestión de la base de datos las realizan las
consultas. Mediante las consultas podemos gestionar la información almacenada en
la base de datos de manera selectiva. Podremos seleccionar, actualizar, eliminar,
añadir datos, etc.

71 | P á g i n a
Vamos a utilizar principalmente dos tipos de consultas:
Consultas de selección:
Permiten seleccionar registros de una o más tablas. Son las que se ejecutan de
manera predeterminada por Access.
Consultas de acción:
Permiten modificar datos de una o más tabla. Están diseñadas para agregar,
modificar o actualizar los datos contenidos en las tablas, o también podremos crear
nuevas tablas con los resultados obtenidos en la consulta. Las consultas de acción
se indican en Access mediante la adición del signo de admiración (¡) delante del
nombre de la consulta. Es importante señalar que las modificaciones efectuadas en
las tablas por las consultas de acción no se pueden deshacer con la orden Deshacer
del menú de Edición. Las consultas de acción de clasifican en:
Consultas de Actualización.
Permiten añadir datos, reemplazar los datos existentes o eliminar algunos registros.
Para deshacer los cambios realizados deberemos ejecutar otra consulta que invierta
los términos.
Consultas de Eliminación.
Permiten eliminar algunos o todos los registros que cumplen unas determinadas
condiciones. Una consulta de eliminación solo permite eliminar registros completos,
no los datos de campos específicos.
Creación de una consulta.
Abriremos la consulta. Teclearemos el botón Nuevo de la ficha consulta de la ventana
Base de datos.
Seleccionaremos la opción Vista diseño.
Agregaremos las tablas que contengan la información que deseamos gestionar.
Agregaremos los campos de las tablas seleccionadas.
Si no estuvieran definidas, estableceríamos las relaciones entre las tablas agregadas.
Estableceríamos los criterios o condiciones de selección de registros, el orden de
clasificación de los registros y las condiciones de visualización de los campos.
Guardar la consulta con el nombre deseado.

72 | P á g i n a
Capítulo 6

Sistemas Operativos

6.1¿Qué significa?
El Sistema Operativo (SO) es el programa o software básico de un ordenador. Es una
plataforma que facilita la interacción entre el usuario y los demás programas del
ordenador y los dispositivos de hardware. Las funciones básicas del Sistema
Operativo son administrar los recursos del ordenador, coordinar el hardware y
organizar los archivos y directorios de su sistema. Los Sistemas Operativos más
utilizados son Windows, Linux y Mac. Tanto Windows como Mac vienen con un
navegador integrado, Windows el navegador Internet Explorer y Mac Safari.
6.2 Historia de los sistemas operativos
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 (esto es, en binario, programando
únicamente con 0s y 1s). 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.

73 | P á g i n a
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

74 | P á g i n a
La Primera Generación (1945 - 1955): Tubos de vacío y tableros enchufables.
Después de los esfuerzos frustrados de Babbage, se progresó poco en la
construcción de computadoras digitales hasta la segunda guerra mundial, alrededor
de la mitad de la década de 1940, Howard Aiken en Hardvard, Jon Von Neumann en
el Instituto de Estudios Avanzados en Princeton, J. Presper Ecker y William Mauchley
en la Universidad de Pennsylvania y Konrad Zuse en Alemania, entre otros, todos
obtuvieron resultados óptimos en la construcción de máquinas de cálculo mediante
el uso de tubos de vacío.
Toda la programación se realizó en lenguaje de máquina absoluto. Los lenguajes de
programación se desconocían (todavía no exista el lenguaje ensamblador). Los
primeros sistemas operativos eran extraños. El modo usual de operación consista en
que el programador firmaba para tener acceso a un bloque de tiempo en la hoja de
registro situada en la pared, después bajaba al cuarto de máquinas, insertaba su
tablero enchufable en la computadora y pasaba las siguientes horas esperando que
ninguno de los 20,000 tubos de vacío se fundiera durante la ejecución de su
programa.

Los trabajos de esta era incipiente de la computación estaban limitados a


aplicaciones científicas o militares, corría el tiempo de las grandes computadoras,
como la Z4 de Konrad Suze (tubos al vació o bulbos) que ocupaban salones enormes
y la computación estaba muy lejana de convertirse en algo de uso masivo como lo es
hoy en día.

Un programa estaba formado por todo el conjunto de instrucciones que la


computadora necesitaba para llevar a cabo sus funciones, por ejemplo, instruía a la
CPU acerca de detalles, tales como: dónde y cuándo almacenar las instrucciones de
memoria, qué calcular, dónde encontrar los datos, dónde enviar la salida, etc.

Queda claro que estos especialistas sólo conocían el tipo específico de computadora
en la que trabajaban y resultaba muy difícil expandir sus resultados a medios
diferentes a esos. Al pasar el tiempo, el hardware y el software se hicieron más
estándares y la ejecución de los programas requería menos pasos. Se desarrollaron
lenguajes que expresaban, en un código más cercano al lenguaje humano, las
instrucciones a ejecutar, surgieron los compiladores y ensambladores para traducir a
código binario esos lenguajes de nivel más alto.

Se pensó que era mejor escribir el código para el manejo de cada tipo de equipo y
tenerlo listo para ejecutarlo cuando se necesitara manipular algo hacia o desde él,
desechando la vieja idea de escribir (una y otra vez) el código para el manejo del
equipo en la propia aplicación. Se hicieron bibliotecas de funciones que hicieran esas
tareas, surgiendo, de esta forma, los primeros manipuladores de equipos (device
drivers). Al final de esta época comenzaron a tomar vida los sistemas operativos más
rudimentarios en la forma de creación de macros, subrutinas estándar, programas
utilitarios y manejadores de equipos.

75 | P á g i n a
La Figura 1 muestra como era el ciclo de programación en esta etapa

6.3 Tipos de sistemas operativos

1) Dos: El famoso DOS, que quiere decir Disk Operating System (sistema operativo
de disco), es más conocido por los nombres de PC-DOS y MS-DOS. MS-DOS fue
hecho por la compañía de software Microsoft y es en esencia el mismo SO (sistema
operativo) que el PC-DOS.
La razón de su continua popularidad se debe al aplastante volumen de software
disponible y a la base instalada de computadoras con procesador Intel.
Cuando Intel liberó el 80286, DOS se hizo tan popular y firme en el mercado que DOS
y las aplicaciones DOS representaron la mayoría del mercado de software para PC.
En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos
tuvieran éxito, y la "compatibilidad IBM" significaba computadoras que corrieran DOS
tan bien como las computadoras IBM lo hacían.
Aún con los nuevos sistemas operativos que han salido al mercado, todavía el DOS
es un sólido contendiente en la guerra de los SO.

2) Windows 3.1: Microsoft tomo una decisión, hacer un sistema operativo que tuviera
una interfaz gráfica amigable para el usuario, y como resultado obtuvo Windows. Este
sistema muestra íconos en la pantalla que representan diferentes archivos o
programas, a los cuales se puede accesar al darles doble click con el puntero del
mouse. Todas las aplicaciones elaboradas para Windows se parecen, por lo que es
muy fácil aprender a usar nuevo software una vez aprendido las bases.

3) Windows 95: En 1995, Microsoft introdujo una nueva y mejorada versión del
Windows 3.1. Las mejoras de este SO incluyen soporte multitareas y arquitectura de
32 bits, permitiendo así correr mejores aplicaciones para mejorar la eficacia del
trabajo.

76 | P á g i n a
4) Windows NT: Esta versión de Windows se especializa en las redes y servidores.
Con este SO se puede interactuar de forma eficaz entre dos o más computadoras.

5) OS/2: Este SO fue hecho por IBM. Tiene soporte de 32 bits y su interfaz es muy
buena. El problema que presenta este sistema operativo es que no se le ha dad0 el
apoyo que se merece en cuanto a aplicaciones se refiere. Es decir, no se han creado
muchas aplicaciones que aprovechen las características del SO, ya que la mayoría
del mercado de software ha sido monopolizado por Windows.

6) Mac OS: Las computadoras Macintosh no serían tan populares como lo son si no
tuvieran el Mac OS como sistema operativo de planta. Este sistema operativo es tan
amigable para el usuario que cualquier persona puede aprender a usarlo en muy
poco tiempo. Por otro lado, es muy bueno para organizar archivos y usarlos de
manera eficaz. Este fue creado por Apple Computer, Inc.

7) UNIX: El sistema operativo UNIX fue creado por los laboratorios Bell de AT&T en
1969 y es ahora usado como una de las bases para la supercarretera de la
información. Unix es un SO multiusuario y multitarea, que corre en diferentes
computadoras, desde supercomputadoras, Mainframes, Minicomputadoras,
computadoras personales y estaciones de trabajo. Esto quiere decir que muchos
usuarios pueden estar usando una misma computadora por medio de terminales o
usar muchas de ellas.
6.3.1 Multiprogramados
También conocido como (multitarea) el funcionamiento es de estos sistemas
operativos se basa en que el sistema podrá correr más de un programa al mismo
tiempo, este sistema hace que ocupen la misma unidad de memoria principal y que
sean ejecutados al "mismo tiempo". En general, se puede decir que un programa
está compuesto por dos partes: su representación en memoria que incluye el código
y datos del programa, y su estado de ejecución que incluye los valores almacenados
en los registros de la CPU que indican el estado actual del programa en la máquina.

77 | P á g i n a
La multiprogramación es una técnica que intenta hacer un incremento en el CPU
tratando de tener algo que el CPU siempre pueda ejecutar. En un sistema con
multiprogramación, el sistema operativo simplemente seleccionara otro programa o
trabajo y lo ejecutara.

Un ejemplo claro de este sistema de multiprogramación puede ser el caso de estar


trabajando en la platilla de office un documento de Word y que a la vez necesitemos
navegar por la web para buscar imágenes o contenidos sin necesidad de cerrar el
programa anterior, cuando se abre un programa la CPU lo estabiliza
proporcionándole un porcentaje del disco, un porcentaje de la memoria y un
porcentaje del CPU

Ejemplos de estos sistemas:


Windows 98
Windows me
Windows millenium
Windows xp
Windows 7
Windows 8
Windows 10
Linux
Mac iOS

78 | P á g i n a
Características de un Sistema Operativo de multiprogramación:
Mejora productividad del sistema y utilización de recursos.
Multiplex a recursos entre varios programas.
Generalmente soportan múltiples usuarios (multiusuarios).
Proporcionan facilidades para mantener el entorno de usuarios individuales.
Requieren validación de usuario para seguridad y protección.
Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
Multitarea sin soporte multiusuario se encuentra en algunos computadores
personales o en sistemas de tiempo real.
Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan
la ejecución simultánea de múltiples tareas sobre diferentes procesadores.
En general, los sistemas de multiprogramación se caracterizan por tener múltiples
programas activos compitiendo por los recursos del sistema: procesador, memoria,
dispositivos periféricos.
Ventajas:
Varios procesos en ejecución
Permite el servicio interactivo simultáneo a varios usuarios de manera eficiente
Aprovecha los tiempos que los procesos pasan esperando a que se completen sus
operaciones de E/S y por ende aumenta la eficiencia en el uso del CPU.

6.4 Distribuidos de red


Un sistema operativo de red (Network Operating System) es un elemento software
de una computadora que tiene como objetivo coordinar y manejar las actividades de
los recursos del ordenador en una red de equipos. Consiste en un software que
posibilita la comunicación de un sistema informático con otros equipos en el ámbito
de una red. Dependiendo del fabricante del sistema operativo de red, tenemos que
el software de red para un equipo personal se puede añadir al propio sistema
operativo del equipo o integrarse con él. NetWare de Novell es el ejemplo más familiar
y famoso de sistema operativo de red donde el software de red del equipo cliente se
incorpora en el sistema operativo del equipo. El equipo personal necesita ambos
sistemas operativos para realizar las funciones de red y las funciones individuales.
El sistema operativo de red determina estos recursos, así como la forma de
compartirlos y acceder a ellos. Para determinar el sistema operativo de red más
adecuado, es necesario establecer en primer lugar la arquitectura de la red, es decir,
si va a ser cliente/servidor o trabajo en grupo.

79 | P á g i n a
Un sistema operativo de red es una aplicación de software que proporciona un
sistema que sirve como base tanto para la funcionalidad de una computadora
individual como de múltiples computadoras dentro de una red interconectada.
Sistemas Operativos de red:
· Son aquellos sistemas que mantienen a dos o más computadoras unidas a través
de algún medio de comunicación (físico o no), con el objetivo primordial de poder
compartir los diferentes recursos y la información del sistema.

Características de los Sistemas Operativos de Red:


En general, se puede decir que un Sistema Operativo tiene las siguientes
características:
· Conveniencia: Hace más conveniente el uso de una computadora
.
· Eficiencia: Permite que los recursos de la computadora se usen de la manera más
eficiente posible.

· Habilidad para evolucionar: Deberá construirse de manera que permita el


desarrollo, de nuevas funciones del sistema sin interferir con el servicio.

· Encargado de administrar el hardware: Se encarga de manejar de una mejor


manera los recursos de la computadora en cuanto al equipo se refiere, esto es,
asignar a cada proceso una parte del procesador para poder compartir los recursos.

· Relacionar dispositivos: Se debe encargar de comunicar al dispositivo, cuando el


usuario así lo requiera.

· Organizar datos para acceso rápido y seguro.

· Manejar las comunicaciones en red: Permite al usuario manejar con alta facilidad
todo lo referente a la instalación y uso de las redes de computadoras.

· Facilitar las entradas y salidas: Un Sistema Operativo debe hacerle fácil al usuario
el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.

80 | P á g i n a
· Técnicas de recuperación de errores.

· Evita que otros usuarios interfieran: El Sistema Operativo evita que los usuarios
se bloqueen entre ellos, informándoles si esa aplicación está siendo ocupada por
otro usuario.

· Permite que se puedan compartir el equipo y los datos entre los usuarios.

 Sistemas operativos distribuidos


Existen muchas definiciones y no siempre coincidentes. Nosotros diremos que un
sistema distribuido es un conjunto de computadores independientes que se presenta
a los usuarios como un sistema único. En esta definición cabe destacar dos aspectos.
Uno, el hardware. La definición habla de máquinas autónomas, es decir, que pueden
operar sin la supervisión de ninguna otra. Dos, el software, que debe conseguir que
los usuarios del sistema lo vean como una máquina central convencional única.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores.
Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en
este caso es trasparente para el usuario
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del
sistema se compone otro componente debe de ser capaz de reemplazarlo.
Características de Sistemas Distribuidos
Características básicas:
Los sistemas operativos distribuidos están basados en las ideas básicas:
Transparencia:
El concepto de transparencia de un Sistema operativo distribuido va ligado a la idea
de que todo el sistema funcione de forma similar en todos los puntos de la red, debido
a esto queda como labor del sistema operativo coordinar el mecanismo que logre la
unificación de todos los sistemas y recursos totalmente transparente para el usuario
o aplicación.
Eficiencia:
La idea base de los sistemas operativos distribuido es la de obtener sistemas mucho
más rápidos que los utilizados de procesador único, Y para lograr esto tenemos que
olvidar la idea antigua de ejecutar los programas en estos procesadores y pensar en
distribuir las tareas a los procesadores libres más rápidos en cada momento.

81 | P á g i n a
Flexibilidad:
La Flexibilidad dentro de sistema operativo distribuido, describe su capacidad para
soportar cambios, actualizaciones y mejoras que le permitan irse desarrollando al
mismo ritmo de la evolución tecnológica.
Dicha capacidad es una virtud y un conflicto. Una Virtud debido a las grandes
necesidades de los sistemas operativos de mejorar después de las primeras
versiones y un conflicto que surge entre los sistemas de las cuales son dos
arquitecturas distintas del núcleo del sistema operativo.
Escalabilidad:
Un sistema operativo distribuido debería funcionar tanto para una docena de
computadoras como para mil en una sola red, el tipo de red utilizada no debe de ser
un problema ni su topología (LAN o WAN) (TOKEN RING o ETHERNET) y mucho
menos la distancia entre los equipos. Sin embargo, todo esto influye, Aunque estos
puntos serían muy deseables, pude que las soluciones válidas para unas cuantas
computadoras no sean aplicables como para mil. Del mismo modo el tipo de red
condiciona grandemente el rendimiento del sistema y puede que lo funcione para un
tipo de red requiera modificaciones para otro.
Los sistemas operativos distribuidos necesitan de grandes especificaciones para
trabajar y sobre todo de ajustes a las necesidades principales de cada red y sus
usuarios. Este concepto propone que cualquier computador debe funcionar
perfectamente como un sistema operativo distribuido, pero de la misma forma debe
de formar parte y trabajar como más equipos no importan la cantidad o los recursos
que estos le puedan proporcionar.
Sincronización:
La sincronización es un punto clave para los sistemas operativos distribuidos. Para
computadores únicos no es nada importante, pero en el caso de los recursos
compartidos de la red, la sincronización es sumamente importante.
Los sistemas operativos distribuidos tienen un reloj por cada ordenador del sistema,
con lo que es fundamental una coordinación entre todos los relojes para mostrar una
hora única. Los circuitos de cada ordenador son ligeramente diferentes, y como
consecuencia todos los relojes sufren una falta de ajustes y deben ser sincronizados
continuamente. La sincronización no es tan importante, porque se realiza a través de
mensajes por la red. Cuyo tiempo de envió pude ser variable y depender de muchos
factores como la distancia, la velocidad de transmisión y la propia estructura de la red
El Reloj:
La sincronización del reloj no tiene que ser exacta y bastara con que sea
aproximadamente igual en todos los ordenadores. Hay que tener en cuenta eso si. El
modo de actualizar la hora de un reloj es particular. Es fundamenta no retrasar nunca

82 | P á g i n a
la hora, aunque el reloj adelante. En vez de eso, hay que atrasar la actualizaron del
reloj. Frenarlo. Hasta que alcance la hora aproximada. Existen diferentes algoritmos
de actualizan de la hora.
El Reloj es únicamente uno de los tantos problemas de sincronización que existen en
los sistemas operativos distribuidos.

Capítulo 7

Sistemas de Archivos

El sistema de archivos o sistema de ficheros es el componente del sistema operativo


encargado de administrar y facilitar el uso de las memorias periféricas (Unidad de un
ordenador electrónico que no forma parte de la unidad central de memoria.), ya sean
secundarias o terciarias.
Sus principales funciones son la asignación de espacio a los archivos, la
administración del espacio libre y del acceso a los datos resguardados. Estructuran
la información guardada en un dispositivo de almacenamiento de datos o unidad de
almacenamiento (normalmente un disco duro de una computadora), que luego será
representada ya sea textual o gráficamente utilizando un administrador de archivos.
La mayoría de los sistemas operativos manejan su propio sistema de archivos.
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 (también denominados
clústers). 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. En la práctica, un sistema
de archivos también puede ser utilizado para acceder a datos generados
dinámicamente, como los recibidos a través de una conexión de red de computadoras
(sin la intervención de un dispositivo de almacenamiento).
Los sistemas de archivos proveen métodos para crear, mover, renombrar y eliminar
tanto archivos como directorios, pero carecen de métodos para crear, por ejemplo,
enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar
enlaces padres (".." en Unix).

7.1 Sistema de archivos


Casi todos los sistemas de archivos permiten organizar la información en carpetas.
Este método de organización es muy seguro. Permite que los programas funcionen
mejor y la información está más ordenada.

83 | P á g i n a
Para indicar donde se encuentra un archivo, se usa una cadena de texto llamada
“ruta”. Su aspecto cambia un poco de sistema a sistema: su estructura suele indicar
las carpetas y subcarpetas que hay que recorrer para llegar al archivo, terminando
con el nombre del mismo.
Las rutas no nos sirven solamente a nosotros como usuarios, sino también al sistema
operativo para saber dónde.

Ejemplo:
Veamos un ejemplo de ruta en dos sistemas.

En Windows:

si yo tuviese una carpeta en el disco duro llamada “MP3”, y en ella hubiese una
carpeta llamada “defcondos”, y dentro de esta carpeta estuviese el archivo
“pocopan.mp3”, la ruta sería esta:
 C:’MP3’defcondos’pocopan.mp3

En GNU/Linux:
la ruta a la canción podría ser así:
/home/grissom/mp3/defcondos/pocopan.mp3
En este caso se indica que hay que entrar a la carpeta “home” para después abrir la
carpeta “grissom” que está ahí. En ella está la carpeta “MP3”, donde hay otra carpeta
que se llama “defcondos”, dentro de la cual está el archivo “pocopan.mp3”.
Fíjate como las carpetas están separadas entre sí por diferentes barras según cada
sistema (“’” en Windows y “/” en GNU/Linux. Este tipo de organización se llama
“jerárquica”.
Cuando usamos una interfaz gráfica de usuario, las carpetas se muestran en un
esquema llamado “vista en árbol”. Al directorio o carpeta principal, desde donde
parten las demás, se le suele llamar “directorio raíz”. En Windows es “C:’” y en
GNU/Linux es “/”.
Se encuentran ciertos archivos que uno u otro programa puede necesitar para
funcionar
Clasificación: de disco de red y de propósito especial

84 | P á g i n a
Sistemas de archivos de disco:
Un sistema de archivo de disco está diseñado para el almacenamiento de archivos
en una unidad de disco duro, que puede estar conectada directa o indirectamente a
la computadora.

podemos ver que en el disco duro está almacenado una carpeta en archivo y adentro de ahí
la carpeta “Mi Carpeta” y dentro de ahí documentos

Sistemas de archivos de red


Un sistema de archivos de red es el que accede a sus archivos a través de una red
de computadoras.

podemos ver que hay un disco duro compartido, conectados un servidor que usa ves está
conectado por varias computadoras para compartir información.

85 | P á g i n a
Sistemas de archivos de propósito especial
Los sistemas de archivos de propósito especial (special purpose file System) son aquellos
tipos de sistemas de archivos que no son ni sistemas de archivos de disco, ni sistemas de
archivos de red.

Estos eritemas de archivos pude almacenar más de un archivo y en cualquier multimedia en una
carpeta.

7 FAT:

(File Allocation Table - Tabla de Ubicación de Ficheros). Sistema de archivos que


utilizan las ediciones no empresariales de Microsoft Windows hasta Windows ME.
Además, es un sistema admitido casi por todos los sistemas operativos.

El sistema de archivos FAT fue creado por Bill Gates y Marc McDonald en 1977.
Existen las versiones FAT12 del año 1977, FAT16 del año 1988 y FAT32 del año
1996.

Las implementaciones más extendidas de FAT tienen algunas desventajas; por


ejemplo, la fragmentación excesiva de los datos. Cuando se borran y escriben nuevos
archivos, suele dejar fragmentos dispersos por todo el soporte de almacenamiento.
Esto complica el proceso de lectura y escritura, haciéndose cada vez más lento. Para
agilizar la lectura/escritura se usa una herramienta de desfragmentación, pero es un
proceso demasiado largo. El sistema FAT tampoco fue diseñado para ser redundante
ante fallos. También, a diferencia de otros sistemas, no posee permisos de seguridad
para cada archivo, por lo tanto, cualquier usuario puede acceder a cualquier fichero
en el soporte.
Es un formato sencillo, muy popular para disquetes, tarjetas de memorias,
almacenamiento USB y dispositivos similares.

Actualmente el sistema FAT es reemplazado opcionalmente en Windows XP y


superiores por el sistema NTFS.
86 | P á g i n a
8 NTFS:

(New Technology File System). Es un sistema de archivos diseñado específicamente


para Windows NT, y utilizado por las versiones recientes del sistema operativo
Windows. Ha reemplazado al sistema FAT utilizado en versiones antiguas de
Windows y en DOS.

Fue creado para lograr un sistema de archivos eficiente y seguro y está basado en el
sistema de archivos HPFS de IBM/Microsoft usado en el sistema operativo OS/2.
También tiene características del filesystem HFS diseñado por Apple.
NTFS permite definir el tamaño del clúster de forma independiente al tamaño de la
partición. El tamaño mínimo del bloque es de 512 bytes. Este sistema también admite
compresión nativa de archivos y encriptación.
Es un sistema ideal para particiones de gran tamaño, pudiendo manejar discos de
hasta 2 terabytes.
Windows NT, 2000, 2003, XP y Vista soportan el sistema NTFS.

Sus desventajas son:


*Utiliza gran cantidad de espacio en disco para sí mismo.
*No es compatible con sistemas operativos como DOS, Windows 95, 98 ni ME.
*No puede ser usado en disquetes.
*La conversión a NTFS es unidireccional, por lo tanto, no se puede volver a convertir
en FAT al actualizar la unidad.

Sus ventajas y mejoras con respecto al FAT son:


*Compatibilidad mejorada con los metadatos.
*Uso de estructura de datos avanzadas (árboles-B), optimizando el rendimiento,
estabilidad y aprovechando espacio en disco, pues acelera el acceso a los ficheros y
reduce la fragmentación.
*Mejora de la seguridad
*Listas de control de acceso
*El registro de transacciones (journaling), que garantiza la integridad del sistema de
ficheros.

9 EXT2:

(Second extended filesystem - segundo sistema de archivos extendido). Sistema de


archivos usado en sistemas operativos GNU/Linux. Su principal desventaja es que
no posee registro por diario (journaling), que luego fue implementado por su sucesor
el ext3.

Fue diseñado originalmente por Rémy Card y fue el sistema de archivos por defecto
de los Linux Red Hat, Fedora Core y Debian, luego reemplazado por el ext3.

87 | P á g i n a
Este tipo de sistema de archivos posee una tabla similar al FAT de tamaño fijo.

10 EXT3:

(Third extended filesystem - tercer sistema de archivos extendido). Sistema de


archivos con registro por diario (Journaling). Se utiliza mucho en sistemas operativos
GNU/Linux.

11 EXT4:

(Fourth extended filesystem - cuarto sistema de archivos extendido). Sistema de


archivos con registro por diario (Journaling) anunciado el 10 de octubre de 2006 como
una mejora del ext3 y compatible hacia atrás. Se utiliza mucho en sistemas operativos
GNU/Linux.
Sus mejoras más importantes son el soporte de 1024 peta bytes y soporte añadido
de extent.

Capítulo 8

Linux

LINUX (o GNU/LINUX, más correctamente) es un Sistema Operativo como MacOS,


DOS o Windows. Es decir, Linux es el software necesario para que tu ordenador te
permita utilizar programas como: editores de texto, juegos, navegadores de Internet,
etc. Linux puede usarse mediante un interfaz gráfico al igual que Windows o MacOS,
pero también puede usarse mediante línea de comandos como DOS .

Un sistema operativo consiste en varios programas fundamentales que necesita el


ordenador para poder comunicar y recibir instrucciones de los usuarios; tales como
leer y escribir datos en el disco duro, cintas, e impresoras; controlar el uso de la
memoria; y ejecutar otros programas. La parte más importante de un sistema
operativo es el núcleo. En un sistema GNU/Linux, Linux es el núcleo. El resto del
sistema consiste en otros programas, muchos de los cuales fueron escritos por o para
el proyecto GNU. Dado que el núcleo de Linux en sí mismo no forma un sistema
operativo funcional, preferimos utilizar el término “GNU/Linux” para referirnos a los
sistemas que la mayor parte de las personas llaman de manera informal “Linux”.

88 | P á g i n a
8.1 Historia de Linux
Predecesores
Comenzó mucho antes de lo que la mayoría de gente piensa, ya que, en 1969, Ken
Thompson, de AT&T (compaña estadounidense de telecomunicaciones) Bell
Laboratories, desarrollo el sistema operativo Unix, adaptándolo a las necesidades de
un entorno de investigación si saber la importancia que llegaría a tener su trabajo. Un
año después Dennis Ritchie (creador del lenguaje de programación C), colaboró con
Ken Thompson para pasar el código del sistema Unix a C. Lo que convirtió a Unix en
un sistema operativo transportable.
Unix creció gradualmente hasta convertirse en un producto de software estándar,
distribuido por muchos vendedores tales como Novell e IBM. Sus primeras versiones
fueron distribuidas de forma gratuita a los departamentos científicos de informática
de muchas universidades de renombre.
En 1972, los laboratorios Bell empezaron a emitir versiones oficiales de Unix y a
otorgar licencias del sistema a distintos usuarios.
En 1975, Berkeley lanzó su propia versión de Unix (BSD). Esta versión de Unix se
convirtió en la principal competidora de la versión de los laboratorios Bell de AT&T,
pero no era la única ya que, en 1980, Microsoft desarrolló una versión de Unix para
PC llamada Xenix. En 1991 esta organización desarrolló el SistemaV versión 4, que
incorporaba casi todas las características que se encuentran en el SistemaV versión
3, BSD versión4.3, SunOS y Xenix. Como respuesta a esta nueva versión, varias
compañías, tales como IBM y Hewlett Packard, establecieron la Open Software
Fundation (OSF) para crear su propia versión estándar de Unix.
LINUX:
Era el año de 1991 y Linus Trovals, que en aquel entonces era un estudiante de
informática de la Universidad de Helsinki, empezó a programar las primeras líneas
de código de un sistema operativo (finalmente llamado Linux) como una afición y sin
poderse imaginar la gran repercusión que traería. Hubo una primera versión no oficial
de Linux 0.01, pero esta solo incluía el comienzo del núcleo, estaba escrita en
lenguaje ensamblador y asumía que uno tenía acceso a un sistema Minix para su
compilación.
El 5 de octubre de 1991, Linus anuncio la primera versión oficial de Linux (versión
0.02). Con esta versión Linus pudo ejecutar Bash (GNU Bourne Again Shell) y gcc
(el compilador GNU de C). Desde aquel entonces se han hecho muchísimas
versiones con ayuda de programadores de todo el mundo.
Linux es un sistema operativo compatible con Unix, sus dos características
principales y que los diferencian del resto de los sistemas operativos que
encontramos en el mercado son:

89 | P á g i n a
Es software libre, esto significa que no tenemos que pagar por el uso del mismo.
El sistema viene acompañado del código fuente (el sistema lo forma el núcleo del
sistema (kernel) más un gran número de librerías que hacen posible su utilización).
Las plataformas en las que en un principio se puede utilizar Linux son: Pentium,
Pentium Pro, Pentium II/III/IV, Amiga y Atari, también existen versiones para su
utilización en otras plataformas, como Alpha, ARM, MIPS, PowePC y SPARC. En los
últimos tiempos, ciertas casas de software comercial han empezado a distribuir sus
productos para Linux y la presencia del mismo en empresas aumenta rápidamente
por la excelente relación calidad-precio que se consigue con Linux.

8.2 Partición del disco duro para instalar linux


Para empezar, lo recomendable es siempre tener instalado primero Windows 7 en
vuestro equipo, hacer a continuación una partición en el disco duro para hacerle un
hueco a la distro GNU/Linux que queráis instalar, y después ya proceder a la
instalación. De esta manera, lo primero que habrá que hacer acceder a Panel de
Control, hacer click sobre Sistema y Seguridad y dentro de Herramientas
administrativas clicar sobre “Crear y formatear particiones del disco duro".
Una vez ahí sólo tendremos que hacer click derecho sobre la unidad C: elegir la
opción Reducir Volumen y elegir el tamaño del espacio que queréis reducir, que es
el que utilizaremos después para instalar Ubuntu. Como veréis el proceso es muy
sencillo, y el programa se encargará de mostrarnos en tiempo real con cuanto espacio
libre nos vamos a quedar después de realizar la operación. Una vez aceptado
Windows se encargará del resto del proceso, y una vez finalizada la partición veremos
cómo os aparece el espacio que hemos elegido como no asignado.
Luego descargaremos Linux Ubuntu o el que deseemos a instalar, ya una vez
descargada la aplicación solo nos faltara una USB y algún programa que nos ayude
con la ISO de Ubuntu que acabamos de descargar. En este caso puede ser Rufus y
luego solo tendremos que ejecutar como administrador el programa Rufus que sirve
para cualquier otro programa para montar ISO en unidades de USB.

90 | P á g i n a
Instalar Ubuntu:

Ahora ya sólo queda un último paso, instalar Ubuntu. Para ello tenemos que meter el
USB en nuestro ordenador cuando este esté apagado. Entonces lo encenderemos y
pulsaremos al botón predeterminado de nuestros equipos para que nos salga el
diálogo que nos permita elegir desde qué unidad iniciar.
Cuando se ejecute el USB lo primero que tendremos que hacer es elegir nuestro
idioma y pulsar sobre Instalar Ubuntu. A continuación, nos aparecerá la opción de
configurar la WiFi. Esto es conveniente hacerlo para que durante el proceso de
instalación se actualice el sistema, pero si tenemos prisa y preferimos hacer eso
después no pasará nada si no lo configuramos desde un principio.
Después de pasar por otra pantalla en la que podemos elegir si descargar
actualizaciones o software de terceros mientras se realiza la descarga, nos aparecerá
por fin esa en la que se nos da opciones para instalar Ubuntu. Aquí lo normal es que
el sistema te reconozca Windows y nos aparezca la opción de instalar junto a
Windows 7. Pero también si no es así la cosa se complicará un pelín, y tendremos
que elegir la opción Más opciones y hacer click en Instalar ahora.

91 | P á g i n a
Creando las Particiones:

Haciendo esto el sistema nos reconocerá el espacio libre de la partición que hemos
realizado antes, y tendremos que realizar nosotros de forma manual las particiones
del sistema. Esto se puede hacer de varias maneras, pero nosotros lo haremos
separando la carpeta raíz / y /home, que es como Mis Documentos, para que si hay
que reparar el sistema operativo no perdamos nuestros archivos personales por el
camino.
Empezaremos creando la partición de raíz, a la que no hace falta que le pongáis
demasiadas gigas al encargarse sólo de los archivos básicos. Para configurarla
tendremos que hacer click sobre espacio libre en la tabla de particiones, y en las dos
primeras opciones elegir Primaria y Al principio del espacio, para después utilizarla
como sistema de ficheros ext4 y elegir / como punto de montaje.

92 | P á g i n a
A continuación, crearemos otra partición lógica que también esté montada al principio
del espacio, y en la que además de utilizarla como sistema de ficheros ext4 la
montaremos en /home. Esta partición será la que tenga el peso de nuestros
documentos, fotografías y música, por lo que es recomendable que le pongáis el
máximo espacio posible.
Por último, si nuestro sistema tiene poca memoria RAM también podremos crear otra
partición que en vez de sistema de ficheros ext4 sea un área de intercambio que se
encargue de apoyar a la RAM cuando esta no sea necesario. A esta tercera partición
tendríamos que dedicarle el doble de vuestra RAM, unos 2 o 4 GB de memoria como
mucho, más o menos unos 2.000 o 4.000 MB en la tabla.
Y ya está, a continuación, sólo habrá que seguir adelante con la instalación e ir
configurando nuestra contraseña y nombre de usuario. Si todo ha ido bien, la próxima
vez que iniciemos el equipo nos aparecerá un menú en el que seleccionar el sistema
operativo que queremos utilizar, una buena manera de poder utilizar dos o más en
un sólo ordenador.

8.3 Aplicaciones de Linux

Procesadores de Texto

OpenOffice.org:
Creado por Sun Microsystems, Open-Office.org combina una serie de aplicaciones
de productividad general en un conjunto de aplicaciones, que incluye un procesador
de textos llamado Writer.
WordPerfect:
WordPerfect es una aplicación totalmente funcional, que combina una serie de funciones
básicas de procesamiento de textos para crear documentos multimedia.

LaTeX:
Es un procesador de palabra atractivo para Linux porque su código abierto puede ser
personalizado por el usuario para sus necesidades particulares.

93 | P á g i n a
Visores de imagen

GThumb:

La aplicación permite visualizar imágenes, pero también cambiarles el tamaño,


recortarlas, rotarlas o realizar algunos ajustes básicos a sus colores. Puede convertir
sus formatos, editar los metadatos u organizarlas con bookmarks y catálogos.
Además, también soporta formatos de audio y de vídeo

Viewnior:

Permite realizar ediciones básicas como la rotación, redimensión o recorte, y


establecer una imagen como fondo de pantalla.

XnView:

puede convertir las imágenes a otros formatos, e incluye opciones de edición para
realizar pequeñas mejoras y aplicar algunos filtros básicos a las imágenes. Se puede
descargar en un ejecutable para convertirla en aplicación portátil, y te permitirá crear
y guardar presentaciones.

Reproducción de audio y video

SMPlayer, reproductor multimedia:


SMPlayer es un reproductor multimedia gratuito para Windows y Linux con códecs
incorporados, que puede reproducir prácticamente cualquier formato de vídeo y
audio. No necesita ningún códec externo.
8.4 Instalación del Sistema Operativo Linux

 Unavez descargado el archivo ISO, tenemos dos opciones: grabarlo e instalarlo


desde un CD/DVD o hacerlo de un pendrive de por lo menos 2GB, por lo que
necesitaremos un software que se ejecuta desde Windows y se llama Universal
USB. En esta guía explicaremos el procedimiento para la instalación a través de
una memoria USB.

 Ejecutamos la aplicación Universal USB Installer y seleccionamos en el Paso 1 la


distribución Ubuntu 12.04 Desktop, en el Paso 2 elegimos la ubicación del archivo

94 | P á g i n a
ISO que nos hemos bajado anteriormente y en el Paso 3 seleccionamos la letra de
la unidad USB y pinchamos en “Create”:

 Una vez finalizado el proceso, extraemos de forma segura la unidad USB y


apagamos el portátil.
 Conectamos la unidad USB al portátil de préstamo y lo encendemos.
 En cuanto aparezca el logotipo de Acer pulsamos F12 y cuando aparezca el menú
de arranque elegimos la unidad USB.
 La instalación de Linux comenzara automáticamente.
 A continuación, seleccionamos el idioma español o en su defecto, el que prefiramos
para el sistema operativo y pulsamos sobre “Instalar”.

 Durante la instalación, es posible que tengamos la opción de tener el portátil


conectado a Internet para que se baje los paquetes más actualizados. Si tenemos
esta posibilidad, Ubuntu lo detectará automáticamente y tendremos la opción de
pulsar sobre “Descargar actualizaciones mientras se instala”. También podemos
instalar software de terceros (por ejemplo, para reproducir archivos de sonido

95 | P á g i n a
MP3) pero esta opción ya queda a la elección del usuario, que, dependiendo de su

filosofía, elegirá una opción u otra. Después de elegir las opciones que más nos
interesen, pulsamos sobre “Continuar”.

96 | P á g i n a
Como supuestamente hemos instalado Windows antes de instalar Linux,
deberíamos tener un espacio sin particionar, por lo que elegiremos la opción de
“Instalar Ubuntu junto a Microsoft Windows”. El resto de opciones son para usuarios
avanzados. Una vez seleccionada la opción deseada, pulsamos sobre “Continuar”.

A continuación, se pondrá a instalar la distribución de Linux, y mientras instala nos


va a pedir que introduzcamos nuestra ciudad (Guatemala), y datos como nuestro
nombre, nombre de equipo, contraseña, etc… que iremos rellenando según nos lo
vaya pidiendo.

 Unavez finalizado todos estos pasos ya tenemos instalado Ubuntu instalado junto
a Windows y en el siguiente arranque, antes de iniciar cualquier sistema operativo,
nos saldrá un menú para que seleccionemos el sistema operativo con el que
queremos arrancar el portátil.
97 | P á g i n a
8.5 Bash
es un programa informático, cuya función consiste en interpretar órdenes, y
un lenguaje de consola. Es una Shell de Unix compatible con POSIX y el intérprete
de comandos por defecto en la mayoría de las distribuciones GNU/Linux, además
de Mac OS. También se ha llevado a otros sistemas como Windows y Android.
Hay varios tipos de shell, pero el que viene normalmente por defecto en las distintas
distribuciones de GNU/Linux es el bash.

Aquí vemos un ejemplo de código Bash.

8.6 Sistema de usuarios y manejo de clave en Linux


Al igual que Unix, 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 des configuré el sistema completo o lo

98 | P á g i n a
infecté 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.
Puede entrar a una sesión con su login y clave bien desde un entorno gráfico (con un
programa llamado gdm) o bien desde una interfaz tipo texto. Su sistema Linux puede
brindarle simultáneamente varias interfaces tipo texto ---llamadas consolas virtuales-
-- junto con el entorno gráfico. Desde el entorno gráfico puede pasar a una consola
virtual presionando Ctrl-Alt-F1 [7], y desde una consola virtual puede retornar a la
sesión gráfica con Ctrl-Alt-F7.

Cuando inicie una sesión desde


una consola virtual, entrará a
un intérprete de comandos
donde podrá dar comandos o
ejecutar programas.

8.7 Archivos y Permisos de Linux


Los permisos de los archivos en Linux tienen mucha importancia. Se suele tener
varios usuarios en nuestro equipo y no todos tienen acceso a modificar o trabajar
con todos los archivos.
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. Los grupos sirven para tener
una política de acceso a archivos en la cual podremos dar acceso a los usuarios de
99 | P á g i n a
un determinado grupo. De esta manera, quien no pertenezca a dicho grupo, no tendrá
acceso.

Tipos de permisos

Existen 3 tipos de permisos:

Lectura:
Cuando un usuario tiene permiso de lectura de un archivo significa que puede leerlo
o visualizarlo, bien sea con una aplicación o mediante comandos.

Escritura:
Cuando un usuario tiene permiso de escritura sobre un archivo significa que puede
modificar su contenido, e incluso borrarlo. También le da derecho a cambiar los
permisos del archivo mediante comandos para cambiar su propietario y el grupo del
propietario.

Ejecución:
Cuando un usuario tiene permiso de ejecución de un archivo significa que puede
ejecutarlo. Si el usuario no dispone del permiso no podrá ejecutarlo.
Los únicos archivos ejecutables son las aplicaciones y los archivos comando(Scripts).

Capítulo 9

9.1 Creación de máquina virtual

Las máquinas virtuales son ordenadores simulados a través de un software especial,


son capaces de funcionar como unos computadores independientes, con su propio
sistema operativos, pero ejecutándose realmente dentro de otro. Es como una especie
de duplicado de maquina física limitada solo por los recursos que el usuario que la cree
decida agregarle o proporcionarle.
Digamos qué, soy usuario de Windows y quisiera probar una distribución de Linux,
cómo por ejemplo Ubuntu. Si no quiero tomar el riesgo de instalarlo
permanentemente en mi ordenador, en caso de que luego me arrepienta; o, no quiero
particionar mi disco para que aloje otro sistema completo, crear una máquina virtual
es la manera más sencilla hacerlo, funcionaría igual que en una máquina real, pero,
puede ser desechado fácilmente en cualquier momento sin complicaciones.

100 | P á g i n a
Uno de los programas de virtualización más populares y sencillos de utilizar es Virtual
Box. Aunque existen muchos otros, es fácil de usar, y está disponible para Windows,
OS X, y Linux.
El proceso es el mismo sea cual sea el sistema desde el cual se esté creando la
máquina virtual.
1) Presionar el botón Nueva y luego elige un nombre para tu máquina, el tipo de
sistema operativo y la versión del mismo.

2) Asignar la cantidad de memoria RAM: aunque el sistema siempre sugiere que


512MB bastan, es recomendado usar al menos 1GB.

3) Crea un disco duro virtual: como toda computadora se necesitará un disco duro,
este, aunque sea virtual obtendrá su espacio directamente en nuestro disco duro
físico.

4) Elegir el tipo de disco duro virtual: estos pueden ser de varios tipos, pero elegiremos
VDI (imagen de disco de Virtual Box)

5) Asignar el tamaño al disco: Acá tenemos dos opciones, reservado dinámicamente


o tamaño fijo. El dinámico solo utiliza espacio a medida que se llena hasta su tamaño
máximo fijo asignado por el programa, en cambio, en el fijo, uno asigna la cantidad
de espacio disponible desde el principio y este se reserva completamente, es
preferible porque la mayoría de los sistemas funcionan más rápido así.

6) Elegir la ubicación y el tamaño del disco duro virtual: Seleccionamos una ruta dentro
de nuestro sistema para guardar el archivo VDI. Se puede agregar a Mis
Documentos y se le asigna 12GB, presionamos crear y ya tenemos nuestra máquina
virtual lista.
Ahora tenemos una máquina virtual, pero esta no tiene un sistema operativo, aunque
las configuraciones básicas se aplican automáticamente, probablemente sea
necesario asignarle un dispositivo de arranque para poder instalar nuestro sistema
operativo. Lo único que necesitamos es e, archivo .ISO del sistema guardado en
nuestro ordenador o en algún medio extraíble.
7) Si ya se tiene un CD o DVD con el sistema que se desea instalar, la maquina lo
detecta automáticamente y bootea desde el, así se pueden saltar el paso siguiente.

8) Si lo tenemos en un pendrive, se debe seleccionar el medio para que mi máquina


arranque desde ahí. Para esto se seleccionará nuestra máquina virtual de la lista
izquierda y apretamos el botón de Configuración, luego seleccionamos la opción
Almacenamiento y en la lista debajo de Árbol de almacenamiento seleccionamos o

101 | P á g i n a
agregamos un controlador IDE o SATA nuevo. En la opción Atributos a la derecha
apretamos el botón con forma de CD y seleccionamos nuestro archivo .ISO,
aceptamos y ahora podemos iniciar nuestra máquina virtual.
Solo quedaría el instalar el sistema operativo de la manera usual y ya podremos
comenzar a usar nuestra máquina.

9.2 Montar sistema operativo

· Asegúrese de que ha completado todos los requisitos que se detallan en


los Requisitos de la instalación

· Apague y vuelva a encender la estación de trabajo.

· Empieza el proceso POST del BIOS.

· Pulse F8 cuando aparezca el indicador Press F8 for BBS POPUP (Pulse F8 para
BBS POPUP) en la pantalla BIOS POST (POST del BIOS) (véase la Figura 5–1).

· El menú BBS POPUP le permite seleccionar un dispositivo de inicio.

Figura 5–1 Ejemplo de indicador F8 BBS POPUP

1. Cuando se ha completado el POST del BIOS, aparece el menú Boot Device


(Dispositivo de inicio) (véase la Figura 5–2). Ahora puede insertar el CD de
medios de Windows en la unidad de DVD del servidor.

Figura 5–2 Ejemplo del menú del dispositivo de inicio

102 | P á g i n a
2. Seleccione la unidad de DVD/CD-ROM o la imagen del CD desde el menú del
dispositivo de inicio y pulse Intro.

Si aparece el mensaje Press any key to boot from CD (Pulse cualquier tecla para
iniciar el sistema desde el CD), pulse cualquier letra.

Se iniciará el asistente de instalación de Windows.

3. Siga las indicaciones del asistente hasta que aparezca la página sobre el tipo de
instalación (véase la Figura 5–3), y seleccione Custom (advanced)
(Personalizada - avanzada).

Figura 5–3 Página de selección del tipo de instalación

103 | P á g i n a
4. Cuando se le pregunte dónde quiere instalar el sistema operativo Windows, haga
clic en la opción Load Driver (Cargar controlador) tal como se muestra en
la Figura 5–4.

Figura 5–4 Ejemplo de la página que le pregunta dónde se debe instalar Windows

Aparece la página de carga del controlador.

5. En la página de carga del controlador (véase la Figura 5–5), haga clic en OK.

Asegúrese de que la estación de trabajo pueda acceder a los controladores de


almacenamiento masivo desde los medios de controladores de almacenamiento
masivo que ha creado (disquete, disco USB flash o CD/DVD).

104 | P á g i n a
Figura 5–5 Explorar los medios de controladores

6. Haga clic sobre el botón Browse (Explorar) y navegue hasta la carpeta de los
medios de controladores (véase la Figura 5–6).

Figura 5–6 Ejemplo de la pantalla Browse for Folder (Buscar carpeta)

105 | P á g i n a
7. Seleccione el controlador de almacenamiento masivo adecuado (la versión de 32 o
64 bits) y haga clic en OK:
o Controlador Intel ICH10 SATA AHCI para SATA.
o Controlador Intel ICH10 SATA RAID para RAID.
o Adaptador LSI, serie SAS 3000, 4 puertos con 1064E para HBA de Sun StorageTek
opcional.

Aparece la página de selección de controladores con el controlador seleccionado


(véase la Figura 5–7).

8. Confirme que se ha seleccionado la unidad correcta y haga clic en Next


(Siguiente).

Figura 5–7 Ejemplo de la página del controlador seleccionado

Aparece la página en la que se pregunta dónde desea instalar el sistema operativo


Windows.

9. En la página en la que se pregunta dónde desea instalar Windows (véase


la Figura 5–8), elija una de las opciones siguientes:

o Si no desea reemplazar la información de partición predeterminada de Windows,


haga clic en Next (Siguiente) y vaya al Paso 14.

106 | P á g i n a
o En el caso de que sí desee reemplazar la información de partición predeterminada
de Windows, haga clic en la opción Driver Options (advanced) (Opciones de
controlador - avanzadas) y continúe con el siguiente paso.

Precaución –

Si formatea o vuelve a particionar una partición preexistente se destruirán todos los datos de la
partición.

10. En la página en la que se pregunta dónde desea instalar Windows con opciones
de controladores (véase la Figura 5–8), haga lo siguiente:

Figura 5–8 Alteración de la información de partición

a. Haga clic en Delete (Borrar) para borrar la partición existente.


b. Haga clic en New (Nueva) para crear la partición nueva.
c. Cambie las opciones de tamaño en función de sus necesidades y haga
clic en Apply (Aplicar).
d. Haga clic en Next (Siguiente).

107 | P á g i n a
11. Empieza la instalación de Windows.

El sistema se reiniciará varias veces durante el proceso de instalación.

12. Cuando la instalación de Windows se haya completado, Windows se iniciará y le


indicará que cambie la contraseña de usuario. Haga clic en OK y configure la
cuenta de inicio de sesión del usuario.

Cuando haya creado la cuenta inicial del usuario, aparecerá el escritorio de


Windows Vista Ultimate.

Capítulo 10
Que son las tecnologías de la información

La tecnología de la es la aplicación de ordenadores y equipos de telecomunicación


para almacenar, recuperar, transmitir y manipular datos, con frecuencia utilizado en
el contexto de los negocios u otras empresas. El término es utilizado como sinónimo
para los computadores, y las redes de computadoras, pero también abarca otras
tecnologías de distribución de información, tales como la televisión y los teléfonos.
Múltiples industrias están asociadas con las tecnologías de la información, incluyendo
hardware y software de computador, electrónica, semiconductores, internet, equipos
de telecomunicación, e-commercey servicios computacionales.
La tecnología de la información facilita la difusión del conocimiento:

108 | P á g i n a
10.1 Internet y Sus Servicios

Con todos estos servicios mencionados, los cuales obviamente son una pequeña
porción de la cantidad que encontramos hoy en día en Internet, se puede asegurar
que esta forma de comunicación nos asegura una llegada a lo que buscamos. Y para
simplificarnos más las cosas encontramos la diversidad de recursos que no solo
simplifican, sino que hacen más rápida la movilización por la red.
Correo Electrónico: Sirve para enviar y recibir mensajes a otros usuarios, y por eso
no hay nunca dos nombres iguales. La primera parte de una dirección identifica
habitualmente a la persona y la segunda a la empresa u organización para la que
trabaja, o al proveedor de Internet a través del que recibe la información. Por este
medio se pueden enviar texto, gráficos, hojas de cálculo, algunos programas
ejecutables (dependiendo de la política del proveedor y del espacio que este le dé
para su correo), etc.
WWW (world wide web): Se trata de un sistema de distribución de información tipo
revista. En la Red quedan almacenadas lo que se llaman Páginas Web, que no son
más que páginas de texto con gráficos o fotos. Aquellos que se conecten a Internet
pueden pedir acceder a dichas páginas y acto seguido éstas aparecen en la pantalla
de su ordenador. Este sistema de visualización de la información revolucionó el
desarrollo de Internet. A partir de la invención de la WWW, muchas personas
empezaron a conectarse a la Red desde sus domicilios, como entretenimiento.
Internet recibió un gran impulso, hasta el punto de que hoy en día casi siempre que
hablamos de Internet, nos referimos a la WWW.
Chat, Messenger: (conversación, mensajería). Son programas y sitios que permiten
que los usuarios se comuniquen mediante el teclado, micrófono o ambos en tiempo
real.
Estos felicitan muchas cosas ya que por este medio los usuarios pueden buscar
información de otro usuario que este en línea, hablar sobre el tema, conocer gente
de acuerdo a tus intereses, bajar programas, música en formato Mp3 y un millón de
cosas más.
El cual el usuario se conecta a un servidor y entra a un canal especifico donde se
encuentran otros usuarios de donde puede bajar música, gráfico y texto y los usuarios
muestran sus emociones con caracteres del teclado.

109 | P á g i n a
10.2 Intranet
Una intranet es una red informática que utiliza la tecnología del protocolo de
Internet para compartir información, sistemas operativos o servicios
de computación dentro de una organización. Suele ser interna, en vez de pública
como internet, por lo que solo los miembros de esa organización tienen acceso a ella.

110 | P á g i n a
111 | P á g i n a
Capítulo 10
Software
10.1 Concepto
El concepto de software como tal es todo aquello intangible (todo aquello que no se puede
tocar físicamente) de una computadora. Para ponerlo más claro el hardware es todo lo
tangible, lo que, si se puede tocar, que consiste por ejemplo en el teclado, case, mouse, entre
otros, a diferencia del software que son programas que nos sirven para comunicarnos con la
computadora en sí. En un lenguaje más técnico podríamos decir que el software son todas
aquellas instrucciones que nos permiten dar órdenes al ordenador para que ejecute procesos
mediante problemas que el software resuelve, por ejemplo:

Software Ejemplo

Antivirus McAfee, Norton

Audio/programa de música iTunes, WinAmp

Base de datos Acces, MySQL

Juegos League of Legends, Minecraft

Navegador Internet FireFox, Google Chrome

Sistemas Operativos Windows, Android, iOS

10.2 Clasificación del software del sistema.


El software de un sistema informático no tiene presencia física, se almacenan en formato
digital dentro de la memoria del computador. Existen diferentes tipos de software,
generalmente el software se clasifica en tres grupos principales:

1. Software del sistema.


2. Software de programación.
3. Software de aplicaciones.
Software del sistema es el término bajo el que se engloban todos aquellos programas que
sirven para controlar dicho sistema en diferentes formas. Éstas consisten en manejar el
propio sistema, así como respaldar a otros programas y al propio hardware.
Dentro del software del sistema existen tres categorías diferentes: el sistema operativo, el
software utilitario y los controladores de dispositivos.

112 | P á g i n a
El sistema operativo
Es el programa básico para hacer uso del ordenador, es decir de sus programas y su
contenido en general. Es la plataforma fundamental, en tanto en el plano visual como en el
técnico, para su manejo. Cuando hablamos del software del sistema centrándonos en el
sistema operativo lo primero a lo que hacemos referencia es a la interfaz que proporciona al
usuario.
Por otra parte, como software del sistema, el sistema operativo se encarga de gestionar los
recursos que proporcionan distintos hardware como el procesador, periféricos, memoria…
También ejerce de gestor de archivos de datos, es decir, su creación, eliminación, copia,
realizando las mismas funciones con los programas. Otras de las funciones del sistema
operativo es la administración de tareas, como la ejecución de programas y cómo está
afectando su uso al rendimiento del ordenador.

 Los programas utilitarios:


Son considerados como software del sistema, pero también de aplicación. Sirven para
mejorar el rendimiento del ordenador y se encargan de su mantenimiento en algunos
aspectos. Muchos programas utilitarios vienen incluidos en los sistemas operativos, como
desfragmentadores de disco, restauradores de sistema. Para usarlos correctamente es
necesario tener conocimientos medios de informática y tener claro qué buscamos mejorar
y cuál es la mejor forma de hacerlo.

 Controladores de dispositivos:
O drivers se encuentran dentro de la clasificación de software del sistema. Estos
programas, proporcionados por el fabricante, se encargan de administrar los dispositivos
periféricos y elementos internos de forma concreta. La labor de este software del sistema
es imprescindible para que funcionen óptimamente permitiendo el acceso a las diversas
funcionalidades de cada modelo. Por ejemplo, para configurar adecuadamente una tarjeta
gráfica, deberemos instalar sus controladores correspondientes para comenzar a utilizarlo y
adaptarlo al uso que se le dará, y actualizarlos para que su utilidad no quede obsoleta.

Ejemplo de controladores de dispositivos:


 Controladores de red. (este controlador es el encargado de hacer funcionar la tarjeta
de red, sin este controlador básicamente no puedes acceder a internet.)
 Controladores para la tarjeta de video. (sirve para que tu display muestre las
imágenes de manera óptima.)
 Controladores de audio. (sirve para que podamos escuchar "sonidos" en la PC,
canciones, videos, etc.)

113 | P á g i n a
En la imagen vemos los logos de Guadalinex que es una distribución Linux promovida por la Junta
de Andalucía para fomentar el uso del software libre en su comunidad autónoma, y los sistemas
operativos LINUX, WINDOWS Y MAC OS X.

10.2.2 Software de programación


El software de programación es un conjunto de herramientas que permiten el desarrollo de
aplicaciones de software, está dirigido a los programadores o desarrolladores de software
(es un especialista en informática que es capaz de concebir y elaborar sistemas
informáticos), los cuales utilizan estas herramientas para crear, depurar y mantener sistemas.
El software de programación es una subcategoría del software del sistema (es la parte
esencial, en ella no solamente podemos clasificar los sistemas operativos como Linux,
Windows o Mac, también debemos agregar aquel software que permite la comunicación entre
el Hardware y el sistema operativo,) pero como cada vez este software va mejorando se trata
como una categoría separada, al nivel del software de aplicación y el software sistema. Existe
una amplia categoría de software de programación, entre los tipos más importantes están:
Editores de texto
Un editor permite tan sólo introducir los caracteres (letras, números, signos: mientras que un
procesador permite, además, cambiar su aspecto Un editor de texto es un programa que
permite crear y modificar archivos digitales compuestos por texto sin formato (un texto sin
formato contiene información sólo de texto y no ofrecen una alternativa claramente definida
para informar al ordenador el lenguaje que contienen), conocidos como archivos de texto o
texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de
caracteres que usa el editor (cuando hablamos de bytes y código que usan el editor nos
referimos a la sintaxis empleada).
Compiladores:
Son aplicaciones que traducen el código fuente a lenguaje de máquina, para que el equipo
pueda entender las instrucciones recibidas. Los compiladores generan objetos que se
combinan y se convierten en programas ejecutables.

Intérpretes
Permiten ejecutar programas. Los intérpretes ejecutan el código fuente o el código
recompilado a un lenguaje intermedio antes de la ejecución.

114 | P á g i n a
Enlazadores
En programación, cuando se desarrolla un programa, estos pueden utilizar subprogramas y,
de cada uno de ellos, su código objeto debe ser enlazado (unido) al código objeto del
programa que los utilice. Este se realiza mediante un programa llamado enlazador.
Depuradores
Utilizados para supervisar línea a línea la ejecución de un programa. El código fuente del
programa es compilado y ejecutado parcialmente esto quiere decir que no es de forma
definitiva ya que muchas veces modificamos el código, lo que permite al programador hacer
seguimiento a las instrucciones que se ejecutan en un momento dado. Permitiendo además
controlar, cambiar o asignar valores a variables del programa.
Ejemplos de Software de Programación y de Lenguajes de Programación:
Algunos ejemplos de Software de programación:
Microsoft Visual Studio .NET, Eclipse, Netbeans, WebDevStudio, Dev, C++, Blocks, Lazarus,
KDevelop, Xcode.
Algunos ejemplos de lenguajes de programación: Visual Basic .NET, C++, C#, Java,
Objective-C, Javascript, Pascal, Assembler.

10.2.3 Software de Aplicación


El Software de Aplicación son los programas diseñados para o por los usuarios para facilitar
la realización de tareas específicas en la computadora.
como pueden ser las aplicaciones ofimáticas (procesador de texto, hoja de cálculo, programa
de presentación, sistema de gestión de base de datos...),
u otros tipos de software especializados como software médico, software educativo, editores
de música, programas de contabilidad, etc.

La importancia del software:


Según la funcionalidad que tengan los diferentes softwares de aplicación podremos
clasificarlos en dos tipos de programas. Por un lado, nos encontramos con los básicos,
donde se incluyen todas las aplicaciones que tengan que ver con el buen desarrollo de los
ordenadores y principalmente suelen presentar un aspecto más técnico. Los otros son los
denominados de productividad, que se van a centrar en facilitar las tareas a los usuarios
que usen su equipo.

 Programas básicos (o utilitarios)


Son aplicaciones cuyo propósito es mejorar, en alguna forma, el desempeño del ordenador.

 Programas de productividad
Son aplicaciones cuyo propósito es facilitar, agilizar y mejorar para el usuario, la ejecución
de ciertas tareas.

115 | P á g i n a
 Algunos programas de productividad
Software de base de datos: El propósito de este tipo de aplicaciones programa es organizar
y administrar los datos de manera tal que se pueda realizar análisis de información. Ejemplos
son: Microsoft Access, débase, FoxPro y Oracle.
Hojas de cálculo: Aplicaciones especialmente diseñadas para introducir, calcular, manipular
y analizar conjuntos de números.

Presentaciones automatizadas: Aplicaciones que permiten al usuario crear y editar


presentaciones atractivas, incluyendo imágenes y sonidos.

Navegadores de Internet: Aplicaciones diseñadas para proveer acceso a Internet, sus


servicios y sus recursos.

Administradores de bases de datos: Aplicaciones diseñadas para acceder, almacenar y


procesar grandes colecciones de datos, en una forma eficiente.

Desarrolladores de sitios web: Aplicaciones que brindan al usuario las herramientas


necesarias para diseñar, crear, editar y publicar páginas y sitios Web.

Algunos ejemplos de software de aplicación/aplicaciones bastante comunes son los


siguientes:
Los elementos que componen el paquete ofimático de Office (Word, PowerPoint, Excel, entre
otros) o bien su equivalencia en OpenOffice; crear documentos profesionales

Windows Movie Maker

Utorrent

Ares

Winamp

116 | P á g i n a
Capítulo 11
Ofimática

11.1 Concepto
Se llama ofimática (acrónimo de “ofi” oficina y “matica” de informática) al conjunto de técnicas
o aplicaciones y herramientas informáticas que se utilizan en funciones de oficina para
optimizar, optimizar y mejorar tareas y procedimientos relacionados. Las herramientas
ofimáticas permiten idear, crear, manipular, transmitir o almacenar la información necesaria
en una oficina.
Actualmente es fundamental que las oficinas estén conectadas a una red local o a internet.
A veces también llamado automatización de escritorios o automatización de oficinas. En
referencia a lo anterior, la estructura ofimática abarca desde computadoras, impresoras,
escáneres conectados mediante una red de área local hasta teléfonos y equipos de fax. Las
herramientas o medios ofimáticos permiten idear, elaborar, ceder, guardar todas las
informaciones necesarias en una oficina. Las herramientas de ofimática son: procesamiento
de texto, base de datos, hojas de cálculo, programas de correo electrónico, suite ofimática,
calculadora, agendas, entre otros programas. Asimismo, suite ofimática o paquete
ofimático es la compilación o el conjunto de programas informáticos que son de uso frecuente
en las oficinas con el fin de editar textos, realizar presentaciones, realizar cálculos, es decir,
facilita el proceso y permite realizar un buen trabajo. En la actualidad, el paquete ofimático
más dominante en el mercado es el de Microsoft Office que goza de sus propios formatos
para cada uno de sus programas.

 ¿Qué es office?
Microsoft office es una suite de oficina que abarca el mercado completo de internet y
relaciona aplicaciones de escritorio, servidores y servicios para los sistemas
operativos Microsoft Windows, Mac OS X, iOS y Android. La última versión de la suite
ofimática es el Microsoft Office 2016.
Microsoft Office posee un paquete de herramientas que permiten realizar ciertas
operaciones, ya sean textos en Word, hojas de cálculo en Excel, presentaciones de
diapositivas en PowerPoint, gestión del correo en Outlook. Microsoft Office posee un paquete
de herramientas que permiten realizar ciertas operaciones, ya sean textos en Word, hojas de
cálculo en Excel, presentaciones de diapositivas en PowerPoint, gestión del correo en
Outlook.

 ¿Qué es Word?
Es un software destinado a un procesamiento de texto. Fue creado por la empresa de
Microsoft y actualmente viene integrado en la suite ofimática Microsoft Word. El Word es un
programa que está prácticamente presente en todos los equipos de las personas que tengan
computadora a su disposición siendo éste un procesador bastante simple. Este programa
pertenece al Paquete Office (así como el Microsoft Excel para el manejo de planillas de
cálculo) de todas las computadoras que tengan instalado Microsoft Windows como sistema
operativo.

117 | P á g i n a
Ejemplo de Word en ofimática.
Microsoft Word permite al usuario escribir textos, monografías, artículos de una manera
ordenada, entre otros. Se puede elegir el formato de letra (según el estilo de lo que quiero
hacer) resaltando en negrita y/o cursiva y en cierto tamaño mediante comandos o íconos
visibles. A su vez, permite que se configure el tamaño de la hoja y la disposición de la misma,
ya sea vertical u horizontal.

 ¿Qué es un procesador de texto?


Es una aplicación informática que permite crear u editar documentos de texto en una
computadora. Se trata de un software de múltiples funcionalidades para la relación con
diferentes tipos de gráficos, tamaño de letra, colores, tipos de párrafos, efectos artísticos,
otras opciones.

11.2 Historia
 La década de 1940

A finales de la década de 1940, con lo que se podría considerar la aparición de la primera


generación de computadoras.

se accedía directamente a la consola de la computadora desde la cual se actuaba sobre una


serie de interruptores que permitían introducir directamente el programa en la memoria de la
computadora.

(En realidad al existir tan pocas computadoras todos podrían considerarse prototipos y cada
constructor lo hacía sin seguir ningún criterio predeterminado). Por aquel entonces no
existían los sistemas operativos, y los programadores debían interactuar con el hardware del
computador sin ayuda externa. Esto hacía que el tiempo de preparación para realizar una
tarea fuera considerable. Además, para poder utilizar la computadora debía hacerse por
turnos. Para ello, en muchas instalaciones, se rellenaba un formulario de reserva en el que
se indicaba el tiempo que el programador necesitaba para realizar su trabajo. En aquel
entonces las computadoras eran máquinas muy costosas lo que hacía que estuvieran muy
solicitadas y que sólo pudieran utilizarse en periodos breves de tiempo. Todo se hacía en
lenguaje de máquina.

118 | P á g i n a
 La década de 1950

A principios de los años 50 con el objeto de facilitar la interacción entre persona y


computadora, los sistemas operativos hacen una aparición discreta y bastante simple, con
conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento temporal

 Monitor residente

Su funcionamiento era bastante simple, se limitaba a cargar los programas a memoria,


leyéndolos de una cinta o de tarjetas perforadas, y ejecutarlos. El problema era encontrar
una forma de optimizar el tiempo entre la retirada de un trabajo y el montaje del siguiente.

 Procesamiento por lotes

Como solución para optimizar, en una misma cinta o conjunto de tarjetas, se cargaban varios
programas, de forma que se ejecutaran uno a continuación de otro sin perder apenas tiempo
en la transición.

 Almacenamiento temporal

Su objetivo era disminuir el tiempo de carga de los programas, haciendo simultánea la carga
del programa o la salida de datos con la ejecución de la siguiente tarea. Para ello se utilizaban
dos técnicas, el buffering y el spooling.

 La década de 1960

En los años 60 se produjeron cambios notorios en varios campos de la informática, con la


aparición del circuito integrado la mayoría orientados a seguir incrementando el potencial de
los ordenadores. Para ello se utilizaban técnicas de lo más diversas.

 Multiprogramación

En un sistema multiprogramado la memoria principal alberga a más de un programa de


usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra en
ejecución realiza una operación de E/S; en lugar de esperar a que termine la operación de
E/S, se pasa a ejecutar otro programa. Si éste realiza, a su vez, otra operación de E/S, se
mandan las órdenes oportunas al controlador, y pasa a ejecutarse otro. De esta forma es
posible, teniendo almacenado un conjunto adecuado de tareas en cada momento, utilizar de
manera óptima los recursos disponibles.

 Tiempo compartido

En este punto tenemos un sistema que hace buen uso de la electrónica disponible, pero
adolece la falta de interactividad; para conseguirla debe convertirse en un sistema
multiusuario, en el cual existen varios usuarios con un terminal en línea, utilizando el modo
de operación de tiempo compartido. En estos sistemas los programas de los distintos
usuarios residen en memoria. Al realizar una operación de E/S los programas ceden la CPU
a otro programa, al igual que en la multiprogramación. Pero, a diferencia de ésta, cuando un
programa lleva cierto tiempo ejecutándose el sistema operativo lo detiene para que se ejecute
otra aplicación.
119 | P á g i n a
 Tiempo real

Estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempos muy
breves un gran número de sucesos, en su mayoría externos al ordenador. Si el sistema no
respeta las restricciones de tiempo en las que las operaciones deben entregar su resultado
se dice que ha fallado. El tiempo de respuesta a su vez debe servir para resolver el problema
o hecho planteado.

El procesamiento de archivos se hace de una forma continua, pues se procesa el archivo


antes de que, entre el siguiente, sus primeros usos fueron y siguen siendo en
telecomunicaciones.

 Multiprocesador

Diseño que no se encuentran en ordenadores monoprocesador. Estos problemas derivan del


hecho de que dos programas pueden ejecutarse simultáneamente y, potencialmente, pueden
interferirse entre sí. Concretamente, en lo que se refiere a las lecturas y escrituras en
memoria. Existen dos arquitecturas que resuelven estos problemas:

La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo a una parte
de la memoria.

La arquitectura SMP, donde todos los procesadores comparten toda la memoria. Esta última
debe lidiar con el problema de la coherencia de caché. Cada microprocesador cuenta con su
propia memoria cache local. De manera que cuando un microprocesador escribe en una
dirección de memoria, lo hace únicamente sobre su copia local en caché. Si otro
microprocesador tiene almacenada la misma dirección de memoria en su caché, resultará
que trabaja con una copia obsoleta del dato almacenado.

Para que un multiprocesador opere correctamente necesita un sistema operativo


especialmente diseñado para ello. La mayoría de los sistemas operativos actuales poseen
esta capacidad.

 Sistemas operativos desarrollados

Además del Atlas Supervisor y el OS/360, los años 70 marcaron el inicio de UNIX, a mediados
de los 60 aparece Multics, sistema operativo multiusuario – multitarea desarrollado por los
laboratorios Bell de AT&T y Unix, convirtiéndolo en uno de los pocos SO escritos en un
lenguaje de alto nivel. En el campo de la programación lógica se dio a luz la primera
implementación de Prolog, y en la revolucionaria orientación a objetos, Smalltalk.

 Inconvenientes de los Sistemas operativos

Se trataba de sistemas grandes, complejos y costosos, pues antes no se había construido


nada similar y muchos de los proyectos desarrollados terminaron con costos muy por encima
del presupuesto y mucho después de lo que se marcaba como fecha de finalización.

Además, aunque formaban una capa entre el hardware y el usuario, éste debía conocer un
complejo lenguaje de control para realizar sus trabajos. Otro de los inconvenientes es el gran
consumo de recursos que ocasionaban, debido a los grandes espacios de memoria principal
120 | P á g i n a
y secundaria ocupados, así como el tiempo de procesador consumido. Es por esto que se
intentó hacer hincapié en mejorar las técnicas ya existentes de multiprogramación y tiempo
compartido.

Características de los nuevos sistemas:

 Sistemas operativos desarrollados

MULTICS (Multiplexed Information and Computing Service): Originalmente era un proyecto


cooperativo liderado por Fernando Corbató del MIT, con General Electric y los laboratorios
Bell, que comenzó en los 60, pero los laboratorios Bell abandonaron en 1969 para comenzar
a crear el sistema UNIX. Se desarrolló inicialmente para el mainframe GE-645, un sistema
de 36 bits; después fue soportado por la serie de máquinas Honeywell 6180. Fue uno de los
primeros. Además, los traducía a instrucciones de alto nivel destinadas a BDOS.
BDOS (Basic Disk Operating System): Traductor de las instrucciones en llamadas al BIOS.
El hecho de que, años después, IBM eligiera para sus PC a MS-DOS supuso su mayor
fracaso, por lo que acabó desapareciendo.

 La década de 1980

Con la creación de los circuitos LSI -integración a gran escala-, chips que contenían miles de
transistores en un centímetro cuadrado de silicio, empezó el auge de los ordenadores
personales. En éstos se dejó un poco de lado el rendimiento y se buscó más que el sistema
operativo fuera amigable, surgiendo menús, e interfaces gráficas. Esto reducía la rapidez de
las aplicaciones, pero se volvían más prácticos y simples para los usuarios. En esta época,
siguieron utilizándose lenguajes ya existentes, como Smalltalk o C, y nacieron otros nuevos,
de los cuales se podrían destacar: C++ y Eiffel dentro del paradigma de la orientación a
objetos, y Haskell y Miranda en el campo de la programación declarativa. Un avance
importante que se estableció a mediados de la década de 1980 fue el desarrollo de redes de
computadoras personales que corrían sistemas operativos en red y sistemas operativos
distribuidos. En esta escena, dos sistemas operativos eran los mayoritarios: MS-DOS(Micro
Soft Disk Operating System), escrito por Microsoft para IBM PC y otras computadoras que
utilizaban la CPU Intel 8088 y sus sucesores, y UNIX, que dominaba en los ordenadores
personales que hacían uso del Motorola 68000.

 Mac OS

El lanzamiento oficial del ordenador Macintosh en enero de 1984, al precio de US $1,995


(después cambiado a $2,495 dólares). Incluía su sistema operativo Mac OS cuya
característica novedosa era una GUI (Graphic User Interface), Multitareas y Mouse. Provocó
diferentes reacciones entre los usuarios acostumbrados a la línea de comandos y algunos
tachando el uso del Mouse como juguete.

121 | P á g i n a
 MS-DOS

En 1981 Microsoft compró un sistema operativo llamado QDOS que, tras realizar unas pocas
modificaciones, se convirtió en la primera versión de MS-DOS
(MicroSoft Disk Operating System). A partir de aquí se sucedieron una serie de cambios
hasta llegar a la versión 7.1, versión 8 en Windows Milenium, a partir de la cual MS-DOS dejó
de existir como un componente del Sistema Operativo.

 Microsoft Windows

A mediados de los años 80 se crea este sistema operativo, pero no es hasta la salida de
(Windows 95) que se le puede considerar un sistema operativo, solo era una interfaz gráfica
del (MS-DOS)en el cual se disponía de unos diskettes para correr los programas. Hoy en día
es el sistema operativo más difundido en el ámbito doméstico, aunque también hay versiones
para servidores como Windows NT. (Microsoft) ha diseñado también algunas versiones para
superordenadores, pero sin mucho éxito. Años después se hizo el (Windows 98) que era el
más eficaz de esa época.

Después se crearía el sistema operativo de (Windows ME) (Windows Millenium Edition)


aproximadamente entre el año 1999 y el año 2000.

Un año después se crearía el sistema operativo de (Windows 2000) en ese mismo año.
Después le seguiría el sistema operativo más utilizado en la actualidad, (Windows XP) y otros
sistemas operativos de esta familia especializados en las empresas. Ahora el más reciente
es (Windows 7) (Windows Seven) que salio al mercado el 22 de octubre del 2009, dejando
atrás al (Windows Vista), que tuvo innumerables criticas durante el poco tiempo que duró en
el mercado.

 La década de 1990

GNU/Linux

Este sistema es una versión mejorada de Unix, basado en el estándar POSIX , un sistema
que en principio trabajaba en modo comandos. Hoy en día dispone de Ventanas, gracias a
un servidor gráfico y a gestores de ventanas como KDE, GNOME entre muchos.
Recientemente GNU/Linux dispone de un aplicativo que convierte las ventanas en un entorno
3D como por ejemplo Beryl o Compiz. Lo que permite utilizar linux de una forma visual
atractiva.

Existen muchas distribuciones actuales de Gnu/Linux (Debian, Fedora, Ubuntu, Slackware,


etc) donde todas ellas tienen en común que ocupan el mismo núcleo Linux. Dentro de las
cualidades de Gnu/Linux se puede caracterizar el hecho de que la navegación a través de la
web es sin riegos de ser afectada por virus, esto debido al sistema de permisos
implementado, el cual no deja correr ninguna aplicación sin los permisos necesarios,
permisos que son otorgados por el usuario. A todo esto se suma que los virus que vienen en
dispositivos desmontables tampoco afectan al sistema, debido al mismo sistema de
permisos.

122 | P á g i n a
 React OS

React OS (React Operating System) es un sistema operativo de código abierto destinado a


lograr la compatibilidad binaria con aplicaciones de software y controladores de dispositivos
hechos para Microsoft Windows NT versiones 5.x en adelante (Windows XP y sus
sucesores).

En 1996 un grupo de programadores y desarrolladores de software libre comenzaron un


proyecto llamado FreeWin95 el cual consistía en implementar un clon de Windows 95. El
proyecto estuvo bajo discusión por el diseño del sistema ya habiendo desarrollado la capa
compatible con MS-DOS, pero lamentablemente esta fue una situación que no se completó.
Para 1997 el proyecto no había lanzado ninguna versión, por lo que los miembros de éste,
coordinados por Jason Filby, pudieron revivirlo. Se decidió cambiar el núcleo del sistema
compatible con MS-DOS y de ahora en adelante basarlo en uno compatible con Windows NT
y así el proyecto pudo seguir adelante con el nombre actual de ReactOS, que comenzó en
febrero de 1998, desarrollando las bases del kernel y algunos drivers básicos.

11.3 Herramientas
Las herramientas de ofimática son un conjunto de técnicas, aplicaciones y programas
informáticos que se utilizan en funciones de oficina para optimizar, automatizar y mejorar los
procedimientos y tareas relacionados. Esas herramientas (procesador de texto, hoja de
cálculo, presentaciones, agenda…)
suelen presentarse en paquetes de programas conocidos como “suites de oficina u
ofimática”.
En la actualidad las suites ofimáticas dominantes en el mercado son, por parte del software
pagado, Microsoft Office, la cual posee sus propios formatos cerrados de documentos para
cada uno de sus programas. Respecto al software libre, está Open Office, desarrollado por
Sun Microsystems, también con un formato para cada programa, pero de código abierto. Es
habitual que, al comprar un ordenador, este ya venga con una suite de ofimática pre instalada
en él (generalmente Microsoft Office), comprándose las licencias en el mismo momento de
adquirir el ordenador.

 Microsoft Word

Microsoft Word permite al usuario escribir textos, monografías, artículos de una


manera ordenada, entre otros. Se puede elegir el formato de letra (según el estilo
de lo que quiero hacer) resaltando en negrita y/o cursiva y en cierto tamaño mediante
comandos o íconos visibles. A su vez, permite que se configure el tamaño de la hoja
y la disposición de la misma, ya sea vertical u horizontal.

Cabe resaltar, que Word no es un simple procesador de textos, pues habilita al


usuario a insertar imágenes que revaloricen lo que se está escribiendo o que se
realicen gráficos de torta explicativos para demostrar estadísticas mediante la
representación de los porcentajes (%) de manera gráfica.

123 | P á g i n a
 Microsoft Excel
Es un programa informático desarrollado y distribuido por Microsoft Corp. Se trata de
un software que permite realizar tareas contables y financieras gracias a sus funciones,
desarrolladas específicamente para ayudar a crear y trabajar con hojas de cálculo.

 PowerPoint
PowerPoint es el nombre de uno de los programas más populares creados por Microsoft. Se
trata de un software que permite realizar presentaciones a través de diapositivas.
El programa contempla la posibilidad de utilizar texto, imágenes, música y animaciones. De
este modo, la creatividad del usuario resulta decisiva para que las presentaciones sean
atractivas y consigan mantener la atención del receptor

 Access de Microsoft
Access, o Microsoft Access, es un software que permite gestionar una base de datos. El
programa forma parte de Microsoft Office, un paquete de aplicaciones que permiten realizar
tareas de oficina.

o Permite darles forma a bases de datos de una manera realmente sencilla e


intuitiva.

o Cada una de esas mencionadas bases se pueden personalizar absolutamente


y sin necesidad de tener que contar con un desarrollador.

o De la misma manera, cuenta con una serie de plantillas para que el usuario
pueda hacer empleo de las mismas sin tener que perder tiempo en crear una
propia.

o Tiene la particularidad de que se pueden compartir todas las bases de datos


creadas de forma rápida y mediante distintos medios.

o Access es un programa que interactúa de manera clara y sencilla con otros


softwares de Microsoft también muy utilizados, como pueden ser Excel e
incluso Word o PowerPoint.

o Permite importar datos de forma fácil y rápida.

Hay dos tipologías relevantes en cuanto a las suites de ofimática se refiere:

o Soluciones de escritorio: Es la solución tradicional que están instaladas


directamente en los propios ordenadores de la empresa. Por ejemplo,
Microsoft Office y Open Office.

o Soluciones online: Están en un servidor externo al cual se accede por la


conexión de internet, y se pueden crear documentos de texto, hojas de cálculo,
etc. Como si estuviesen en el escritorio. Ejemplos: Google Apps, Office 365.
Con esta solución se consigue una accesibilidad a la información desde
124 | P á g i n a
cualquier dispositivo con conexión a internet y alojando la información en la
nube, sin tener que mantener infraestructuras complejas dentro de la empresa.
Aspectos a tomar en cuenta:
Los documentos creados en una suite pueden tener problemas de compatibilidad al abrirlos
con otra, es decir, un documento de texto creado en Word de Microsoft al intentar abrirlo con
Writer de Open Office, por ejemplo, es probable que el programa no sepa ‘traducir’ 100% el
formato del texto que tiene el documento. Por ello una alternativa si es posible, es enviar
formatos genéricos como PDF. Las herramientas ofimáticas son fáciles de manejar a un nivel
básico. No obstante, hay que tener en cuenta que son herramientas complejas con mucha
funcionalidad y que habitualmente no se aprovechan enteramente debido a desconocimiento.
Por ello puede ser recomendable el asistir a un curso de formación en el manejo avanzado
de estas herramientas si es posible.

Programas Ofimáticos

 GOOGLE APPS
Google Apps es un paquete de productividad basado en la nube para ayudar a autónomos y
pequeños negocios a conectarse y a trabajar desde cualquier lugar y dispositivo. Es fácil de
configurar, utilizar y administrar, lo que permite trabajar de forma más inteligente.
Cuenta con varias aplicaciones Web con funciones similares a las suites informáticas
tradicionales: Gmail, Google Groups, Google Calendar, Google Talk, Google Docs y Google
Sites.
Las principales funcionalidades ofrecidas son las siguientes:

o Gmail: Correo electrónico con búsqueda integrada con la tecnología de


Google, 30 GB de espacio de almacenamiento, posibilidad de usar el servicio
sin conexión, direcciones de correo electrónico personalizado, etc. Si se posee
un dominio propio Google apps ofrece la posibilidad de crear correos con el
nombre del dominio (pe. info@miempresa.com).

o Google Calendar: Concertar fácilmente citas a horas que venga bien a todo
el mundo, recibir recordatorios de reuniones y compartir calendarios.

125 | P á g i n a
o Google Drive: Google Drive permite almacenar los archivos en la nube,
compartirlos y tener acceso a los mismos desde cualquier lugar.
o Google Docs: permite disponer de un procesador de textos, una hoja de
cálculo, un programa para realizar presentaciones y otro para dibujar. Se
pueden editar documentos en el ordenador de trabajo y continuarlo en casa
sin necesidad de utilizar pendrives. Además, permite la edición de
documentos por varios usuarios simultáneamente con lo que resulta una
excelente herramienta colaborativa.
Aspectos a tomar en cuenta:
Hay que tener en cuenta que es una solución “en la nube” es decir, no es necesario un
servidor en la empresa con lo que no estos costes no existen. Debido a que esta
infraestructura se encuentra en línea o "en la nube", se puede obtener acceso a ella desde
prácticamente cualquier parte, desde un equipo, una tableta, un Smartphone u otro
dispositivo con conexión a Internet.
Además, se garantiza por parte de Google, una disponibilidad del 99,9% gracias a la
replicación sincrónica de datos entre varios servidores seguros distribuidos en todo el mundo.
A esto hay que sumar el servicio de soporte 24x7 que proporciona Google.

Aplicaciones de Google.

 OFFICE 365
Office 365 es una versión gratuita en la nube del conjunto de aplicaciones de Microsoft Office
que es una de las suites más usadas en todo el mundo. Incluye Word Web App, Excel Web
App, PowerPoint Web App, y OneNote Web App. En esta versión de Office se han reducido
las funcionalidades con respecto al software que se instala en el disco duro. Las aplicaciones
web permiten a los usuarios acceder a sus documentos directamente desde cualquier parte
dentro de un navegador web, así como compartir archivos y colaborar con otros usuarios en
línea.
Las principales características son las siguientes:

o Aplicaciones de Office: Suscripción a Office para un máximo de 5 PCs/Macs


por usuario.

126 | P á g i n a
o Correo electrónico hospedado: correo electrónico de nivel empresarial, 3
calendarios compartidos, 50 GB de espacio de almacenamiento por usuario y
la posibilidad de usar un nombre de dominio propio (pe.
info@miempresa.com).

o Conferencias web, presencia y mensajería instantánea: para realizar


reuniones a través de Internet con videoconferencias en alta definición, uso
compartido de pantallas y mensajería instantánea, mediante Skype.

o Uso compartido simplificado: SkyDrive proporciona a cada usuario 25 GB de


almacenamiento personal al que puede acceder desde cualquier lugar y que
se sincroniza4 con el PC. Permite compartir fácilmente archivos interna y
externamente, y controlar quién puede verlos y editarlos.

o Sitio web público: permite hacer publicidad de un negocio con un sitio web fácil
de configurar usando el nombre de dominio de su propia empresa. Sin costos
de hospedaje adicionales.

o Protección contra correo no deseado y malware: protección contra malware y


filtrado contra correo no deseado premium.

o Comunidad y soporte telefónico: soporte web de nivel de TI y soporte


telefónico las 24 horas del día, 7 días a la semana para problemas críticos.

o Sitio de intranet para los equipos: los sitios de SharePoint proporcionan áreas
de trabajo con configuraciones de seguridad personalizables para equipos
individuales de la organización.

o Office Web Apps: permite crear y editar archivos de Word, Excel, PowerPoint
y OneNote a través de un explorador web.

o Buzones de correo del sitio: permite almacenar y compartir correos


electrónicos y documentos en carpetas específicas del proyecto, lo que
simplifica la colaboración en equipo.

o Office Mobile para iPhones y teléfonos Android: permite acceder, editar y ver
documentos de Word, Excel y PowerPoint en iPhones y teléfonos Android.

o Integración de Active Directory: permite administrar credenciales y permisos


de usuario. Inicio de sesión único y sincronización con Active Directory.

127 | P á g i n a
Aplicaciones en línea.

 Open Office
Apache Open Office es una suite ofimática libre (de código abierto y distribución gratuita)
líder para el procesamiento de textos, hojas de cálculo, presentaciones, gráficos, bases de
datos y más. Se encuentra disponible en varios idiomas y funciona en todos los sistemas
comunes. Almacena todos sus datos en un formato que es un estándar internacional y puede
también leer y escribir archivos producidos por otros paquetes de oficina.
Mediante las aplicaciones y distintos programas que engloba facilita la automatización
de actividades requeridas en el día a día de tu negocio como pueden ser:

o Generar textos o preparar material gráfico o diseño, realizar cálculos y


gráficos.

o Guardar y analizar datos de clientes, ventas.

o Acceder y analizar a información sobre el sector, sobre comportamientos del


consumo, o sobre tendencias o evolución de tus productos o servicios, para
adelantarte a los competidores.

o Disponer de utilidades que te agilizan tareas administrativas, como


diccionarios, calculadoras, editores de imágenes, comprensores de ficheros
para reducir su tamaño y facilitar su almacenamiento o envío posterior.

o Visualizar archivos y documentos enviados por tus clientes y proveedores al


ser compatibles con tu paquete ofimático.
Las principales características de OpenOffice son las siguientes:

o Formatos soportados: OpenOffice.org permite importar y exportar


documentos en diferentes formatos de archivo.
o El formato predeterminado para la escritura de documentos es el estándar ISO
OpenDocument. Además, es capaz de leer y grabar los formatos de fichero de
Microsoft Office. La suite tiene la capacidad de guardar documentos en otros

128 | P á g i n a
formatos, tales como el formato RTF, TXT, Microsoft Office XML y
OpenOffice.org XML.
o Adicionalmente puede exportar documentos directamente al formato PDF y
exportar presentaciones al formato Adobe Flash (SWF). OpenOffice.org
también cuenta con la capacidad de importar documentos en modo de «sólo
lectura» en los formatos Unified Office Format, Data Interchange Format y los
formatos propios de Microsoft Works, WordPerfect, Lotus 1-2-3, entre otros.

o Plataformas: OpenOffice.org está disponible para varios sistemas operativos,


incluyendo Windows, Linux, Mac OS, BSD, OpenVMS, OS/2, IRIX, Solaris y
OpenSolaris. A su vez puede ejecutarse en diversas arquitecturas, tales como
x86, x86-64, SPARC, PowerPC, IA64, entre otras.
Las aplicaciones incluidas en la suite ofimática Apache OpenOffice son las siguientes:

o Writer: Es el procesador de textos de la suite ofimática similar a Microsoft


Word. Writer permite exportar archivos de texto a los formatos PDF y HTML
sin software adicional, lo que permite que pueda ser utilizado como un editor
WYSIWYG para crear y editar páginas web.

o Calc: es una hoja de cálculo similar a Microsoft Excel o Lotus 1-2-3. Calc
ofrece una serie de características no presentes en Excel, incluyendo un
sistema que, automáticamente define serie de gráficas, sobre la base de la
disposición de la información del usuario. Calc también puede exportar hojas
de cálculo para el formato PDF.

o Impress: es un programa de presentación similar a Microsoft PowerPoint o


Keynote de Apple. Puede exportar presentaciones al formato SWF,
permitiendo que se reproduzca en cualquier computadora con un reproductor
de Flash instalado. También incluye la capacidad de crear archivos PDF, y la
capacidad de leer archivos de Microsoft PowerPoint (ppt). Su formato original
es ODP.

o Base: es un programa de base de datos similar a Microsoft Access. Apache


OpenOffice Base permite la creación y manejo de bases de datos, elaboración
de formularios e informes que proporcionan a los usuarios finales un acceso
fácil a los datos.

o Draw: es un editor de gráficos vectoriales y herramienta de diagramación,


similar a Microsoft Visio y comparable en características a las primeras
versiones de CorelDRAW. Ofrece «conectores» entre las formas, que están
disponibles en una gama de estilos de línea y facilitan la construcción de los
dibujos, como diagramas de flujo. Tiene características similares a la edición

129 | P á g i n a
de software de escritorio como Scribus y Microsoft Publisher. Draw también
puede exportar sus creaciones al formato PDF y al estándar SVG.

o Math: es una aplicación diseñada para la creación y edición de fórmulas


matemáticas. La aplicación utiliza un lenguaje de marcado para crear las
fórmulas.

Dichas fórmulas pueden ser incorporadas dentro de otros documentos de


OpenOffice.org, tales como los creados por Writer; permitiendo al usuario la
posibilidad de incrustarlas al documento como objetos OLE. Math soporta
múltiples fuentes y puede exportar fórmulas a los formatos de archivo ODF,
PDF o MathML.
Aspectos a tomar en cuenta:
Una pequeña desventaja de usar este software es la costumbre generalizada que existe de
usar Office de Microsoft. Esto provoca que sobre todo en los sectores empresariales es
necesario un periodo de adaptación, puesto que los botones y funciones no se encuentran
en el mismo sitio dentro de la interfaz.

Capítulo 12
Unidades de medida en informática

12.1 Concepto
Con estas unidades medimos la capacidad de guardar información de un elemento de
nuestro PC,la Unidad de Informática está encargada de administrar el Procesamiento
automático de matrícula y de notas de los estudiantes en coordinación con la unidad de
Matrícula, registro académico y grados y títulos.
Almacenamiento:
Con estas unidades medimos la capacidad de guardar información de un elemento de
nuestro PC. Los medios de almacenamiento pueden ser muy diferentes. Precisamente es en
este tipo de medidas donde se puede crear mayor confusión. La unidad básica
en Informática es el bit. Un bit o Dígito Binario es un dígito en sistema binario (0 o 1) con el
que se forma toda la información. Evidentemente esta unidad es demasiado pequeña para
poder contener una información diferente a una dualidad (abierto/cerrado, si/no), por lo que
se emplea un conjunto de bits (en español el plural de bit NO es bites, sino bits).

Para poder almacenar una información más detallada se emplea como unidad básica
el byte u octeto, que es un conjunto de 8 bits. Con esto podemos representar hasta un total
de 256 combinaciones diferentes por cada byte. Aquí hay que especificar un punto. Hay una
diferencia entre octeto y byte. Mientras que un octeto tiene siempre 8 bits un byte no siempre
es así, puede tener entre 6 y 9 bits. Precisamente el estar basado en octetos y no en el

130 | P á g i n a
sistema internacional de medidas hace que las subsiguientes medidas no tengan un
escalonamiento basado el este sistema (el SI o sistema internacional de medidas).

Veamos los más utilizados:

o Byte Formado normalmente por un octeto (8 bits), aunque pueden ser entre 6
y 9 bits.

La progresión de esta medida es del tipo B=Ax2, siendo esta del tipo 8, 16, 32,
64, 128, 256, 512.

Se pueden usar capacidades intermedias, pero siempre basadas en esta


progresión y siendo mezcla de ellas (24 bytes=16+8).

o Kilobyte (K o KB) Aunque se utilizan las acepciones utilizadas en el SI, un


Kilobyte no son 1.000 bytes. Debido a lo anteriormente expuesto,
un KB(Kilobyte) son 1.024 bytes. Debido al mal uso de este prefijo (Kilo,
proveniente del griego, que significa mil)

o Megabyte (MB) El MB es la unidad de capacidad más utilizada en Informática.


Un MB NO son 1.000 KB, sino 1.024 KB, por lo que un MB son 1.048.576
bytes. Al igual que ocurre con el KB, dado el mal uso del término, cada vez se
está empleando más el término MiB.

o Gigabyte (GB) Un GB son 1.024 MB (o MiB), por lo tanto 1.048.576 KB. Cada
vez se emplea más el término Gibibyte o GiB.

o Llegados a este punto en el que las diferencias sí que son grandes, hay que
tener muy en cuenta (sobre todo en las capacidades de los discos duros) que
es lo que realmente estamos comprando. Algunos fabricantes utilizan el
termino GB refiriéndose no a 1.024 MB, sino a 1.000 MB (SI), lo que
representa una pérdida de capacidad en la compra. Otros fabricantes sí que
están ya utilizando el término GiB. Para que nos hagamos un poco la idea de
la diferencia entre ambos, un disco duro de 250 GB (SI) en realidad tiene 232
GB.

o Terabyte (TB) Aunque es aún una medida poco utilizada, pronto nos
tendremos que acostumbrar a ella, ya que por poner un ejemplo la capacidad
de los discos duros ya se está aproximando a esta medida.
Un Terabyte son 1.024 GB. Aunque poco utilizada aun, al igual que en los
casos anteriores se está empezando a utilizar la acepción Tebibyte

Existen unas medidas superiores, como el Petabyte, Exabyte, Zettabyte o


el Yottabite, que podemos calcular multiplicando por 1.024 la medida anterior. Estas
medidas muy probablemente no lleguen a utilizarse con estos nombres, sino por los
nuevos designados por el IEC.

131 | P á g i n a
En el círculo, indicación de la capacidad del disco, tanto en GB como en bytes.

Procesamiento frecuencia de transmisión

La velocidad de procesamiento de un procesador se mide en megahercios. Un


megahercio es igual a un millón de hercios. Un hercio (o herzio o herz) es una
unidad de frecuencia que equivale a un ciclo o repetición de un evento por segundo.
Esto, en palabras simples, significa que un procesador que trabaje a una velocidad
de 500 megahercios es capaz de repetir 500 millones de ciclos por segundo. Sobre
esto hay que aclarar un concepto. Si bien en teoría a mayor frecuencia de reloj (más
megahercios) su supone una mayor velocidad de procesamiento, eso es solo cierto
a medias, ya que en la velocidad de un equipo no solo depende de la capacidad de
procesamiento del procesador. Estas unidades de medida se utilizan también para
medir la frecuencia de comunicación entre los diferentes elementos del ordenador.

Velocidad transmisión de datos

En el caso de definir las velocidades de transmisión se suele usar como base el bit,
y más concretamente el bit por segundo, o bps.
Los múltiplos de estos sí que utilizan el SI o Sistema Internacional de medidas.
Los más utilizados sin el Kilobit, Megabit y Gigabit, siempre expresado en el
término por segundo (ps). Las abreviaturas se diferencian de los términos de
almacenamiento en que se expresan con b minúscula.

132 | P á g i n a
Estas abreviaturas son:

Kbps 1.000 bits por segundo.


Mbps 1.000 Kbits por segundo.
Gbps 1.000 Mbits por segundo.

En este sentido hay que tener en cuenta que las velocidades que en la mayoría de
las ocasiones se muestran en Internet están expresadas en KB/s (Kilobyte por
segundo), lo que realmente supone que nos dice la cantidad de bytes (unidad de
almacenamiento) que hemos recibido en un segundo, no la velocidad de trasmisión.
Podemos calcular esa velocidad de transmisión (para pasarla a Kbps o Kilobits por
segundo) simplemente multiplicando el dato que se nos muestra por 8, por lo que una
trasmisión que se nos indica como de 308 KB/s corresponde a una velocidad de
transmisión de 2.464 Kbps, a lo que es lo mismo, 2.64 Mbps.
Esta conversión nos es muy útil para comprobar la velocidad real de nuestra línea
ADSL, por ejemplo, ya que la velocidad de esta sí que se expresa en Kbps o en
Mbps.

En esta imagen podemos ver la velocidad de


transferencia, expresada en KB/s (Kilobytes por
segundo).

Podemos ver un ejemplo de lo anteriormente


comentado. Se muestra una velocidad de
transferencia de 331 KB/s, lo que corresponde
(multiplicando este dato por 8) a una velocidad de
transmisión de 2.648 Kbps, o lo que es lo mismo,
2.65 Mbps (Megabits por segundo).

12.2 Múltiplos
Bit es el acrónimo de Binary digit (Dígito binario). Un bit es un dígito del sistema de
numeración binario. Mientras que en el sistema de numeración decimal se usan diez dígitos,
en el binario se usan sólo dos dígitos, el 0 y el 1. Un bit o dígito binario puede representarse
uno de eso dos valores, 0 o 1.“El bit es la unidad mínima de información empleada en
informática.” Con un bit podemos representar solamente dos valores, que suelen
representarse como 0, 1.

133 | P á g i n a
Byte
En informática para representar un carácter (letra, símbolo o un número) se utilizan una
combinación de 8 bits (8 ceros y unos) según un código llamado ASCII.

Según esto podemos utilizar y de hecho se utiliza el byte como “la unidad básica de
almacenamiento en informática”. La unidad básica, no la más pequeña. La más pequeña,
como ya vimos es el bit. Lógicamente esta unidad hoy en día es muy pequeña y por lo tanto
se utilizan múltiplos del byte normalmente para hablar de la capacidad de almacenamiento
de cualquier dispositivo informático.

Bits por segundo


En el caso de definir la velocidad de transmisión se suele usar como base el bit, y más
concretamente el bit por segundo, o bps.
¿Qué es un bit por segundo?: Cantidad de bits que se transmiten es un segundo.
Los múltiplos de estos más utilizados son el Kilobit, Megabit y Gigabit, siempre expresado en
el término por segundo (ps). 1 Kbps = 1.000 bits por segundo. 1 Mbps = 1.000 Kbits por
segundo. 1 Gbps = 1.000 Mbits por segundo.
Conversión de unidades
1 Kilobyte Kb 1024 byte
1 Megabyte Mb 1024 kilobytes
1 Gigabyte Gb 1024 Megabytes
1 Terabyte Tb 1024 Gigabytes

En el caso de los bits es lo mismo (1024). El motivo de que la proporción entre las distintas
magnitudes sea de 1024 se debe a que esta cantidad es la potencia de base 2 que más se
aproxima al múltiplo de 1000(210=1024), equivalente al prefijo kilo.

134 | P á g i n a
Capítulo 13
Sistemas numéricos

13.1 Concepto
Un sistema de numeración es el conjunto de símbolos y reglas que se utilizan para la
representación de datos numéricos y cantidades. Se caracteriza por su base que es el
número de símbolos distintos que utiliza, y además es el coeficiente que determina cual es
el valor de cada símbolo dependiendo de la posición que ocupe.
Los sistemas de numeración actuales son sistemas posicionales en los que el valor relativo
que representa cada símbolo o cifra de una determinada cantidad depende de su valor
absoluto y de la posición relativa que ocupa dicha cifra con respecto a la coma decimal.

 Sistema de numeración
Es el sistema numérico decimal, o de base 10. Se denomina de base 10 debido a que se
utiliza 10 símbolos, y combinaciones de estos símbolos, para representar todos los números
posibles. Los dígitos 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9 conforman el sistema de base 10. Un sistema
numérico decimal se basa en potencias de 10. Cada símbolo o digito representa el número
10 (número de base) elevado a una potencia (exponente), de acuerdo con su posición y se
multiplica por el número que posee esa posición.
Ejemplo:

3 2 1 0
2134 = (2x10 ) + (1x10 ) + (3x10 ) + (4x10 )

13.2 Sistema de numeración binario


Este sistema se basa en 2 es el más sencillo de todos por poseer solo dos dígitos, Los dos
dígitos llamados bits (Contracción de binary digit), son el uno (1) y el cero (0), por lo cual el
equivalente decimal se obtendrá al sumar los pesos correspondientes los bits 1. Para la
medida de unidades de información representada en binario, se utilizan una serie de múltiplos
de bit que poseen nombre propio:
Nibble o Cuarteto: Es el conjunto de 4 bits (1001).
Byte u Octeto: Es el conjunto de 8 bits (10101010).
Kilobyte (Kb): Es el conjunto de 2 x 10 bits (1.024 * o bits).
Megabyte (Mb): Es el conjunto de 2x20 kilobytes bits (1.0242 * o 8 bits).
Gigabyte (Gb): Es el conjunto de 2x30 Megabytes bits (1.0243 * o 8 bits).
Terabyte (Tb): Es el conjunto de 2 x 40 Gigabytes bits (1.0244 * 8 bits).

135 | P á g i n a
13.3 Sistema de numeración octal
Se trata de un sistema de numeración en base 8 que utiliza 8 símbolos para la representación
de cantidades. Los símbolos utilizados son: 0, 1, 2, 3, 4, 5, 6 ,7. Este sistema también
posicional ya que cada una de sus cifras tienen como posición la relativa al punto decimal
que, en caso de no aparecer se supone implícita al lado derecho del número, este
proporciona un método conveniente para la representación de códigos y números binarios
utilizados en los sistemas digitales.

13.4 Sistema de numeración hexadecimal


Emplea la base 16. así, tiene 16 posibles símbolos digitales. Utiliza los dígitos del 0 al 9, más
las letras A, B, C, D, E y F como sus 16 símbolos digitales. Cada dígito hexadecimal
representa un grupo de cuatro dígitos binarios. Es importante recordar que los dígitos hex de
(A) a (F) son equivalentes a los valores decimales de 10 a 15.

13.5 Conversiones
Actualmente la mayoría de las personas utilizamos el sistema decimal (de 10 dígitos) para
realizar operaciones matemáticas. Este sistema se basa en la combinación de 10 dígitos (del
0 al 9). Construimos números con 10 dígitos y por eso decimos que su base es 10. Por
ejemplo, el 23, el 234, 1093 etc. Todos son dígitos del 0 al 9. Pero hay otro sistema o
lenguaje muy utilizado que es el sistema binario de numeración, que, en algunos casos, como
por ejemplo en informática, se puede llamar Lenguaje Binario, debido a que es el lenguaje
que usamos para entendernos con el ordenador. Luego también hablaremos del Lenguaje
Binario.

13.5 De sistema binario


El sistema binario es un sistema de numeración en el que los números se representan
utilizando las cifras 0 y 1, es decir solo 2 dígitos (bi = dos). Esto en informática y en electrónica
tiene mucha importancia ya que las computadoras trabajan internamente con 2 niveles: hay
o no hay corriente, pulsado o sin pulsar, etc. Esto provoca que su sistema de numeración
natural sea el binario, por ejemplo 1 para encendido y 0 para apagado. También se utiliza en
electrónica y en electricidad (encendido o apagado, activado o desactivado,
etc.). El lenguaje binario es muy utilizado en el mundo de la tecnología.
Números Binarios:
Como ya dijimos, el sistema binario se basa en la representación de cantidades utilizando
los números 1 y 0. Por tanto su base es 2 (número de dígitos del sistema). Cada dígito o
número en este sistema se denomina bit (contracción de binary digit). Por ejemplo, el número
en binario 1001 es un número binario de 4 bits. Recuerda "cualquier número binario solo
puede tener ceros y unos".
Los Números Binarios empezarían por el 0 (número binario más pequeño) después el 1 y
ahora tendríamos que pasar al siguiente número, que ya sería de dos cifras porque no hay
más números binarios de una sola cifra. El siguiente número binario, por lo tanto, sería
combinar el 1 con el 0, es decir el 10 (ya que el 0 con el 1, sería el 01 y no valdría porque
sería igual que el 1), el siguiente sería el número el 11. Ahora ya hemos hecho todas las
combinaciones posibles de números binarios de 2 cifras, ya no hay más, entonces pasamos
a construir los de 3 cifras. El siguiente sería el 100, luego el 101, el 110 y el 111. Ahora de 4
cifras... Según el orden ascendente de los números en decimal tendríamos los números
binarios equivalentes a sus números en decimal:
136 | P á g i n a
El 0 en decimal sería el 0 en binario.
El 1 en decimal sería el 1 en binario. El 2 en decimal sería el 10 en binario (recuerda solo
combinaciones de 1 y 0). El 3 en decimal sería el 11 en binario
El 4 en decimal sería el 100 en binario.
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 (un 0 si el resultado de la división es par
y un 1 si es impar). Para sacar la cifra en binario cogeremos el último cociente (siempre será
1) y todos los restos de las divisiones de abajo arriba, orden ascendente. Ejemplo queremos
convertir el número 28 a binario: 28 dividimos entre 2: Resto 0,14 dividimos entre 2: Resto
0,7 dividimos entre2: Resto1,
3 dividimos entre 2: Resto 1 y cociente final 1. Entonces el primer número del número
equivalente en binario sería el cociente último que es 1 y su resto que es también 1, la tercera
cifra del equivalente sería el resto de la división anterior que es 1, el de la anterior que es 0
y el último número que cogeríamos sería el resto de la primera división que es 0. Con todo
este número quedaría el número binario: 11100.Conclusión el número 28 es equivalente en
binario al 11.100.
Vemos como para sacar el equivalente se coge el último cociente de las operaciones y los
restos que han salido en orden ascendente (de abajo arriba) 11100.El subíndice 2 que hemos
puesto al final del número en binario, es para indicar que es un número en base 2, pero no
es necesario ponerlo.
Pasar de Binario a Decimal:
Pues ahora al revés. ¿Qué pasaría si quisiera saber cuál es el número equivalente en decimal
del número binario por ejemplo 1001? Pues también hay método.
PASO 1 – Numeramos los bits de derecha a izquierda comenzando desde el 0
(Muy importante desde 0 no desde 1). PASO 2 – Ese número asignado a cada bit o cifra
binaria será el exponente que le corresponde. PASO 3 – Cada número se multiplica por 2
elevado al exponente que le corresponde asignado anteriormente. PASO 4 - Se suman todos
los productos y el resultado será el número equivalente en decimal, vamos a verlo paso a
paso con un ejemplo y gráficamente que será más sencillo de entender. Ejemplo el número
1001 queremos saber su equivalente en decimal. Primero asignamos exponentes:
Empezamos por el primer producto, que será el del primer número binario por 2 elevado a
su exponente, es decir 1 x 23. OJO Recuerda que cualquier número elevado a cero es 1, por
ejemplo 2 elevado a 0 es = 1. El segundo y el tercer productos serán 0 por que 0 x 22 y 0 x
21 su resultado es 0 y el último producto será 1 x 20 que será 1, luego 1x20 es 1 (no confundir
y poner 0).Ya estamos en el último paso que es sumar el resultado de todos estos productos:

1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 8 + 0 + 0 + 1 = 9(especificar que se multiplica


El equivalente en decimal del número binario 1001 es el 9. Veamos otro ejemplo solo
gráficamente para que lo entiendas definitivamente. En este caso la asignación del
exponente a cada número ya lo hacemos directamente en los productos, que es como se
suele hacer normalmente.

137 | P á g i n a
Operaciones Binarias:
Las operaciones binarias que se pueden realizar con número binarios son las mismas que
en cualquier otro sistema: suma, resta, multiplicación y división. Veamos algunos Ejemplos:
Las posibles combinaciones al sumar dos bits son:
0+0=0
0+1=1
1+0=1
1 + 1 = 10

Un ejemplo con más cifras:


100110101
+11010101
———————————
1000001010

Operamos como en el sistema decimal: comenzamos a sumar desde la derecha, en nuestro


ejemplo, 1 + 1 = 10, entonces escribimos 0 en la fila del resultado y nos llevamos 1 (este "1"
se llama arrastre). A continuación, se suman los números de la siguiente columna: 0 + 0 =
0, pero como nos tenemos que sumar el 1 de la anterior suma, el resultado será 0 + 1 =
1. Así seguimos hasta terminar todas las columnas (exactamente como en decimal).
Las restas básicas 0-0, 1-0 y 1-1 son evidentes:
0-0=0
1-0=1
1-1=0
0-1=
Es una resta imposible en binario porque no hay números negativos.
La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de
la posición siguiente: 10 - 1 = 1 y me llevo 1, lo que equivale a decir en decimal, 2 - 1 = 1.
Esa unidad prestada debe devolverse, sumándola, a la posición siguiente.
Multiplicación de Números Binarios
0x0=0
0x1=0
1x0=0
1x1=1

138 | P á g i n a
División de Números Binarios:
Igual que en el producto, la división es muy fácil de realizar, porque no son posibles en el
cociente otras cifras que no sean unos y ceros. Se intenta dividir el dividendo por el divisor,
empezando por tomar en ambos el mismo número de cifras (100 entre 110, en el ejemplo).
Si no puede dividirse, se intenta la división tomando un dígito más (1001 entre 100). Si la
división es posible, entonces, el divisor sólo podrá estar contenido una vez en el dividendo,
es decir, la primera cifra del cociente es un uno. En ese caso, el resultado de multiplicar el
divisor por 1 es el propio divisor. Restamos las cifras del dividendo del divisor y bajamos la
cifra siguiente. El procedimiento de división continúa del mismo modo que en el sistema
decimal.
Lenguaje Binario:
La misma lógica que se utiliza para representar los números se puede utilizar para
representar texto. Lo que necesitamos es un esquema de codificación, es decir, un código
que nos haga equivalencias entre un número binario y una letra del abecedario. Necesitamos
un número binario por cada letra del alfabeto.
Por ejemplo, en informática, cada tecla del teclado (números, letras, signos, etc.) hay un
número en binario que es su equivalente. Luego veremos muchos más.
Un ejemplo real: 0100 0001 es el número binario que representa la letra A. En binario ese
número es equivalente a la letra A. Varios códigos estándar para convertir texto en binario
se han desarrollado a lo largo de los años, incluyendo ASCII y Unicode, los más famosos y
utilizados.
El Código Estándar Americano para el Intercambio de Información (ASCII) fue desarrollado
a partir de los códigos telegráficos, pero luego fue adaptado para representar texto en código
binario en los años 1960 y 1970. La versión original de ASCII utiliza 8 bits (recuerda cada
número binario es un bit) para representar cada letra o carácter, con un total de 128
caracteres diferentes. Cuando hablamos de caracteres nos referimos tanto a letras, como a
números, como a signos ($, /, etc.). Este es uno de los códigos o lenguaje binario para
representar texto mediante números binarios que más se utilizó durante mucho tiempo.
Mientras ASCII se encuentra todavía en uso hoy en día, el estándar actual para la
codificación de texto es Unicode.
El principio fundamental de Unicode es muy parecido a ASCII, pero Unicode contiene más
de 110.000 caracteres, cubriendo la mayor parte de las lenguas impresas del mundo. La
relativamente simple versión de 8 bits de Unicode (referido como UTF-8) es casi idéntica a
ASCII, pero las versiones de 16 y 32 bits (referido como UTF-16 y UTF-32) le permiten
representar casi cualquier tipo de lenguaje impreso. A continuación, puedes ver una tabla
con el código para representar letras y caracteres en ASCII y en UNICODE de 16 bits.
Como ves en ASCII cada letra se representa por un número binario de 8 números y
UNICODE por 16. Así podemos construir un lenguaje binario donde cada letra se representa
por un número binario. Estos códigos son lo que se llama en informática, el código máquina,
y es el utilizado por todos los ordenadores para entenderse con las personas. Los
programadores, escriben sus programas en un lenguaje de programación, que
posteriormente tienen que convertirlo a código máquina para que lo entienda el ordenador.
Según el Diccionario Enciclopédico de Oxford, una entrada aritmética binaria apareció por
primera vez en Inglés en 1796 en A Mathematical y Diccionario filosófico. A Gottfried Leibniz,
se le atribuye la invención del sistema de numeración binario en 1679 y estaba basado en
139 | P á g i n a
las antiguas figuras chinas de Fu Xi. Aunque las personas de la remota isla de Mangareva
utilizaban un tipo de sistema binario mucho antes para las transacciones comerciales, dada
la lejanía de Leibniz a esta isla, es probable que se acercara al código binario de forma
independiente. En 1605, Francis Bacon discutió un sistema por el cual las letras del alfabeto
podrían reducirse a secuencias de dígitos binarios, que luego podría ser codificada como
variaciones apenas visibles en la fuente en cualquier texto aleatorio. Fue el primer lenguaje
binario utilizado.

Otro matemático y filósofo con el nombre de George Boole publicó un artículo en 1847
llamado "El análisis matemático de la lógica" que describe un sistema algebraico de la lógica,
ahora conocido como el álgebra de Boole. El Sistema de Boole se basó en números binarios,
dando un 0 o un 1, el enfoque de encendido y apagado, que consistía en las tres operaciones
más básicas: AND, OR y NOT. Hoy en día es el utilizado en Electrónica Digital. Este sistema
no fue puesto en uso hasta que un estudiante graduado de Massachusetts Institute of
tecnología con el nombre de Claude Shannon se dio cuenta de que el álgebra de Boole, que
estaba aprendiendo, era similar a un circuito eléctrico. Shannon escribió su tesis en 1937,
aplicando sus descubrimientos. La tesis de Shannon se convirtió en un punto de partida para
el uso del código binario en las aplicaciones prácticas, tales como computadoras, circuitos
eléctricos, y muchas más.

13.5.2 De Sistema octal


El sistema numérico en base 8 se llama octal y utiliza los dígitos del 0 al 7. Tiene la ventaja
de que no requiere utilizar otros símbolos diferentes de los dígitos. Los números octales
pueden construirse a partir de números binarios agrupando cada tres dígitos consecutivos
de estos últimos (de derecha a izquierda) y obteniendo su valor decimal, también al tener un
“0” en el código binario este automáticamente es “0” en el resultado es decir que, aunque
este elevado siempre tendrá que dar “0”, ejemplo: El número binario para 74 (en decimal) es
1001010 (en binario), se agruparía como: 1 001 010.
Binario 1 001 010

Se observa el primer bloque de derecha a izquierda del sistema:


010

Este bloque se multiplica por lo siguiente:

20 El número de la derecha se multiplica con este exponente

21 El número del centro se multiplica con este exponente


Debemos tener en cuenta que los “0” no cambian, multiplicamos:

20 𝑥0 = 0
21 𝑥1 = 2

22 𝑥0 = 0

140 | P á g i n a
Luego se procede a sumar el resultado: 0+2+0= 2, es decir que 010 equivale a 2 en el sistema
octal.
010
2

Este procedimiento se realiza en cada bloque y así conseguir la cifra total.

binario 1 001 010


octal 1 1 2

De modo que el número decimal 74 en octal es 112.

13.5.3 De Sistema Hexadecimal


A veces se utiliza la abreviatura “hex” para referirse a este sistema, es el sistema de
numeración posicional de base 16 lo cual significa que emplea 16 símbolos.
Su uso actual está muy vinculado con la rama de la informática y a todo lo relacionado con
la ciencia de la computación ya que los ordenadores utilizan el byte como unidad básica de
memoria Y debido a que un byte representa valores posibles. Que según el teorema de
numeración posicional equivale al número en base “16” en principio el sistema es de base
decimal y por lo tanto solo se dispone de 16 dígitos, se optó por usar las primeras 6 letras
del alfabeto latino para cubrir los números que faltaban.
Al momento de insertar las letras al sistema Hexadecimal, el conjunto de los dígitos queda
de la siguiente manera:
S:(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

Significado de las primeras 6 letras:


A=10
B=11
C=12
D=13
E=14
F=15

En ocasiones se emplean letras minúsculas en lugar de mayúsculas como en cualquier otro


sistema de numeración posicional, el valor numérico de cada digito es alterado dependiendo
de su posición en la cadena de los dígitos, quedando multiplicado por una x potencia de la
base del sistema, por ejemplo, nuestro sistema de “base 16”

141 | P á g i n a
Conversión hexadecimal a decimal:
Ante de tirarnos de lleno a convertir, primero hay que usar una table que nos servirá para
compares los valores. Del digito “0” al digito “9” en binario y en hexadecimal son relativamente
iguales, la cuestión con el hexadecimal es que a partir del 10 son representados con las
primeras 6 letras del alfabeto latino.
Decimal Hexadecimal
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 A
11 B
12 C
13 D
14 E
15 F
Ya teniendo claro la diferencia entre los valores decimales y hexadecimales ya Podemos
proceder a convertir. Hay que resaltar que, para colocar los dígitos, no se deben colocar de
izquierda a derecho, sino que estos deben de ir colocados de derecho a izquierda y que
también queda mencionar que la base “16” debe colocarse por la cantidad de números que
tenga el valor hexadecimal, por ejemplo:

Ejemplo el valor Hexadecimal:


A2E7

142 | P á g i n a
Si existieran más valores, se seguiría con la numeración 4,5, 6 y así sucesivamente hasta
llegar a nuestro último digito. Como solo son 4 dígitos, se debe escribir la base “16” 4 veces.
1) Se coloca la base,
2) Cada base 16 debe ser elevada a cada posición representada por los dígitos anteriores.

16^0
16^1
16^2
16^3

3) Lo siguiente es operar la base según el exponente ya indicado

16^0=1
16^1=16
16^2=256
16^3=4096

4) Ya teniendo los resultados de las potencias, ahora deben colocarse la cantidad


hexadecimal, según su posición multiplicanda con su potencia y se procedería a operar como
cualquier potencia.

A x16^3=40,960
2 x16^2=512
E x16^1= 224
7 x 16^0=7

Al tener ya las cantidades con sus resultados se prosigue a sumar los dichos resultados.
40,960 + 512 + 224 + 7 = 41, 703 es nuestro resultado así que no que más que decir que
“A2E7” en valor Hexadecimal, equivale a “41,703” en el Sistema decimal.

143 | P á g i n a
 Conversión hexadecimal a binario
Se dice que cada digito Hexadecimal se representa BINARIO HEXADECIMAL
mediante un número Binario de 4 dígitos, para
0000 0
guiarnos mejor esta la siguiente tabla:
0001 1
0010 2
Convierta a binario el siguiente valor hexadecimal:
0011 3
0100 4
0101 5
01110 6
Hay que recordar que cada valor hexadecimal es
representado por cada 4 bytes 0111 7
1000 8
Para realizar la conversión de “FF” se coloca el valor 1001 9
en binario de cada uno basándonos en nuestra table
de valores 1010 A
1011 B
1100 C
1101 D
1110 E
1111 F

Ahora para terminar la conversión, las cantidades se deben escribir una al junto a la otra
comenzando desde abajo hacia arriba y así obtendremos el resultado de hexadecimal a
binario

11111111

144 | P á g i n a
 Conversión de Hexadecimal a Octal

DECIMAL BINARIO HEXADECIMAL


0 0000 0
Para este Sistema los dígitos se separan de 1 0001 1
3 en 3 pero para ello, como en los ejemplos
de conversiones anteriores, existe una 2 0010 2
tabla de valores que contiene los valores 3 0011 3
decimales, binarios y hexadecimal.
4 0100 4
5 0101 5
6 0110 6
Como primer paso se debe poner el valor
7 0111 7
de cada digito hexadecimal en binario. Por
ejemplo, el valor hexadecimal (D68C) 8 1000 8
9 1001 9

Debería quedar de la siguiente manera: 10 1010 A


D=1101 11 1011 B
6=0110
8=1000 12 1100 C
C=1100 13 1101 D
14 1110 E
15 1111 F

El segundo paso sería poner en orden los números en una sola línea, comenzando
de izquierda a derecha.

145 | P á g i n a
OCTAL BINARIO
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

El tercer paso es para proceder ya a convertir a octal y para ello se utiliza una segunda tabla
de conversión.
Como cuarto paso es separar en grupo de 3 de “derecho a izquierda” la cantidad resultante
que nos quedó anteriormente:

Normal en binario: 110101100001100


Grupo de 3 de derecha a izquierda: 001 101 011 010 001 100
001 101 011 010 001 100

Una ley en esta conversión es que si al momento de dejarlos en grupos de 3, el ultimo digito
de la izquierda queda incompleto se completara los dígitos que falten con “ceros” hacia la
izquierda, Como quinto y último paso es darle un número del 1 al 7 a cada grupo de 3
dependiendo de la tabla octal-binario.

Para finalizar, nuestro valor hexadecimal (D68C) en octal equivale a = 153214

146 | P á g i n a
Capítulo 14
Framework

14.1 Arquitectura de Framework


Dentro de este aspecto, podemos basarnos en el modelo-vista-controlador o MVC
(Controlador => Modelo => Vista), ya que debemos fragmentar nuestra programación.
Tenemos que contemplar estos aspectos básicos en cuanto a la implementación de nuestro
sistema:

Modelo:
Este miembro del controlador (la interacción entre el sistema operativo de una computadora
y un periférico o hardware) Maneja las operaciones lógicas, y de manejo de información
(previamente enviada por su ancestro), para resultar de una forma explicable y sin titubeos.
Cada miembro debe ser exactamente llamado, con su correcto nombre y en principio, con su
verdadera naturaleza: el manejo de información, su complementación directa.

Vista:
Al final, a este miembro de la familia le corresponde dibujar, o expresar la última forma de los
datos: la interfaz gráfica que interactúa con el usuario final del programa (GUI o interfaz
gráfica de usuario). Después de todo, a este miembro le toca evidenciar la información
obtenida hasta hacerla llegar al controlador. Solo (e inicialmente), nos espera demostrar la
información.

Controlador:
Con este apartado podemos controlar el acceso (incluso todo) a nuestra aplicación, y esto
puede incluir: archivos, scripts, o programas; cualquier tipo de información que permita la
interfaz. Así, podremos hacer nuestro contenido de forma dinámica, y estática (a la vez);
pues, solo debemos controlar ciertos aspectos (como se ha mencionado antes).

14.2 Estructura del framework

En el desarrollo de Software, un framework es una estructura conceptual y tecnológica de


soporte definida, normalmente con artefactos o módulos de software concretos, en base a la
cual otro proyecto de software puede ser organizado y desarrollado. Típicamente, puede
incluir soporte de programas, librerías y un lenguaje interpretado entre otros programas para
ayudar a desarrollar y unir los diferentes componentes de un proyecto. Representa una
arquitectura de software que modela las relaciones generales de las entidades del dominio.
Provee una estructura y un método de trabajo la cual extiende o utiliza las aplicaciones del
dominio.gy

147 | P á g i n a
 Surgimiento:
Son diseñados con la intención de facilitar el desarrollo de software, permitiendo a los
diseñadores y programadores pasar más tiempo identificando requerimientos de software
que tratando con los tediosos detalles de bajo nivel de proveer un sistema funcional. Por
ejemplo, un equipo que usa Apache Struts para desarrollar un sitio web de un banco, puede
enfocarse en cómo los retiros de ahorros van a funcionar en lugar de preocuparse de cómo
se controla la navegación entre las páginas en una forma libre de errores. Sin embargo, hay
quejas comunes acerca de que el uso de frameworks añade código innecesario y que la
preponderancia de frameworks competitivos y complementarios significa que el tiempo que
se pasaba programando y diseñando ahora se gasta en aprender a usar frameworks.
Fuera de las aplicaciones en la informática, puede ser considerado como el conjunto 33de
procesos y tecnologías usados para resolver un problema complejo. Es el esqueleto sobre
el cual varios objetos son integrados para una solución dada.
Después de todo, un Framework no debe ser consciente de todos estos requerimientos sin
tener que ser intrusivo con las aplicaciones que permite dentro de sí mismo. A esto le
sumamos la capacidad de extenderse sin prejuicios para diversificar la expresión del
programa mismo.

 Base:
No es más que una base de programación que atiende a sus descendientes (manejado de
una forma estructural y/o en cascada) posibilitando cualquier respuesta ante las necesidades
de sus miembros, o secciones de una aplicación (web, de este modo).

 Estructura
Dentro del controlador, modelo o vista podemos manejar lo siguiente: datos. Depende de
nosotros como interpretar y manejar estos 'datos'. Ahora, sabemos que el único dato de una
dirección estática web es: conseguir un archivo físico en el Disco duro o de Internet, etc. he
interpretado o no, el Servidor responde.
El modelo, al igual que el controlador y la vista, maneja todos los datos que se relacionen
consigo (solo es el proceso medio de la separación por capas que ofrece la arquitectura
MVC). Y sólo la vista, puede demostrar dicha información. Con lo cual ya hemos generado
la jerarquía de nuestro programa: Controlador, Modelo y Vista.

 Lógica
Al parecer, debemos inyectar ciertos objetos dentro de sus parientes en esta aplicación, solo
así compartirán herencia y coherencia en su aplicación. Rápidamente, para una Aplicación
web sencilla debemos establecer estos objetos:

148 | P á g i n a
Una base (MVC)
Controlador: éste debe ser capaz de manejar rutas, archivos, clases, métodos y funciones.

 Modelo: es como un script habitual en el servidor, solo que agrupado bajo un 'modelo'
reutilizable.
 Vista: como incluyendo cualquier archivo en nuestra ejecución, muy simple.
 Un sistema ruteador: con él podemos dividir nuestras peticiones sin tantas
condicionales.

Capítulo 15
Introducción a SQL

15.1 DML (data manipulation language)

El conjunto de comandos de Sql dedicado a la manipulación de datos.


Es el más conocido. Su finalidad no es actuar sobre la estructura de datos sino sobre
los datos contenidos en ellas, entre las acciones de el DML son las siguientes :
• SELECT
• INSERT
• UPDATE
• DELETE
En la siguiente tabla se enumeran las instrucciones DML que admite SQL:

Instrucción Función
Recupera filas de la base de datos y habilita la selección de una o varias
SELECT
filas o columnas de una o varias tablas.
INSERT Agrega una nueva fila a una tabla.
UPDATE Cambia datos existentes en una tabla.
DELETE Quita filas de una tabla.

 Select:
149 | P á g i n a
Las tablas de las que se quitan todas las filas permanecen en la base de datos. La
instrucción DELETE sólo elimina filas de la tabla, pero la tabla en sí se debe quitar
de la base de datos mediante la instrucción DROP TABLE.

Los componentes del ejemplo:

 Select_list:
Describe las columnas del conjunto de resultados. Es una lista de expresiones
separadas por comas. Cada expresión define tanto el formato (tipo de datos y
tamaño) como el origen de los datos para la columna del conjunto de resultados.
Cada expresión de lista de selección suele ser una referencia a una columna de la
tabla o vista de origen de la que provienen los datos, aunque puede ser cualquier otra
expresión, como una constante o una función Transact-SQL(es una extensión al
SQL ,que frecuentemente se dice ser un Lenguaje de Búsquedas Estructurado ). Al
usar la expresión * en una lista de selección, se especifica que se devolverán todas
las columnas de la tabla de origen.
 INTO new_table_name
Especifica que el conjunto de resultados se usa para crear una tabla nueva.
new_table_name especifica el nombre de la nueva tabla.
 FROM table_list
Contiene una lista de las tablas cuyos datos del conjunto de resultados se recuperan.
Estos orígenes pueden ser:
• Tablas base en el servidor local.
• Vistas en la instancia local.
• Tablas vinculadas.
La cláusula FROM también puede contener especificaciones de combinación.
La cláusula FROM se usa también en las instrucciones DELETE y UPDATE para
definir las tablas que se modifican.
 WHERE search_conditions
La cláusula WHERE es un filtro que define las condiciones que debe cumplir cada
fila de las tablas de origen para satisfacer los requisitos de la instrucción SELECT.
Sólo las filas que cumplen las condiciones contribuyen con datos al conjunto de
resultados.
Los datos de las filas que no cumplen las condiciones no se usan.
150 | P á g i n a
La cláusula WHERE se usa también en las instrucciones DELETE y UPDATE para
definir las filas de las tablas de destino que deben modificarse.
 GROUP BY group_by_list
La cláusula GROUP BY divide en grupos el conjunto de resultados según los valores de las
columnas de group_by_list.
 HAVING search_conditions
La cláusula HAVING es un filtro condicional que se aplica al conjunto de resultados.
Lógicamente, la cláusula HAVING filtra las filas del conjunto intermedio de resultados que se
genera como consecuencia de la aplicación de alguna cláusula FROM, WHERE o GROUP
BY en la instrucción SELECT. Las cláusulas HAVING se usan normalmente con una cláusula
GROUP BY, aunque no se necesita una cláusula GROUP BY antes de una cláusula HAVING.
 ORDER BY order_list
La cláusula ORDER BY define el orden de las filas del conjunto de resultados. order_list
especifica las columnas del conjunto de resultados que forman la lista de clasificación. Las
palabras clave ASC y DESC se utilizan para especificar si las filas se ordenan en una
secuencia ascendente o descendente.
 Insert
La instrucción hace que data_values se inserte como una o más filas en la tabla o vista que
se nombra. El argumento column_list es una lista separada por comas de los nombres de
tablas que se pueden utilizar para especificar las columnas para las que se suministran datos.
Si no se especifica column_list, todas las columnas de la tabla o vista reciben datos.

uando column_list no enumera todas las columnas de la tabla o vista, se inserta el valor
predeterminado, si se ha definido alguno para la columna, o un valor de NULL en aquellas
columnas que no se hayan enumerado en la lista.
 UPDATE
Cambia datos existentes en una tabla.

SETContiene una lista separada por comas de las columnas que deben actualizarse
y el nuevo valor de cada columna, con el formato column_name = expression. El valor
suministrado por las expresiones incluye elementos tales como constantes, valores
seleccionados de una columna de otra tabla o vista, o valores calculados por una
expresión compleja.
 From

151 | P á g i n a
Identifica las tablas o vistas que suministran los valores de las expresiones de la
cláusula SET,
y las condiciones de combinación opcional entre las tablas o vistas de origen.

 Where
Especifica la condición de búsqueda que define las filas de las tablas y vistas de
origen que están calificadas para proporcionar valores para las expresiones de la
cláusula SET. DELETE
Quita filas de una tabla.

Las tablas de las que se quitan todas las filas permanecen en la base de datos. La
instrucción DELETE sólo elimina filas de la tabla, pero la tabla en sí se debe quitar
de la base de datos mediante la instrucción DROP TABLE.
15.2 Comando select
¿Para qué utilizamos el comando SELECT? El uso común es la selección de datos
desde tablas ubicadas en una base de datos. Inmediatamente, vemos dos palabras
claves: necesitamos el comando SELECT la información FROM una tabla.
La estructura base es:

SELECT "nombre_columna" FROM "nombre_tabla";

Para ilustrar el ejemplo anterior, supongamos que tenemos la siguiente tabla:

Tabla Tienda

Nombre_tienda ventas Fecha_de_apertura

Los Angeles 1500 05-Jan-1999

San Diego 250 07-Jan-1999

Los Angeles 300 08-Jan-1999

Boston 700 08-Jan-1999

152 | P á g i n a
Podemos utilizar esta tabla como ejemplo a lo largo de la guía de referencia (esta tabla
aparecerá en todas las secciones). Para seleccionar todos los negocios en esta tabla,
ingresamos,

SELECT Nombre_tienda FROM Tienda;

Resultado:

Nombre_tienda

Los Angeles

San Diego

Los Angeles

Boston

15.3 Cláusula from


Esta cláusula permite indicar las tablas o vistas de las cuales vamos a obtener la información
y serán operadas junto con la sentencia Select.
[SELECT…]
FROM nombre de la tabla

Ejemplo:

De momento veremos un ejemplo para obtener información de una sola


tabla.

15.3 Consultas basicas de sql


 Operaciones Basicas De Manipulación De Datos En Sql

153 | P á g i n a
Las instrucciones DML (Data Manipulation Language - Lenguaje De Manipulación De Datos)
trabajan sobre los datos almacenados en nuestro SGBD (sistema gestor de base de datos),
permitiendo consultarlos o modificarlos. En general a las operaciones básicas de
manipulación de datos que podemos realizar con SQL se les denomina operaciones CRUD
(de Create, Read, Update, and Delete, o sea, Crear, Leer, Actualizar y Borrar, sería CLAB en
español, pero no se usa). Lo veras utilizando de esta manera en muchos sitios, así que es
necesario aprender ese acrónimo.Hay cuatro instrucciones para realizar estas tareas:

-Insert: Inserta filas en una tabla. Se corresponde con la “C” de CRUD.

-Select: Muestra información sobre los datos almacenados en la base de datos.


Dicha información puede pertenecer a una o varias tablas. Es la “R”.
-Update: Actualiza información de una tabla. Es obviamente, la “U”.

-Delete: Borra filas de una tabla. Se corresponde con la “D”.

 Consulta De Datos
Ahora nos centramos en la “R” de CRUD, es decir, en cómo recuperar la información
que nos interesa de dentro de una base de datos, usando para ello el lenguaje de
consulta de SQL. Para realizar consultas sobre las tablas de las bases de datos
disponemos de la introducción SELECT. Con ella podemos consultar una o carias
tablas. Es sin duda el comando más versátil del leguaje SQL. Existen muchas
cláusulas asociadas a la sentencia SELECT (GROUP BY, ORDER, HAVING,
UNION). También es una de las instrucciones en la que con más frecuencia los
motores de bases de datos incorporan cláusulas adicionales al estándar. El resultado
de una consulta SELECT nos devuelve una tabla lógica. Es decir, los resultados son
una relación de datos, que tiene filas/registros, con una serie de campos/columnas.
Igual que cualquier tabla de la base de datos. Sin embargo, esta tabla está en
memoria mientras la utilicemos, y luego se descarta. Cada vez que ejecutamos la
consulta se vuelve a calcular el resultado.
La sintaxis básica de una consulta SELECT:
SELECT [ ALL / DISTINC ] [ * ] / [ListaColumnas_Expresiones] AS
[Expresion]
FROM Nombre_Tabla_Vista
WHERE Condiciones
ORDER BY ListaColumnas [ ASC/ DESC ]

A continuación, analizaremos cada una de las partes de la consulta para entenderla


mejor.

Select:

154 | P á g i n a
Permite seleccionar las columnas que se van a mostrar y en el orden en que lo van
a hacer. Simplemente es la instrucción que la base de datos interpreta como que
vamos a solicitar información.
All / Distinct
All es el valor predeterminado, especifica que el conjunto de resultado puede incluir filas
duplicadas. Por regla general nunca se utiliza.
DISTINCT Especifica que el conjunto de resultados sólo puede incluir filas únicas. Es decir,
si al realizar una consulta hay registros exactamente iguales que aparecen más de una vez,
éstos se eliminan. Muy útil en muchas ocasiones.
Nombre de Campos:
Se debe especificar una lista de nombres de campos de la tabla que nos interesan y que por
tanto queremos devolver. Normalmente habrá más de uno, en cuyo caso separamos cada
nombre de los demás mediante comas.
Se puede anteponer el nombre de la tabla al nombre de las columnas, utilizando el formato
tabla. columna. Además de nombres de columna, en esta lista se pueden poner constantes,
expresiones aritméticas, y funciones, para obtener campos calculados de manera dinámica.
Si queremos que nos devuelva todos los campos de la tabla utilizamos el comodín “*”
(asterisco).
Los nombres indicados deben coincidir exactamente con los nombres de los campos de la
tabla, pero si queremos que en nuestra tabla lógica de resultados tengan un nombre diferente
podemos utilizar:
As:
Permite renombrar columnas si lo utilizamos en la cláusula SELECT, o renombrar tablas si
lo utilizamos en la cláusula FROM (Formulario). Es opcional. Con ello podremos crear
diversos alias de columnas y tablas.
From:
Esta cláusula permite indicar las tablas o vistas de las cuales vamos a obtener la información.
De momento veremos ejemplos para obtener información de una sola tabla.
Where:
Especifica la condición de filtro de las filas devueltas. Se utiliza cuando no se desea que se
devuelvan todas las filas de una tabla, sino sólo las que cumplen ciertas condiciones. Lo
habitual es utilizar esta cláusula en la mayoría de las consultas.

Condiciones:

155 | P á g i n a
Son expresiones lógicas a comprobar para la condición de filtro, que tras su resolución
devuelven para cada fila TRUE (verdadero) o FALSE (falso), en función de que se cumplan
o no. Se puede utilizar cualquier expresión lógica y en ella utilizar diversos operadores como:

> (Mayor)
>= (Mayor o igual)
< (Menor)
<= (Menor o igual)
= (Igual)
<> o != (Distinto)

IS [NOT] NULL (Para comprobar si el valor de una columna es o no es nula, es


decir, si contiene o no contiene algún valor)
Se dice que una columna de una fila es NULL si está completamente vacía. Hay
que tener en cuenta que, si se ha introducido cualquier dato, incluso en un campo
alfanumérico si se introduce una cadena en blanco o un cero en un campo
numérico, deja de ser NULL.

Like:
para la comparación de un modelo. Para ello utilizamos los caracteres comodín
especiales: “%” y “_”. Con el primero indicamos que en su lugar puede ir cualquier
cadena de caracteres, y con el segundo que puede ir cualquier carácter individual (un
solo carácter).

El nombre empieza por A:


Nombre LIKE ‘%A%’

Between:
Para un intervalo de valores.
Clientes entre el 30 y el 100:
CodCliente BETWEEN 30 and 100.

In ():
Para especificar una relación de valores concretos. Por ejemplo: ventas de los
clientes 10, 15, 30 y 75:
CodCliente IN (10, 15, 30 y 75).

Order by:
Define el orden de las filas del conjunto de resultado. Se especifica el campo o
campos (separados por comas) por los cuales queremos ordenar los resultados.

156 | P á g i n a
Capítulo 16
Java

16.1 Comandos básicos

16.1.2 Programación orientada a objetos


Es un paradigma de programación que usa objetos en sus interacciones, para diseñar
aplicaciones y programas informáticos.
Es una forma especial de programar, más cercana a como expresaríamos las cosas
en la vida real que otros tipos de programación. Con la Programación orientada a
objetos tenemos que aprender a pensar las cosas de una manera distinta, para
escribir nuestros programas en términos de objetos, identidad o propiedad, métodos.
Un Objeto es una unidad que consta de un estado y un comportamiento, que a su
vez consta respectivamente de datos almacenados.
Un Método consiste generalmente de una serie de sentencias para llevar a cabo una
acción, unos parámetros de entrada que regulan dicha acción, también es el
comportamiento de un objeto.
Una Identidad es una propiedad de un objeto, esto quiere decir que es un identificador
de una variable o bien una constante en el lenguaje orientado a objetos.
16.1.2 Independencia de la plataforma:
La segunda característica, la independencia de la plataforma, significa que programas
escritos en el lenguaje Java pueden ejecutarse igualmente en cualquier tipo de hardware.
Este es el significado de ser capaz de escribir un programa una vez y que pueda ejecutarse
en cualquier dispositivo.
Para ello, se compila el código fuente escrito en lenguaje Java, para generar un código
conocido como “bytecode” (específicamente Java bytecode) instrucciones máquina
simplificadas específicas de la plataforma Java. Esta pieza está “a medio camino” entre el
código fuente y el código máquina que entiende el dispositivo destino. El bytecode es
ejecutado entonces en la máquina virtual (JVM).
Un programa escrito en código nativo de la plataforma destino (que es el que entiende su
hardware), que interpreta y ejecuta el código. Además, se suministran bibliotecas adicionales
para acceder a las características de cada dispositivo (como los gráficos, e la interfaz de red)
de forma unificada. Se debe tener presente que, aunque hay una etapa explícita de
compilación, el bytecode generado es interpretado o convertido a instrucciones máquina del
código nativo por el compilador JIT (es un sistema de organización de la producción para las
fábricas) (Just In Time). Hay implementaciones del compilador de Java que convierten el
código fuente directamente en código objeto nativo, como GCJ (es un compilador para el
lenguaje de programación). Esto elimina la etapa intermedia donde se genera el bytecode,
pero la salida de este tipo de compiladores sólo puede ejecutarse en un tipo de arquitectura.
La licencia sobre Java de Sun insiste que todas las implementaciones sean “compatibles”.
Esto dio lugar a una disputa legal entre Microsoft y Sun, cuando éste último alegó que la
implementación de Microsoft no daba soporte a las interfaces RMI (es un mecanismo ofrecido
por Java para invocar un método de manera remota) y JNI (Interface es un framework de
157 | P á g i n a
programación que permite que un programa escrito en Java ejecutado en la máquina virtual)
además de haber añadido características ‘’dependientes’’ de su plataforma. Como respuesta,
Microsoft no ofrece Java con su versión de sistema operativo, y en recientes versiones de
Windows, su navegador Internet Explorer no admite la ejecución de applets sin un conector
(o plugin) aparte. Sin embargo, Sun y otras fuentes ofrecen versiones gratuitas para distintas
versiones de Windows.
La primera de estas técnicas es simplemente compilar directamente en código nativo como
hacen los compiladores tradicionales, eliminando la etapa del bytecode. Esto da lugar a un
gran rendimiento en la ejecución, pero tapa el camino a la portabilidad. convierte el bytecode
a código nativo cuando se ejecuta la aplicación. Otras máquinas virtuales más sofisticadas
usan una ‘recopilación dinámica’’ en la que la VM es capaz de analizar el comportamiento
del programa en ejecución y recompila y optimiza las partes críticas. La recopilación dinámica
puede lograr mayor grado de optimización que la compilación tradicional (o estática), ya que
puede basar su trabajo en el conocimiento que de primera mano tiene sobre el entorno de
ejecución y el conjunto de clases cargadas en memoria. La compilación JIT y la recopilación
dinámica permiten a los programas Java aprovechar la velocidad de ejecución del código
nativo sin por ello perder la ventaja de la portabilidad en ambos.
El concepto de independencia de la plataforma de Java cuenta, sin embargo, con un gran
éxito en las aplicaciones en el entorno del servido

7.1.3 En recolector de basura de Java


El recolector de basura (garbage collector en inglés) administra la memoria en forma
automática, así se logra evitar que se desperdicien grandes cantidades de memoria. El
recolector de basura se encarga de recoger todos los objetos que ya no están siendo
utilizados por nuestros programas. Cuando la memoria de la Máquina Virtual se está
agotando se activa automáticamente el recolector de basura.

La siguiente imagen nos muestra los pasos que


sigue el recolector de basura a la hora que se
pone en marcha y cumpliendo su objetivo

158 | P á g i n a
16.2 Sintaxis

16.2.1 Aplicaciones Autónomas De Java


La sintaxis de Java se deriva en gran medida de C++. Pero a diferencia de éste, que combina
la sintaxis para programación genérica, estructurada y orientada a objetos, Java fue
construido desde el principio para ser completamente orientado a objetos. Todo en Java es
un objeto (salvo algunas excepciones), y todo en Java reside en alguna clase (recordemos
que una clase es un molde a partir del cual pueden crearse varios objetos).
Este ejemplo necesita una pequeña explicación.
Todo en Java está dentro de una clase, incluyendo programas autónomos.
El código fuente se guarda en archivos con el mismo nombre que la clase que contienen y
con extensión “.java”. Una clase (class) declarada pública (public) debe seguir este convenio.
Si tenemos una clase llamada Hola, su código fuente deberá guardarse en el fichero
“Hola.java”.

 El compilador genera un archivo de clase (con extensión “.class”) por cada una de las
clases definidas en el archivo fuente.
 Una clase anónima se trata como si su nombre fuera la concatenación del nombre de la
clase que la encierra, el símbolo “$”, y un número entero.
 Los programas que se ejecutan de forma independiente y autónoma, deben contener el
método ”main()”.
 La palabra reservada ”void” indica que el método main no devuelve nada.
 El método main debe aceptar un array de objetos tipo String. Por acuerdo se referencia
como ”args”, aunque puede emplearse cualquier otro identificador.

 La palabra reservada ”static” indica que el método es un método de clase, asociado a la


clase en vez de a una instancia de la misma. El método main debe ser estático o ’’de
clase’’.
 La palabra reservada public significa que un método puede ser llamado desde otras
clases, o que la clase puede ser usada por clases fuera de la jerarquía de la propia clase.
Otros tipos de acceso son ”private” o ”protected”.
 La utilidad de impresión (en pantalla por ejemplo) forma parte de la biblioteca estándar
de Java: la clase ‘’’System’’’ define un campo público estático llamado ‘’’out’’’. El
objeto out es una instancia de ‘’’PrintStream’’’, que ofrece el método ‘’’println (String)’’’
para volcar datos en la pantalla (la salida estándar).

 Las aplicaciones autónomas se ejecutan dando al entorno de ejecución de Java el


nombre de la clase cuyo método main debe invocarse. Por ejemplo, una línea de
comando (en Unix o Windows) de la forma java –cp . Hola ejecutará el programa del
ejemplo (previamente compilado y generado “Hola.class”). El nombre de la clase cuyo
método main se llama puede especificarse también en el fichero “MANIFEST” del archivo
de empaquetamiento de Java (.jar).

159 | P á g i n a
Este pequeño fragmento de código
explica la sintaxis o más o menos
como es una sintaxis o estructura
de aplicación autónoma en Java.

16.2.2 Applets
Un applet es un programa escrito en lenguaje Java, el cual fue diseñado para incluirse en
documentos Web HTML, el principal objetivo es añadir interactividad y dinamismo a la página
web. El modo de ejecución de los applet se realiza a través de un navegador web utilizando
la Máquina Virtual Java (en inglés Java Virtual Machine, JVM) es decir que la máquina virtual
se encarga de interpretar el código de lenguaje máquina y adaptarlo a la plataforma utilizada,
en este caso un navegador web.

160 | P á g i n a
1. Contiene los archivos que conforman el
programa en java
2. Interpretación interna del lenguaje máquina.
3. Es un código binario intermediario para el
ensamblado e interpretación de archivos
4. Finalmente se utiliza la máquina virtual Java
para la adaptación a la plataforma utilizada.

16.2.3 Servlets
¿Qué son los Servlets?
Los Servlets son módulos escritos en JAVA que son utilizados en un servidor, y este puede
ser o no ser un servidor web. Los Servlets son para los servidores lo que los applets (lenguaje
de programación de Java) para los navegadores, con la diferencia de que los servlets no
tiene una interfaz gráfica. Son las respuestas de la tecnología Java a la programación CGI
(Interfaz de entrada común). Para ser más específicos son programas que se ejecutan en
un servidor Web y construyen páginas Web. Son un remplazo efectivo para los CGI (Interfaz
de entrada común) en los servidores que lo soporten ya que proporcionan una forma de
poder generar documentos dinámicos utilizando las ventajas de la programación en Java,
como conexión a alguna base de datos, programación distribuida, etc. Por ejemplo, un
servlets podría ser responsable de procesar datos desde un formulario en Html, como
registrar la transacción, actualizar base de datos, contactar algún sistema remoto y retomar
un documento dinámico o redirigir a otro servlets, o cualquier cosa.

161 | P á g i n a
 ¿Cómo es un Servlets?

 Un pequeño servlet de ejemplo:


public class SimpleServlet extends HttpServlet {

// Maneja el método GET de HTPP para

// construir una sencilla página Web.

public void doGet (HttpServletRequest request, HttpServletResponse


response)

throws ServletException, IOException {

PrintWriter out;

String title = "Simple Servlet Output";

// primero selecciona el tipo de contenidos y otros campos de cabecera


de la respuesta

response.setContentType("text/html");

// Luego escribe los datos de la respuesta

out = response.getWriter();

out.println("<HTML><HEAD><TITLE>");

out.println(title);

out.println("</TITLE></HEAD><BODY>");

out.println("<H1>" + title + "</H1>");

out.println("<P>This is output from SimpleServlet.");

out.println("</BODY></HTML>");

out.close();

En negrita está resaltado los detalles que son importantes o característicos de un


Servlet, este puede ser puesto en un servidor web ya que utiliza el protocolo http para
poder comunicarse. El servlet será del tipo HTTP por lo que se extiende de la
clase HttpServlet. Al extender de esta clase es necesario definir el
método doGet para responder la petición. Este método recibe los parámetros dados
por el cliente a través de la clase HttpServletRequest y encapsula la respuesta que

162 | P á g i n a
se le dará al cliente a través de la clase HttpServletResponse. El servlet puede
retornar al cliente cualquier tipo de información, desde texto plano hasta un
ejecutable, por lo que es necesario señalar qué tipo de respuesta se dará a través
del método setContentType. Luego se obtiene el objeto para poder escribir texto al
cliente a través del método getWriter con el cual se puede retornar una página web
llamado sucesivamente el método println hasta terminar con close.

16.3 Entornos De Funcionamientos

16.3.1 En Dispositivos Móviles y Sistemas Embebidos


Desde la creación de la especificación J2ME (Java 2 Platform, Micro Edition).

Una versión del entorno de ejecución Java reducida y altamente optimizada, especialmente
desarrollado para el mercado de dispositivos electrónicos de consumo, se ha producido toda
una revolución en lo que a la extensión de Java se refiere.

Es posible encontrar microprocesadores diseñados para ejecutar bytecode Java y software


Java para tarjetas inteligentes (JavaCard), teléfonos móviles, busca personas, set-top-boxes,
sintonizadores de TV y otros pequeños electrodomésticos.

Que es Midlet:
Es un programa desarrollado con el lenguaje de programación Java para dispositivos
embebidos (que se dedican a una sola actividad), más específicamente para la máquina
virtual Java Micro Edition.

16.3.2 En Navegador Web


Desde la primera versión de java existe la posibilidad de desarrollar pequeñas aplicaciones
(Applets) en Java que luego pueden ser incrustadas en una página HTML para que sean
descargadas y ejecutadas por el navegador web. Estas mini-aplicaciones se ejecutan en una
JVM (Máquina virtual Java) que el navegador tiene configurada como extensión (plug-in) en
un contexto de seguridad restringido configurable para impedir la ejecución local de
código potencialmente malicioso. El éxito de este tipo de aplicaciones (la visión del equipo
de Gosling) no fue realmente el esperado debido a diversos factores, siendo quizás el más
importante la lentitud y el reducido ancho de banda de las comunicaciones en aquel entonces
que limitaba el tamaño de las applets que se incrustaban en el navegador.
La aparición posterior de otras alternativas (aplicaciones web dinámicas de servidor) dejó un
reducido ámbito de uso para esta tecnología, quedando hoy relegada fundamentalmente a
componentes específicos para la intermediación desde una aplicación web dinámica
de servidor con dispositivos ubicados en la máquina cliente donde se ejecuta el navegador.

163 | P á g i n a
Un navegador web permite el acceso a
la Web, interpretando la información de
distintos tipos de archivos y sitios web para
que estos puedan ser visualizados.

16.3.3 En Sistemas de Servidos


En la parte del servidor, Java es más popular que nunca, desde la aparición de la
especificación de Servlets y Java Server Pages.
Hasta entonces, las aplicaciones web dinámicas de servidor que existían se basaban
fundamentalmente en componentes Common Gateway Interface y lenguaje interpretados.
Ambos tenían diversos inconvenientes (fundamentalmente lentitud, elevada carga
computacional o de memoria y propensión a errores por su interpretación dinámica). La
especificación de Servlets y JSP define un API de programación y los requisitos para un
contenedor (servidor) dentro del cual se puedan desplegar estos componentes para formar
aplicaciones web dinámicas completas. Hoy día existen multitud de contenedores
compatibles con estas especificaciones.
A partir de su expansión entre la comunidad de desarrolladores, estas tecnologías han
dado paso a modelos de desarrollo mucho más elaborados con frameworks que se
sobreponen sobre los servlets y las JSP para conseguir un entorno de trabajo mucho más
poderoso y segmentado en el que la especialización de roles sea posible (desarrolladores,
diseñadores gráficos) y se facilite la reutilización y robustez de código. A pesar de todo ello,
las tecnologías que subyacen son substancialmente las mismas.
Este modelo de trabajo se ha convertido en uno del estándar de facto para el desarrollo de
aplicaciones web dinámicas de servidor.

16.3.4 En Aplicaciones De Escritorio


Existen diversas aplicaciones graficas de usuario basadas en Java. El entorno de ejecución
Java se ha convertido en un componente habitual en los PC de usuarios de los Sistemas
Operativos más usados en el mundo.
Muchas aplicaciones Java incluyen dentro de su propio paquete de la aplicación para ser
ejecutados en cualquier PC.
Desde la aparición de la biblioteca Swing (biblioteca gráfica, para la interfaz gráfica de
usuario, caja de texto, botones, listas desplegables y tablas) provocando que la situación
mejorara, posteriormente la aparición de bibliotecas como SWT (conjunto de componentes
para construir interfaces graficas)
Hacen que el desarrollo de aplicaciones de escritorio complejas, de gran dinamismo,
usabilidad, sean relativamente sencillo.
164 | P á g i n a
16.3.5 Plataformas Soportadas
Una versión del entorno de ejecución Java JRE (Java Runtime Environment) está disponible
en la mayoría de equipos de escritorio. Sin embargo, Microsoft no lo ha incluido por defecto
en sus sistemas operativos. En el caso de Apple, éste incluye una versión propia del JRE en
su sistema operativo, el Mac OS. También es un producto que por defecto aparece en la
mayoría de las distribuciones de GNU/Linux. Debido a incompatibilidades entre distintas
versiones del JRE, muchas aplicaciones prefieren instalar su propia copia del JRE antes que
confiar su suerte a la aplicación instalada por defecto.
Los desarrolladores de applets de Java o bien deben insistir a los usuarios en la actualización
del JRE, o bien desarrollar bajo una versión antigua de Java y verificar el correcto
funcionamiento en las versiones posteriores.

16.4 Programación

16.4.1 Expresiones
Una expresión en Java (NetBeans) es una forma para describir en un grupo de cadenas de
texto características en común el cual funciona prácticamente para buscar coincidencias
entre un patrón ingresado y una cadena de texto ya existente esto funciona utilizando datos
de tipo booleano que devuelve respuestas en tipo falso o verdadero.

El “String a_evaluar” es la cadena de texto que vamos a ingresar para que sea comparada
por la que estamos a punto de escribir en la consola de Java.
El “String regex;” es donde se va almacenar la cadena de texto que ingresemos por teclado
que sera comparado con la cadena de texto ya existente.

El “regex = scanner.next();” nos sirve para que en la variable regex se almacene la cadena
de texto ingresada por teclado.

Pattern nos sirve como un conversor que hara que lo que sea ingresado y almacenado en
nuestra variable (en este caso regex) sea convertido en un patrón que pueda compararse
con la cadena de texto ya ingresada.

165 | P á g i n a
El Matcher es el que busca la coincidencia de patrones de texto evaluando nuestra variable
(regex) y (a_evaluar) será la cadena de texto que ingresamos por defecto con la cual será
comparada nuestra cadena de texto ingresada por teclado.
Se crea una variable tipa booleana para que muestre si es verdadero o falso que hay o no
una coincidencia entre la cadena de texto por defecto y la cadena de texto que ingresamos
por teclado.

16.4.2 Operadores

¿Qué es un operador?
Un operador lleva a cabo operaciones sobre uno (operador unario), dos (operador binario) o
tres (operador ternario) datos u operandos de tipo primitivo devolviendo un valor determinado
también de un tipo primitivo. El tipo de valor devuelto tras la evaluación depende del operador
y del tipo de los operandos.
Ejemplo:
Los operadores aritméticos trabajan con operandos numéricos, llevan a cabo operaciones
aritméticas básicas y devuelven el valor numérico correspondiente. Los operadores se
pueden clasificar en distintos grupos según se muestra en los siguientes apartados.

 Operador asignación

El operador asignación, =, es un operador binario que asigna el valor del término de la


derecha al operando de la izquierda. El operando de la izquierda suele ser el identificador de
una variable. El término de la derecha es, en general, una expresión de un tipo de dato
compatible; en particular puede ser una constante u otra variable. Como caso particular, y a
diferencia de los demás operadores, este operador no se evalúa devolviendo un determinado
valor.

166 | P á g i n a
 Operadores aritméticos

El lenguaje de programación Java tiene varios operadores aritméticos para los datos
numéricos enteros y reales.

 Operadores aritméticos incrementales


Los operadores aritméticos incrementales son operadores unarios (un único operando).

operando puede ser numérico o de tipo char y el resultado es del mismo tipo que el operando.
Estos operadores pueden emplearse de dos formas dependiendo de su posición con
respecto al operando
Estos operadores suelen sustituir a veces al operador asignación y también

 Operadores aritméticos combinados


Combinan un operador aritmético con el operador asignación. Como en el caso de los
operadores aritméticos pueden tener operandos numéricos enteros o reales y el tipo
específico de resultado numérico dependerá del tipo de éstos

167 | P á g i n a
 Operadores de relación
Realizan comparaciones entre datos compatibles de tipos primitivos (numéricos, carácter y
booleanos) teniendo siempre un resultado booleano. Los operandos booleanos sólo pueden
emplear los operadores de igualdad y desigualdad.

 Operadores lógicos o booleanos


Realizan operaciones sobre datos booleanos y tienen como resultado un valor booleano.

Para mejorar el rendimiento de ejecución del código es recomendable emplear en las


expresiones booleanas el operador && en lugar del operador &. En este caso es conveniente
situar la condición más propensa a ser falsa en el término de la izquierda. Esta técnica puede
reducir el tiempo de ejecución del programa. De forma equivalente es preferible emplear el
operador || al operador |. En este caso es conveniente colocar la condición más propensa a
ser verdadera en el término de la izquierda.

168 | P á g i n a
 El operador condicional

Este operador ternario tomado de C/C++ permite devolver valores en función de una
expresión lógica.

16.4.3 Operadores A Nivel Bit


El lenguaje de programación Java también proporciona operadores que proporcionan
operaciones de a nivel de bit en tipos enteros. Los operadores tratados en esta sección son
de uso poco común. Por tanto, su cobertura es breve, el objetivo es simplemente hacer
constar que estos operadores existen.
El operador complemento a nivel de bit «~» invierte un patrón de bits; se puede aplicar a
cualquiera de los tipos enteros, haciendo de cada «0» un «1» y de cada «1» un «0». Por
ejemplo, un byte contiene 8 bits; al aplicar este operador a un valor cuyo patrón de bits es
«00000000» éste se cambiaría a «11111111».
El método más sencillo de representación son los números naturales. Por ejemplo, si tengo
el número 85 en decimal, solo tengo que llevarlo a binario y obtengo una serie de unos y
ceros: 1010101 = 85 en binario.
Cada dígito (un cero o un uno) de este número se llama bit. Java tiene una serie de
operadores capaces de manipular estos dígitos, son los operadores de bits.
El operador de desplazamiento a la izquierda con signo «<<» desplaza un patrón de bits a la
izquierda, y el operador de desplazamiento a la derecha con signo «>>» desplaza un patrón
de bits a la derecha. El patrón de bits viene dado por el operando de la izquierda y el número
de posiciones por el operando de la derecha. El operador de desplazamiento a la derecha
sin signo «>>>» desplaza un cero hacia la posición más a la izquierda, mientras que la
posición más a la izquierda después del «>>» dependa de la extensión de signo.

Operador Utilización Resultado

<< A << B Desplazamiento de A a la izquierda en B posiciones.

Desplazamiento de A a la derecha en B posiciones, tiene en cuenta


>> A >> B
el signo.

Desplazamiento de A a la derecha en B posiciones, no tiene en


>>> A >>> B
cuenta el signo.

& A&B Operación AND a nivel de bits.

| A|B Operación OR a nivel de bits.

^ A^B Operación XOR a nivel de bits.

~ ~A Complemento de A a nivel de bits.

169 | P á g i n a
 El operador a nivel de bits & realiza una operación de AND a nivel de bits.
 El operador a nivel de bits ^ realiza una operación de OR exclusivo a nivel de bits.
 El operador a nivel de bits | realiza una operación de OR inclusivo a nivel de bits.

16.4.3 Operadores De Procedencia


La precedencia de operadores se refiere al modo de cómo se resuelve una operación en un
Pc, en este caso con el orden prioritario de las operaciones realizadas con operadores.
Cuando las expresiones contienen operadores de más de una categoría, (es decir, mezclan
en una sola operación sumas, restas, multiplicaciones, potencias, etc.) se evalúan de
acuerdo a las siguientes reglas:

15. Paréntesis ()

Arreglos []

Acceso a miembros .
14. Post-incremento ++

Post-decremento --

13. Pre-incremento ++

Pre-decremento --

Mas +

Menos -

Negación lógica !

Negación/Complemento binario ~

12. Multiplicación *

División /

Módulo %

11. Adición +

Sustracción -

10. Despl. Bits Izq. <<

Despl. Bits Der. /Signo >>

170 | P á g i n a
Despl. Bits Der. /Cero >>>

9. Menor que <

Menor o igual que <=

Mayor que >

Mayor o igual que >=

8. Igual a ==

No igual a !=

7. Si binario &

6. O exclusivo binario ^

5. O inclusivo binario |

4. Si lógico &

3. O lógico ||

2. Condicional ternario ?:

1. Asignación =

Suma y asignación +=

Sustracción y asignación -=

Multiplicación y asignación *=

División y asignación /=

Modulo y asignación %=

Las operaciones matemáticas tienen un orden de precedencia, una jerarquía, de modo que
algunas operaciones se resuelven antes que otras, por lo que un paréntesis en un
lugar diferente de las operaciones puede dar lugar a distintos resultados.
Ejemplo:
Notemos la expresión 12/3+2*2-1 siguiendo las instrucciones del cuadro

171 | P á g i n a
12/3 + 2*2 -1(Primero multiplicaciones y divisiones de izquierda a derecha) (2*2) (12/3)
4+4-1(Luego sumas)
8-1(Finalmente restas)

16.4.5 Sentencias
Un programa java está compuesto por una serie de sentencias. Las dos sentencias básicas
en el lenguaje Java se reflejan en la siguiente tabla: sentencias de declaración que son las
que hemos estudiado para declarar variables y constantes.

Estas últimas son las que controlan el flujo de ejecución del programa. Normalmente el orden
de ejecución de sentencias es el mismo en el que están escritas. Sin embargo, las sentencias
de control de flujo introducen bifurcaciones en la ejecución del programa. A continuación,
estudiaremos en detalle cada uno de los tipos de sentencias.

 If-else

si el valor de expresion_booleana es true se ejecutará el bloque_de_sentencias1, en caso


contrario, si hay parte else, se ejecuta el bloque_de_sentencias2. La cláusula else es
opcional.
Si queremos que un programa compruebe la edad de una determinada persona para saber
si es menor de edad o no, bastaría con preguntar en una sentencia if-else si la variable edad,
que es donde tenemos almacenada la edad de la persona, es menor que dieciocho. En caso
afirmativo, aplicaremos un descuento del 5% y en caso contrario del 15%.

172 | P á g i n a
Supongamos que además de saber si alguien es mayor o menor de edad queremos aplicar
un nuevo descuento para jubilados. Podemos cambiar el problema y anidar sentencias if-
else.

 Switch
La sentencia switch selecciona entre un grupo de sentencias en función de la evaluación de
una expresión. Su formato sería:

Si se encuentra una etiqueta case cuyo valor_integral coincida con el de la expresión selector
se trasfiere el control a su correspondiente bloque_de_sentencias. En caso de que ningún
valor coincida se ejecuta el bloque_de_sentencias correspondiente a la etiqueta default.en
la sentencia switch no es necesario escribir break al final de cada case. Si falta la sentencia
break el código de la siguiente sentencia case se ejecutará hasta que se encuentre un break.
Tal es el caso del siguiente ejemplo, donde se traduce una nota numérica a su
correspondiente nota verbal.
Vemos como cuando la nota es un 7 al no tener un break continúa la ejecución hasta el
siguiente case, el 8, imprimiendo notable. Lo mismo sucede con el sobresaliente. Toda la
etiqueta case deben ser expresiones constantes, es decir, literales o identificadores
declarados como static final e inicializados con un valor constante.

 For:
Esta sentencia se usa para realizar un bucle a lo largo de un rango de valores desde el
principio hasta el final,

Lo habitual es usar for cuando queremos recorrer todo un rango de valores de una variable.
De esta forma, expresion_inicial indica el punto de partida para hacer
iteraciones, expresion_incremento cómo se va a ir incrementando la variable
y expresion_booleana expresa que condición debe cumplirse para que el bucle for acabe.
Al principio el contador i lo inicializamos a 1 pues el uno es un divisor para cualquier número.
Iremos incrementando i de uno en uno y calculando el módulo de la división del numero entre
i. La condición de salida del bucle es cuando el contador sea menor o igual que la mitad del
número, pues no habrá divisores con un valor mayor.

173 | P á g i n a
El bucle for sólo acaba cuando se cumple la condición de salida o cuando en
el bloque_de_sentencias se encuentra una sentencia break. Sin embargo, debido a que se
utiliza para iterar a lo largo de un rango de valores, romper el bucle es de mal estilo.

 While- Do while
Con la sentencia while se repite el bloque_de_sentencias hasta que la expresión booleana
sea falsa. Un bucle while sería:

El bucle while puede no ejecutarse nunca pues la expresion_booleana puede ser falsa la
primera vez que se evalúa. Como hay veces que se desea que el bucle se ejecute al menos
una vez.
En Java tenemos también la instrucción do-while:

Aquí la expresión booleana se evalúa al final por lo que bloque_de_sentencias se ejecuta al


menos una vez.

 Break- continue
Las sentencias break y continue se utilizan dentro de los bucles y modifican el flujo natural
de los mismos.La sentencia break provoca la salida inmediata del bucle que estemos
ejecutando, sin realizar la ejecución del resto de las sentencias. La sentencia break se puede
usar tanto en bucles como en bifurcaciones. El siguiente uso de break en el bucle while nos
garantiza que j no será nunca negativo, pues en ese caso romperá el bucle y continuará con
la ejecución normal:

La sentencia continúe finaliza la iteración que en ese momento se está ejecutando, salta al
final del cuerpo del mismo y evalúa la expresión booleana que controla dicho bucle. Se suele
usar un continúe para saltarse un elemento del rango de valores que recorre el bucle. El uso

174 | P á g i n a
de continúe en el siguiente código evita que se produzca una división por cero al calcular el
valor de aux.

 Return
La sentencia return termina la ejecución de un método y devuelve al invocador el control de
flujo del programa. En el caso de que la función devuelva alguna variable, este valor se
deberá poner a continuación del return, return <valor>. El siguiente ejemplo nos enseña un
uso de la sentencia return para determinar si un número es positivo:

175 | P á g i n a
176 | P á g i n a
Capítulo 17

Programación básica en C# (Consola)

17.1 Definición e Historia de C#

Es un programación orientado desarrollado y estandarizado por Microsoft como Formatted: No underline, Spanish (Guatemala)
parte de su plataforma .NET, Su sintaxis básica deriva de C/C++ y utiliza el modelo Formatted: No underline
de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras Formatted: No underline, Spanish (Guatemala)
derivadas de otros lenguajes. Formatted: No underline
Formatted: No underline, Spanish (Guatemala)
Formatted: No underline

17.2 Programa de C# Formatted: No underline, Spanish (Guatemala)


Formatted: No underline
Crear 3 variables numéricas con el valor que tú quieras y en otra variable numérica Formatted: No underline, Spanish (Guatemala)
guardar el valor de la suma de las 3 anteriores. Mostrar por consola. Formatted: No underline

using System;

namespace ejercicio_basicos_DDR_1
{
class MainClass
{
public static void Main (string[] args)
{

int operador1,operador2 = 5;
int suma = 0;

operador1= int.parse(console.readline());
operador2= int.parse(console.readline());

Console.WriteLine ("La suma es "+suma);

Console.ReadLine ();
}
}
}

177 | P á g i n a
17.2.1 Sintaxis C#

La sintaxis de C# es muy parecida a la de C++ esta a su vez simplifica muchas


complejidades de C++ y proporciona características eficaces, como tipos de valor
que aceptan valores NULL, numeraciones, delegados, expresiones lambda y acceso
directo a memoria. C# admite métodos y tipo genéricos, que proporcionan una mayor
seguridad de tipos y rendimiento, e iteradores, que permiten a los implementadores
de clases de colecciones definir comportamientos de iteración personalizados que
son fáciles de usar por el código de cliente.

17.2.2 Palabras reservadas


Las palabras reservadas son identificadores reservados predefinidos que tienen un
significado especial y no se pueden utilizar como identificadores en sus programas,
excepto si llevan delante el carácter @ como prefijo. Así, por ejemplo @for es un
identificador válido, pero no for ya que es una palabra reservada.
Public:
La palabra clave public es un modificador de acceso para tipos y miembros de tipo. El
acceso público es el nivel de acceso más permisivo. No hay ninguna restricción para
el acceso a miembros públicos.

Try-catch
La instrucción try-catch consta de un bloque try seguido de una o más
cláusulas catch que especifican controladores para diferentes excepciones.

178 | P á g i n a
Switch
La instrucción switch es una instrucción de control que selecciona una sección
switch para ejecutarla desde una lista de candidatos. Una instrucción switch incluye
una o más secciones switch. Cada sección switch contiene una o más etiquetas
case seguidas de una o más instrucciones.

17.2.3 Variables
Hay varios tipos de variables, pero las más usadas son:
Int: Especifica números enteros y ocupa 4 bits--- int a; int a=3;
Float: Especifica números decimales y ocupa 4 bits – float a; float a=3.4;
Double: Para datos que requieran de muy elevada precisión ocupa 8 bits doublé a;
doublé a=3;
Char: Solo acepta un carácter con comillas simples char =’a’;
String: Sirve para almacenamiento de variables de texto. String hola; string hola,
hola2, hola3;

17.2.4 Constantes
Es un elemento el cual su valor no cambia. En C# es una variable el cual su valor es
invariable durante toda la ejecución del programa. Para que esto sea posible se ha
de cumplir que el valor de una constante no pueda cambiar durante la ejecución.

Declaración de una Constante


<const><tipoconstante><nombreconstante>=<valor>;
Ejemplo:
Esto estaría correcto porque aquí estamos diciendo que la asignación de las variables
no puede cambiar
Const int a=123;
Const int b= a + 10;
Pero si hiciéramos esto por ejemplo
Int x=5;
Const int y=100+x;
Esto estaría incorrecto porque estamos
diciendo que el valor int puede cambiar siempre que ponemos un const las variables
que agreguemos para hacer operaciones todas las variables tienen que tener al
principio Const.

179 | P á g i n a
Otro ejemplo, si ponemos:
Const int a=123;
No podremos cambiar el dato dentro de esta variable
a =23;
Porque nos marcara un error de compilación
Declaración de una Variable de solo Lectura
<readonly><tipoConstante><nombreConstante>= <valor>;
Solo pueden ser declaradas como atributos en una clase dentro de un método no
podríamos. Ejemplo:
Class Program
{
readonly int z = 80;
Static void main……………………..

La variable z no puede ser cambiada, solo se puede leer.

180 | P á g i n a
Capítulo 18

Tipos de dato primitivo

Los tipos de datos primitivos son aquellos que almacenan directamente el valor, a
diferencia de los tipos de datos referencia que almacenan la dirección de memoria
donde se almacena el dato (los objetos son tipo de datos referencia)
Los tipos de datos primitivos los podemos agrupar en:

18.1 Enteros
Según el valor entero máximo a almacenar podemos elegir entre: int (–2147483,648,
2147483647) (es el que normalmente hemos elegido hasta este momento cada vez
que necesitamos almacenar un valor entero), byte (podemos almacenar un valor
entre 0 y 255), sbyte (-128 y 127), short (-32768, 32767), ushort (0, 65535), uint (0,
4294967295), long (–9223372036854775808, 9223372036854775807) y ulong (0,
18446744073709551615)

18.2 Decimal
Contiene valores de 128 bits (16 bytes) con signo que representan enteros de 96 bits
(12 bytes) ajustados por una potencia variable de 10.
El tipo de datos Decimal proporciona el número máximo de dígitos significativos para
un número. Admite hasta 29 dígitos.
Bytes: Contiene enteros de 8 bits sin signo (1 bytes) que se sitúan en el intervalo
entre 0 y 255. El valor predeterminado de Byte es 0.
Char: Contiene puntos de código de 16 bits (2 bytes) sin signo cuyo valor oscila entre
0 y 65535. Cada punto de código o código de carácter, representa un carácter
Unicode único. Números negativos. Char es un tipo sin signo y no puede representar
un valor negativo. En cualquier caso, no debería utilizar Char para albergar valores
numéricos.
Date: Contiene valores IEEE de 64 bits (8 bytes) que representan fechas
comprendidas entre el 1 de enero del año 0001 y el 31 de diciembre de 9999, y horas
comprendidas entre las 0:00:00 (medianoche) y las 11:59:59.
Utilice el tipo de datos Date para albergar valores de fecha, valores de tiempo o
valores de fecha y hora. Puede obtener la fecha y hora actual de la clase
DateAndTime.

181 | P á g i n a
Capítulo 19

Operadores aritméticos

En C# hay operadores que son muy simples de implementar algunos de ellos son los
siguientes:

19.1 Suma:
En la cual se tienen dos valores y se adicionan el uno con el otro.
19.2 Resta:
En la cual se tienen dos valores y se restan el uno con el otro.
19.3 Multiplicacion:
En la cual se tienen dos valores y se multiplican el uno con el otro.
19.4 Division:
En la cual se tienen dos valores y se dividen el uno con el otro.
19.5 Residuo:
En el resultado que queda de una operación puede ser una de las cuatro anteriores.

182 | P á g i n a
Capítulo 20

Operadores de igualdad y relacionales


20.1 Operadores lógicos: &&, ||,
Esta condición se puede encadenar con "y", "o", etc., que se indican de la siguiente
forma
Operador Significado
&& Y
|| O
! No
De modo que podremos escribir cosas como
if ((opcion==1) && (usuario==2)) ...
if ((opcion==1) || (opcion==3)) ...)).
if ((!(opcion==opcCorrecta)) || (tecla==ESC))

El peligro de la asignación en un "if"


Cuidado con el operador de igualdad: hay que recordar que el formato es "if (a==b)"
Si no nos acordamos y escribimos "if (a=b)", estamos intentando asignar a "a" el valor
de "b".
En algunos compiladores de lenguaje C, esto podría ser un problema serio, porque
se considera válido hacer una asignación dentro de un "if" (aunque la mayoría de
compiladores modernos nos avisarían de que quizá estemos asignando un valor por
error). En el caso del lenguaje C#, la "condición" debe ser algo cuyo resultado sea
"verdadero" o "falso" (un dato de tipo "bool"), de modo que obtendríamos un mensaje
de error "Cannot implicitly convert type 'int' to 'bool'" (no puedo convertir un "int" a
"bool"), en casos como el del siguiente programa:

183 | P á g i n a
Ejemplo

Los operadores lógicos condicionales se utilizan para añadir condiciones, tanto en


los if como en cualquiera de las instrucciones que lleven una condición (ya las
veremos).
Vamos a suponer, tomando alguno de los ejemplos anteriores, que queremos hacer
algo si una variable vale 1 ó 5.
Lo haríamos así:

La condición aquí es "si a es igual a 1 o a es igual a 5". Podéis ir cambiando el valor


de a en el ejemplo e ir comprobando su funcionamiento.
20.2 Operadores de igualdad: == y !=
Los operadores de igualdad binarios comparan la igualdad o desigualdad estricta de
sus operandos.
Los operadores de igualdad, igual a (==) y no igual a (!=), tienen prioridad inferior que
los operadores relacionales, pero se comportan de igual forma. El tipo de resultado
de estos operadores es bool.

184 | P á g i n a
El operador igual a (==) devuelve true (1) si ambos operandos tienen el mismo valor;
de lo contrario, devuelve false (0). El operador no es igual a (!=) devuelve true si los
operandos no tienen el mismo valor; de lo contrario, devuelve false.

Hemos utilizado el operador OR (||). También tenemos el operador AND (&&), que se
utiliza para añadir una condición que también ha de cumplirse.

Ejemplo:

185 | P á g i n a
Capítulo 21

Estructuras de decisión

21.1 If-else
La instrucción if else selecciona una instrucción para ejecución en base de un valor

186 | P á g i n a
21.2 If y sentencias compuestas
"if" es una condición o sentencia; se ejecuta si se cumple la condición puede ser
una sentencia simple o una compuesta.

21.3 Switch

Si queremos ver varios posibles valores, sería muy pesado tener que hacerlo con
muchos "if" seguidos o encadenados. La alternativa es emplear la orden "switch",
cuya sintaxis es:

switch (VARIABLE)
{
case "1": Console.WriteLine("");break;
case "2": Console.WriteLine(""); break;
case "3": Console.WriteLine(""); break;
case "4": Console.WriteLine(""); break;
case "5": Console.WriteLine(""); break;

default: Console.WriteLine("Valor no reconocido");break;

Es decir:

 Tras la palabra "switch" se escribe la expresión a analizar, entre paréntesis.

187 | P á g i n a
 Después, tras varias órdenes "case" se indica cada uno de los valores
posibles.
 Los pasos (porque pueden ser varios) que se deben dar si la expresión tiene
un cierto valor se indican a continuación, terminando con "break".
 Si hay que hacer algo en caso de que no se cumpla ninguna de las
condiciones, se detalla después de la palabra "default".
 Si dos casos tienen que hacer lo mismo, se añade "goto case" a uno de ellos
para indicarlo.

Ejemplo

Capítulo 22

Estructura de Repetición
188 | P á g i n a
22.1 While
La instrucción while ejecuta una instrucción o un bloque de instrucciones hasta que
se evalúa una expresión específica false.

Ejemplo

En este ejemplo se ve que la condición while dice que mientras el valor sea 10 se
ejecutara la instrucción console.

22.2 Do While
Crea un bucle que ejecuta una sentencia especificada, hasta que la condición de
comprobación se evalúa como falsa. La condición se evalúa después de ejecutar la
sentencia, dando como resultado que la sentencia especificada se ejecute al menos
una vez.

Ejemplo:

189 | P á g i n a
22.3 For
Al usar un bucle for, puede ejecutar una instrucción o un bloque de instrucciones
repetidamente hasta que una expresión específica evalúe false. Este tipo de bucle es
útil para utilizar sobre matrices y para otras aplicaciones en las que sabe de antemano
cuántas veces desea que el bucle utilice.
Sintaxis:
int valor;

Console.WriteLine("Ingrese numero de la tabla de multiplicar:");


valor = Convert.ToInt16(Console.ReadLine());

for (int a = 1; a <= 10; a++)


{

Console.WriteLine(valor + " * "+ a +"="+ (valor * a));


}

Ejemplo:

190 | P á g i n a
Capítulo 23

Operadores Lógicos
23.1 And

El operador AND condicional (&&) realiza un AND lógico de sus bool operandos, pero
solo evalúa su segundo operando si es necesario.

Observaciones

La operación

x && y

Corresponde a la operación
Dupdo

x&y

191 | P á g i n a
Excepto que si xes false, y no se evalúa, porque el resultado de la operación AND
false no importa cuál sea el valor de y. Esto se conoce como evaluación de
"cortocircuito".

El operador AND condicional no puede sobrecargarse, pero las sobrecargas de los


operadores lógicos y operadores normales verdaderos y falsos son, con ciertas
restricciones, también consideradas sobrecargas de los operadores lógicos
condicionales.

Ejemplo:

23.2 Or

El operador OR condicional ( || ) realiza un OR lógico de sus bool operandos. Si el


primer operando evalúa a true , el segundo operando no se evalúa. Si el primer
operando evalúa a false , el segundo operador determina si la expresión OR en
conjunto se evalúa como true o false .
Observaciones

La operación

x || y

Corresponde a la operación

x|y

192 | P á g i n a
Excepto que si x es true, y no se evalúa porque la operación OR es true
independientemente del valor de y. Este concepto se conoce como evaluación de
"cortocircuito".

El operador OR condicional no puede sobrecargarse, pero las sobrecargas de los


operadores lógicos regulares y los operadores verdadero y falso son, con ciertas
restricciones, también consideradas sobrecargas de los operadores lógicos
condicionales.

Ejemplo:

23.3 Not

El operador de negación lógica (¡) es un operador unario que niega su


operando. Se define bool y devuelve true si y solo si su operando es false.
Observaciones

Los tipos definidos por el usuario pueden sobrecargar al ! operador (ver operador ).

193 | P á g i n a
Ejemplo:

Capítulo 24

Manejo de cadenas

24.1 Declaración de una Cadena de Caracteres.

Una cadena es un objeto de tipo String cuyo valor es texto. Internamente, el texto se
almacena como una colección secuencial de solo lectura de objetos Char. No hay
194 | P á g i n a
ningún carácter que finaliza en null al final de una cadena de C#; por lo tanto, la
cadena de C# puede contener cualquier número de caracteres nulos insertados
('\0'). La propiedad Length de una cadena representa el número de objetos Char que
contiene, no el número de caracteres Unicode. Para obtener acceso a los puntos de
código Unicode individuales de una cadena, use el objeto StringInfo.

Cadena frente System.String

En C#, la palabra clave string es un alias de String. Por lo tanto, String y string son
equivalentes y se puede utilizar la convención de nomenclatura que prefiera. La
clase String proporciona muchos métodos para crear, manipular y comparar cadenas
de forma segura. Además, el lenguaje C# sobrecarga algunos operadores para
simplificar las operaciones de cadena comunes.

Ejemplo:

24.2 Búsqueda

Búsqueda Binaria en C#
Es un excelente método para buscar datos dentro de una estructura generalmente
un arreglo unidimensional.
La única condición para usar este algoritmo es que los datos dentro del arreglo estén
ordenados de menor a mayor.
La solución mas fácil para realizar una búsqueda es por fuerza bruta, pero este
método puede resultar bastante ineficiente cuando se tiene una gran cantidad de

195 | P á g i n a
datos, ya que habría que buscar posición por posición hasta encontrar el dato que
queremos.
El código por fuerza bruta es bastante sencillo:

for(int i=0; i<Arreglo.length; i++)


if(Arreglo[i] == elemento)
System.out.println("Elemento encontrado en la posicion: " + i);

Este codigo recorre todo el arreglo y verificamos si la posición i es igual al dato que
queremos buscar.

Ejemplo:
Como se muestra a continuación queremos hacer una búsqueda en un arreglo
unidimensional en este caso haremos una clase de búsqueda donde irán dentro
todos nuestros métodos a utilizar en donde crearemos nuestros métodos cargar(),
búsqueda() e imprimir() en el método cargar() es donde ingresaremos los datos de
nuestro arreglo en el método búsqueda() es donde realizaremos la búsqueda de
nuestro elemento en el arreglo y en el método imprimir() es donde mostraremos el
resultado final de nuestra búsqueda para por ultimo en el main llamar todos
nuestros métodos creados en la clase búsqueda para que sean visibles al usuario.

196 | P á g i n a
El resultado final es este

24.3 Concatenación

Cómo concatenar cadenas Otra de las manipulaciones que podemos hacer es la


concatenación, que en C# a diferencia de otros lenguajes es muy natural e intuitiva.
Esto se debe a que podemos utilizar una función especializada para esto o
aprovechar la sobrecarga del operador + para la clase String. Si deseamos llevar a
cabo la concatenación por medio del operador + podemos hacerlo de la siguiente
manera: String nombre = “Juan”; String apellido = “Lopez”; String NombreCompleto
= “”; NombreCompleto = nombre + “ “ + apellido; De esta forma, obtendremos una
cadena que tendrá en su interior “Juan Lopez”. Al hacer la concatenación, hemos

197 | P á g i n a
incluido otra cadena. En este caso contiene un espacio. De no hacerlo, el nombre y
el apellido hubieran quedado juntos y la cadena sería: “JuanLopez”.

Cuando llevamos a cabo la concatenación por medio del operador +, puede suceder
que muchas cadenas se guarden en la memoria y algunas de ellas no sean
necesarias, como en el caso de las cadenas que insertan espacios. Para mejorar el
uso de la memoria se puede utilizar StringBuilder, una clase que nos da
funcionalidades para facilitar la concatenación.Otra forma de concatenar es hacer
uso del método Concat(). Este método pertenece a String, es muy sencillo de utilizar
y solamente requiere de dos parámetros, que serán las cadenas que deseamos
concatenar. El método regresa una cadena, que es la cadena resultante de la
concatenación de los parámetros. Veamos un ejemplo de cómo podemos
concatenar: NombreCompleto = String.Concat(nombre, apellido); El método Concat()
es estático, por eso es posible usarlo sin tener que declarar un objeto de la clase
String. Para llevar a cabo una concatenación múltiple, podemos hacerlo de la
siguiente manera: NombreCompleto =String.Concat(nombre, String.Concat(“ “,
apellido));

Ejemplo:

Capítulo 25
Programación en C# (POO)

Los conceptos de la programación orientada a objetos tienen origen en Simula 67,


un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahly Kristen
Nygaard, del Centro de Cómputo Noruego en Oslo.
La POO se basa en el modelo objeto donde el elemento principal es el objeto, el cual
es una unidad que contiene todas sus características y comportamientos en sí misma,

198 | P á g i n a
lo cual lo hace como un todo independiente pero que se interrelaciona con objetos
de su misma clase o de otras clases, como sucede en el mundo real.

En un lenguaje de procedimientos, no hay ningún enlace entre los datos y los


procedimientos que los manejan. Por el contrario, en un lenguaje orientado a objetos
agrupamos los datos con el código que lo manejan. Las clases son la representación
simbólica de los objetos. Las clases describen campos, propiedades, métodos y
eventos.

Las tres propiedades de la orientación a objetos son:

Encapsulación: agrupa datos y códigos en una única clase.

Herencia: permite la creación de una nueva clase a partir de otra ya existente, de la


cual se hereda todo y puede personalizarse añadiendo o modificando propiedades y
métodos heredados.

Polimorfismo: gracias a esta propiedad se pueden utilizar diferentes clases de forma


intercambiable.

25.1 Sintaxis
25.1.1Variables
Una variable está formada por un espacio en el sistema de almacenaje y un nombre
simbólico que está asociado a dicho espacio. Ese espacio contiene una cantidad de
información conocida o desconocida, es decir un valor.

Tipos de variables:
- Int Enteros: Almacena números naturales.
- Double Decimal: Almacena números decimales.
- Float Decimal: Almacena números decimales.
- String caracteres: Almacena caracteres / Letras.

199 | P á g i n a
- Char caracteres: Almacena caracteres de 1bts.

25.1.2 Conexión de Entrada y Salida


Para conectar un Elemento en C# tenemos que concatenar a una variable para que
podamos guardar la información que se ingresa.

200 | P á g i n a
25.1.3 Operaciones Básicas
Son Operaciones matemáticas básicas, así como: Suma, Resta, División,
Multiplicación

25.1.4 Condiciones If:


Las condiciones nos ayudan a tomar una decisión o muchas, dependiendo lo que
deseemos.

201 | P á g i n a
Capítulo 26
Manejo de Cadenas

26.1 Concatenación
La concatenación es una operación que consiste en la unión de dos o más caracteres
para desarrollar una cadena de caracteres, conocida en inglés como string. Esta
cadena es una secuencia finita y ordenada de elementos.
Concatenación de conexión de entrada y salida
En esta concatenación le decimos que la variable obtenga el valor de la caja de
texto (TextBox.Tex)

TextBox1

TextBox2

TextBox3

202 | P á g i n a
Concatenación de caracteres
En esta concatenación nos permite mostrar más caracteres que no son variables.

Concatenación de 2 o más variables


Nos ayuda a agrupar el resultado de las variables unir varias variables.

26.2 Comparación

C # proporciona muchos operadores, que son símbolos que especifican qué


operaciones (matemática, indización, llamada a función, etc.) realizar en una
expresión. Puede sobrecargar a muchos operadores para cambiar su significado
cuando se aplica a un tipo definido por el usuario.

Operaciones en tipos integrales (tales como ==, !=, <, >, &, |) se les permite en
general en la enumeración.
203 | P á g i n a
Las secciones enumeran los operadores de C # comenzando con la precedencia más
alta hasta la más baja. Los operadores dentro de cada sección comparten el mismo
nivel de precedencia.

Ejemplo:

Capítulo 27

Operaciones de Fecha y Hora

27.1 Resta y suma de fecha y hora


Método DateTime.Subtract (DateTime) - Resta la fecha y hora especificadas de esta
instancia.

Sintaxis
public TimeSpan Subtract(
DateTime value
)

Parámetros:
value
Type: System.DateTime
Valor de fecha y hora que se va a restar.

Valor devuelto:
Type: System.TimeSpan
Intervalo que es igual a la fecha y hora representadas por esta instancia menos la
fecha y hora representadas por value.

204 | P á g i n a
Excepciones:

Exception Condition

ArgumentOutOfRangeException El resultado es menor que MinValue o


mayor que MaxValue.

El método M: System.DateTime.Subtract (System.DateTime) determina la diferencia


entre dos fechas. Para restar un intervalo de tiempo de la instancia actual, llame al
método M: System.DateTime.Subtract (System.TimeSpan). Para restar un intervalo
de tiempo particular de la instancia actual, llame al método que agrega ese intervalo
de tiempo a la fecha actual, y proporcione un valor negativo como argumento del
método.

Ejemplo: Para restar dos meses de la fecha actual, llame al método M:


System.DateTime.AddMonths (System.Int32) con un valor de -2.

Si la fecha y hora de la instancia actual es anterior al valor, el método devuelve un


objeto T: System.TimeSpan que representa un intervalo de tiempo negativo. Es decir,
el valor de todas sus propiedades distintas de cero (como P: System.TimeSpan.Days
o P: System.TimeSpan.Ticks) es negativo.

El método M: System.DateTime.Subtract (System.DateTime) no tiene en cuenta el


valor de la propiedad P: System.DateTime.Kind de los dos valores T:
System.DateTime al realizar la resta. Antes de restar objetos T: System.DateTime,
asegúrese de que los objetos representen tiempos en la misma zona horaria. De lo
contrario, el resultado incluirá la diferencia entre las zonas horarias.

System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);


System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0);

// diff1 gets 185 days, 14 hours, and 47 minutes.


System.TimeSpan diff1 = date2.Subtract(date1);

// date4 gets 4/9/1996 5:55:00 PM.


System.DateTime date4 = date3.Subtract(diff1);

// diff2 gets 55 days 4 hours and 20 minutes.


System.TimeSpan diff2 = date2 - date3;

// date5 gets 4/9/1996 5:55:00 PM.


System.DateTime date5 = date1 - diff2;
Formatted: Font: Arial, 12 pt, Bold
Formatted: No Spacing, Level 3
205 | P á g i n a
27.2 Manejo del tipoDateTime.Date- DATE
Sintaxis
public DateTime Date { get; }

Valor de propiedad
Type: System.DateTime
Nuevo objeto con la misma fecha que esta instancia y con el valor de hora establecido
en la medianoche (00:00:00).

Explicación
El valor de la propiedad P: System.DateTime.Kind del valor T: System.DateTime
devuelto es el mismo que el de la instancia actual.
Como el tipo T: System.DateTime representa fechas y horas en un solo tipo, es
importante evitar la interpretación errónea de una fecha devuelta por la propiedad P:
System.DateTime.Date como fecha y hora.

Ejemplos:
El siguiente ejemplo utiliza la propiedad P: System.DateTime.Date para extraer el
componente de fecha de un valor de T: System.DateTime con su componente de
tiempo establecido en cero (00:00:00 o medianoche). También ilustra que,
dependiendo de la cadena de formato utilizada al mostrar el valor T:
System.DateTime, el componente de tiempo puede seguir apareciendo en la salida
formateada.

using System;
public class Example
{
public static void Main()
{
DateTime date1 = new DateTime(2008, 6, 1, 7, 47, 0);
Console.WriteLine(date1.ToString());

// Get date-only portion of date, without its time.


DateTime dateOnly = date1.Date;
// Display date using short date string.
Console.WriteLine(dateOnly.ToString("d"));
// Display date using 24-hour clock.
Console.WriteLine(dateOnly.ToString("g"));
Console.WriteLine(dateOnly.ToString("MM/dd/yyyy HH:mm"));
}
}
// The example displays output like the following output:
// 6/1/2008 7:47:00 AM
// 6/1/2008
// 6/1/2008 12:00 AM
206 | P á g i n a
27.3 Creación de ventanas
Para crear un proyecto de Aplicación de Windows Forms
En la barra de menús, elija Archivo, Nuevo, Proyecto. El cuadro de diálogo debe
tener un aspecto similar al que se muestra a continuación.

1. Elija Visual C# o Visual Basic en la lista Plantillas instaladas.

2. En la lista de plantillas, elija el icono Aplicación de Windows Forms. Asigne un


nombre al nuevo formulario y, a continuación, elija el botón Aceptar.

a. El diseño exacto de la ventana depende de la versión de Visual Studio,


el lenguaje de programación utilizado y otros factores.

3. La interfaz contiene tres ventanas: una ventana principal, el Explorador de


soluciones y la ventana Propiedades.

207 | P á g i n a
Capítulo 28

Eventos

28.1 Concepto
Un evento consiste en una acción generada a partir de la interacción con una
aplicación: clic de mouse, pulsación de tecla o botón, selección de comando de un
menú, etc.

28.2 Eventos básicos


Un evento es la acción realizada sobre un objeto.
A la hora de ser ejecutada da otra instrucción, los tipos de eventos principales son:
Click
Se produce cuando se hace clic en el control.

KeyDown
Se produce cuando se presiona una tecla mientras el control tiene el foco.
KeyPress
Se produce cuando se presiona una tecla de espacio o retroceso mientras el control
tiene el foco.

MouseDown
Se produce cuando el puntero del mouse se encuentra sobre el control y se
presiona un botón del mouse.

MouseEnter Formatted: No underline


Se produce cuando el puntero del mouse entra en el control. Formatted: No underline

MouseMove Formatted: No underline


Se produce cuando el puntero del mouse se mueve sobre el control. Formatted: No underline

208 | P á g i n a
MouseUp Formatted: No underline
Se produce cuando el puntero del mouse se encuentra sobre el control y se suelta Formatted: No underline
un botón del mouse.
MouseLeave Formatted: No underline
Se produce cuando el puntero del mouse deja el control. Formatted: No underline

VisibleChanded
Se produce cuando cambia el valor de la propiedad Visible. Formatted: No underline, Spanish (Guatemala)
Formatted: No underline

Capítulo 29

Uso de controles

Los formularios Windows Forms proporcionan controles y componentes que


realizan varias funciones. Donde existen varios controles que atienden la misma
función, se muestra el control recomendado con una nota en relación con el control
al que reemplaza.

CheckBox (Control) Formatted: No underline, Spanish (Guatemala)


Formatted: No underline
Indica si una condición está activada o desactivada.

CheckedListBox(Control) Formatted: No underline, Spanish (Guatemala)


Muestra una lista de elementos con una casilla de verificación junto a cada elemento. Formatted: No underline

ComboBox(Control) Formatted: No underline, Spanish (Guatemala)


Muestra los datos en un cuadro combinado desplegable. Formatted: No underline

DataGrid(Control) Formatted: No underline, Spanish (Guatemala)


Muestra los datos tabulares de un conjunto de datos y permite actualizaciones en el origen Formatted: No underline
de datos.

DataGridView(Control)
Proporciona un sistema flexible y extensible para mostrar y editar datos tabulares.

209 | P á g i n a
DateTimePicker(Control)
Permite al usuario seleccionar un único elemento de una lista de fechas u horas.

PictureBox(Control)
Muestra gráficos en formato de mapa de bits, GIF, JPEG, metarchivo o icono.

ProgressBar(Control)
Indica gráficamente el progreso de una acción hacia su finalización.

RadioButton (Control)
Presenta un conjunto de dos o más opciones mutuamente excluyentes para el usuario.

TextBox (Control)
Permite la entrada multilínea y editable por el usuario.

Label (Control)
Muestra texto que no se puede editar el usuario.

LinkLabel (Control)
Permite agregar vínculos de estilo Web a aplicaciones de Windows Forms.

ListBox (Control)
Permite al usuario seleccionar uno o más elementos de una lista predefinida.

ListView (Control)
Muestra una lista de elementos con iconos, en la forma del explorador de Windows.

210 | P á g i n a
29.1 Text Box
El cuadro de texto se utiliza para mostrar en pantalla un texto que se puede editar,
aunque también puede configurarse como control de sólo lectura. Los cuadros de
texto pueden mostrar varios controles en forma de cuadro. Líneas, ajustar el texto al
tamaño del control y agregar varis formato.
Sintaxis:
private void InitializeMyControl() {
// Se utiliza para insertar o mostrar texto dentro de un
recuadro.
textBox1.Text = "Este es un textbox";
}

29.2 Etiquetas
La etiqueta se muestra como una descripción en respuesta a un evento o
procesamiento en tiempo de ejecución de la aplicación. Ya que el objeto etiqueta no
puede recibir modificaciones durante su ejecución, normalmente puede utilizarse
también como un contador de manera oculta o para ayudar en el acceso de otros
objetos previamente trabajados con un fin en específico.
Sintaxis:
Private void button1_Click (object sender, EvenArgs e)
{ // Se declara la variable mensaje tipo “String”.
String mensaje = “”;
mensaje = textbox1.Text;
// Se iguala la variable al contenido de la Textbox1

MessageBox.Show(mensaje,“TituloCaja”, // Mostrar en una


ventana
MessageBoxButtons.OK, //
emergente de texto
MessageBoxIcon.Hand);
}

211 | P á g i n a
 Label

 TextBox

Aplicación hecha con un formulario principal, utilizando un cuadro de texto y una


etiqueta, en donde como respuesta muestra un mensaje con el texto ingresado con
anterioridad, el cual es considerada un tipo de etiqueta de texto.
29.3 PictureBox
El control PictureBox de Windows Forms se utiliza para mostrar imágenes en formato
de mapa de bits, GIF, icono o JPEG.

Hay cinco PictureBoxSizeMode diferentes disponibles para el control PictureBox.


 AutoSize: dimensiona el cuadro de imagen en la imagen.
 CenterImage: centra la imagen en el cuadro de imagen.
 Normal: coloca la esquina superior izquierda de la imagen en la parte superior
dejó en el cuadro de imagen
 StretchImage: le permite estirar la imagen en el código
PictureBox no es un control seleccionable, lo que significa que no puede recibir el
foco de entrada. El siguiente programa C # muestra cómo cargar una imagen desde
un archivo y mostrarla en modo streach.

Ejemplo:

212 | P á g i n a
29.4 Button
Un botón es un control, que es un componente interactivo que permite a los usuarios
comunicarse con una aplicación. Se puede hacer clic en un botón utilizando el mouse,
la tecla ENTER o la barra espaciadora si el botón tiene foco.

El evento Click se levanta cuando se hace clic en el control Button.


El siguiente código fuente de C # muestra cómo cambiar el botón Propiedad de texto
durante el evento de carga de formulario y para mostrar un cuadro de mensaje al
presionar un Control de botón.

Ejemplo:

29.5 SoundPlayer
La herramienta sonido nos sirve para agregar un sonido a nuestra form.
Ejemplo
En las propiedades de nuestro programa, en recursos presionamos CTRL+4 y
agregamos nuestro archivo de audio en formato .wav.

213 | P á g i n a
29.6 ComboBox
Esta herramienta nos sirve para almacenar o insertar un conjunto de datos.

Ejemplo

29.7 ListBox
Permite seleccionar uno o varios elementos de una lista predefinida. Se diferencia
de un control DropDownList (Es la cual solo permite seleccionar un elemento de una
lista desplegable) por mostrar varios elementos a la vez y de manera opcional permite
que el usuario pueda seleccionar varios elementos.

214 | P á g i n a
Ejemplo

29.8 Calendario
Calendar muestra un calendario en el que los usuarios pueden desplazarse a
cualquier día de cualquier año, al ejecutar el control Calendar se presenta como una
tabla HTML.
Ejemplo

29.9 RadioButton
Presenta a los usuarios un conjunto de dos o más opciones exclusivamente entre sí.
Aunque puede parecer que los botones de radio y las casillas funcionan de forma
parecida, existe una diferencia importante: cuando un usuario selecciona un botón
de radio, no puede seleccionar ninguno de los otros botones de radio del mismo grupo
sin perder la selección de este botón.

215 | P á g i n a
Ejemplo

29.10 CheckBox
Indica si una condición determinada está activada o desactivada. Normalmente se
utiliza para presentar una selección Sí/No o Verdadero/Falso al usuario.

Ejemplo

216 | P á g i n a
29.11 Timer
Componente temporizador que genera una acción definido por el usuario.
Ejemplo
Iniciar un Temporizado con un Timer con la opción de iniciar y Detener

29.12 Control Panel


Permite agrupar colecciones de controles.
Ejemplo
Aplicandole Color al Panel do Control

217 | P á g i n a
29.13 Form y sus partes
El uso de aplicaciones Windows forms , los controles para diseñar Interfaces gráficas
de usuario GUI, controles como groupbox, Label, TextBox, Button, Combobox,
ListBox, Datagridview, Picturebox, RadioButton, MenuStrip, entre otros;
modificaremos las propiedades más importantes de dichos controles y
desarrollaremos una GUI Utilizando el ID Microsoft Visual Studio.
Se explica también el manejo de eventos en el lenguaje de programación C#.

Windows Form

El espacio de nombres 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.

29.14 Controles

Puntero: El puntero del mouse, al que a veces se denomina cursor, es un mapa de


bits que especifica un punto de foco en la pantalla.

Button: Pueden Mostrar en ellos iconos para que los usuarios lo identifiquen
rápidamente, esto consigue agregando imágenes al componente.

218 | P á g i n a
Checkbox: Indica si una condición determinada esta activada o desactivad.
Normalmente se utiliza para presentar una selección Si / No ó Verdadero / Falso al
usuario.

Checkedlistbox: Muestra una lista de elementos, como el control listbox y también


puede mostrar una marca de verificación a los elementos.

Combobox: Se utiliza para mostrar datos en un cuadro combinado desplegable. De


forma predeterminada.

Datetimepicker: Permite seleccionar un solo elemento de una lista de fechas y


horas. Cuando se utiliza para presentar una fecha.

Label: Se utiliza para mostrar texto en una ubicación seleccionada en la página.


También para añadir texto descriptivo.

Linklabel: Permite agregar vínculos de estilo web o aplicaciones de Windows forms


ó para todo aquellos que pueda utilizar control label.

Listbox: Muestra una lista de elementos.

Listview: Muestra una lista de elementos con iconos. Puede usar una vista de lista
para crear una interfaz de usuario similar al panel.

Maskedtextbox: Utiliza una máscara para distinguir si los datos que especifica el
usuario son apropiados o inapropiados.

219 | P á g i n a
Monthcalendar: Muestra una intuitiva interfaz gráfica de usuario para que los
usuarios vean y establezca información relativa a fechas.

Notifyicon: Muestra iconos en el área de notificaciones para procesos que se ajustan


en segundo plano.

Numericupdown: Es similar a una combinación de un cuadro de textoy un par de


flechas en las que el usuario puede hacer clic para ajustar un valor.

Picturebox: Se utiliza para mostrar graficas en formato de mapa de bits gif o icono.

Progressbar: Indica el proceso de una acción mediante la presentación de un


número adecuado de rectángulos en una barra horizontal.

Radiobutton: Presentan un conjunto de dos o más opciones excluyentes entre si


aunque puede parecer que los botones de radio y las casillas funcionan de forma
parecida. Cuando selecciona un botón de radio, no puede seleccionar ninguno de los
otros botones de radio del mismo grupo.

Richtextbox: Se utiliza para mostrar, escribir y manipular texto con formato. Hace
todo lo que hace el control textbox.

Textbox: Se utiliza generalmente para el texto que se puede editar, auqnue también
puede configurarse como control de solo lectura.

220 | P á g i n a
Tooltip: Muestra texto cuando el ususario apunta a otros controles, ejemplo: para
ahorrar espacio en un formulario.

Treeview: Puede mostrar una jerarquía de nodos a los usuarios, por ejemplo: la
forma en que los archivos y las carpetas se muestran en panel Izquierdo.

Webbrowser: Hospeda páginas web y proporciona funciones de exploración web a


la aplicación.

Flowlayoutpanel: Organiza su contenido en una dirección de flujo horizontal o


vertical. Además el contenido puede recortarse en lugar de ajustarse.

Groupbox: Se utiliza para proporcionar un agrupamiento identificable. Normalmente,


los cuadros de grupo se utilizan para subdividir un formulario para funciones.

Panel: Normalmente los paneles se utilizan para subdividir un formulario por


funciones. Es el único de los que puede tener barras de desplazamiento.

SliptContainer: Puede considerarse como una composición de dos paneles


separados por una barra móvil. El puntero cambia de forma para mostrar que se
mueve.

Tabcontrol: Muestra múltiples fichas similares a los divisores de un cuaderno o de


un conjunto de carpetas de un documento.

221 | P á g i n a
TableLayoutPanel: Organiza su contenido en una cuadricula, como el diseño se
realiza en tiempo de diseño y en tiempo de ejecución.

ContextMenuStrip: Representa un menú contextual.

MenuStrip: Este control agrupa comandos de la aplicación y hace que sean mas
fácilmente accesible.

StatusStrip: Se utiliza en los formularios como un área, que habitualmente se


muestra en la parte inferior de una ventana.

ToolStrip: Son barras de herramientas que pueden contener menús y controles de


usuarios en aplicaciones de Windows forms.

ToolScripContainer: Tiene paneles en sus laterales izquierdo, derecho, superior o


inferior para cobrar y compartir el espacio de los controles toolstrip.

Capítulo 30

Métodos

Un método es un bloque de código que contiene una serie de instrucciones. Un


método es una acción que un objeto puede realizar. El acceso a los miembros de un
objeto se realiza siempre utilizando la notación punto “.”.

222 | P á g i n a
Ejemplo:
Realizaremos un ejemplo de un método del objeto listbox para poder contar los
elementos que contiene.

Utilizamos el método .items para verificar los elementos y luego .count para contarlos.

30.1 Tipo de valor de retorno


Es un fragmento de código que recibe valores de entrada y a partir de ellos devuelve un
valor de salida.

223 | P á g i n a
Ejemplo
Realizaremos un ejemplo donde se sumen dos valores y luego nos devuelva el
resultado.

Para realizar esta función utilizaremos el valor de retorno “return” que nos servirá
para devolver el resultado de la suma.

Como podemos observar al dar clic en el botón aceptar nos visualiza en el label el
valor devuelto del resultado de la suma de los dos valeres.

224 | P á g i n a
30.2 Variables Globales
1. Manejar variables globales, estas pueden ser usadas desde cualquier parte del
sistema, la única manera que he encontrado es trabajando con el archivo app.xml
que tiene el proyecto, hay alguna otra manera por ejemplo en Visual Basic que existe
MODULEO para acceder a variables globales.

2. Manejar Métodos globales, estos métodos también serán usados desde cualquier
punto del proyecto, es decir hay manera de evitar instanciar cada que trabaje con
diferentes cosas. Al igual que en Visual Basic en el MODULO se puede acceder
directamente en este caso a una función para trabajarla en todo el entorno.

public class Example


{
public static void Main()
{
// Llama a una variable entero
int num = 4;
int productA = Square(num);

// Llama literales tipo entero


int productB = Square(12);

// Llama con una expresión para las variables tipo entero


int productC = Square(productA * 3);
}
static int Square(int i)
{
// Store input argument in a local variable.
int input = i;
return input * input;
}
}
225 | P á g i n a
30.3 Parámetros
Como se muestra en el fragmento de código anterior, para pasar argumentos a un
método simplemente hay que proporcionarlos entre paréntesis cuando se llama al
método. En el método al que se llama, los argumentos de entrada se
denominan parámetros.
Los parámetros que un método recibe también se proporcionan entre paréntesis,
pero se debe especificar el tipo y nombre de cada parámetro. El nombre no tiene por
qué ser igual que el argumento.

Por ejemplo:

C#
public static void PassesInteger()
{
int fortyFour = 44;
TakesInteger(fortyFour);
}
static void TakesInteger(int i)
{
i = 33;
}

Aquí un método denominado PassesInteger pasa un argumento a un método


denominado TakesInteger. En PassesInteger el argumento se denomina fortyFour,
pero en TakeInteger es un parámetro denominado i. Este parámetro sólo existe
dentro del método TakesInteger. Otras variables también pueden denominarse i y
pueden ser de cualquier tipo, siempre y cuando no sean parámetros o variables
declaradas en ese método.
Observe que TakesInteger asigna un nuevo valor al argumento proporcionado. Se
podría esperar que este cambio se reflejara en el método PassesInteger una vez
que TakeInteger devuelve un valor, pero de hecho, el valor de la variable fortyFour se
mantiene sin cambios.

C#
public class SampleRefType
{
public int value;
}

Ahora, si un objeto basado en este tipo se pasa a un método, se pasará por


referencia.

226 | P á g i n a
Ejemplo
C#
public static void TestRefType()
{
SampleRefType rt = new SampleRefType();
rt.value = 44;
ModifyObject(rt);
System.Console.WriteLine(rt.value);
}
static void ModifyObject(SampleRefType obj)
{
obj.value = 33;
}

Capítulo 31

Access y conexiones a C#

31.1 Introduccion a Access


Es un programa para crear y manejar bases de datos.
Cada página es una "tabla", en la que cada columna es un "campo", las tablas de la
guía están ordenadas, o "indexadas", siguiendo el orden alfabético por el campo
apellido. Es decir que el campo apellido es la "clave" de la tabla.
Pero existen otras formas de "indexar" la tabla, por ejemplo a través
del "campo" dirección, en este caso estaríamos ante un callejero, es decir sabríamos
los nombres e todas las personas que viven en cada calle y sus números de
teléfonos. O también podría ordenarse por el "campo" número de teléfono, este tipo
de guías se llaman "guías inversas".

227 | P á g i n a
31.2 Creación de una tabla
Se elige la opción "crear tabla en vista de diseño".

Surgirá la ventana de diseño de tabla


En ella hay varias partes que iremos descubriendo según vayamos necesitándolas…
Por ahora nos basta saber que en la parte superior es donde definiremos las
características básicas de los campos.

En la inferior izquierda podremos concretar más sus características según vayamos


definiendo la columna "tipo de datos".
Y por último en la parte inferior derecha Access nos ayudara contextualmente sobre
los datos relativos a los campos que vamos a diseñar.
Vamos a empezar por diseñar nuestra base de datos en la columna de Nombre de
campo introduciremos el nombre que queramos para identificar cada "campo" de
nuestra tabla.

228 | P á g i n a
31.3 Añadir Campos
Según vayamos introduciendo los nombres en la columna al salir de cada celda, ya
sea con la tecla return, con los cursores o con el ratón, veremos como en la celda
contigua de la columna “tipo de dato" aparece por si solo la palabra "texto".
Si nos situamos de nuevo en cualquiera de los campos que acabamos de crear
veremos cómo la zona inferior muestra los siguientes datos que corresponde a las
propiedades del campo y un texto que nos explica algo sobre las características que
nos pueden ayudar. En estas características hay ciertos valores predefinidos.

229 | P á g i n a
31.3.1 Propiedades de los campos
Hay varias propiedades más; algunas en blanco como "Titulo" y otras con valores
predefinidos, como "Requerido" que tiene el valor "No".
En la segunda columna "Tipo de datos", se nos ha definido por defecto todos los
campos como "Texto". Pero si pulsamos sobre alguno de ellos vemos como se
despliega una cortina con diversas opciones como numérico, Fecha/hora, moneda,
auto numérico, etc.

Vamos a seleccionar "Texto" para los cuatro primeros campos. Para CP elegiremos
"Numérico" y le pondremos una "tamaño de campo" de 5 caracteres y paro el campo
Nº de teléfono también elegiremos "Numéricos", y en "tamaño de campo" pondremos
9 caracteres.

31.4 Añadir descripción a una tabla


La función de cada campo es evidente con solo leer su título, pero es posible que
alguna vez el nombre del campo no sea tan significativo. Por ejemplo, la función de
nuestro campo "Relación Laboral", es algo confusa, de él solo sabemos que es un
campo lógico "Si/No", pero eso nos aporta poca información. Para tener más
información tenemos la tercera columna, esta aporta una descripción en nuestra
230 | P á g i n a
tabla, para recordar porque la pusimos allí, por ejemplo, una descripción de la función
de cada campo.

31.5 Modificaciones dentro de la tabla

Podemos modificar la estructura de las tablas fácilmente eliminado un campo,


insertando otro, moviéndolo y por supuesto modificar el contenido de cada fila.
Por ejemplo: Borremos el campo "Relación laboral" y añadamos el campo "Notas",
que será un campo "Memo", que al contrario de lo que sugiere su nombre, no es un
campo tonto, sino muy útil que puede almacenar nuestras notas sobre cada registro
Primero borremos el campo "Relación Laboral", el nombre técnico de la operación es
eliminar el campo, hay dos formas de hacerlo, el primer paso es común, pulsaremos
en el selector de fila para seleccionarlo.
Y para borrarlo pulsaremos la tecla "Supr" o seleccionaremos la acción "Eliminar filas"
del menú "Edición", al que accederemos pulsando el botón derecho del ratón.

Para añadir el campo "Notas", lo haremos como siempre, situándonos en


una fila en blanco e introduciendo los datos tal como hemos aprendido
anteriormente.

231 | P á g i n a
31.6 Como modificar las estructuras de las tablas
En la columna descripción añadiremos la información necesaria que sirva para
comprender el motivo del campo.

Hemos creado el campo "Notas" al final de la tabla, pero podíamos haberlo creado
en cualquier otra posición, por ejemplo entre los apellidos y la dirección, simplemente
eligiendo la opción "insertar fila" del menú edición, que activamos con el botón
derecho del ratón, tras situar el puntero en la fila correspondiente.

Access insertará una fila en blanco encima de la fila seleccionada, o si somos


indecisos podemos probar con distintas combinaciones moviendo los campos tantas
veces como queramos simplemente haciendo clic sobre el selector y arrastrándolo a
la posición deseada.

232 | P á g i n a
Capítulo 32

Conexión de C# a Base de Datos en Access

32.1 Sin Utilizar Origen de Datos


Lo primero que debemos hacer es añadir la referencia a “System.Data.OleDb” que
nos permite trabajar con base de datos access.
Declaramos una variable String que contendrá la dirección de nuestra base de datos.
Declaramos nuestra cadena de conexión “Microsoft.Jet.OLEDB.4.0” y se completa la
cadena con la base de datos con la que queremos trabajar.

233 | P á g i n a
Abrimos un Try/Catch (excepción) para manejar los problemas que pudiéramos tener;
Abrimos una conexión a la base de datos Access mostramos un mensaje de éxito y
se pueda cerrar la conexión.
Si ocurriera algún problema lo mostramos en pantalla
Ejecuta y tendremos:

234 | P á g i n a
Una vez que se verifica que la conexión funciona (a través del try/Catch) se obtendrán
los primeros resultados de la conexión, en este caso el mensaje.

235 | P á g i n a
32.2 Utilizando Origen de Datos
Primero Debemos colocar el origen de Datos, agregando estos, ya sea con la
combinación Mayús+Alt+D o manualmente desde la pestaña VER->Otras Ventanas-
>Orígenes de Datos.
Después de definir la conexión, los datos aparecen en una ventana. Desde esta
ventana, se puede arrastrar las tablas o vistas a los formularios.

Acá se realiza la conexión desde orígenes de datos

236 | P á g i n a
Pestaña de Orígenes de datos desde donde se puede llamar la información de las
vistas o tablas de la BD

237 | P á g i n a
Se Mandan a llamar los datos para mostrar dentro del formulario. Y acá pueden ser
editados de igual manera que en la base Access.

32.2.1 Insertar datos en una tabla

238 | P á g i n a
Como podemos ver en este ejemplo, la sintaxis para insertar datos es la siguiente:
Nuestra consulta será almacenada en una variable de tipo String
Abriremos comillas dobles
Escribiremos INSERT INTO
Luego de esto colocamos el nombre de nuestra tabla (no campo)
Abrimos paréntesis y colocamos los campos a llenar, separados por una coma
Luego de esto escribimos la palabra clave VALUES
Abrimos nuevamente paréntesis
Y ojo acá llamaremos los datos a insertar
La sintaxis es la siguiente:
Si se insertara texto debemos abrir de esta manera ‘”
Concatenamos con nuestra variable
En este caso sería: VALUES (‘” + datos + ’”)
En caso de que queramos insertar números:
Se omite la comilla simple al inicio y final
Sería de esta manera: VALUES (” + datos + ”)

Y nuestra cadena quedaría


INSERT INTO Tabla(Campo1, Campo2)VALUES(‘” + VARIABLE1 + ’”,” VARIABLE2+
“);

239 | P á g i n a
32.2.2 Actualizar datos

Nuestra consulta será almacenada en una variable de tipo String


Abriremos comillas dobles
Escribiremos la palabra clave UPDATE
Luego de esto colocamos el nombre de nuestra tabla (no campo)
Escribiremos la palabra clave SET
Colocamos el campo a actualizar añadiéndole el signo =
Luego de esto escribimos el nuevo valor
Abriendo de esta manera ’” si es texto y “si es número
Luego concatenamos con los nuevos datos +DATOS+
Cerramos de esta manera “’
Luego para saber en qué fila actualizar, colocamos la palabre clave WHERE
Colocamos el nombre del campo con el que buscaremos
Colocamos el signo igual
Ahora escribimos el dato a buscar
De igual manera, si es texto encerrado en ‘” y si son números en”
Y nuestra cadena quedaría

240 | P á g i n a
UPDATE NombreTabla SET CAMPOaActualizar = ‘” +nuevovalor+ ”’ WHERE
CAMPOaBUSCAR = ‘” +valorAbuscar+ ”’

Capítulo 33

Diagramas de componentes

33.1 UML
.
En Visual Studio, un diagrama de componentes muestra los elementos de un diseño
de un sistema de software. Un diagrama de componentes permite visualizar la
estructura de alto nivel del sistema y el comportamiento del servicio que estos
componentes proporcionan y usan a través de interfaces. Para crear un diagrama de
componentes UML, en el menú Arquitectura, haga clic en Nuevo diagrama UML o de
capas.
Para ver qué versiones de Visual Studio admiten esta característica,
vea Compatibilidad de versiones con las herramientas de arquitectura y modelado.
Puede usar un diagrama de componentes para describir un diseño que está
implementado en cualquier idioma o estilo. Los componentes pueden ser de cualquier
escala y pueden estar interconectados de cualquier manera.
.
33.1.1 Lectura de diagramas de componentes
En la tabla siguiente se describen los elementos que puede usar en un diagrama de
componentes, junto con sus propiedades principales.

241 | P á g i n a
Forma Elemento Descripción y propiedades principales

1 Componente Un fragmento reutilizable de funcionalidad del


sistema.

2 Puerto de la Representa un grupo de mensajes o llamadas que


interfaz implementa un componente y que pueden usar otros
proporcionada componentes o sistemas externos.

3 Puerto de la El componente está diseñado para acoplarse a


interfaz necesaria componentes que proporcionan al menos estas
operaciones.

4 Dependencia Las dependencias también se pueden usar de


manera más general entre los elementos del modelo
para mostrar que el diseño de uno depende del
diseño del otro.

5 Parte Para crear un elemento de un tipo de componente


existente, arrastre el componente desde el
Explorador de modelos UML hasta el componente
propietario.

6 Part Assembly Los elementos conectados deben tener el mismo


componente primario.

7 Delegación Vincula un puerto a una interfaz de uno de los


elementos del componente. Indica que los mensajes
enviados al componente son administrados por el

242 | P á g i n a
Forma Elemento Descripción y propiedades principales

elemento o que los mensajes enviados desde el


elemento se envían desde el componente primario.

8 Generalización Indica que un componente hereda de otro


componente. Los elementos y las interfaces se
heredan.

9 Control Contraer Úselo para mostrar u ocultar los elementos internos


o expandir de un componente.

10 Comentario Puede vincular un comentario a cualquier número de


elementos del diagrama mediante la
herramienta Conector.

243 | P á g i n a
Ejemplo de un dagrama UML

Capítulo 34

Programación básica V.B (consola) Nivel 1

34.1 Definiciones e historia

B.A.S.I.C. significa: Beginner’s All-purpose Symbolic Instruction Code, traduciendo


esto sería: Código de instrucciones de uso universal para principiantes. Basic es un
lenguage de programación que actúa como un intermediario entre el operador y el
computador. Mediante el vocabulario y las reglas Basic, se le ordena al computador
lo que se quiere que haga y el PC transforma estas instrucciones para poder
ejecutarlas.

BASIC es un lenguaje de programación desarrollado por los estadounidenses John


Kemeny y Thomas Kurtz en el Dartmouth College. La versión original del lenguaje
Basic fue creada en el año 1964, ganándose una enorme popularidad gracias sobre
todo a dos implementaciones, Tiny BASIC y Microsoft BASIC, que convirtieron a este
lenguaje en la primera lengua franca de los microordenadores. Otras importantes
implementaciones han sido CBASIC (BASIC Compilado), Integer y Applesoft BASIC
(para el Apple II), GW-BASIC (para computadoras personales), Turbo BASIC (de
Borland) y Microsoft QuickBASIC. El lenguaje ha cambiado en el transcurso de los

244 | P á g i n a
años pues nació con el objetivo de servir como lenguaje para aquellas personas que
deseaban introducirse por primera vez en el mundo de la programación, y luego fue
sufriendo modificaciones, hasta que en 1978 se estableció el Basic estándar.
Más adelante, en 1987, llegó una de las versiones más populares del lenguaje: el
viejo y querido QuickBasic, una joya de oro de los tiempos del MS-DOS. Las primeras
versiones eran interpretadas y no estructuradas. Las más recientes son estructuradas
y, a menudo, compiladas. En esos tiempos, BASIC solía enseñarse a los
programadores principiantes porque era “fácil” de utilizar y de comprender, y además
porque contiene los mismos conceptos fundamentales que muchos otros lenguajes
considerados más “difíciles”, como Pascal, C y COBOL, las cuales a su vez, eran
muy populares entre los programadores, mientras que había una especie de
desprecio hacia Basic, por tratarse de un lenguaje “para principiantes”.
Cuando aún no había pasado un año de su salida inicial al mercado, Visual Basic ya
había evolucionado rápidamente a un kit desarrollador altamente estratégico.
Microsoft había comenzado a utilizar Visual Basic internamente en algunos de sus
propios proyectos que estaba desarrollando. A medida que la demanda de Visual
Basic aumentaba, quedaba claro que los desarrolladores requerirían un Visual Basic
mejor y más capacitado. Para tratar a esta necesidad creciente, Microsoft anunció la
disponibilidad de Visual Basic 2.0 en noviembre de 1992. La segunda versión de
Visual Basic, distribuida en la edición estándar y profesional, proveía a los
desarrolladores un funcionamiento perceptiblemente mejorado y mayor capacidad
para crear aplicaciones de tamaño mayor y más sofisticadas. Incluía también una
ayuda para mejorar la puesta a punto y depuración, proveía de la capacidad de
conectarse a bases de datos mediante ODBC, y nuevas y productivas herramientas,
por ejemplo, la ventana de propiedades, sintaxis del código en color, y completo
soporte para un Interfaz de Múltiples Documentos (MDI).

245 | P á g i n a
34.2 Variables
Las variables son usadas dentro de ámbitos, el ámbito indica en qué lugar de la
aplicación desea utilizar la variable.

34.3 Constantes
Es un elemento con un nombre determinado que mantiene un valor constante
durante el desarrollo de todo el programa el cual no se puede cambiar. Las
constantes se definen con la instrucción “Constante”.
La definición de las constantes puede empezar con las palabras “Publica” o
“Privada”. Para que sean públicas o privadas. Por defecto son privadas.

246 | P á g i n a
34.4 Tipos de dato primitivo
Asignaciones de literales:
Los datos primitivos son los string ,number,bollean,null,doublé,integer etc.. que
podemos usar en nuestros programas
Aquí hay un pequeño ejemplo como se usan los tipos de dato primitivo:
Ejemplo

Capítulo 35

Operadores aritméticos

35.1 Suma, resta, multiplicación, división y residuo


Los operadores aritméticos se utilizan para realizar muchas de las operaciones
aritméticas conocidas que implican el cálculo de valores numéricos representados
por literales, variables, otras expresiones, llamadas a función y propiedad, y
constantes. También se clasifican con operadores aritméticos los operadores de
desplazamiento de bits, que actúan al nivel de los bits individuales de los operandos
y desplazan sus patrones de bits hacia la izquierda o hacia la derecha.

Aquí podemos ver en este ejemplo como implementar en VB la suma, resta,


multiplicación, división y residuo.

247 | P á g i n a
1.

Con ese mismo código les puede mostrar las operaciones que quiere que salga.
Sub Main()
Dim a, b, c, d, e, f As Integer
Dim g As String
Console.WriteLine("ingrese un numero")
a = Console.ReadLine
Console.WriteLine("ingrese un numero")
b = Console.ReadLine
Console.WriteLine("ingrese el simbolo de operacion
realizada(+ - * /)")
g = Console.ReadLine
c = a + b
d = a - b
e = a * b
f = a / b
If g = "+" Then
Console.WriteLine("el resultado es" & c)
ElseIf g = "-" Then
Console.WriteLine("el resultado es " & d)
ElseIf g = "*" Then
Console.WriteLine("el resultado es " & e)
Else
Console.WriteLine("el resultado es " & f)

End If
Console.ReadLine()
End Sub

248 | P á g i n a
Capítulo 36

Operadores de igualdad y relacionales


36.1 Menor que:
Ejemplo:
Ingresar dos números y mostrar quien de los dos es mayor
Indicación: en este código lo que ingresamos es dos variables para que nos permita
leer los dos números que vamos a ingresar y le colocamos un signo operativo para
que nos permita realizar lo que le pedimos

249 | P á g i n a
36.2 Mayor que

Ejemplo:
Ingrese dos números indicando cual es el mayor
Indicación:
Indicamos tres variables dos para indicar el valor de los números, la tercera variable
ella nos permitirá colocar la indicación o la operación que deseamos realizar que
sería indicar cuál de los dos números es mayor que: a y b.

250 | P á g i n a
36.3 Mayor o igual que

Ejemplo:
Ingresar dos variables e indicar cuál de las dos es mayor o que.
Indicación: ya teniendo las tres variables ingresadas la otra la utilizaremos para la
operación o indicación que desean realizar que por este momento será que se
ingresaran dos números enteros y nos indicaran cuál de los dos es mayor o es igual

251 | P á g i n a
36.4 Igualdad

Ejemplo:
Ingresar dos variables e indicar si son iguales
Indicación: Utilizamos el console.writeline para mostrar un texto por pantalla
Con b=console.readline() le indicamos que lea el valor de la variable, nos mostrara
por pantalla si las dos variables son iguales.

252 | P á g i n a
36.5 Son desiguales

Ejemplo:
Ingresar dos número e indicar si son desiguales
Indicación:
Ya ingresadas las dos variables por teclado, la tercera variable le hemos indicado
que si a<>b son desiguales, si esta condición se cumple nos mostrara un mensaje
de texto en la pantalla, pero si no se cumple no mostrara nada

253 | P á g i n a
36.6 Menor o igual que

Ejemplo:
Ingrese dos números e indicar quien es el menor o igual
Indicación:
Ya ingresadas las tres variables es momento de validarlas que se utiliza
console.readline que nos permite ingresar por teclado el valor de las dos variables,
ya ingresadas podemos ver que nos mostrara las variables en pantalla, la tercera
variable colocamos la operación o lo que deseamos que realice que será que nos
muestre el menor o igual valor .

254 | P á g i n a
Capítulo 37

Estructuras de Condición

Las estructuras condicionales nos permiten ejecutar una serie de instrucciones si


cumple una condición que nosotros le indiquemos.

37.1 If simple
Le indicamos una condición si esta es verdadera se ejecuta, de lo contrario no
ejecutará la condición.

Ejemplo:

37.2 if – else
Le indicamos una condición si esta es verdadera se ejecuta, de lo contrario ejecutará
la siguiente condición. Es decir que tenemos actividades por verdadero y falso.

Por ejemplo:

255 | P á g i n a
37.3 if -elseif:
Permite, que si no se cumple la condición podamos indicar otra condición para
hacerlo aún más específico.
Ejemplo

37.4 Select Case


La estructura condicional Select Case reemplaza en algunos casos un conjunto de if.

Ejemplo:

256 | P á g i n a
Capítulo 38

Ciclos repetitivos

38.1 While
Es un ciclo repetitivo que puede ser utilizada cunado se desea repetir un conjunto
de declaraciones, un número indefinido de veces. La forma de declarar dicha
estructura es la siguiente:
While 1 “condición”

“Sintaxis demás instrucciones”


End While
*El numero 1 a la par de la sentencia while es utilizado para indicar que while está
siendo utilizado en caso de que esta estructura sea utilizada más de una vez.
Ejemplo:

38.2 Do while
Los ciclos repetitivos do-while son una estructura de control cíclica, los cuales
permiten ejecutar una o varias líneas de código hasta el momento en el que llega a
su tope.
La forma de declarar dicha estructura es la siguiente:
Do While variable = 5 “condición”

“Sintaxis demás instrucciones”

Loop “cierre de la estructura”


257 | P á g i n a
*La condición indica que el ciclo se detendrá hasta que la variable que este
utilizando su valor sea igual a 5 o que se ha repetido 5 veces.
Ejemplo:

38.3 For
La condición FOR es un bucle de repetición. El bucle FOR repite un grupo de
instrucciones un número especificado de veces.

Sintaxis:

For “variable” as integer = inicio To final


{Sentencias}
Next
ReadLine()

Ejemplo:

258 | P á g i n a
En el ejemplo podemos ver como se le pide al usuario ingresar un número, y este
será multiplicado del 1 al 10 utilizando el ciclo de repetición for.

38.4 Switch

La sentencia switch también es conocida como Select Case, esta sentencia es un


bucle de repetición que se utiliza mayormente para hacer menus en aplicación de
consola.

Sintaxis:
Select Case “variable”
Case “caso 1”
{Sentencia}
Case “caso 2”
{sentencia}
Case “caso n”
{sentencia}
End Select
ReadLine()

Ejemplo:

En este ejemplo podemos ver como se le pide un número al usuario, para que este
lo lleve a una de las opciones del Select Case.

259 | P á g i n a
Capítulo 39

Operadores Lógicos
Los operadores lógicos pueden crear condiciones compuestas en una fórmula, como
que se deben cumplir dos o más condiciones para elegir un determinado método de
cálculo. Con los operadores lógicos, puede describir estas combinaciones de
condiciones.

39.1 And
El operador lógico AND se utiliza en condiciones y su función es mostrar el
resultado si ambas expresiones son verdaderas o se cumplen.
Ejemplo:
Confeccionar un programa que permita el ingreso de 2 números, si ambos son
mayores a 10 que se muestre un mensaje.

En este ejemplo se puede observar que se tienen que cumplir las dos condiciones
para que se pueda mostrar el mensaje, de lo contrario no se mostraría nada.

39.2 Or
El operador lógico OR muestra el resultado de una condición si por lo menos una
expresión se cumple.

260 | P á g i n a
Ejemplo: Confeccionar un programa que permita el ingreso de 2 números, mostrar
un mensaje si a=10 o si b=20

En este ejemplo podemos observar que la condición si se cumple aunque solo una
expresión sea correcta como es la de b=15

39.4 Not
Revierte un valor true a false
Ejemplo:

Confeccionar un programa donde se pida una edad y mostrar si es mayor de edad

Como se puede ver en el ejemplo, al agregar el operador not a la condición, esta


cambia revirtiendo el mayor a menor, lo que permite que muestre el mensaje de al
ingresar el número 15.
261 | P á g i n a
Capítulo 40

Manejo de Cadenas

40.1 Creación de cadenas


Para poder crear una cadena se necesitan caracteres Unicode (Letras, Números,
Algunos Símbolos). Una cadena puede contener de 0 hasta 2000 Millones de
caracteres, este puede funcionar en distintos entornos de programación, aunque en
el caso del modo consola funciona con una sintaxis un tanto especial anteponiendo
la palabra Console. esto dará orden al lenguaje de programación de mostrar o
guardar la información que se muestre el proceso de creación de una cadena no es
nada del otro mundo.
Ejemplo:
Module Modulo1
Sub Main {}
Console.WriteLine(“Aplicaciones en Consola de Visual
Basic”)
Console.Write(“Hola”)
Dim abc As String
Console.WriteLine(“Este texto se mostrara en la línea
anterior”)
abc=Console.ReadLine()
Console.WriteLine(abc)
Console.Read()
End Sub
End Module

262 | P á g i n a
40.2 Búsqueda de Cadenas
Para realizar una búsqueda se emplea el método IndexOf el cual es el encargado de
realizar la búsqueda, En este ejemplo se utilizaran 3 variables para realizar una
simple búsqueda.

Ejemplo:
Module Example
Public Sub Main()

Dim CONTENIDO_DONDE_SE_BUSCARA As String = "ABCDEFGHIJ"


Dim PALABRA_QUE_SE_BUSCARA As String = "F"
Dim METODO_INDEXOF As String =
CONTENIDO_DONDE_SE_BUSCARA.IndexOf(PALABRA_QUE_SE_BUSCARA)

End Sub
End Module

263 | P á g i n a
40.3 Concatenación de Cadenas
La concatenación en las cadenas no es algo del otro mundo y se usa muy a menudo,
este tiene por objetivo el unir diversas cadenas una tras otra utilizando los símbolos
(+, &). Estos símbolos están hechos para utilizarse en diferentes casos, el símbolo
“&” está hecho para usarse únicamente en Cadenas, mientras que el símbolo “+” está
hecho para utilizarse con Cadenas y Números aunque tiende a dar errores cuando
no está bien declarado ya que a veces se interpreta como una suma lo cual es ilógico.

Module Example
Public Sub Main()
Dim EJEMPLO_CADENA As String = "abc"
Dim EJEMPLO_CADENA2 As String = "def"
Dim EJEMPLO_NUMEROS As String = "123"
Dim CONCATENACION_CADENA_SIGNO_& As String = EJEMPLO_CADENA &
EJEMPLO_CADENA2
Dim CONCATENACION_CADENA_SIGNO_+ As String = EJEMPLO_CADENA +
EJEMPLO_NUMEROS
End Sub
End Module

264 | P á g i n a

Вам также может понравиться