Sie sind auf Seite 1von 251

FUNDAMENTOS

DE CIENCIAS
D E L A C O M P U TA C I N

F l i x A r m a n d o Fe r m
C s a r Lu z a M o n
C h r i s t i a n A l m g u e r
R a l D a z Ro j

n P r e z
t e r o
M a r t n e z
a s

Fundamentos
de Ciencias
de la
Computacin

F l i x A r m a n d o Fe r m
C s a r Lu z a M o n
C h r i s t i a n A l m g u e r
R a l D a z Ro j

n P r e z
t e r o
M a r t n e z
a s

FICHA TCNICA
Ttulo:

Autor:



Categora:
Cdigo:
Edicin:
Formato:
Impresin:
Soporte:
Interiores:
Publicado:

Fundamentos de Ciencias
de la Computacin
Flix Armando Fermn Prez,
Csar Luza Montero,
Christian Almguer Martnez,
Ral Daz Rojas
Cuadernos
CU/376-2016
Fondo Editorial de la UIGV
170 mm. X 245 mm. 251 pp.
Offsett y encuadernacin en rstica
Cubierta: folcote calibre 14
Bond alisado de 75 g.
Lima, Per. Abril del 2016

Universidad Inca Garcilaso de la Vega


Rector: Luis Cervantes Lin
Vicerrector Acadmico: Jorge Lazo Manrique
Vicerrector de Investigacin y Posgrado: Juan Carlos Crdova Palacios
Jefe del Fondo Editorial: Fernando Hurtado Ganoza

Universidad Inca Garcilaso de la Vega



Av. Arequipa 1841 - Lince | Telf.: 471-1919
www.uigv.edu.pe

Fondo Editorial de la Universidad Inca Garcilaso de la Vega

Jr. Luis N. Senz 557 - Jess Mara | Telf.: 461-2745 | Anexo: 3712

Estos textos de educacin a distancia estn en proceso de revisin y adecuacin a los estndares internacionales de notacin
y referencia.
Hecho el Depsito Legal en la Biblioteca Nacional del Per N 2016-04680

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

NDICE
Presentacin.................................................................................................... 11
Introduccin.................................................................................................... 13
Orientaciones metodolgicas.............................................................................. 15

PRIMERA UNIDAD

La computacin y la disciplina de sistemas de informacin............................ 17


Leccin 1
La computacin y solucin de problemas computacionales..................................... 19
1.1. La computacin, su historia e importancia en la sociedad................................ 19
1.1.1. Computacin.................................................................................... 19
1.1.2. Computadora................................................................................... 20
1.1.3. Historia de la computacin................................................................. 22
1.1.4. Tipos de computadoras modernas....................................................... 25
1.1.5. La computacin en la sociedad........................................................... 27
1.2. Los problemas computacionales, el rol de los algoritmos y la abstraccin........... 28
1.2.1. Definicin de problema computacional................................................. 28
1.2.2. El rol de los algoritmos...................................................................... 29
1.2.3. La abstraccin.................................................................................. 30
Leccin 2
La computadora y el sistema de cmputo............................................................ 33
2.1. El hardware............................................................................................... 34
2.1.1. El procesador................................................................................... 34
2.1.2. Memoria.......................................................................................... 34
2.1.3. Dispositivo de entrada-salida.............................................................. 35
2.1.4. Dispositivo de almacenamiento........................................................... 35
2.2. El software................................................................................................ 35
2.2.1. Software del sistema......................................................................... 36
2.2.2. Software de aplicaciones.................................................................... 36
2.3. Los datos y los usuarios.............................................................................. 36
z5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

2.4. Ciclo de procesamiento de la informacin...................................................... 37


2.5. El ciclo de instruccin................................................................................. 38
2.5.1 Ciclo de bsqueda.............................................................................. 38
2.5.2. Ciclo de ejecucin............................................................................. 39
Leccin 3
La disciplina de sistemas de informacin.............................................................. 41
3.1. Disciplinas de la computacin...................................................................... 41
3.1.1. Computer Engineering (Ingeniera de Computadoras)............................ 42
3.1.2. Computer Science (Ciencia de la Computacin)..................................... 42
3.1.3. Information Systems (Sistemas de Informacin)................................... 43
3.1.4. Information Technnology (Tecnologa de Informacin)............................ 43
3.1.5. Software Engineering (Ingeniera de Software)..................................... 44
3.2. Organizaciones internacionales en computacin............................................. 45
3.2.1. ACM (Association for Computing Machinery)......................................... 45
3.2.2. IEEE Computer Society...................................................................... 45
3.2.3. AIS (Association for Information System)............................................. 45
3.3. Organizaciones nacionales en computacin.................................................... 45
3.3.1. APESOFT (Asociacin Peruana de Productores de Software).................... 45
3.3.2. ONGEI (Oficina Nacional de Gobierno Electrnico e Informtica).............. 46
3.4. La disciplina de sistemas de informacin....................................................... 46
Resumen......................................................................................................... 49
Texto para comentar......................................................................................... 50
Autoevaluacin N 1......................................................................................... 52
Exploracin online............................................................................................ 53
Bibliografa...................................................................................................... 53

SEGUNDA UNIDAD

Almacenamiento de datos y manipulacin de datos....................................... 55


Leccin 4
Almacenamiento de datos.................................................................................. 57
4.1. Bits y su almacenamiento........................................................................... 57
4.1.1. Operaciones booleanas...................................................................... 58
4.1.2. Compuertas y Flip-Flops.................................................................... 59
4.1.3. Notacin hexadecimal........................................................................ 61
4.2. Memoria principal....................................................................................... 62
4.2.1. Organizacin de la memoria............................................................... 62
4.2.2. Capacidad de memoria...................................................................... 64
4.3. Almacenamiento masivo............................................................................. 64
4.3.1. Sistemas magnticos......................................................................... 65
4.3.2. Sistemas pticos............................................................................... 65
4.3.3. Memoria flash.................................................................................. 66
4.4. Representacin de la informacin en bits....................................................... 66
4.4.1. Texto.............................................................................................. 66
4.4.2. Nmeros......................................................................................... 67
z6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

4.4.3. Imgenes........................................................................................ 67
4.4.4. Sonido............................................................................................ 67
4.5. El sistema binario...................................................................................... 67
4.5.1. Notacin binaria............................................................................... 68
4.6. Almacenamiento de enteros y fracciones....................................................... 68
4.6.1. Notacin en complemento a dos......................................................... 69
4.6.2. Notacin en exceso a un nmero........................................................ 69
4.6.3. Almacenamiento de fracciones............................................................ 70
Leccin 5
Manipulacin de datos....................................................................................... 71
5.1. La computadora y sus componentes............................................................. 71
5.1.1. Componentes de una computadora..................................................... 72
5.2. Lenguaje de mquina y ejecucin de un programa.......................................... 78
5.2.1. Ejecucin de un programa.................................................................. 78
5.3. Instrucciones aritmticas y lgicas............................................................... 82
5.3.1. Operaciones de desplazamiento y rotacin de bits................................. 82
5.4. Comunicacin con otros dispositivos............................................................. 83
Resumen......................................................................................................... 84
Texto para comentar......................................................................................... 87
Autoevaluacin N 2......................................................................................... 89
Exploracin online............................................................................................ 89
Referencias bibliogrficas.................................................................................. 90

TERCERA UNIDAD

Introduccin a redes e Internet y sistema de base de datos.......................... 91


Leccin 6
Introduccin a sistemas operativos..................................................................... 93
6.1. Definicin................................................................................................. 93
6.2. Evolucin.................................................................................................. 94
6.2.1. Sistemas por lotes............................................................................ 94
6.2.2. Sistemas de tiempo compartido.......................................................... 95
6.2.3. Sistemas personales, paralelos y distribuidos........................................ 95
Introduccin a las Redes de Comunicacin e Internet............................................ 96
6.3. Redes de Comunicacin.............................................................................. 96
6.3.1. Concepto......................................................................................... 96
6.3.2. Clasificacin..................................................................................... 97
6.3.2.1. Distribucin geogrfica.......................................................... 97
6.3.2.2. Restriccin de acceso............................................................ 98
6.3.3. Canales de comunicacin................................................................... 98
6.3.4. Redes locales................................................................................... 99
6.3.4.1. Topologas............................................................................ 99
6.4. Internet.................................................................................................. 101
6.4.1. Concepto....................................................................................... 101
z7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

6.4.2. El Modelo TCP/IP............................................................................ 102


6.4.2.1. Protocolos de la capa de aplicacin........................................ 104
A. FTP............................................................................... 104
B. SSH.............................................................................. 104
C. SMTP............................................................................ 105
D. DNS.............................................................................. 105
E. HTTP............................................................................. 105
F. POP3............................................................................. 106
G. IMAP............................................................................. 106
H. HTTPS........................................................................... 106
6.4.3. Proveedor de servicios de Internet (ISP)............................................ 106
6.5. World Web Wide (WWW)........................................................................... 107
6.5.1. Lenguaje de marcas de hipertexto (HTML)......................................... 108
6.5.2. Localizador uniforme de recursos (URL)............................................. 108
6.5.3. Protocolo de transferencia de hipertexto (Http)................................... 109
6.6. Seguridad Informtica.............................................................................. 110
6.6.1. Seguridad Informtica perimetral...................................................... 110
6.6.2. Ataques informticos....................................................................... 111
6.6.2.1. Ataques controlados............................................................ 111
6.6.2.2. Ataques segn el efecto causado........................................... 111
6.6.2.3. Ataques segn la modalidad de ataque.................................. 112
A. Escaneo de puertos......................................................... 112
B. Anlisis de trfico (Sniffing).............................................. 112
C. Ataques de autentificacin (Spoofing)................................ 113
D. Ataques de denegacin de servicios................................... 113
E. Peticiones Syn................................................................ 114
F. Explotacin de errores...................................................... 114
G. Registrador de teclas (Keyloggers).................................... 114
H. Introduccin de malware................................................. 114
I. Ingeniera Social............................................................. 115
6.6.3. Tecnologas de proteccin informtica perimetral................................. 115
6.6.3.1. Firewall............................................................................. 115
6.6.3.2. Sistema de deteccin de intrusos.......................................... 116
6.6.3.3. Sistema de prevencin de intrusos........................................ 117
6.6.3.4. Proxy................................................................................ 117
6.6.3.5. Polticas de seguridad.......................................................... 118
6.6.3.6. Anlisis de vulnerabilidades.................................................. 118
Leccin 7
Introduccin a sistemas de base de datos.......................................................... 121
7.1. Los sistemas de archivos y los sistemas de base de datos.............................. 122
7.2. Breve historia de los sistemas de base de datos........................................... 123
7.3. Concepto de base de datos........................................................................ 125
7.4. Caractersticas de las bases de datos.......................................................... 125
7.5. Participantes de una base de datos............................................................. 127
7.6. Concepto de sistema gestor de base de datos (SGBD)................................... 127
z8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

7.7. Ventajas de los sistemas gestores de base de datos...................................... 128


7.8. Aplicaciones de los sistemas de base de datos............................................. 129
Resumen....................................................................................................... 130
Texto para comentar 1.................................................................................... 131
Texto para comentar 2.................................................................................... 135
Autoevaluacin N 3....................................................................................... 140
Autoevaluacin N 4....................................................................................... 142
Exploracin online.......................................................................................... 144
Referencias bibliogrficas................................................................................ 145
Bibliografa comentada.................................................................................... 145

CUARTA UNIDAD

Introduccin a algoritmos y lenguajes de programacin.............................. 147


Leccin 8
Algoritmos..................................................................................................... 149
8.1. Definicin............................................................................................... 149
8.2. Visin histrica........................................................................................ 149
8.3. Caractersticas......................................................................................... 150
8.4. Herramientas para representar algoritmos................................................... 150
8.4.1. Diagramas de flujo.......................................................................... 150
8.4.2. Diagramas Nassi-Shneiderman......................................................... 152
8.4.3. Pseudocdigo................................................................................. 152
8.5. Composicin de un pseudocdigo............................................................... 153
9.5.1. Seccin de datos............................................................................ 153
9.5.2. Seccin del cdigo.......................................................................... 156
8.6. Prioridad de los operadores....................................................................... 158
8.7. Asignacin.............................................................................................. 158
8.8. Secuencia de los algoritmos...................................................................... 159
8.9. Estructuras de control............................................................................... 161
8.9.1. Estructura secuencial...................................................................... 161
8.9.2. Estructura selectiva......................................................................... 166
8.9.2.1. Estructura selectiva simple: Si - Fin_si................................... 166
8.9.2.2. Estructura selectiva doble: Si - Sino - Fin_si........................... 170
9.9.2.3. Estructura selectiva mltiple................................................. 175
8.9.3. Estructura repetitiva........................................................................ 194
8.9.3.1. Estructura repetitiva Mientras - Fin_Mientras.......................... 195
8.9.3.2. Estructura repetitiva Repetir - Hasta_que............................... 211
8.9.3.3. Estructura repetitiva Desde - Fin_desde................................. 223
Leccin 9
Lenguaje de programacin............................................................................... 231
9.1. Lenguaje de programacin........................................................................ 231
9.2. Tipos de lenguaje de programacin............................................................ 231
9.3. Programa................................................................................................ 232
9.4. Compilador............................................................................................. 232
z9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

10.4.1. Errores la fase de compilacin...................................................... 235


9.5. Intrprete............................................................................................... 235
9.6. Paradigmas de programacin..................................................................... 235
9.7. Clasificacin de los paradigmas de programacin.......................................... 236
9.7.1. Paradigma imperativo................................................................... 236
9.7.2. Paradigma declarativo................................................................... 236
9.7.3. Paradigma estructurado................................................................. 236
9.7.4. Paradigma funcional...................................................................... 236
9.7.5. Paradigma lgico.......................................................................... 237
9.7.6. Paradigma orientado a objetos....................................................... 237
Texto para comentar 1.................................................................................... 238
Texto para comentar 2.................................................................................... 241
Autoevaluacin N 5....................................................................................... 244
Bibliografa.................................................................................................... 251

z1 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

P R E S E N TA C I N

El Fondo Editorial de la Universidad Inca Garcilaso de la Vega


participa como editor y productor de los textos universitarios
para los alumnos de pregrado de la modalidad de educacin a
distancia. Esta labor exige del personal directivo, acadmico,
profesional y tcnico una visin de conjunto de las estrategias
metodolgicas propias de esta modalidad. El trabajo del Fondo
Editorial se desarrolla en el diseo, diagramacin y correccin
de estilo lingstico de los textos universitarios. Los contenidos
estn ubicados en los tres grandes campos del conocimiento:
cientfico, humanstico o artstico.
El esfuerzo compartido con las Facultades, a travs de sus
docentes-tutores, autores de los referidos libros, conduce, sin
duda alguna, a la elaboracin de textos de buena calidad, los
cuales podrn utilizarse a travs de la pgina web o mediante
la presentacin fsica clsica.
En los ltimos quince aos la modalidad de educacin a distancia ha evolucionado, pasando por el e-learning, que privilegia la formacin profesional digital; b-learning, que combina lo
tradicional y lo nuevo en el proceso de la formacin profesional; hasta la aproximacin actual al mvil learning, que aparece
como la sntesis de todo lo anterior y una proyeccin al futuro.
Con todo ello, el Fondo Editorial reitera su compromiso de
participar en la tarea universitaria de formacin acadmica y
profesional, acorde con los tiempos actuales.


Fondo Editorial
z1 1 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

INTRODUCCIN

Este libro tiene el propsito de brindar un panorama, fundamental, de los temas relacionados con la computacin, formalmente, ciencia de la computacin, que permita al estudiante
comprender la importancia de estos temas para su formacin
profesional.
Los contenidos de este libro se han organizado en cuatro
unidades temticas. Estas se desarrollan en lecciones que incluyen apartados, esquemas y figuras, segn cual sea la necesidad
didctica. Cada unidad consta tambin de un conjunto de actividades y de evaluacin orientados a afianzar el aprendizaje del
estudiante y a valorar sus logros.
La primera unidad tiene como propsito que el estudiante
aplique los principios de la computacin para la solucin de
problemas computacionales, valorando su importancia en la
disciplina de sistemas de informacin.
Con la segunda unidad, el estudiante ser capaz de identificar
las tcnicas de almacenamiento y manipulacin de datos en la
solucin de problemas computacionales asumiendo actitud de
inters por estos temas.
La tercera unidad permite que el estudiante describa el
funcionamiento de los sistemas operativos, las redes, Internet y
los sistemas de base de datos como componentes de un sistema
computacional, adoptando actitud proactiva en el aprendizaje
de estos temas.
z1 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Finalmente, la cuarta unidad permite que el estudiante


elabore algoritmos para implementarlos mediante programas
de computadoras en un lenguaje de alto nivel valorando su importancia para su formacin profesional.
En todo el libro, las figuras o tablas que no consignan fuente,
corresponden a elaboracin propia. Las figuras o tablas que no
consignan nmero, representan la continuacin del texto donde
estn ubicados.
Los autores.

z1 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

orientaciones
METODOLGICAS

La asignatura de Fundamentos de Ciencias de la Computacin es de


formacin bsica, de naturaleza terico-prctica. Tiene como propsito
que el estudiante maneje, adecuadamente, los principios, tcnicas y
herramientas de la ciencia de la computacin para la solucin de problemas computacionales.
Para este fin, se desarrollan las siguientes unidades temticas: La
computacin y la disciplina de sistemas de informacin; Almacenamiento
y manipulacin de datos; Introduccin a sistemas operativos, redes e
Internet y sistema de base de datos; e Introduccin a algoritmos y lenguajes de programacin.
Al inicio de cada unidad temtica, el estudiante dispone de una serie
de preguntas que permitir valorar sus logros. Al finalizar la unidad, se
brinda un resumen del contenido temtico, un texto de lectura seleccionado de un tema de inters relacionado con el contenido temtico
de la unidad, una serie de actividades que el estudiante debe realizar,
una autoevaluacin que mide el aprendizaje del estudiante y una serie
de direcciones de Internet para exploracin online.
Es fundamental para el proceso de autoaprendizaje que el estudiante
planifique el tiempo y esfuerzo requeridos por cada unidad. Asimismo,
mediante Internet, debe trabajar de manera colaborativa, fomentando
el trabajo en equipo y compartiendo informacin. El docente, dispondr
de un horario que permita interactuar con los estudiantes para absolver
consultas o dudas, a travs de Internet.
z1 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

En lo que respecta a la evaluacin del aprendizaje, al final


de cada unidad temtica se dispone de una serie de preguntas
de autoevaluacin que permiten al estudiante medir sus logros
de aprendizaje conceptual. Adems, se presentan una serie de
casos que el estudiante desarrollar y que permitirn al docente
medir los logros de aprendizaje procedimental.

DALE AL HOMBRE UN PESCADO Y LO ALIMENTARS POR


UN DA. ENSALE A UN HOMBRE A PESCAR Y LO ALIMENTARS
PARA TODA LA VIDA.

Proverbio chino

z1 6 z

p r i m e r a

UNIDAD
La computacin y la disciplina
de sistemas de informacin

SUMARIO

En esta unidad, describimos los principios de la computacin


para la solucin de los problemas computacionales.
Asimismo, presentamos las caractersticas de los componentes
de un sistema de cmputo y cmo interactan durante el procesamiento de datos.
Al finalizar, resaltamos la importancia de la computacin en la
disciplina de los sistemas de informacin.

OBJETIVOS

Al finalizar esta unidad, el estudiante ser capaz de:


Describir el mbito de la computacin, su historia y su importancia en la sociedad.
Explicar la importancia de los algoritmos y de la abstraccin
en la solucin de problemas computacionales.
Identificar y describir las caractersticas de los componentes
de un sistema de cmputo
Reconocer las disciplinas del rea de computacin.
Identificar las principales organizaciones nacionales e internacionales del rea de computacin.
Explicar el objetivo, alcance y los temas de la disciplina de
sistemas de informacin.

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

L e c c i n

LA COMPUTACIN Y SOLUCIN
DE PROBLEMAS COMPUTACIONALES

La computacin y las computadoras han revolucionado las actividades que realizan


las personas y las organizaciones. Vivimos en la era de la informacin y del conocimiento gracias a la llamada revolucin tecnolgica, centrada en torno a las tecnologas de
la informacin, que han modificado las bases de la sociedad a un ritmo acelerado. Esta
revolucin tecnolgica es resultado de las investigaciones en el campo de la ciencia de
la computacin (Computer Science, en ingls).
En esta leccin, presentamos, a modo de resumen histrico, la evolucin de la computacin, las implicancias de la computadora en la sociedad, y caracterizamos los problemas que pueden ser resueltos mediante la computadora.

1.1. La computacin, su historia e importancia en la sociedad


1.1.1. Computacin
El trmino computacin, segn el diccionario de la RAE1, es sinnimo de cmputo o
clculo. En esta acepcin, tradicional, el trmino computacin hace referencia al proceso
de realizar clculos con la ayuda de un dispositivo (computadora).
1

Real Academia Espaola.


z1 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

En la actualidad, la acepcin generalizada de computacin refiere a las actividades que


requieren de computadoras, se benefician de ella o las construyen. Segn esta acepcin,
la computacin incluye: a) el diseo y construccin de sistemas hardware y software
para un amplio rango de propsitos; b) el procesamiento, estructuracin y manejo de
diversas clases de informacin; c) el desarrollo de sistemas de cmputo inteligente; d)
la creacin y uso de contenido para comunicacin y entretenimiento; e) el desarrollo de
investigaciones cientficas usando la computadora; f) encontrar y recolectar informacin
relevante para cualquier propsito (The Joint Task Force for Computing Curricula, 2005).
Asimismo, debido al alto nmero de investigaciones en este campo, podemos decir
que la computacin es la ciencia que estudia el funcionamiento de las computadoras,
incluyendo su diseo, funcionamiento y utilizacin para la gestin de la informacin.
Es importante aclarar la similitud en los significados de los trminos computacin e
informtica. El trmino computacin es utilizado en pases anglosajones como Inglaterra, Estados Unidos, entre otros y, en cambio, en Amrica Latina, Espaa, Francia
y gran parte de Europa se utiliza el trmino informtica para referirse a lo mismo. Sin
embargo, se suele definir a la informtica como el conjunto de conocimientos cientficos
y tcnicas que hacen posible el tratamiento automtico de la informacin por medio de
las computadoras2.

1.1.2. Computadora
En trminos simples, una computadora es un dispositivo que procesa datos y los
convierte en informacin til para las personas. Cualquier computadora (sin importar
su tipo) se controla con instrucciones programadas, las cuales le dan a la mquina un
propsito y le dicen lo que debe hacer (Norton, 2006).
Las computadoras son mquinas de propsito general, es decir, pueden realizar muchos tipos distintos de tareas, aunque pueden considerarse modelos de computadoras
de propsito especfico, por ejemplo, computadoras para el control de temperatura en
un edificio (Forouzan & Mosharraf, 2008).
Para comprender los mecanismos internos de una computadora de propsito general
utilizaremos dos modelos (Forouzan & Mosharraf, 2008): el modelo de procesador de
datos programable y el modelo de Von Neumann.
El modelo de procesador de datos programable
Es un modelo general para representar una computadora como una caja negra (figura
1.1). En este contexto la computadora es una mquina para manipular datos de acuerdo
a una lista de instrucciones conocida como programa. La computadora acepta datos de
entrada, las procesa y genera datos de salida. El programa es una serie de instrucciones escritas en un lenguaje de computadora.
2 www.wikipedia.org
z2 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Programa

Datos de entrada

COMPUTADORA

Datos de salida

Fig. 1.1 Modelo de procesador de datos programable

El modelo de Von Neumann


Este modelo se caracteriza por mostrar los elementos internos de la computadora.
Las computadoras modernas se basan en el modelo de Von Neumann (figura 1.2). En
este modelo, la memoria es el rea de almacenamiento donde los programas y datos se
almacenan durante el procesamiento. La unidad aritmtica lgica (ALU) es donde los
clculos aritmticos y las operaciones lgicas tienen lugar. La unidad de control determina las operaciones de la memoria, de la ALU y del subsistema de entrada- salida. El
subsistema de entrada acepta datos de entrada, y el programa desde el exterior de la
computadora, el subsistema de salida, enva los resultados del procesamiento al exterior. Un programa se conforma de un nmero finito de instrucciones (Fourozan, 2003).

Programa
Computadora

Entrada

Datos de
entrada

Salida

Unidad
aritmtica
lgica

Memoria

Unidad
de control

Fig. 1.2 Modelo de Von Neumann

z2 1 z

Datos de
salida

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

En general, los componentes esenciales de una computadora son el hardware y el


software. Se denomina hardware a los elementos fsicos de la computadora, como la
memoria, la unidad aritmtica y lgica, la unidad de control y los subsistemas de entrada salida. Se denomina software a la parte lgica de la computadora, en esencia los
programas.
El concepto de programa almacenado
El modelo de Von Neumann establece que el programa debe estar almacenado en la
memoria. Esto difiere de las primeras computadoras en las que solo los datos estaban
almacenados en memoria. En las computadoras modernas los programas y datos son
almacenados como patrones de bits en memoria, es decir, una serie de secuencias de
ceros y unos (0 y 1).
Ejecucin secuencial de instrucciones
Un programa, en el modelo de Von Neumann, est formado de un nmero finito de
instrucciones. La unidad de control trae una instruccin de la memoria, la decodifica, y
luego la ejecuta. En otras palabras, las instrucciones se ejecutan una detrs de otra. Por
supuesto, una instruccin podr solicitar a la unidad de control saltar a una instruccin
anterior o siguiente, pero esto no significa que las instrucciones no se ejecutan de forma
secuencial. La ejecucin secuencial de un programa es requisito esencial de una computadora basada en el modelo Von Neumann.
La caracterstica principal de los modelos de procesamiento de datos programable o
de Von Neumann es el concepto de programa. Aunque las primeras computadoras no
guardaban el programa en la memoria del ordenador, s utilizaban el concepto de programas.
La programacin de las primeras computadoras significaba cambiar los sistemas de
cableado o trabajar con una serie de interruptores de encendido o apagado. Programacin, por lo tanto, era una tarea realizada por un operador.

1.1.3. Historia de la computacin


La computacin tiene una historia ligada a la evolucin de las mquinas de cmputo.
La historia de la computacin y computadoras puede dividirse en periodos (Forouzan &
Mosharraf, 2008): el primero, de las mquinas mecnicas (antes de 1930); el segundo,
del nacimiento de las computadoras electrnicas modernas (1930 1950); y el tercero,
de la generacin de computadoras (1950 al presente).
1er. Periodo: mquinas mecnicas (antes de 1930)
En este periodo se inventaron mquinas parecidas al concepto moderno de computadora.

z2 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

En el siglo XVII, Blaise Pascal, matemtico y filsofo francs, invent la Pascalina,


una calculadora mecnica para operaciones de suma y resta. En el siglo XX, cuando Niklaus Wirth invent un lenguaje de programacin estructurado, lo llam Pascal en honor
al inventor de la primera calculadora mecnica.
A finales del siglo XVII, el matemtico alemn Gottfried Leibniz invent una calculadora mecnica ms compleja que poda realizar operaciones de multiplicacin y divisin,
as como la suma y resta. Se le llam la Rueda de Leibniz.
La primera mquina que us la idea de programa almacenado fue el Telar de Jacquard, inventado por Joseph Marie Jacquard a principios del siglo XIX. El telar usaba
tarjetas perforadas como un (programa almacenado) para controlar el aumento de hilos
de fabricacin de textiles.
En 1823, Charles Babbage invent la Mquina Diferencial, la cual poda hacer ms
que operaciones aritmticas simples, tambin poda resolver ecuaciones polinomiales.
Posteriormente invent una mquina llamada Mquina Analtica que, en cierta medida, es paralela a la idea de computadora moderna. Tena cuatro componentes: un
molino (ALU moderna), un almacn (memoria), un operador (unidad de control) y una
salida (entrada salida).
En 1890, Herman Hollerith, mientras trabajaba en la Oficina de Censos de Estados
Unidos, dise y construy una mquina programadora que poda leer, contar y ordenar
automticamente los datos almacenados en las tarjetas perforadas.
2do. Periodo: nacimiento de las computadoras electrnicas (1930-1950)
En este periodo, algunos cientficos que podran considerarse los pioneros de la industria de la computacin electrnica, inventaron varias computadoras.
Las primeras computadoras electrnicas no almacenaban el programa en memoria,
todo se programaba externamente. Destacan cinco computadoras:
1. ABC (Atanasoff Berry Computer). La primera computadora para propsito especial que codificaba informacin de manera elctrica, fue inventada por John V.
Atanasoff y su asistente Clifford Berry en 1939. Se le llam ABC (Atanasoff Berry
Computer) y se dise, especficamente, para resolver un sistema de ecuaciones
lineales.
2. Z1. Al mismo tiempo, el matemtico alemn Konrad Zuse dise una mquina de
propsito general llamada Z1.
3. MARK I. En la dcada de 1930, el Departamento de Defensa de Estados Unidos
e IBM patrocinaron un proyecto en la Universidad de Harvard, bajo la direccin
de Howard Aiken, para construir una computadora enorme llamada Mark I. Esta
computadora usaba componentes elctricos y mecnicos.

z2 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

4. COLOSSUS. En Inglaterra, Alan Turing invent una computadora llamada Colossus diseada para descifrar el cdigo Enigma alemn.
5. ENIAC. La primera computadora de propsito general totalmente electrnica fue
fabricada por John William Mauchly y John Presper Eckert y recibi el nombre de
ENIAC (Electronic Numrical Integrator and Calculator: Calculador e Integrador
Numrico Electrnico). Se termin en 1946, utilizaba 18 000 tubos de vaco, meda 100 pies de largo por 10 pies de alto y pesaba 30 toneladas.
6. EDVAC. La primera computadora electrnica basada en la idea de Von Neumann
se construy en 1950 en la Universidad de Pennsylvania y se llam EDVAC. Al
mismo tiempo, Maurice Wilkes construy una computadora similar llamada EDSAC en la Universidad de Cambridge en Inglaterra.
3er. Periodo: generacin de computadoras (1950-hoy da)
Las computadoras construidas despus de 1950 siguieron, ms o menos, el modelo
de Von Neumann. Estas son ms rpidas, ms pequeas y ms baratas, pero el principio es casi el mismo. Los historiadores dividen este periodo en generaciones, cada una
presenta un cambio importante en el hardware o software, pero mantienen el modelo.
1. Primera generacin, aproximadamente de 1950 a 1959, se caracteriza por la
aparicin de computadoras comerciales. Eran utilizadas solo por profesionales.
Estaban encerradas en habitaciones con acceso restringido solo al operador o
especialista en computacin. Las computadoras eran voluminosas y usaban tubos
al vaco como interruptores electrnicos. Solo las grandes organizaciones podan
acceder a estas computadoras.
2. Segunda generacin, aproximadamente de 1959 a 1965, utilizaba transistores en
lugar de tubos al vaco. Esto redujo su tamao, y su costo estuvo al alcance de
empresas medianas y pequeas. Se inventaron los lenguajes de programacin
de alto nivel, FORTRAN y COBOL, que facilitaron la programacin y permitieron
separar la tarea de programacin de la tarea de operacin de la computadora.
3. Tercera generacin, aproximadamente de 1965 a 1975, la invencin del circuito
integrado (transistores, cableado y otros componentes en un solo chip) redujeron, an ms, el coste y tamao de las computadoras. Aparecieron las minicomputadoras en el mercado. Los programas empaquetados, popularmente conocidos como paquetes de software, se volvieron disponibles. Una pequea empresa
poda comprar un paquete que necesitaba, por ejemplo, contabilidad, en lugar de
escribir su propio programa de contabilidad. Una nueva industria naci: la industria del software.
4. Cuarta generacin, aproximadamente de 1975 a 1985, vio nacer la microcomputadora. La primera calculadora de escritorio, Altair 8800, se volvi disponible en
1975. Los avances de la industria de la electrnica permitieron que los componentes de una computadora completa alcanzaran en una sola tarjeta de circuito.
Esta generacin tambin vio aparecer las redes de ordenadores.
z2 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

5. Quinta generacin, comenz en 1985. Aparecieron las computadoras laptop y


palmtop, se presentan mejoras en los medios de almacenamiento secundario (CD
ROM, DVD, etc.), comienza el uso de la multimedia y el fenmeno de la realidad
virtual.

1.1.4. Tipos de computadoras modernas


En la actualidad, se utilizan distintos tipos de computadoras. Todas ellas, sin importar
su tamao o propsito, son bsicamente similares: operan bajo los mismos principios,
estn hechas con los mismos componentes bsicos y requieren de instrucciones para
poder funcionar. Sin embargo, pueden clasificarse de muchas formas. Por ejemplo, algunas computadoras estn diseadas para que las utilice una sola persona, otras para
que las utilicen grupos de personas, y otras ms no necesitan de personas. Tambin se
pueden clasificar por su poder, es decir, la velocidad con la cual pueden operar y el tipo
de tareas que pueden realizar. Dentro de una sola categora, las computadoras se pueden dividir en subcategoras por su precio, el tipo de hardware que tienen y la clase de
software que pueden ejecutar, adems de otras caractersticas (Norton, 2006). Puede
considerarse dos categoras de computadoras: de uso personal y para uso de las organizaciones.
Computadoras de uso individual
La mayora de las computadoras estn hechas para que las use una sola persona a la
vez. Aunque, en ocasiones, varias personas pueden compartirla, pero solo una a la vez.
Los principales tipos de computadoras en esta categora son: computadoras de escritorio, estaciones de trabajo, computadoras laptop, tablet PC, handheld PC, telfonos
inteligentes.
Todos estos sistemas son ejemplos de computadoras personales (personal computer o PC), pues son sistemas de cmputo diseados para ser utilizados por un solo
usuario. Las computadoras personales tambin son llamadas microcomputadoras,
porque son las ms pequeas creadas para el uso de las personas. Aunque el trmino
computadora personal o PC se utiliza con mayor frecuencia para referirse a las computadoras de escritorio.
La computadora de escritorio es el tipo ms comn de PC, est diseada para
colocarse en un escritorio. Por su tamao es difcil de transportarla a todas partes. Su
componente principal es la unidad de sistema, es decir, el gabinete que aloja las partes
importantes, como sus dispositivos de procesamiento y almacenamiento. Estn diseados de dos formas bsicas: de sobremesa y de torre. En el modelo de sobremesa la
unidad de sistema se coloca, normalmente, sobre el escritorio o mesa. En el modelo en
torre, la unidad del sistema puede colocarse cerca o debajo del escritorio.
La estacin de trabajo es una computadora especializada para un solo usuario,
normalmente tiene ms poder y capacidades que una computadora de escritorio. Son
z2 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

usadas, generalmente, para apoyar tareas sofisticadas de cientficos, ingenieros y animadores, quienes necesitan un sistema con una velocidad y poder mayores a los del
promedio.
La computadora laptop (sobre el regazo) es igual que un computador de escritorio,
pero de tamao y peso reducidos para que sea fcil su transporte. Debido a su portabilidad, las PC laptop caen dentro de una categora de dispositivos conocidos como computadoras porttiles, que son sistemas lo suficientemente pequeos para ser transportados
por el usuario.
Las tablet PC son como una laptop, pero ms ligeras y son tctiles. Pueden introducirse datos pulsando sobre la pantalla o con una pluma stylus o pluma digital. Ofrecen
todas las funcionalidades de una PC, incluyendo Wifi, GPS, GPRS, webcam, cmara
digital, etc. Algunos modelos permiten conectar a un teclado y un monitor de tamao
normal.
La handheld PC es un dispositivo de cmputo suficientemente pequeo como para
caber en la mano. Bsicamente, es un tipo de asistente digital personal o PDA (Personal
Digital Assistent). Un PDA es como una libreta de notas para desplegar nmeros telefnicos y direcciones, adems de dar seguimiento a fechas o agendas. Muchos PDA se
pueden conectar con computadoras ms grandes para intercambiar datos, la mayora de
PDA cuenta con un lpiz que permite escribir en la pantalla.
Los telfonos inteligentes o smartphones son una PC en miniatura, con todas las
funcionalidades o incluso ms; incluyen procesadores potentes y empiezan a tener una
memoria interna importante.
Computadoras para uso de organizaciones
Estas son computadoras que atienden a muchos usuarios simultneamente. Estos
sistemas se utilizan con mayor frecuencia en las organizaciones y suelen ubicarse en el
centro de una red de computadoras. En general, cada usuario interacta con la computadora desde su propio dispositivo (PC u otros). Las computadoras ms grandes para
organizaciones pueden funcionar con miles de usuarios individuales al mismo tiempo,
los cuales pueden estar a miles de kilmetros de distancia entre s.
Esta categora puede incluir los tipos siguientes: servidores de red, computadoras
mainframe, minicomputadoras, supercomputadoras.
El servidor de red es una computadora personal potente, con software y equipamiento especial que le permite funcionar como la computadora central de una red.
Dependiendo de la configuracin de la red, los usuarios pueden acceder al servidor de
distintas formas, la mayora a travs de su PC de escritorio que est conectada permanentemente a la red; tambin es posible que los usuarios que se desplazan puedan
conectar una PC laptop a la red por medios inalmbricos; o cuando estn lejos de sus

z2 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

oficinas, puedan utilizar Internet como un medio de conexin a los servidores de red de
su compaa.
Las computadoras mainframe se utilizan en grandes compaas. Cada usuario accede a los recursos del mainframe mediante un dispositivo llamado terminal, que puede
ser de dos tipos: terminal tonta y terminal inteligente. La terminal tonta, no procesa ni
almacena datos, solo es un dispositivo de entrada/salida. La terminal inteligente puede
realizar operaciones de procesamiento, pero no tiene ningn dispositivo de almacenamiento. Las computadoras mainframe son sistemas grandes y muy potentes, pueden
satisfacer las necesidades de procesamiento de miles de usuarios al mismo tiempo; pero
estn diseadas para realizar un conjunto especfico de tareas.
Las minicomputadoras son computadoras que aparecieron en los aos 60, tuvieron
ese nombre por tu tamao pequeo en comparacin con las computadoras mainframe
de esa poca. La capacidad de una minicomputadora est entre las que ofrecen un
mainframe y un PC, por eso se las conoce como computadoras de rango medio, las ms
potentes pueden atender a cientos de usuarios al mismo tiempo.
Las supercomputadoras son las ms potentes y, fsicamente, ms grandes que las
anteriores. Pueden procesar enormes cantidades de datos y las ms rpidas pueden
realizar hasta un billn de clculos por segundo. Algunas pueden alojar miles de procesadores. Son ideales para resolver problemas grandes y complejos que requieren un
poder de clculo extremo.

1.1.5. La computacin en la sociedad


El impacto de la computacin y las computadoras en la sociedad es amplio y diverso,
su uso ha generado diversos temas de discusin denominados asuntos sociales y asuntos ticos que conllevan a diversos puntos de vista. Entre los asuntos sociales podemos
mencionar la dependencia, justicia social, brecha digital. Entre los asuntos ticos estn
la privacidad, copyright, delitos informticos. A continuacin revisamos estos asuntos.
Dependencia. Hay gente que piensa que los computadores han creado una clase de
dependencia, que hace las vidas de la gente ms difcil.
Justicia social. Es otro tema que a menudo se oye hablar. Los defensores de este
tema sostienen que el uso de computadoras en el hogar es un beneficio de lujo que no
todas las personas pueden permitirse. El costo de una computadora, dispositivos perifricos y un cargo mensual de acceso a Internet son una carga adicional para las personas
de bajos ingresos.
Brecha digital. El concepto de brecha digital abarca tanto los asuntos de la dependencia y la justicia social, mencionado anteriormente. El concepto divide a la sociedad
en dos grupos: los que estn conectados electrnicamente con el resto de la sociedad y
los que no lo estn.

z2 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Privacidad. Los ordenadores permiten la comunicacin entre dos partes, en forma,


electrnica. Sin embargo, an queda mucho por hacer para que este tipo de comunicacin sea realmente privada. La sociedad est pagando un alto precio por las comunicaciones electrnicas privadas. La seguridad de la red puede crear este tipo de privacidad,
pero es necesario esfuerzo y cuesta mucho.
Copyright. Otra de las cuestiones ticas en una sociedad informatizada son los derechos de autor (copyright): quin posee los datos? Internet ha creado oportunidades
para compartir ideas, pero tambin ha trado consigo un problema an ms tico: los
derechos de autor electrnicos.
Delitos informticos. Las computadoras y tecnologas de la informacin han creado nuevos tipos de delitos. Los hackers han podido acceder a muchos ordenadores en
el mundo y han robado mucho dinero. Los creadores de virus disean nuevos tipos de
virus que se envan a travs de Internet y daan la informacin almacenada en las computadoras. Aunque hay muchos programas antivirus en uso hoy da, la sociedad est
pagando un alto precio por este tipo de delitos, que no existan antes de la era de la
computadora e Internet.

1.2. Los problemas computacionales,


el rol de los algoritmos y la abstraccin
El desafo ms importante para la ciencia de la computacin es la solucin de problemas. Es decir, la capacidad de formular problemas, pensar de forma creativa sobre
soluciones, y expresar una solucin clara y precisa.

1.2.1. Definicin de problema computacional


Un problema computacional es una descripcin basada en objetos matemticos (nmeros, permutaciones, particiones, matrices, conjuntos, y relaciones) que representan
una coleccin de preguntas que la computadora debe ser capaz de resolver. Por ejemplo,
el problema de factorizacin: Dado un numero entero positivo n, encontrar un factor
primo no trivial de n, es un problema computacional.
Un problema computacional puede ser visto como una coleccin infinita de instancias
junto con una solucin para cada instancia. Por ejemplo en el problema de factorizacin,
las instancias son los enteros n, y la solucin son los nmeros primos p que describen
los factores primos no triviales de n.
Los problemas computacionales pueden clasificarse en: problemas de decisin, problemas de bsqueda, problemas de conteo, problemas de optimizacin y problema de
funcin.
z2 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

1.2.2. El rol de los algoritmos


Los problemas computacionales constituyen uno de los principales objetos de estudio
de la ciencia de la computacin. El campo de los algoritmos estudia los mtodos de solucin eficiente de los problemas computacionales.
Informalmente, un algoritmo es un conjunto de pasos que definen cmo una tarea
es ejecutada. Por ejemplo, hay algoritmos para cocina (llamados recetas), algoritmos
para encontrar un camino en una ciudad desconocida (ms comnmente llamado direcciones), algoritmo para operar una mquina de lavado, para escuchar msica, etc.
(Brookshear G. , 2012).
Antes de que una computadora pueda ejecutar una tarea, un algoritmo, para la ejecucin de esa tarea, debe ser construido y representado en una forma que sea compatible
con la mquina o computador; por ejemplo, un programa. Los programas son codificados en una manera compatible con la tecnologa de las mquinas. El proceso de desarrollo de un programa codificndolo en una forma compatible con la mquina es llamado
programacin. Para que un algoritmo ejecute una tarea es necesario el entendimiento
de los principios en los cuales ese algoritmo est basado, por ejemplo, para ejecutar un
algoritmo que encuentre el resto de una divisin es necesario conocer el procedimiento
para su obtencin (Brooksheaar, 2007).
Un algoritmo es cualquier procedimiento computacional bien definido que toma algunos valores, o conjunto de valores, como entrada (input) y produce algunos valores,
o conjunto de valores, como salida (output). Un algoritmo puede referirse a una herramienta para resolver un problema computacional bien especificado. La declaracin del
problema especifica en trminos generales la relacin de entrada salida deseada (Cormen, Leiserson, Rivest, & Stein, 2009).

Input:

Una secuencia de n nmeros (a1, a2, ., an)

Output:

Un reordenamiento (a1, a2, ., an) de la secuencia de


input tal que a1<=,a2 <= .<= an.

Por ejemplo, en la secuencia de entradas (31, 41, 59, 26, 41, 58), un algoritmo de
ordenamiento entrega como salida la secuencia (26, 31, 41, 41, 58, 59).

Input:

31, 41, 59, 26, 41, 58

Output:

26, 31, 41, 41, 58, 59.

A una secuencia de entrada se le denomina una instancia del problema de ordenamiento. En general, una instancia de un problema consiste de una entrada (que satisface
las restricciones impuestas en la declaracin del problema) necesaria para computar una
solucin al problema.

z2 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Un algoritmo es correcto si para cada instancia de entrada produce la salida correcta.


En otras palabras, un algoritmo es correcto si resuelve el problema computacional dado.
En la actualidad, la ciencia de la computacin se ha establecido como la ciencia de
los algoritmos. El mbito de aplicacin de esta ciencia de la computacin es amplio, a
partir de temas tan diversos como las matemticas, ingeniera, la psicologa, la biologa,
administracin de empresas y la lingstica.
El rol de los algoritmos en la ciencia de la computacin involucra las limitaciones de
ejecucin, anlisis, comunicacin, descubrimiento y representacin de algoritmos.

1.2.3. La abstraccin
El concepto de abstraccin est impregnado en el estudio de las ciencias de la computacin y el diseo de sistemas computacionales. El trmino abstraccin hace referencia
a la distincin entre las propiedades externas de una entidad y los detalles de la composicin interna de la entidad. La abstraccin permite ignorar los detalles internos de
un dispositivo complejo (computador, automvil, horno microondas, etc.) y usarlo como
una simple y comprensible unidad (Brookshear G. , 2012).
Es por medio de la abstraccin que tales sistemas complejos son diseados y fabricados en primera instancia. Por ejemplo, la computadora, el automvil o el horno
microondas son construidos desde componentes, cada uno de los cuales es construido
desde pequeos componentes que representan un nivel de abstraccin en el que el uso
del componente es aislado de los detalles de la composicin interna del componente.
A travs de la aplicacin de la abstraccin, podemos construir, analizar y manejar
grandes sistemas computacionales complejos, tarea que podra ser abrumadora si lo
vemos en un nivel enteramente detallado. En cada nivel de abstraccin, vemos el sistema en trminos de componentes, llamados herramientas abstractas, cuya composicin
interna ignoramos. Esto permite concentrarnos en comprender cmo cada componente
interacta con otros del mismo nivel, y cmo la coleccin de dichos componentes constituyen un componente entero en el nivel ms alto. As seremos capaces de comprender
qu parte del sistema es relevante para la tarea en cuestin y no perdernos en un mar
de detalles.
Un ejemplo ilustrativo
Para ilustrar el proceso de abstraccin usemos como ejemplo el problema de buscar
un edificio en cualquier lugar del mundo mediante su direccin de correo postal. Las direcciones de correo postal incluyen el pas en el que se encuentra el destinatario.
1. En un primer nivel de bsqueda, se toma la informacin referida a todos los pases del mundo y se selecciona el pas especificado en la direccin.

z3 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

2. En una segunda fase, se obtiene la informacin sobre la divisin interna de un


pas (estas divisiones pueden tener diferentes nombres, tales como: comunidades, provincias, departamentos, estados, etc.).
3. Una vez localizada la unidad territorial se debe seleccionar una ciudad. Para ello,
tan solo es preciso obtener la informacin de ciudades incluidas en la unidad territorial bajo consideracin y localizar la del destinatario.
4. Finalmente, dentro de la ciudad se debe obtener la informacin sobre las calles y
sus nmeros para conocer la posicin exacta del edificio que se busca.
La informacin manipulada durante este proceso se puede dividir en varias categoras:
a)

Informacin sobre todos los pases del mundo.

b)

Unidades territoriales dentro del pas seleccionado.

c)

Ciudades dentro de la unidad seleccionada.

d)

Calles dentro de la ciudad seleccionada.

e)

Nmeros dentro de la calle seleccionada.

Entre estas categoras, existe una relacin muy intuitiva. Cada una de ellas contiene
detalles de la siguiente categora. La informacin sobre todos los pases del mundo puede incluir, adems, todas las divisiones en unidades territoriales. De igual forma, los datos sobre todas las ciudades de una unidad territorial pueden incluir todas sus calles. Sin
embargo, la solucin del problema de localizar un edificio se simplifica sustancialmente
si los datos estn divididos en las categoras antes mencionadas, es decir, una categora
incluye la informacin de su nivel e ignora o abstrae los datos del resto de categoras.
Podemos decir que como cada una de estas categoras ignora detalles de las categoras siguientes, simplifica la informacin acerca de la localizacin de edificios en el
mundo, pero, a la vez, conservando los aspectos ms relevantes. Cada una de estas
categoras puede ser considerada como un nivel de abstraccin.
Generalizando este concepto, los niveles de abstraccin son diferentes visiones de
una misma entidad relacionadas de tal forma que cada una de ellas provee ms detalles
que el nivel anterior, pero ignora detalles del nivel siguiente. Como conclusin, entre los
niveles de abstraccin se puede establecer una relacin con respecto a dos aspectos: la
complejidad y el detalle.
Un segundo ejemplo de los diferentes niveles de abstraccin es la escala de un mapa
topogrfico. Un mapa es una representacin de algunos de los aspectos contenidos en
una determinada rea. El tamao del mapa y el de dicha rea estn relacionados mediante un factor de escala. Es posible tener mapas de la misma rea, pero realizados a

z3 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

diferente factor de escala. Estos mapas ofrecen diferentes visiones del lugar, pero con
diferentes niveles de complejidad y detalle.
La observacin clave de estos dos ejemplos es que la resolucin de problemas en un
mbito concreto es posible representando la realidad mediante un nivel de abstraccin
adecuado. Por ejemplo, si una empresa de distribucin de mercancas a nivel mundial
necesita decidir dnde situar sus centros de distribucin, no es preciso que utilice la
informacin de qu nmeros hay en cada calle. Igualmente, un ingeniero que desea
disear una autopista no puede utilizar un mapa con una escala tan grande que no se
perciban lo suficiente los accidentes geogrficos.

z3 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

L e c c i n

LA COMPUTADORA
Y EL SISTEMA DE CMPUTO

Una computadora es un conjunto de partes, las cuales estn divididas en categoras


de acuerdo con el tipo de funcin que realizan. Es importante aprender sobre esas categoras de componentes y sus funciones bsicas para comprender los conceptos ms
importantes de la computacin.
Precisamente, esta leccin tiene el propsito de dar una mirada rpida al interior
de una computadora para conocer sus partes y cmo trabajan en conjunto cuando un
usuario interacta con ella.
Podemos considerar a la computadora como un componente de un sistema de cmputo. La literatura define a un sistema de cmputo como un conjunto de elementos organizados que interactan entre s para lograr ciertos objetivos operando sobre los datos.
Estos elementos son (Norton, 2006): hardware, software, datos y usuarios. El hardware
y software constituyen categoras de componentes propios de una computadora.

z3 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

2.1. El hardware
El hardware es la categora de componentes fsicos de la computadora. Cada componente consiste de circuitos electrnicos y partes mecnicas que llevan a cabo una
funcin particular. Los dispositivos hardware pertenecen a uno de los tipos siguientes:
procesador, memoria, entrada-salida y almacenamiento.

2.1.1. El procesador
Es como el cerebro de la computadora: organiza y ejecuta las instrucciones que provienen del usuario o software. En una computadora personal, el procesador, normalmente, consiste en uno o ms circuitos integrados especializados llamados microprocesadores (chips). Generalmente, el microprocesador est acoplado a la tarjeta madre, que es
una tarjeta de circuitos maestra de una computadora. En las computadoras personales
los dispositivos internos (tarjetas de video, tarjetas de sonido, controladores de discos y
otros) se alojan en sus propias tarjetas de circuitos que son ms pequeas y se acoplan
a la tarjeta madre.
Al procesador tambin se le conoce como la Unidad Central de Proceso (Central Processing Unit o CPU). A menudo, las personas distinguen a los sistemas de cmputo por
el tipo de CPU que contienen. Por ejemplo, un sistema Pentium 4 utiliza el procesador
Pentium 4 como CPU.

2.1.2. Memoria
La memoria es uno o ms conjunto de chips que almacenan datos o instrucciones de
programas, en forma temporal o permanente. Algunos tipos de memoria son: la memoria de acceso aleatorio (RAM, Random Access Memory) y la memoria de solo lectura
(ROM, Read Only Memory).
La memoria de acceso aleatorio es como un blog de notas electrnico dentro de
la computadora que almacena datos e instrucciones, temporalmente, mientras la CPU
trabaja con ellas. Los datos se escriben y se leen desde esta memoria llamada tambin
memoria de lectura-escritura. La RAM es voltil, es decir, pierde su contenido cuando
se apaga la computadora o por una falla de energa elctrica. La unidad de medida del
tamao de la RAM es el byte, que es la cantidad de memoria para almacenar un carcter. Debido a la gran cantidad de almacenamiento se utilizan unidades de medida como
kilobytes (KB = 1024 bytes), megabyte (MB = 1 048 576 bytes), gigabyte (GB = 1 073
741 824), terabyte (TB = 1 099 511 627 776).
La memoria de solo lectura almacena permanentemente sus datos, incluso cuando se
apaga la computadora. La ROM es una memoria no voltil, es decir, no pierde su contenido. Contiene instrucciones que la computadora necesita para funcionar. Cuando se

z3 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

enciende la computadora, se revisa la ROM para obtener las instrucciones que ayudan a
iniciar y proporcionan informacin sobre los dispositivos de hardware.

2.1.3. Dispositivo de entrada-salida


Los dispositivos de entrada aceptan datos e instrucciones del usuario. Los dispositivos de salida devuelven los datos procesados al usuario. El dispositivo de entrada ms
comn es el teclado. Otro dispositivo de entrada importante es el mouse o ratn. Los
dispositivos de salida ms comunes son el monitor y la impresora. Algunos tipos de
hardware funcionan como entrada y salida, por ejemplo, un touch screen es una especie
de monitor que despliega textos o iconos que el usuario puede tocar.
Los dispositivos de comunicacin, como los modem, tambin cumplen la funcin de
entrada y salida, llevando informacin de una computadora a otra.

2.1.4. Dispositivo de almacenamiento


El propsito de almacenamiento es guardar datos permanentemente, incluso cuando
la computadora es apagada. Podemos considerar el almacenamiento como un archivero
electrnico y a la RAM como una mesa de trabajo electrnica. Cuando la computadora
necesita trabajar con un programa o conjunto de datos, los busca en el archivero y coloca una copia en la mesa de trabajo. Al terminar de trabajar los coloca nuevamente en
el archivero.
Existen tres diferencias principales entre el almacenamiento y la memoria: a) Existe
ms espacio en el almacenamiento que en la memoria. b) El contenido en el almacenamiento permanece, mientras que en la memoria desaparece cuando la computadora
es apagada. c) El almacenamiento es muy lento en comparacin con los chips de la
memoria.

2.2. El software
El software hace referencia a los programas de computadora. Un programa es un
conjunto de instrucciones que indican a la computadora que realice una tarea especfica.
Estas instrucciones le indican a los componentes fsicos lo que deben hacer, sin ellas,
la computadora no podra hacer nada. Existen dos categoras de software: software del
sistema y software de aplicaciones.

z3 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

2.2.1. Software del sistema


El software del sistema es cualquier programa que controla el hardware o que se puede utilizar para dar mantenimiento a la computadora que la haga funcionar con mayor
eficiencia.
Segn Norton (2006), existen tres tipos de software de sistema: sistema operativo,
sistema operativo de red y herramienta. Los sistemas operativos le dicen a la computadora en qu deben utilizar sus componentes, por ejemplo: Windows, Linux.
Un sistema operativo de red permite que las computadoras se comuniquen y compartan datos a lo largo de una red y al mismo tiempo controla las operaciones de la red y
supervisa su seguridad.
Una herramienta es un programa que hace que un sistema de cmputo sea ms fcil
de funcionar o realiza funciones altamente especializadas. Las herramientas se utilizan
para administrar discos, solucionar problemas de hardware y realizan otras tareas que
el sistema operativo no es capaz de hacer.

2.2.2. Software de aplicaciones


El software de aplicaciones le dice a la computadora la forma en que debe llevar a
cabo tareas especficas para el usuario, por ejemplo, procesar textos o dibujar. Existen
miles de aplicaciones disponibles para muchos propsitos. Algunas de las categoras
son: software de procesamiento de textos, hojas de clculo, software de administracin
de base de datos, etc.

2.3. Los datos y los usuarios


Para la computadora, los datos consisten en hechos o piezas individuales de informacin que por s mismos no tienen mucho sentido para las personas. El trabajo principal
de una computadora es procesar estas pequeas piezas de datos de distintas maneras
convirtindolas en informacin til.
Las personas que operan una computadora se conocen como usuarios. Las computadoras no son autnomas, requieren de una persona para iniciar su funcionamiento.

z3 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

2.4. Ciclo de procesamiento de la informacin


Una computadora convierte datos en informacin utilizando todas sus partes al mismo tiempo, al realizar distintas acciones con los datos. Por ejemplo, operaciones matemticas con dos nmeros: lee valores, asigna valores, realiza la operacin, despliega
el resultado. Tambin, una operacin lgica como la comparacin de dos nmeros y
presentar los resultados. Estas operaciones son parte de un proceso llamado ciclo de
procesamiento de la informacin.
El ciclo de procesamiento de informacin es un conjunto de pasos que la computadora
sigue para recibir datos, procesarlos de acuerdo con las instrucciones de un programa,
desplegar la informacin resultante ante el usuario y almacenar los resultados (figura
2.1).

Figura 2.1 Ciclo de procesamiento de la informacin

Entrada. En este paso, la computadora acepta datos, que provienen del usuario o de
un programa, para ser procesados. Por ejemplo, el ingreso de las horas de una planilla
de sueldos en una hoja de clculo a travs del teclado.
Procesamiento. En este paso del ciclo, los componentes de procesamiento de la
computadora (CPU y memoria) realizan acciones con los datos segn las instrucciones
del usuario o de un programa. La CPU interpreta las instrucciones del programa y procesa los datos.
Salida. Este paso se realiza, de manera opcional, cuando la computadora necesita
desplegar los resultados de su procesamiento. Por ejemplo los resultados pueden aparecer como textos, nmeros o grficas en la pantalla. La salida de una computadora puede
convertir en audio, documentos impresos, video y otros medios.
Almacenamiento. En este paso, que tambin es opcional, de acuerdo al requerimiento del usuario, la computadora almacena permanentemente los resultados de su
procesamiento. Puede almacenar en un disco, cinta, o algn otro tipo de medio de almacenamiento.
z3 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

2.5. El ciclo de instruccin


La funcin principal de una computadora es ejecutar programas. El programa est
compuesto de instrucciones almacenadas en memoria. La CPU procesa las instrucciones.
Para ello debe traerlas desde la memoria, una por vez; y luego, cumplir cada operacin
indicada en la instruccin.
El procesamiento de la instruccin puede descomponerse en dos etapas: bsqueda y
ejecucin. En la bsqueda, se lee la instruccin desde la memoria (todas las instrucciones requieren esta etapa). La etapa de ejecucin, dependiendo de la instruccin, puede
implicar varias operaciones.
El procesamiento requerido para una sola instruccin se llama ciclo de instruccin
(figura 2.2). El ciclo de instruccin consiste en dos pasos: ciclo de bsqueda y ciclo de
ejecucin. La ejecucin de un programa se interrumpe solo si la mquina se apaga, hay
un error o una instruccin que interrumpe a la computadora.

Figura 2.1 Ciclo de instruccin

2.5.1. Ciclo de bsqueda


Al principio de cada ciclo, la CPU busca una instruccin en memoria. En la CPU hay
un registro, llamado contador de programa (PC), que tiene la direccin de la prxima
instruccin a buscar. La CPU, despus de buscar cada instruccin, incrementa el valor
contenido en el registro PC; as podr buscar la siguiente instruccin en secuencia.

z3 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

2.5.2. Ciclo de ejecucin


La instruccin buscada se carga dentro de un registro de CPU, llamado registro de
instruccin (IR). La instruccin est en la forma de un cdigo binario que especifica las
acciones que tomar la CPU. La CPU interpreta cada instruccin y lleva a cabo las acciones requeridas.
En general, las acciones pueden ser de cuatro tipos: a) CPU memoria, los datos
pueden transferirse entre CPU y memoria. b) CPU E/S, los datos pueden transferirse
entre CPU y las unidades de entrada salida. c) Procesamiento de datos, cuando la CPU
efecta operaciones aritmticas o lgicas en datos. d) Control, son acciones que alteran
la secuencia de ejecucin de instrucciones.

z3 9 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

L e c c i n

LA DISCIPLINA
DE SISTEMAS DE INFORMACIN

3.1. Disciplinas de la computacin


La computacin es una disciplina amplia que cruza las fronteras de las matemticas,
ciencia, ingeniera y negocios. El campo de la computacin (computing) ha sufrido cambios debido al crecimiento de su cuerpo de conocimiento, siendo necesaria la divisin de
algunas disciplinas para dar paso a otras (The Joint Task Force for Computing Curricula,
2005).
Un cuerpo de conocimientos (body of knowledge) es un conjunto completo de los conceptos, trminos y actividades que conforman un dominio profesional, es definido por
la sociedad cientfica pertinente o asociacin profesional. Para establecer una profesin
con propiedad, entre otras cosas, es necesario definir su cuerpo de conocimientos (body
of knowledge).
Las principales disciplinas de computacin son (The Joint Task Force for Computing
Curricula, 2005): a) Computer Engineering (Ingeniera de Computadoras); b) Computer
Science (Ciencias de la Computacin); c) Information Systems (Sistemas de Informacin); d) Information Technology (Tecnologa de Informacin); e) Software Engineering
(Ingeniera de Software).

z4 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

3.1.1. Computer Engineering (Ingeniera de Computadoras)


El campo de inters de la disciplina de Ingeniera de Computadoras es el diseo y
construccin de computadoras y sistemas basados en computadoras. Esto involucra el
estudio del hardware, software, comunicaciones, y la interaccin entre ellos. Su currculo se enfoca en las teoras, principios y prcticas de la Ingeniera Elctrica tradicional y
las matemticas, y aplica estas a los problemas de disear computadoras y dispositivos
basados en computadoras.
Los estudiantes de Ingeniera de Computadoras estudian el diseo de sistemas hardware, incluyendo computadoras, sistemas de comunicacin y dispositivos que contienen
computadoras. Tambin estudian el desarrollo del software usados dentro y entre dispositivos digitales (se excluyen softwares directamente usados por usuarios). Se enfatiza
ms en hardware que en software.
Entre las reas predominantes en esta disciplina estn el desarrollo de dispositivos
que tienen componentes software embebidos en hardware. Por ejemplo, dispositivos tales como telfonos celulares, equipos de audio digital, equipos de video digital, sistemas
de alarma, mquinas de rayos X y herramientas lser de ciruga requieren la integracin
de hardware y software embebido, y todas ellas son el resultado de la Ingeniera de
Computadoras.

3.1.2. Computer Science (Ciencias de la Computacin)


Las Ciencias de la Computacin abarcan un amplio rango, desde sus fundamentos
tericos y algortmicos hasta desarrollos avanzados en robtica, visin por computadora, sistemas inteligentes, bioinformtica, y otras reas.
Los profesionales de Ciencias de la Computacin desarrollan e implementan softwares, crean nuevas maneras de usar las computadoras. Los resultados de la investigacin
en ciencia de la computacin en las reas de networking, bases de datos, e interface
humano-computadora permitieron el desarrollo del World Wide Web. Asimismo, en el
rea de la inteligencia artificial, los robots estn demostrando inteligencia, estn usando
bases de datos para crear nuevo conocimiento, y estn usando computadoras para ayudar a descifrar los secretos de nuestro ADN.
Los profesionales de Ciencias de la Computacin desarrollan maneras efectivas de resolver problemas de computacin. Por ejemplo, los cientficos en computacin desarrollan las mejores posibles maneras de almacenar informacin en bases de datos, enviar
datos a travs de las redes, y mostrar imgenes complejas. Su base terica les permite
determinar la mejor performance posible, y sus estudios de algoritmos les ayudan a
desarrollar nuevos mtodos que proporcionen mejores performances.
Las Ciencias de la Computacin abarcan el rango de la teora a la programacin.
Mientras otras disciplinas pueden producir graduados mejor preparados para trabajos

z4 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

especficos, las Ciencias de la Computacin ofrecen una fundamentacin amplia y completa que permite a los graduados adaptarse a nuevas tecnologas y nuevas ideas.
La Ciencia de la Computacin (Computer Science) es la disciplina que busca construir los fundamentos cientficos para tpicos tales como diseo de computadoras, programacin de computadoras, procesamiento de la informacin, solucin algortmica de
problemas y el procesamiento algortmico en s mismo. Provee las bases para las aplicaciones computacionales de hoy y los fundamentos para las aplicaciones del futuro
(Brooksheaar, 2007).

3.1.3. Information Systems (Sistemas de Informacin)


Los profesionales en Sistemas de Informacin se enfocan en integrar las soluciones
en tecnologas de informacin y los procesos de los negocios para cumplir con las necesidades de informacin de las organizaciones, permitindoles alcanzar sus objetivos de
una manera efectiva y eficiente. La perspectiva de esta disciplina en la tecnologa de
informacin enfatiza en la informacin, y ve a la tecnologa como un instrumento que
permite la generacin, procesamiento y distribucin de la informacin necesitada. Los
profesionales en esta disciplina estn principalmente involucrados con la informacin
que los sistemas de computadoras pueden proporcionar para ayudar a una empresa
a definir y alcanzar sus metas, y los procesos que una empresa puede implementar
y mejorar usando tecnologas de informacin. Ellos deben comprender tanto factores
tcnicos como organizacionales, y deben ser capaces de ayudar a una organizacin en
determinar cmo la informacin y los procesos de negocios facilitados por la tecnologa
pueden proporcionar una ventaja competitiva.
Los especialistas en sistemas de informacin juegan un rol clave en determinar los requerimientos de los sistemas de informacin de una organizacin y estn inmersos en su
especificacin, diseo, e implementacin. Como resultado, tales profesionales requieren
de un slido entendimiento de los principios y prcticas organizacionales de manera que
puedan servir como un puente efectivo entre las comunidades tcnicas y administrativas
de una organizacin, permitiendo a ellos trabajar en armona para asegurar que la organizacin tiene la informacin y los sistemas que necesita para soportar sus operaciones.
Los profesionales en sistemas de informacin tambin estn involucrados en disear
sistemas de comunicacin y colaboracin organizacional basados en tecnologas.

3.1.4. Information Technnology (Tecnologas de Informacin)


Tecnologas de Informacin es una etiqueta que tiene dos significados. En un sentido
amplio, el trmino tecnologas de informacin es usualmente empleado para referirse
a toda la computacin. En el mbito acadmico, se refiere a los programas de pregrado
que prepara estudiantes para satisfacer las necesidades tecnolgicas de los negocios,
gobierno, sector salud, escuelas y otros tipos de organizaciones.

z4 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

En la seccin previa, dijimos que Sistemas de Informacin se enfoca en los aspectos


de informacin de la tecnologa de informacin. Tecnologas de Informacin es el
complemento de tal perspectiva: su nfasis es ms en la tecnologa en s misma que en
la informacin que procesa. Tecnologas de Informacin es una disciplina nueva y rpidamente creciente, la cual empez como una respuesta muy bsica a las necesidades
prcticas y cotidianas de los negocios y otras organizaciones. Hoy en da, organizaciones
de todo tipo dependen de las tecnologas de informacin. La necesitan para tener sistemas apropiados. Estos sistemas deben trabajar adecuadamente, deben ser seguros, y
deben ser mejorables, mantenibles y reemplazables cuando sea necesario.
Las personas a lo largo de una organizacin requieren el soporte del staff de tecnologas de informacin que entienda los sistemas de computadoras y su software, y que
estn comprometidos a resolver cualquier problema relacionado con las computadoras
que podran ocurrir. Los graduados de programas de Tecnologas de Informacin resuelven estas necesidades.
Los especialistas en Tecnologas de Informacin asumen la responsabilidad para seleccionar los productos de hardware y software apropiados para una organizacin, integrando estos productos con las necesidades organizacionales y su infraestructura, e
instalando, adecuando y manteniendo estas aplicaciones para los usuarios de las computadoras de la organizacin. Ejemplos de estas responsabilidades incluyen: la instalacin
de redes; administracin y seguridad de redes; el diseo de pginas web; el desarrollo
de recursos multimedia; la instalacin de componentes de comunicacin; la supervisin
de productos e-mail; y el planeamiento y administracin del ciclo de vida tecnolgico
por el cual la tecnologa de una organizacin es mantenida, mejorada y reemplazada.

3.1.5. Software Engineering (Ingeniera de Software)


La Ingeniera de Software es la disciplina de desarrollo y mantenimiento de sistemas
software que se comportan de manera confiable y eficiente, y que son factibles de desarrollar y mantener. Recientemente ha evolucionado en respuesta a la creciente importancia del software en aplicaciones de seguridad crtica y para el creciente impacto de
grandes y costosos sistemas software en un amplio rango de situaciones. La Ingeniera
de Software es diferente en su carcter de otras disciplinas de ingeniera, debido tanto
a la naturaleza intangible del software y a la naturaleza discontinua de la operacin
del software. Esta busca integrar los principios de las matemticas y las Ciencias de la
Computacin con las prcticas de ingeniera desarrollada para objetos fsicos tangibles.
Los estudiantes interesados pueden esperar ver a la Ingeniera de Software presentada
en dos contextos:
Los estudiantes de Ingeniera de Software aprenden cmo asegurar las necesidades
de los clientes y desarrollan software usable que satisface estas necesidades. Conocer
cmo proporcionar software genuinamente til y usable es de mxima importancia.

z4 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

3.2. Organizaciones internacionales en computacin


3.2.1. ACM (Association for Computing Machinery)
Fundada en 1947. Es la primera sociedad cientfica y educativa acerca de la computacin. Publica varias revistas y peridicos cientficos relacionados con la computacin.
Patrocina conferencias o congresos y otros certmenes cientficos relacionados con las
reas del campo de las ciencias de la computacin. Dispone de una extensiva biblioteca
digital y una amplia referencia de la literatura de la computacin. La ACM tambin ofrece
seguros y otros servicios a sus miembros de los Estados Unidos. Tiene presencia en ms
de 100 pases.
http://www.acm.org/

3.2.2. IEEE Computer Society


La IEEE Computer Society es una fuente bsica de los profesionales de computacin,
sin igual para tecnologas de la informacin, la inspiracin y la colaboracin. Al hacer
la informacin ms actualizada y avanzada del mundo de computacin de fcil acceso,
es la fuente en la que los profesionales de la informtica confan para proporcionar alta
calidad, informacin de estado-of-the-art en una base a la carta.
http://www.computer.org/portal/web/about/home

3.2.3. AIS (Association for Information System)


La Asociacin para los Sistemas de Informacin (AIS) es una organizacin profesional
internacional que sirve como la organizacin mundial para los acadmicos especializados
en sistemas de informacin. Su misin es avanzar el conocimiento en el uso de las TI
para mejorar el rendimiento de la organizacin y la calidad de vida individual de trabajo
http://aisnet.org/

3.3. Organizaciones nacionales en computacin


3.3.1. APESOFT (Asociacin Peruana de Productores de Software)
Fundada en el ao 2000, es una entidad privada sin fines de lucro que tiene como
objetivo promover la industria nacional del software, mejorar la competitividad de sus
afiliados y fomentar las exportaciones de programas informticos peruanos. Est consz4 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

tituida por las principales empresas desarrolladoras de software, algunas de las cuales
han logrado obtener certificaciones de calidad bajo estndares internacionales, como el
CMMI, ISO9000, IT MARK.
http://www.apesoft.org/

3.3.2. ONGEI (Oficina Nacional de Gobierno Electrnico e Informtica)


La Oficina Nacional de Gobierno Electrnico e Informtica (ONGEI), es el rgano tcnico especializado que depende directamente del despacho de la Presidencia del Consejo
de Ministros (PCM). ONGEI, en su calidad de ente rector del Sistema Nacional de Informtica, se encarga de liderar los proyectos, la normatividad y las diversas actividades
que en materia de gobierno electrnico realiza el Estado. Entre sus actividades permanentes se encuentran las vinculadas a la normatividad informtica, la seguridad de la
informacin, el desarrollo de proyectos emblemticos en tecnologas de la informacin
y la comunicacin (TIC), brindar asesora tcnica e informtica a las entidades pblicas,
as como ofrecer capacitacin y difusin en temas de gobierno electrnico y la modernizacin y descentralizacin del Estado.
La ONGEI, asimismo, se encarga de la administracin de diversos portales del Estado,
entre los que se encuentran el Portal del Estado Peruano (PEP), portal de mayor jerarqua a nivel de Estado, que se constituye en el sistema interactivo de informacin a los
ciudadanos a travs de Internet; el Portal de Servicios al Ciudadano y Empresas (PSCE),
el Portal de la Comisin de Desarrollo de la Sociedad de la Informacin (CODESI), entre
otros.
http://www.ongei.gob.pe/

3.4. La disciplina de sistemas de informacin


Sistemas de Informacin, como un campo de estudio acadmico, se inicia en 1960,
algunos aos despus del uso de los primeros ordenadores para el procesamiento de
transacciones y generacin de reportes. A medida que las organizaciones extienden el
uso del procesamiento de informacin y de tecnologas de comunicacin a procesos operativos, soporte de decisiones y estrategias competitivas, el campo acadmico tambin
creci en mbito y en profundidad.
En este contexto, emerge la funcin de sistemas de informacin en las organizaciones, para administrar sus tecnologas computacionales y de comunicaciones y sus recursos de informacin. Las universidades asumen el compromiso de formar profesionales
para administrar las tecnologas y recursos de informacin de las organizaciones (Topi
y otros, 2010).

z4 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Sistemas de Informacin, como disciplina, incluye conceptos, principios y procesos de


dos amplias reas de actividad dentro de las organizaciones:
1. Adquisicin, entrega y administracin de los recursos y servicios de tecnologa de
informacin (la funcin de sistemas de informacin).
2. Desarrollo, operacin y evolucin de la infraestructura y los sistemas para su uso
en procesos organizacionales (desarrollo de sistemas, operacin de sistemas y
mantenimiento de sistemas).
El profesional de Sistemas de Informacin, dentro de una organizacin, tiene la gran
responsabilidad de planear, desarrollar o adquirir, implementar y administrar una infraestructura de tecnologas de informacin (ordenadores y comunicaciones), datos
(tanto internos como externos) y sistemas de procesamiento de informacin en la empresa. Realiza seguimiento de nuevas tecnologas de informacin para apoyar, con su
incorporacin, las estrategias, planes y prcticas de la organizacin. Un sistema de
informacin tambin soporta sistemas de tecnologa de informacin departamental e
individual. La tecnologa empleada puede variar desde sistemas grandes centralizados
a mviles distribuidos. El desarrollo y administracin de la infraestructura de tecnologa
de informacin y sistemas de procesamiento pueden involucrar a empleados organizacionales, a consultores y servicios de outsourcing.
La actividad de desarrollar o adquirir aplicaciones de tecnologa de informacin para
procesos organizacionales e interorganizacionales involucra proyectos que definen el uso
creativo y productivo de la tecnologa de informacin para el proceso de transacciones,
adquisicin de datos, comunicacin, coordinacin, anlisis y soporte a las decisiones.
Se emplean tcnicas de diseo, desarrollo o adquisicin e implementacin, tecnologas
y mtodos. Los procesos para crear e implementar sistemas de informacin en organizaciones incorporan conceptos de diseo, innovacin, sistemas humano-ordenador,
interfaces humano-ordenador, diseo de e-business, sistemas socio-tecnolgicos, administracin del cambio y calidad de procesos de negocio.
El profesional de sistemas de informacin trabaja con tecnologas de la informacin
y debe tener slido conocimiento tcnico de computadoras, comunicaciones y software.
Puesto que se desenvuelve en las organizaciones y con los sistemas organizacionales,
debe tambin comprender las organizaciones y las funciones dentro de las organizaciones (administracin, contabilidad, finanzas, marketing, operaciones, recursos humanos,
y as sucesivamente). Ellos deben entender los conceptos y procesos para lograr objetivos de la organizacin con la tecnologa de la informacin.
El cuerpo de conocimiento de Sistemas de Informacin est dividido en cuatro categoras: Conocimiento de Computacin, Conocimiento de Sistema de Informacin, Conocimiento Fundamental y Conocimiento de Dominio Especfico.
Conocimiento de Computacin incluye: fundamentos de programacin, algoritmos y
complejidad algortmica, arquitectura y organizacin de ordenadores, sistemas operativos, computacin centrada en red, lenguajes de programacin, computacin grfica y
visual, sistemas inteligentes.
z4 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Conocimiento de Sistema de Informacin incluye: liderazgo y gestin de sistemas de


informacin, gestin de informacin y dato, anlisis y diseo de sistemas, gestin de
proyectos de sistemas de informacin, arquitectura empresarial, experiencia de usuario,
asuntos profesionales en sistemas de informacin
El Conocimiento Fundamental incluye: liderazgo y comunicacin, capacidad y conocimiento de trabajo individual y organizacional
Conocimiento de Dominio Especfico describe el contenido del dominio requerido para
un tipo especfico de programa de grado de sistemas de informacin.

z4 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

RESUMEN
La computadora, su historia e importancia en la sociedad
La computacin es la ciencia que estudia el funcionamiento de las computadoras, incluyendo su diseo,
funcionamiento y utilizacin para la gestin de la informacin. Computacin es sinnimo de informtica.
Una computadora es un dispositivo que procesa datos y los convierte en informacin; es controlada con
instrucciones programadas, las cuales le dan a la mquina un propsito y le dicen lo que debe hacer. Segn el
modelo de Von Neumann, estn formadas por: memoria, unidad aritmtica lgica, unidad de control y el subsistema de entrada salida. La memoria almacena los programas y datos. La unidad aritmtica lgica (ALU) realiza
clculos aritmticos y operaciones lgicas. La unidad de control determina las operaciones de la memoria, de
la ALU y del subsistema de entrada-salida. El subsistema de entrada acepta datos de entrada y el programa
desde el exterior de la computadora, el subsistema de salida, enva los resultados del procesamiento al exterior.
La historia de la computacin y computadoras puede dividirse en periodos: 1) De las mquinas mecnicas
(antes de 1930); 2) Del nacimiento de las computadoras electrnicas modernas (1930 1950), y 3) De la
generacin de computadoras (1950 al presente).
El impacto de la computacin en la sociedad ha generado asuntos de discusin que se agrupan en asuntos
sociales (dependencia, justicia social, brecha digital) y asuntos ticos (privacidad, copyright, delitos informticos).
Los problemas computacionales, el rol de los algoritmos y la abstraccin
Un problema computacional es una descripcin basada en objetos matemticos (nmeros, permutaciones,
particiones, matrices, conjuntos y relaciones) que representan una coleccin de preguntas que el computador
debe ser capaz de resolver.
La solucin de problemas computacionales se basa en algoritmos. Un algoritmo es un conjunto de
pasos que definen cmo una tarea es ejecutada.
La abstraccin hace referencia a la distincin entre las propiedades externas de una entidad y los detalles de la composicin interna de la misma.
La computadora y el sistema de cmputo
Se denomina hardware a los componentes fsicos de la computadora. Los programas o conjunto de instrucciones constituyen la parte lgica de la computadora, denominada software. Un programa se conforma de
un nmero finito de instrucciones.
Algunos dispositivos hardware son el procesador, la memoria, las unidades de entrada-salida y el almacenamiento. El procesador, tambin se le conoce como CPU, organiza y ejecuta las instrucciones. La memoria
almacena datos e instrucciones del programa. Las unidades de entrada-salida aceptan datos e instrucciones del
usuario y devuelven los resultados despus de su procesamiento.
La disciplina de Sistemas de Informacin
Las disciplinas de la computacin son: Computer Engineering (Ingeniera de Computadoras), Computer
Science (Ciencias de la Computacin), Information Systems (Sistemas de Informacin), Information Technology
(Tecnologa de Informacin), Software Engineering (Ingeniera de Software).
Algunas de las principales organizaciones internacionales de computacin son: ACM, IEE Computer Society,
AIS. Algunas organizacionales nacionales en computacin son: APESOFT, ONGEI.
La disciplina de Sistemas de Informacin incluye conceptos, principios y procesos de dos amplias reas de
actividad dentro de las organizaciones: a) Adquisicin, entrega y administracin de los recursos y servicios de
tecnologa de informacin (la funcin de sistemas de informacin); b) Desarrollo, operacin y evolucin de la
infraestructura y los sistemas para su uso en procesos organizacionales (desarrollo de sistemas, operacin de
sistemas y mantenimiento de sistemas).
z4 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Texto pa ra c ome n t a r
La combinacin de medios y contenidos*
Imagino que usted conoce las computadoras personales desde hace algn tiempo. A
pesar de que su familia nunca haya tenido una PC (e incluso si este curso es su primera
oportunidad de utilizar una) es probable que al menos haya notado de forma indirecta el
lugar prominente que hemos otorgado a las PC en nuestras vidas. A decir verdad, las PC
se han ganado un lugar en los escritorios de los hogares y lugares de trabajo, si es que
se puede decir que ganado es la palabra adecuada. El comienzo lento de las computadoras personales se ha acelerado hasta alcanzar un paso sorprendente, debido a que
los humanos hacemos lo que siempre hemos hecho: adoptar una nueva herramienta y
explotar todos sus usos posibles.
Para muchos de nosotros, la evolucin en treinta aos de los usos de la PC no ha sido
menos revolucionaria de lo que fue la introduccin de la electricidad en los hogares hace
un siglo. Lo que comenz con algo simple, si acaso aparentemente milagroso, fcil de
leer, se ha convertido en el centro de casi todos lo que hacemos en el hogar. Vaya, incluso
muchas chimeneas (anteriormente la iluminacin para leer), hoy en da se encienden con
energa elctrica. Las computadoras personales comenzaron su vida de forma similar, con
cosas modestas, aparentemente milagrosas por su capacidad de realizar mltiples propsitos para trabajar con palabras y nmeros y, sin embargo, solo capaces de desplegar
textos en respuesta a los comandos escritos, apenas capaces de imprimir algo que fuera
til y de ser aparatos cerrados (incapaces de comunicarse fuera de sus caja).
Se desarroll una enorme industria para sustentar el desarrollo de las computadoras
personales y expandir su uso potencial como herramienta. Y, durante aproximadamente
los primeros cinco aos de la existencia de la PC, las innovaciones ms grandes provienen del mundo de la computacin gracias a personas que investigan especficamente el
aumento del desempeo del video, la reduccin del costo de almacenamiento de datos
cada vez mayor, la conexin de computadoras en el mundo para acortar distancias, entre
otras cosas. La creatividad de estas personas fue asombrosa. Cuando se enfrentaron al
planteamiento: Puedo hablar a todo el mundo por telfono, por qu no lo puede hacer
mi computadora?, por ejemplo, literalmente dieron voz a la computadora. Eso es lo que
un mdem hace: convierte las seales digitales de una computadora en sonido audible
que el sistema telefnico tradicional puede manejar. Si lo desea, puede considerar esto
como algo anlogo a los primeros aos de la electricidad, cuando los pioneros como
Thomas Edison y George Westinghouse trabajaron incasablemente para mejorar el potencial de sus originales innovaciones y lograron hacer mucho dinero de forma honesta.
Otras industrias (la automotriz, la electrnica, y la de entretenimiento, solo por nombrar
algunas de las ms importantes), adoptaron las tecnologas que se desarrollaron para

z5 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

ellas e hicieron que fueran viables econmicamente debido a la creciente popularidad


de la computacin.
Esta relacin se convirti gradualmente en algo ms simbitico y la PC comenz a
beneficiarse de la tecnologa que originalmente se desarroll para otros propsitos. Piense
en el disco compacto. Se introdujo en 1980; en 1983 comenzaba a dejar la huella, que ha
marcado en el mundo de la msica. Seis aos despus, los CD-ROM aparecieron en las
computadoras personales y marcaron el comienzo de una segunda generacin de posibilidades para una PC. Las PC en ese entonces se haban convertido en interfaces graficas de
usuarios sofisticadas y pantallas detalladas. Mediante la combinacin del sonido digital del
CD y estas tecnologas visuales se dio el gran paso hacia lograr verdaderas experiencias
interactivas en computacin, algo que anteriormente solo las personas y juguetes poco
populares habran podido hacer. El mundo de la PC se convirti paulatinamente en un
lugar donde muchos otros mundos coincidan, en particular los distintos mundos de la
informacin y el entretenimiento: un mundo interactivo multimedia.
Este es nuestro mundo actual. Un mundo en el cual esperamos que nuestras computadoras hablen y que nos escuchen cuando estamos hablando, que recuerden lo que hemos
olvidado y que nos distraigan de manera que podamos olvidar. El mundo de la computacin
pas gran parte del final de los aos noventa olvidando que una compaa de tecnologa
debe producir algo que en realidad sea til para obtener ganancias; entonces el mundo
de la computacin volvi a recobrar vida con un enfoque renovado que colocaba a la PC
en el centro de los medios. Mientras escribo esto, una generacin nueva de media para
PC aparece en el mercado. Estos sistemas pueden combinar casi cualquier tecnologa de
medios existentes en una nica y sutil experiencia. Todas las capacidades tradicionales de
las PC, reproductoras CD y DVD, grabadoras de DVD, televisores, video caseteras, sistemas
de sonido envolvente, pueden ser proporcionadas por un dispositivo (o dos), si aade
las capacidades de impresin y grabacin de video. Lo que realmente es nuevo en estos
sistemas es su poder; el video de edicin prcticamente haba sido el mundo privado de
unas cuantas personas con muchos recursos hasta que aparecieron los ltimos avances
en los procesadores, memoria y almacenamiento masivo que se reunieron en sistemas
poco costosos y pusieron estas capacidades al alcance de los hogares y oficinas pequeas.
Esto significa que puede producir sus propias pelculas DVD con tan solo una cmara
de video normal y una PC multimedia (los representantes elocuentes se han convertido en
algo completamente opcional). Y para un grupo musical? Puede grabar y distribuir discos
de su msica directamente a travs de un sitio web que el software prcticamente disea
de manera automtica para usted. Pintura? Cree su propia galera en lnea. Escribir?
Edite usted mismo su material sobre pedido mientras promueve sus creaciones por medio
de una librera en lnea. Walt Disney dijo: Si puede soarlo, entonces puede hacerlo.
La tecnologa ha ayudado a comprobar que l tena razn. Hoy en da el usted que
puede hacerlo implica a ms personas de ms culturas y antecedentes que nunca antes.
*(Norton, 2006)

z5 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

AUTOEVALUACIN N 1
Marque la respuesta correcta:
1. Una computadora convierte datos en:
a) Informacin
b) Grficas
c) Software
d) Entrada-Salida
e) Otros
2. Las computadoras personales tambin son conocidas como:
a) Minicomputadoras
b) Microcomputadoras
c) Mainframe
d) Supercomputadoras
3. La unidad aritmtica y lgica (ALU) realiza:
a)
b)
c)
d)

El almacenamiento temporal de las operaciones lgicas


Clculos aritmticos y operaciones lgicas
Almacena la siguiente instruccin
Coordina las operaciones aritmticas y lgicas

4. Un algoritmo es:
a)
b)
c)
d)

Un componente de un programa almacenado


Un conjunto de componentes para programar
Un conjunto de pasos que definen cmo una tarea es realizada
Un conjunto de reglas para resolver un problema computacional

5. La abstraccin se refiere a:
a)
b)
c)
d)

La forma en que se resuelve un problema computacional


La distincin entre propiedades internas y externas de una entidad
Una propiedad de la programacin
Al modelo de Von Neumann

z5 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

EXPLORACIN ONLINE
John Blankenbaker, el hombre que cre la primera computadora personal de la historia
Bill Wilson. BBC. Noviembre, 9, 2015
http://www.bbc.com/mundo/noticias/2015/11/151109_tecnologia_john_blankenbaker_hombre_creo_primera_computadora_personal_lv
Cmo se cre la primera computadora electrnica del mundo
Un documental producido por Google revela los secretos de la construccin del equipo que fue vital para el
xito del desembarco en Normanda durante la Segunda Guerra Mundial
http://www.lanacion.com.ar/1459056-como-se-creo-la-primera-computadora-electronica-del-mundo
IBM refresca su estrategia en Per con la computacin cognitiva
Lunes, 26 de octubre del 2015
http://gestion.pe/tecnologia/ibm-refresca-su-estrategia-peru-computacion-cognitiva-2146404

BIBLIOGRAFA
The Joint Task Force for Computing Curricula, (2005).

Computing Curricula 2005. The Overview Reprot. USA:


ACM; IEEE-CS AIS.

Brookshear, G. (2012).

Computer Science, An Overview. Boston: Addison Wesley.

Brookshear, J. G. (2007).

Computer Science. An Overview (9 ed.). Boston: Pearson


Addison Wesley.

Cormen, TH., Leirseson, C., Rivest, R., & Stein, C. (2009). Introduction to Algorithms (3 ed.). Massachusetts: The MIT
press.
Forouzan, B., & Mosharraf, F. (2008).

Foundation of Computer Science (2 ed.). USA: Thomson


Course Technology.

Fourozan, B. A. (2003).

Introduccin a la ciencia de la computacin. De la manipulacin de datos a la teora de la computacin. Mxico: International Thomson Editores.

Norton, P. (2006).

Introduccin a la computacin. Mxico: McGraw-Hill .

Topi, H., Valacich, J., Wright, R., Kaiser, K., Nunamaker, J.,
Sipior, J., & Vreede, G. (2010).

Curriculum Guidelines for Undergraduate Degree Programs in


Information Systems. USA: ACM AIS.

z5 3 z

s e g u n d a

UNIDAD
Almacenamiento de datos
y manipulacin de datos

OBJETIVOS
Identifica las tcnicas de almacenamiento y manipulacin de
datos en la solucin de problemas computacionales asumiendo actitud de inters por estos temas.
Realiza operaciones booleanas y comprende la notacin
hexadecimal.
Describe la organizacin de la memoria principal.
Reconoce los dispositivos de almacenamiento masivos.
Explica la representacin de textos, nmeros, imgenes,
sonidos mediante patrones de bits.
Realiza operaciones en el sistema binario.
Comprende las notaciones para almacenar enteros y fracciones.
Determina los componentes del computador y su funcionamiento.
Explica la ejecucin de un programa en base a lenguaje de
mquina.
Realiza operaciones aritmticas y lgicas.
Describe la comunicacin entre dispositivos.

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

L e c c i n

ALMACENAMIENTO DE DATOS

Una computadora es una mquina de procesamiento de datos, por lo tanto, en esta


leccin se tratan tpicos asociados a la representacin de datos y su almacenamiento.
Generalmente los datos a procesar estn en la forma de texto, valores numricos, imgenes, audio y video.

4.1. Bits y su almacenamiento


En las computadoras la informacin se halla codificada como patrones de 0s y 1s, en
dgitos binarios denominados bits (palabra derivada de binary bits), la unidad ms
pequea de datos que puede almacenarse en una computadora (Fourozan, 2003), y que
en realidad son solo smbolos cuyo significado depende de la aplicacin, as un bit almacenado en la memoria de una computadora puede representar a un valor lgico que es
falso o verdadero, esto es, puede estar en uno de dos estados posibles. Generalmente,
los patrones de bits, como el mostrado en la Figura 4.1, se utilizan para representar
valores numricos, caracteres en un alfabeto, imgenes, e incluso sonidos. (Brookshear,
2012)

1100101010110101
Figura 4.1 Patrn de bits
z5 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

4.1.1. Operaciones booleanas


Con los bits se realizan operaciones dentro de un computador, por ello, primero es
conveniente indicar que generalmente se considera que el bit 0 representa un valor
lgico falso y el bit 1 representa un valor lgico verdadero. A las operaciones que
manipulan valores verdaderos y falsos se les denominan operaciones booleanas3, y
combinan un par de valores (entradas) para producir un nuevo valor (salida). A diferencia de las operaciones aritmticas, las operaciones booleanas combinan valores verdadero/falso en lugar de valores numricos (Brookshear, 2012). Si una operacin lgica se
realiza con un bit de entrada se denomina operacin unaria, y si se realiza con dos bits
de entrada se denomina operacin binaria como se aprecia en la Figura 4.2.

Entrada

Salida
(a)

Entrada

Salida

Entrada

(b)

Figura 4.2. (a) Operacin unaria. (b) Operacin binaria. (Fourozan, 2003)

Las operaciones booleanas bsicas son la operacin unaria NOT y las operaciones
binarias AND, OR y XOR como se muestran en la Figura 4.3.

NOT

AND

OR

XOR

NOT 0 = 1

0 AND 0 = 0

0 OR 0 = 0

0 XOR 0 = 0

NOT 1 = 0

0 AND 1 = 0

0 OR 1 = 1

0 XOR 1 = 1

1 AND 0 = 0

1 OR 0 = 1

1 XOR 0 = 1

1 AND 1 = 1

1 OR 1 = 1

1 XOR 1 = 0

Figura 4.3 Operaciones booleanas NOT, AND, OR y XOR


3

En honor al matemtico George Boole (1815-1864), pionero de la lgica matemtica.


z5 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

La operacin lgica unaria que opera con una sola entrada es la operacin NOT, donde
el valor de la salida es opuesto al de la entrada, es decir, se invierten los bits, cambia el
0 a 1, y el 1 a 0. Por ejemplo, si se aplica la operacin NOT al patrn de bits 11001010,
el resultado es el patrn de bits de salida 00110101.
La operacin booleana AND determina la verdad o falsedad de una declaracin formada por dos declaraciones ms pequeas o simples, as: P AND Q donde P y Q representan declaraciones, por ejemplo, el sensor de la puerta izquierda del auto est en
activado, y el interruptor de encendido en modo automtico de la iluminacin interior
del auto est activado, entonces, la salida se puede declarar as: si el sensor de la
puerta izquierda de un auto est en activado y el interruptor de encendido en modo
automtico de la iluminacin interior est activado, entonces encender la iluminacin
interior del auto.
Las entradas a la operacin lgica binaria AND representan la verdad o falsedad de
los componentes de las declaraciones compuestas, la salida representa la verdad o falsedad de la declaracin compuesta misma. En una operacin AND, la salida P AND Q es
verdadera solo cuando sus componentes tambin lo son, en otros casos la salida genera
un 0
La operacin lgica binaria OR se basa en la forma compuesta P OR Q, donde igualmente P y Q son declaraciones. La declaracin compuesta es verdadera si al menos uno
de sus componentes tambin lo es.
Mientras que la operacin lgica boolena XOR se basa en la forma compuesta P XOR
Q, donde P y Q son declaraciones sencillas, y la declaracin es verdadera si una entrada
es verdadera y la otra es falsa, es decir, algo similar a cualquiera, P o Q, pero no ambos

4.1.2. Compuertas y flip-flops


Las operaciones booleanas se construyen con un dispositivo denominado compuerta
lgica, cuya salida refleja el resultado de una operacin booleana combinatoria con los
valores de entrada. Actualmente se utilizan pequeos dispositivos semiconductores en
los que los dgitos 0 y 1 se representan con niveles de voltaje igual a 0 voltios y 5 voltios, pero tambin pueden implementarse con mecanismos, relays, dispositivos pticos
y otros. Los smbolos empleados para cada compuerta se muestran a continuacin en
la Figura 4.4.

z5 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Figura 4.4 Compuertas lgicas

Las compuertas lgicas son importantes ya que con ellas se construyen no solo los
bloques y subsistemas combinatorios sino tambin los de comportamiento secuencial
que forman parte de las computadoras. As, por ejemplo, un flip-flop es un dispositivo
secuencial formado por compuertas lgicas en una estructura con realimentacin, como
el mostrado en la Figura 4.5, y produce un valor de salida 0 o 1 cuando un pulso de
entrada, denominado seal de reloj, cambia de 0 a 1 (o tambin de 1 a 0) y permanece
constante entre pulso y pulso; en el circuito mostrado, colocar temporalmente un 1 en
la entrada superior fuerza la salida a 1, mientras que colocar un 1 en la entrada inferior
fuerza la salida a 0.

Entrada

Salida

Entrada
Figura 4.5 Circuito flip-flop.
z6 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Brookshear (2012) afirma que presentar un flip-flop como el de la Figura 3.5 demuestra cmo se pueden construir dispositivos fundamentales a partir de compuertas lgicas
como la AND, OR y NOT en un proceso denominado diseo de circuitos digitales; adems de proporcionar un ejemplo de abstraccin y uso de herramientas abstractas; y finalmente, introducir un medio de almacenamiento de bits en una computadora moderna
utilizando una tecnologa conocida como VLSI (very large-scale integration) con la que
millones de componentes electrnicos se colocan dentro de un chip.

4.1.3. Notacin hexadecimal


Los patrones de bits que se utilizan en la representacin y almacenamiento de datos
dentro de una computadora, pero generalmente para las personas manipular grandes
patrones de 0s y 1s es bastante complicado y propenso a errores, de manera que para
simplificar la representacin de una serie de bits se utiliza la notacin hexadecimal. En
esta notacin se utilizan 16 smbolos o dgitos hexadecimales: 0, 1, 2, 3, 4, 5, 6, 7, 8,
9, A, B, C, D, E, y F, donde cada dgito hexadecimal representa a cuatro bits. (Roth, y
otros, 2013)
Un patrn binario de 16 bits como el 1100001011111001, por ejemplo, puede representarse de una manera ms sencilla y compacta como C2F9, en la Figura 4.6 se
muestra la equivalencia entre la notacin binaria y la hexadecimal.

Patrn de bits

Representacin
hexadecimal

Patrn de bits

Representacin
hexadecimal

0000

1000

0001

1001

0010

1010

0011

1011

0100

1100

0101

1101

0110

1110

0111

1111

Figura 4.6. Notacin hexadecimal

z6 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

4.2. Memoria principal


Una computadora posee un gran conjunto de circuitos (flip-flops) capaces de almacenar un bit, a este conjunto de circuitos se le denomina memoria principal.

4.2.1. Organizacin de la memoria


La memoria principal de una computadora se organiza en unidades administrables
denominadas celdas, con tamao igual a 8 bits (1 byte), de manera que una celda de
memoria tpica es de capacidad igual a un byte. A modo de comparacin, las computadoras pequeas utilizadas en los hornos microondas, por ejemplo, tienen solo unos
cuantos cientos de celdas de memoria, mientras que las computadoras ms grandes
contienen billones de celdas de memoria principal.
Generalmente, se asocia a los bits dentro de una celda de memoria como un arreglo
en fila, igual al mostrado en la Figura 4.7, donde el bit ubicado en el extremo izquierdo
es el bit ms significativo (MSB = most significant bit), y el que se ubica en el extremo
derecho es el bit menos significativo, similar a cmo se interpretan los valores numricos.

1 0 1 1 0 0 1 0

MSB

MSB

Figura 4.7 Organizacin de una celda de memoria de un byte

A la vez, estas celdas de memoria poseen un nico nombre denominada como su


direccin, de manera similar a como se identifican con una nica direccin a cada casa
ubicada en una determinada calle dentro de un distrito. En la Figura 4.8, puede observarse un sistema de direccionamiento hexadecimal de una memoria con 65535 celdas,
donde en cada celda (o registro) se almacena un dato de 8 bits en notacin binaria.

z6 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Registro

Direccin (hexadecimal)

Dato almacenado
(8 bits)

0000

00101011

0001

11111111

0002

00000000

0003

01000111

0004

11010011

0005

10000000

0006

00010101

0007

00111001

0008

10000111

0009

10100000

10

000A

11111111

11

000B

11111111

12

000C

00000000

13

000D

00000001

14

000E

00000101

15

000F

10101010

...

...

...

65535

FFFF

01011110

Figura 4.8 Registros ordenados por direccin (elaboracin propia)

Como se puede observar, la memoria principal es un conjunto enorme de celdas o


registros ordenados por direcciones, en la Figura 4.8, se aprecia que en cada celda se
almacena un dato de 8 bits solamente, pero tambin podra almacenarse un dato de
mayor nmero de bits simplemente utilizando dos o ms celdas consecutivas. La recuperacin del dato almacenado en estas celdas, operacin de lectura, as como el almacenamiento de estos datos, operacin de escritura, se realiza con otros circuitos que
de manera electrnica solicitan el contenido de tales registros o colocan datos en ellos.
z6 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

En la memoria principal, cada celda o registro puede accederse de manera independiente en cualquier orden aleatorio, ya que se halla organizada como registros individuales, en lo que se denomina como memoria de acceso aleatorio (RAM = Random
Access Memory), a diferencia de otros tipos de memoria donde el acceso es secuencial,
por ejemplo (Brookshear, 2012).
Tambin debe anotarse que existe otro tipo de memoria que no utiliza flip-flops como
elemento almacenador de datos, sino que utiliza pequeos capacitores en donde almacena bits en forma de cargas elctricas que se disipan muy rpidamente, por lo que
requieren de una circuitera electrnica adicional para realizar operaciones de refresco
que recargan la carga elctrica de cada celda varias veces por segundo. A estas memorias se las conoce como memorias dinmicas (DRAM = Dynamic RAM).

4.2.2. Capacidad de memoria


La capacidad de los sistemas de memoria principal se mide en nmero de celdas
potencia de dos; en las primeras computadoras el tamao de la memoria se meda en
1024 unidades de celdas (210 unidades de celdas), la que fue adoptada por la comunidad
informtica con el prefijo de kilo, pero considerando que es diferente a las unidades
de distancia utilizadas en fsica donde un kilmetro s significa 1000 metros y no 1024
metros. As, en computacin, un kilobyte (KB) es similar a decir 1024 bytes, por ejemplo, si un bloque de memoria posee 8192 bytes, esto es equivalente a decir que posee
8KB de memoria. En la actualidad se emplean prefijos para nmeros ms grandes, ya
que los tamaos de memoria son mucho mayores. Por ejemplo, se utilizan los trminos
megabytes (MB), gigabytes (GB) y hasta terabytes (TB).

4.3. Almacenamiento masivo


La memoria principal de una computadora es voltil y de tamao limitado, lo que
obliga a contar con dispositivos de memoria adicional denominadas como sistemas de
almacenamiento masivo o de almacenamiento secundario que incluye a los discos magnticos, CD, DVD, cintas magnticas y las memorias flash. Las ventajas de los sistemas
de almacenamiento sobre la memoria principal incluyen su menor volatilidad, mayor
capacidad de almacenamiento, bajo costo, y hasta su habilidad para remover el medio
de almacenamiento como el caso de las memorias con conexin USB. Una desventaja
principal de los sistemas de almacenamiento masivo es que necesitan de movimiento
mecnico y, por lo tanto, necesitan ms tiempo para almacenar y recuperar datos que
la memoria principal de una computadora donde sus actividades son realizadas electrnicamente.
Los dispositivos de memoria pueden conectarse o desconectarse de la computadora
de dos maneras: en-lnea o fuera-de-lnea; en-lnea significa que se accede al dispositivo
o a la informacin sin intervencin humana; fuera-de-lnea significa que se necesita de
z6 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

la intervencin humana antes de que un dispositivo o la informacin pueda ser accedida


por la mquina.

4.3.1. Sistemas magnticos


Los sistemas de almacenamiento magnticos son los que han predominado durante
muchos aos con el denominado disco magntico, comnmente conocido como disco
duro, consistente de una fina capa magntica alrededor de un disco rotatorio en los que
los datos se guardan (escritura) o recuperan (lectura) mediante unos cabezales ubicados en la parte superior e inferior del disco, de modo que al girar el disco se recorren
pistas circulares (tracks) que son las que contienen los datos en forma de una cadena
continua de bits. La capacidad de almacenamiento depende del nmero de platos utilizados y la densidad en la que se colocan las pistas y los sectores, as los sistemas de
alta capacidad capaces de almacenar muchos gigabytes y hasta terabytes tienen varias
placas montadas en un eje comn, e incluso pueden almacenar datos en ambas superficies, superior e inferior de cada plato.
Para evaluar la performance de un sistema de almacenamiento en disco magntico se
utilizan varios indicadores de tiempo generalmente en unidades de milisegundos; uno es
el tiempo de bsqueda, que es el tiempo requerido para mover los cabezales de lectura/escritura de una pista a otra; el tiempo de latencia o tiempo requerido para que el
dato deseado sea tomado por el cabezal de lectura/escritura luego que este cabezal se
ha ubicado en la pista deseada; el tiempo de acceso o suma de los tiempos de bsqueda y de latencia; y finalmente la tasa de transferencia de datos hacia o desde el disco.
Un factor limitante es la velocidad a la que rota el disco, ya que para incrementarla, el
espacio entre el cabezal de lectura/escritura y la superficie magntica es tan pequeo
que incluso una partcula de polvo puede destruir el disco, por lo que se los encapsulan
y sellan para lograr altas velocidades de transferencia de datos en el orden de varios
megabytes por segundo.
Otro tipo de dispositivo de almacenamiento masivo lo constituye la cinta magntica,
similares a los antiguos casetes de los sistemas de audio. Su principal desventaja es
que desplazarse entre diferentes posiciones de memoria puede emplear mucho tiempo,
ya que su tiempo de acceso es mucho mayor que las de los discos magnticos, por lo
que su uso principal es como sistema de almacenamiento fuera de lnea donde su alta
capacidad en gigabytes, confiabilidad y bajo costo son benficos, aunque existen otras
alternativas como los DVD y las memorias denominadas como flash.

4.3.2. Sistemas pticos


Otro tipo de sistema de almacenamiento en masa lo constituye la tecnologa ptica
como, por ejemplo, el disco compacto (CD), que consiste de un material reflector cubierto por una fina capa protectora. La informacin se graba creando variaciones en las

z6 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

superficies reflectoras, que luego son ledas por medio de un haz lser que detecta las
irregularidades sobre la superficie del CD cuando este gira alrededor de su eje.
Inicialmente utilizado en audio se utiliza como almacenador de datos masivos con el
mismo formato de grabacin, los CD tradicionales tienen de 600 a 700MB, sin embargo, los DVD pueden almacenar varios gigabytes. La tecnologa Blu-ray utiliza un lser
azul-violeta en lugar del clsico haz rojo y es capaz de enfocar su haz lser con mayor
precisin, por lo que su capacidad de almacenamiento es hasta cinco veces mayor que
la de un DVD.

4.3.3. Memoria flash


La principal desventaja de los sistemas magnticos y los sistemas pticos de almacenamiento de datos es que deben girar alrededor de su eje moviendo unos cabezales de
lectura/escritura, por lo que son lentos en comparacin con los sistemas electrnicos de
almacenamiento denominados como memoria flash. En estos, los bits son almacenados
enviando seales electrnicas directamente al medio de almacenamiento consistente en
delgadas cmaras de dixido de silicio que tienen la propiedad de almacenar electrones
durante muchos aos, por lo que se le puede utilizar como almacenamiento fuera de
lnea.
Se utilizan en cmaras digitales, telfonos celulares, smartphones, MP3, GPS, PDA
y tambin en aplicaciones de almacenamiento masivo de datos en las denominadas
comnmente como memorias USB, que actualmente tienen capacidades de varios gigabytes.

4.4. Representacin de la informacin en bits


La informacin procesada dentro de una computadora debe representarse de una
manera adecuada para que la computadora pueda comprenderla, ya que se utiliza informacin en forma de textos, nmeros, imgenes y sonidos.

4.4.1. Texto
La informacin en forma de texto normalmente se representa mediante un cdigo en
la que a cada carcter del texto se le asigna un nico patrn de bits. Para ello existen
cdigos tales como el denominado ASCII (American Standard Codefor Information Interchange) que utiliza patrones de 7 bits para representar las letras maysculas y minsculas, los smbolos de puntuacin, los dgitos del 0 al 9, y algunas seales de control.
Debe diferenciarse entre un archivo de texto que contiene una codificacin carcter por

z6 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

carcter del texto, mientras que un procesador de texto contiene un mayor nmero de
cdigos propietarios que representa cambios en las fuentes, alineamiento, etc.

4.4.2. Nmeros
La informacin numrica se almacena en alguna forma de notacin binaria en lugar
de smbolos como el ASCII, as tambin, por ejemplo, la denominada notacin en complemento a dos para representar nmeros positivos y negativos; y para representar
fracciones se utiliza la notacin denominada de punto flotante.

4.4.3. Imgenes
Las imgenes se representan como un conjunto de puntos llamados pixel, conformando un mapa de bits, til en muchos displays e impresoras.
En el caso de las imgenes en blanco y negro, cada pixel puede ser representado por
un bit; para imgenes ms elaboradas puede utilizarse un conjunto de bits para representar una variedad de tonos grises. Si son imgenes a color se utiliza la codificacin
RGB, donde cada pixel es representado por componentes de tres colores primarios, rojo,
verde, azul.

4.4.4. Sonido
El sonido se representa como una serie de valores de la amplitud de una onda de
sonido muestreada a intervalos regulares. Para obtener un sonido de calidad en los CD
actuales la tasa de muestreo debe ser de aproximadamente 44,100 muestras por segundo, de manera que la data obtenida se representa en 16 bits (32 bits para estreo),
as cada segundo de msica grabada requiere de ms de un milln de bits. Un mtodo
alternativo de codificacin es el denominado MIDI (Musical Instrument Digital Interface)
utilizado en los sintetizadores digitales, juegos de video y efectos de sonido de la web.

4.5. El sistema binario


A diferencia del sistema decimal que se basa en 10 y utiliza dgitos del 0 al 9, el sistema binario se basa en 2 y solo se emplean dos dgitos, el 0 y el 1, a cada dgito
binario se le denomina como bit.

z6 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

4.5.1. Notacin binaria


En el sistema binario se utiliza la representacin posicional de los dgitos (Brown y
otros, 2005), de manera que el nmero binario B siguiente:
B = bn-1bn-2bn-3 b1 b0
Representa a un nmero entero que tiene el valor:
V(B) = bn-1 x 2n-1+ bn-2 x 2n-2 + bn-3 x 2n-3+ b1 x 21+ b0 x 20
Por ejemplo, el nmero binario 1011 representa el valor dado por la posicin de sus
bits siguiente: V = 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11 en base 10.
As en el sistema binario las potencias binarias son las representadas en la Figura 4.9
siguiente:

27 26 25 24 23 22 21 20
128 64

32 16 8

1 1

1 0

1 x 128 + 1 x 64 + 1 x 32 + 0 x 16 +

4 2 1

0 0 0 1

0 x 8 + 0 x 4 +

0x2 + 1 x1

Figura 4.9 Sistema binario

4.6. Almacenamiento de enteros y fracciones


Para el almacenamiento de nmeros enteros mostrados en esta seccin, solo se ha
considerado a dos sistemas de notacin, la del complemento a dos y la de exceso a un
nmero, los cuales se basan en el sistema binario.

z6 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

4.6.1. Notacin en complemento a dos


Es un sistema de notacin de nmeros enteros bastante popular, ya que utiliza un
nmero fijo de bits para representar los valores numricos de un sistema. En general, si
los nmeros son positivos, se representan por el mismo nmero binario, pero si el nmero es negativo, entonces al nmero hay que realizarle la operacin de complemento
a dos (Roth y otros, 2013).

Patrn de bits

Valor

0011

0010

0001

0000

1111

-1

1110

-2

1101

-3

Figura 4.10 Complemento a dos.

4.6.2. Notacin en exceso a un nmero


La notacin en exceso a un nmero puede comprenderse fcilmente como un desplazamiento del valor representado en forma binaria, tal como se puede apreciar en la
Figura 4.11 que representa la notacin en exceso 3 (Brown y otros, 2005).

z6 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Patrn de bits

Valor

1000

0111

0110

0101

0100

0011

0010

-1

0001

-2

0000

-3

Figura 4.11 Exceso 3

4.6.3. Almacenamiento de fracciones


El almacenamiento de una fraccin requiere que se almacenen no solo los patrones de
0s y 1s, sino tambin de la posicin del punto decimal, por lo que una manera bastante
comn de hacerlo es utilizar la notacin cientfica conocida como punto flotante, en
la que se cuenta con un bit de signo, varios bits para un exponente y otros tantos bits
para una mantisa. Por ejemplo, en punto flotante de precisin simple, 32 bits, se utiliza
un bit de signo, 8 bits para el exponente y 23 bits para la mantisa; as, para el nmero
-81.37510 en base diez, la parte entera 8110= 10100012 y la parte decimal 0,37510= 0112,
la mantisa normalizada por lo tanto es igual a -1,0100010112 x 2+6, el exponente 610 en
exceso 127 es 13310 = 10000101, para finalmente representarse como se muestra en la
Figura 4.12 (Brown y otros, 2005).

1 bit

8 bits

10000101

31

30

23 bits
01000101100000000000000
23 22

Figura 4.12 Punto flotante en precisin simple

Tambin existe el formato en punto flotante de precisin doble con 64 bits, de los
cuales uno corresponde al bit de signo, 11 bits para el exponente y 52 bits conforman
la mantisa.
z7 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

L e c c i n

MANIPULACIN DE DATOS

En la siguiente leccin, se tratan tpicos relacionados con la manipulacin de


datos dentro de un ordenador, es decir, del movimiento de datos de un lugar a
otro, as como de las operaciones de clculo aritmtico, edicin de texto y manipulacin de imagen, por ejemplo.

5.1. El computador y sus componentes


Cuando los mecanismos internos de una computadora no son conocidos, entonces a la computadora se la conoce como caja negra. Un modelo comn es
el de conceptualizar una computadora como un procesador de datos, pero un
modelo mejor es el de considerarla como un procesador de datos programable (Fourozan, 2003).
En el modelo procesador de datos, una computadora acta como una caja
negra que recibe datos de entrada, los procesa y crea datos de salida (ver Figura 5.1). Este modelo es muy genrico, ya que as hasta una simple calculadora
de bolsillo puede ser una computadora, ms an en este modelo no se especifica nada sobre el tipo de procesamiento, si puede realizar varias operaciones o
si solo es una computadora de propsito especfico, como por ejemplo, una que
z7 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

controla especficamente solo alguna o algunas variables fsicas en un sistema


mecnico y nada ms.

Datos de
Entrada

Computadora

Datos de
Salida

Figura 5.1 Computadora como procesador de datos.

En el modelo procesador de datos programable, una computadora se conceptualiza


como una mquina de propsito general (ver Figura 5.2) en la que se agrega un programa, que en esencia es un conjunto de instrucciones que le indican a la computadora
qu es lo que debe hacer con los datos de entrada para producir datos de salida, es decir,
los datos de salida dependen de los datos de entrada y del programa.

Programa

Datos de
Entrada

Computadora

Datos de
Salida

Figura 5.2 Computadora como procesador de datos programable

5.1.1. Componentes de una computadora


Las computadoras actuales se basan en el modelo propuesto por John Von Neumann
de la Universidad de Princeton, en la que una computadora est constituida por cuatro
componentes o subsistemas: unidad de control, unidad aritmtico-lgica (ALU = Arithmetic Logic Unit), unidad de memoria y unidad de entrada-salida (ver Figura 5.3).

z7 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Programa

Unidad de control

Datos de
Entrada

Unidad aritmtico-lgica

Datos de
Salida

Unidad de memoria
Unidad de memoria

Figura 5.3 Componentes de una computadora.

La unidad de memoria es el rea donde se almacenan los programas y los datos durante el procesamiento. La unidad aritmtico-lgica es encargada de realizar las operaciones tanto aritmticas como lgicas. Por su parte, la unidad de control, quiz la ms
importante, es la que se encarga de determinar cules son y cul es la secuencia en la
que se llevan a cabo las operaciones de la memoria, de la unidad aritmtico-lgica, y de
las unidades de entrada y salida. Finalmente, la unidad de entrada-salida es la que se
ocupa de ingresar los datos a ser procesados y luego enviar los datos de salida hacia el
exterior.
En la actualidad, la unidad de control junto con la unidad aritmtico-lgica se hallan
encapsuladas en un solo circuito integrado denominado microprocesador, o unidad de
procesamiento central o simplemente CPU (Central Process Unit), adems de contar
en su interior con una serie de registros utilizados para almacenar temporalmente los
datos.
Tambin debe considerarse que segn el modelo Von Neumann, una computadora
es una mquina que funciona en base a un programa almacenado en su memoria (ver
Figura 4.4), y cuyas instrucciones se llevan a cabo de modo secuencial, a esto se le conoce como el concepto de programa almacenado, de ah su versatilidad para ser considerada como una mquina de propsito general, donde las tareas a realizar se pueden
modificar una y otra vez, simplemente cambiando el programa que se encuentra almacenado en la memoria. En resumen, segn (Stallings, 2000) el concepto de programa
almacenado se basa en tres conceptos bsicos:

z7 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Los datos a procesar y las instrucciones del programa se almacenan en una sola
memoria de lectura-escritura.

Los contenidos o registros de esta memoria de lectura-escritura se direccionan


indicando su ubicacin, sin considerar el tipo de dato contenido en la misma.

La ejecucin de las instrucciones del programa almacenado se produce siguiendo


una secuencia de instruccin tras instruccin.

Memoria

Datos
Memoria
Figura 5.4. Programa y datos almacenados en la memoria

Igualmente, propone representar a una computadora como una entidad que interacta de alguna manera con su entorno externo (ver Figura 4.5), interconectndose
mediante dispositivos perifricos de entrada y salida, as como mediante las lneas de
comunicacin, Internet, por ejemplo, o quiz por un modem.

Figura 5.5 Computadora personal y su entorno

z7 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Asimismo, plantea un esquema (Figura 4.6) de componentes a alto nivel, donde la


CPU se encarga de las funciones de control, intercambiando datos con la memoria y la
unidad de entrada-salida, utilizando diversos tipos de registros generalmente no visibles al usuario, denominados registros de control y de estado, como, por ejemplo, los
siguientes:

Registro contador de programa (Program Counter, PC): contiene la direccin de


instruccin a buscar y captar.

Registro de instruccin (Instruction Register, IR): contiene la ms reciente instruccin encontrada en la fase de bsqueda del ciclo de instruccin y lista para
ser decodificada.

Registro de direccin de memoria (Memory Address Register, MAR): contiene la


direccin de una posicin de memoria en la que se halla una instruccin.

Registro intermedio de memoria (Memory Buffer Register, MBR): contiene la palabra de datos a escribir en la memoria, o la palabra de datos leda ms recientemente.

Figura 5.6 Esquema de componentes de una computadora


z7 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

En la Figura 5.7, se pueden observar los ejemplos de organizaciones de registros de


algunos microprocesadores, uno es el Motorola MC68000, que distribuye sus registros
de 32 bits en ocho registros de datos y nueve registros de direcciones. Los registros de
datos se utilizan en la manipulacin de datos, pero tambin se utilizan en el direccionamiento como registros ndice. Los registros tienen un ancho que permite operaciones
con 8, 16 y 32 bits, dependiendo del cdigo de operacin. Dos de los registros de direcciones, de 32 bits, se utilizan como punteros de pila, uno para los usuarios y el otro para
el sistema operativo. Tambin posee un contador de programa de 32 bits y un registro
de estado de 16 bits.
De otro lado, el microprocesador Intel 8086 tiene registros especializados y de uso
general. Posee cuatro registros de datos de 16 bits, que pueden ser direccionados como
registros de 16 bits o de 8 bits, y cuatro registros punteros e ndices de 16 bits. Los registros de datos pueden tambin utilizarse como registros de propsito general en algunas instrucciones, en otra se utilizan implcitamente. Tiene cuatro registros de segmento
de 16 bits, tres de los cuales se utilizan de forma dedicada para apuntar a la instruccin
en ejecucin, al segmento que contiene los datos, y al segmento de pila. As, el 8086
es un poco rgido debido a su conjunto de instrucciones compacta, pero de bajo costo.
Tambin posee un puntero de instruccin y un conjunto de indicadores de estado y control de operacin. A manera de resumen, estos son los registros del microprocesador
8086 (Stallings, 2000):

Registros generales o de datos: AX, BX, CX, DX.

Registros de segmento: CS, DS, SS y DS.

Registro apuntador de instrucciones: IP.

Registros apuntadores: SP y BP.

Registros ndice: SI y DI.

Registros de estado o banderas: OF, DF, IF, TF, SF, ZF, AF, PF, CF.

Tal como se ha observado, cada fabricante de microprocesadores, en este caso dos,


posee su peculiar forma de organizar los registros internos de una CPU, lo mismo sucede con el diseo del repertorio de las instrucciones que sern utilizadas para crear los
programas informticos, especialmente cuando se trata de mantener la compatibilidad
con los programas escritos en anteriores microprocesadores.

z7 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Registros de datos

Registros generales

D0

AX

D1

BX
Base

D2

CX

Contador

D3

DX

Datos

Acumulador

D4
D5

Punteros e ndices

D6

SP

Puntero de pila

D7

BP

Puntero base

SI

ndice fuente

DI

ndice destino

Registro de direcciones

A0
A1

Segmento

A2

CS

Cdigo

A3

DS

Datos

A4

SS

Pila

A5

ES

Extra

A6
A7

Estado del programa

A7

IP

Puntero a instruccin

Flags

Indicadores

Estado del programa


Contador de programa


Registro de estado

(b) 8086

MC68000
Figura 5.7 Organizacin de registros internos de dos microprocesadores
z7 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

5.2. Lenguaje de mquina y ejecucin de un programa


El programa almacenado en memoria contiene una serie de instrucciones que la CPU
debe reconocer para llevar a cabo tales operaciones, estas operaciones se hallan codificadas en un denominado lenguaje de mquina, donde una instruccin codificada en
este lenguaje se denomina instruccin a nivel de mquina.

5.2.1. Ejecucin de un programa


Una computadora funciona ejecutando una serie de instrucciones que conforman un
programa de manera secuencial, estas instrucciones se hallan almacenadas en la memoria. La CPU es la que se encarga de llevar a cabo las instrucciones especificadas en un
programa que bsicamente conlleva dos etapas: bsqueda de una instruccin y ejecucin de una instruccin. A esta secuencia de dos operaciones que requiere una instruccin y se muestra en la Figura 5.8, se le conoce como ciclo de instruccin. La ejecucin
del programa se detiene solo si la computadora se desconecta, se produce algn tipo de
error o se ejecuta una instruccin que detiene el programa.

Figura 5.8 Ciclo de una instruccin

Al inicio de cada ciclo de instruccin, la CPU capta una instruccin desde la memoria,
para ello hace uso del registro contador de programa (PC) para seguir la pista de la
instruccin que debe captarse. Si no se especifica otra accin, la CPU siempre incrementa el contenido del registro PC despus de haber captado cada instruccin, de manera
que apunta a la siguiente direccin de memoria donde se halla la siguiente instruccin
de la secuencia.
La instruccin ya buscada y captada se almacena en el registro de instruccin (IR),
donde la CPU debe interpretar la instruccin, esto es, decodificarla, y llevar a cabo la
accin solicitada, que en general puede ser de cuatro tipos:

Procesador-memoria: transferir datos desde la CPU hacia la memoria o viceversa.

z7 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Procesador-E/S: transferir datos hacia o desde el exterior entre la CPU y una


unidad de E/S.

Procesamiento de datos: la unidad aritmtico-lgica dentro de la CPU debe realizar alguna operacin aritmtica o lgica con los datos.

Control: puede especificarse que la secuencia de ejecucin se altere, como sucede en los saltos condicionales, por ejemplo.

La ejecucin de una instruccin, esto es la fase de bsqueda y la fase de ejecucin,


puede consistir en una combinacin de estos cuatro tipos de acciones.
Stallings (2000) propone un ejemplo muy sencillo y didctico de una mquina hipottica (Figura 4.9), que posee un solo registro de datos llamado acumulador (AC) de 16
bits, maneja instrucciones y datos de 16 bits, por lo tanto, tambin es conveniente organizar la memoria utilizando posiciones de memoria con palabras de 16 bits. El formato
de instruccin utilizado indica que puede existir hasta 24 = 16 cdigos de operacin diferentes, y es posible direccionar hasta 212 = 4096 (4K) palabras o posiciones de memoria.

0 1 2 3 4 5 6 7 8 9 10 11 12 13
14
15
Cod._operacin

Direccin
(a) Formato de instruccin

0 1 2 3 4 5 6 7 8 9 10 11 12 13
14
15
S

Magnitud
(b) Formato de datos enteros

Contador de programa (PC) = Direccin de instruccin

Registro de instruccin (IR) = Instruccin en ejecucin

Acumulador (AC) = Almacenamiento temporal


( c ) Registros internos de la CPU

z7 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

0001=Cargar el registro AC con el contenido de la posicin de memoria


0010=Almacenar el contenido del registro AC en la posicin de memoria
0101=Sumar al contenido del registro AC, un dato de la posicin de memoria, luego almacenar el resultado en el registro AC.
( d ) Lista parcial de cdigos de operacin (codop)
Figura 5.9 Caractersticas de una mquina hipottica.

La ejecucin de un pequeo programa en esta hipottica mquina se muestra en la


Figura 5.10, indicando las partes utilizadas ms importantes de la memoria y los registros de una CPU, utilizando la notacin hexadecimal.
El pequeo programa adiciona el contenido de la palabra de memoria en la direccin
940 con el contenido de la palabra de memoria ubicada en la direccin 941, luego almacena el resultado en esta ltima operacin. Se requieren tres instrucciones que utilizan
tres ciclos de bsqueda y tres ciclos de ejecucin, as:
Paso 1. El registro contador de programa (PC) contiene el valor 300 que es la direccin de la primera instruccin. Esta primera instruccin se carga en el registro de
instruccin (IR).
Paso 2. Los cuatro primeros bits de la instruccin cargada en el registro IR indican
que el registro acumulador (AC) se va a cargar. Los doce bits restantes especifican la
direccin de memoria desde donde se va a cargar.
Paso 3. El registro contador de programa PC se incrementa para apuntar y buscar a
la siguiente instruccin a buscar y ejecutar.
Paso 4. El contenido anterior del acumulador AC se suma con el que se encuentra en
la posicin de memoria 941, y el resultado se almacena en AC.
Paso 5. El registro contador de programa PC se incrementa, y luego se busca y capta
la siguiente instruccin.
Paso 6. El contenido del registro acumulador AC se almacena en la posicin 941.

z8 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Figura 5.10 Ejemplo de ejecucin de un programa

En este ejemplo, se muestra cmo se utilizan estos tres ciclos de instruccin, cada
uno con un ciclo de bsqueda y otro ciclo de ejecucin, para sumar el contenido de la
posicin de memoria 940 y la posicin de memoria 941 y el resultado almacenarlo en
la posicin de memoria 941. En comparacin con los anteriores microprocesadores, los
actuales poseen un conjunto de instrucciones ms complejo que le permiten utilizar
menos ciclos.

z8 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

5.3. Instrucciones aritmticas y lgicas


Las operaciones que se llevan a cabo en una computadora pueden dividirse en dos
categoras muy amplias denominadas operaciones aritmticas y operaciones lgicas;
todas ellas representadas mediante instrucciones aritmticas y lgicas implementadas
en hardware en el interior del microprocesador.
Las operaciones aritmticas estn constituidas por las operaciones de adicin, substraccin, multiplicacin, divisin, incremento en uno, decremento en uno y similares,
mientras que las operaciones lgicas lo constituyen las operaciones y (AND), o (OR),
no (NOT), o exclusivo (XOR) y las combinaciones de y con no (NAND), o con
no (NOR), o exclusivo con no (XNOR), principalmente.

5.3.1. Operaciones de desplazamiento y rotacin de bits


Para mover los bits que se hallan dentro de un registro pueden utilizarse operaciones
de desplazamiento de bits, tanto hacia la izquierda como a la derecha, as como tambin operaciones de rotacin de bits en procesos circulares. Si un registro A posee un
nmero binario de 8 bits 11101101, al desplazarlo a la derecha dos posiciones el registro A, finalmente, tendr el nmero binario 00111011 como se observa en la figura x1
siguiente:

Descripcin

D7

D6

D5

D4

D3

D2

D1

D0

Registro A al inicio

Registro A luego de desplazarse


un bit a la derecha

Registro A luego de desplazarse


dos bits a la derecha

Figura 5.11. Desplazamiento a la derecha

Ntese que al desplazarse los bits a la derecha, el que se encuentra en el extremo


izquierdo queda vaco y se llena con un 0, esto sucede en un desplazamiento lgico;
si fuera un desplazamiento aritmtico el bit vaco se llena con el bit de signo. El bit de
signo es un indicador de si el nmero es negativo o positivo, si el nmero es negativo el
bit de signo es 1, y si el nmero es positivo el bit de signos es igual a 0.

z8 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

5.4. Comunicacin con otros dispositivos


El ncleo principal de una computadora lo conforman la CPU y la unidad de memoria,
entre ellos la comunicacin es importante para la ejecucin de un programa; igualmente
lo es la comunicacin con otros dispositivos perifricos como las impresoras, o los denominados discos duros, teclado, mouse, monitores e incluso la comunicacin con otras
computadoras para formar redes locales.
En este sentido, se hace fundamental contar con controladores para las comunicaciones entre una computadora y un dispositivo externo. El controlador puede estar
incluido en la misma placa principal o puede ser una tarjeta que se incrusta en ella,
conformando incluso una pequea computadora embebida, y comunica a los dispositivos con la computadora por intermedio de un conector denominado puerto (ver Figura
5.12).

Disco duro

Impresora

Controlador

Controlador

CPU

Memoria

Controlador

Controlador

Monitor

Mouse

Figura 5.12 Controladores de perifricos.

Adems de los controladores originales diseados para la comunicacin de perifricos


con el computador, en la actualidad, se han diseado y se continan agregando cada vez
ms controladores para una serie de dispositivos tales como, por ejemplo, el conocido
bus serial universal o simplemente USB, utilizado para conectar la computadora con
una serie de dispositivos de manera serial.

z8 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

RESUMEN
Almacenamiento de datos
Una computadora es una mquina de procesamiento de datos; los datos se representan en forma de bits
codificados como patrones de ceros (0s) y unos (1s). El bit es la unidad ms pequea de datos que es posible
almacenar en una computadora y se utiliza para representar valores numricos, caracteres en un alfabeto,
imgenes e, incluso, sonidos. El bit 0 representa un valor lgico falso y el bit 1 representa un valor lgico verdadero, y se emplean en las operaciones booleanas del tipo unario o binario. Las operaciones booleanas
bsicas son la operacin unaria NOT y las operaciones binarias AND, OR y XOR.
La compuerta lgica se utiliza para construir las operaciones booleanas; est conformada por dispositivos
electrnicos en los que los dgitos 0 y 1 se representan con niveles de voltaje igual a 0 voltios y 5 voltios; son
importantes en la construccin de los bloques y subsistemas combinatorios y de comportamiento secuencial
que forman parte de las computadoras.
Los patrones de bits se utilizan en la representacin y almacenamiento de datos dentro de una computadora, pero generalmente para simplificar la representacin de una serie de bits se utiliza la notacin hexadecimal
con 16 smbolos o dgitos hexadecimales: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, y F, donde cada dgito
hexadecimal representa a cuatro bits.
Memoria principal
Una computadora posee un gran conjunto de circuitos electrnicos capaces de almacenar un bit, a estos se
les denomina memoria principal, la cual se organiza en unidades administrables denominadas celdas, con
tamao igual a 8 bits (1 byte). En este conjunto enorme de celdas o registros ordenados por direcciones, la
recuperacin del dato almacenado en estas celdas es una operacin de lectura, y la de almacenamiento de
estos datos es una operacin de escritura.
Cada celda o registro puede accederse de manera independiente en orden aleatorio, a esto se le denomina
como memoria de acceso aleatorio (RAM = Random Access Memory), a diferencia de otros tipos de memoria donde el acceso es secuencial.
Capacidad de memoria
La capacidad de los sistemas de memoria principal se mide en nmero de celdas potencia de dos; en las
primeras computadoras el tamao de la memoria se meda en 1024 unidades de celdas (210 unidades de
celdas), la que fue adoptada por la comunidad informtica con el prefijo de kilo. En la actualidad se utilizan los
trminos megabytes (MB), gigabytes (GB) y terabytes (TB).
Almacenamiento masivo
La memoria principal de una computadora es voltil y de tamao limitado, lo que obliga a contar con
dispositivos de memoria adicional denominados como sistemas de almacenamiento masivo, que incluye a
los discos magnticos, CD, DVD, cintas magnticas y las memorias flash. Las ventajas de los sistemas de almacenamiento sobre la memoria principal son su menor volatilidad, mayor capacidad de almacenamiento, bajo
costo, y su habilidad para remocin del medio de almacenamiento. Una desventaja principal de los sistemas de
almacenamiento masivo es que necesitan de movimiento mecnico y, por lo tanto, necesitan ms tiempo para
almacenar y recuperar datos que la memoria principal de una computadora donde sus actividades son realizadas electrnicamente. Se utilizan en cmaras digitales, telfonos celulares, MP3, PDA y tambin en aplicaciones
de almacenamiento masivo de datos en las denominadas comnmente como memorias USB.

z8 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Manipulacin de datos
La manipulacin de datos dentro de una computadora trata sobre el movimiento de datos de un lugar a
otro, as como de las operaciones de clculo aritmtico, edicin de texto y manipulacin de imgenes mediante
los componentes de una computadora.
El computador y sus componentes.
Un modelo comn de conceptualizar una computadora es como un procesador de datos, pero un modelo mejor es el de considerarla como un procesador de datos programable. En el modelo procesador de
datos, una computadora acta como una caja negra que recibe datos de entrada, los procesa y crea datos
de salida. En el modelo procesador de datos programable, una computadora se conceptualiza como una
mquina de propsito general en la que se agrega un programa, esto es, un conjunto de instrucciones que
le indican a la computadora qu es lo que debe hacer con los datos de entrada para producir datos de salida.
Componentes de una computadora.
Una computadora est constituida por cuatro componentes o subsistemas: unidad de control, unidad aritmtico-lgica, unidad de memoria y unidad de entrada-salida. La unidad de memoria almacena los programas
y los datos durante el procesamiento. La unidad aritmtico-lgica realiza las operaciones aritmticas y lgicas.
La unidad de control determina cules son y cul es la secuencia en la que se llevan a cabo las operaciones de
la memoria, de la unidad aritmtico-lgica, y de las unidades de entrada y salida. La unidad de entrada-salida es
la que se ocupa de ingresar los datos a ser procesados y de enviar los datos de salida hacia el exterior.
La CPU se encarga de las funciones de control, intercambiando datos con la memoria y la unidad de entrada-salida, utilizando diversos tipos de registros visibles al usuario, y otros de uso especializado no accesibles al
usuario tales como el registro contador de programa, el registro de instruccin, el registro temporal de direccin de memoria y el registro temporal de datos de memoria. Un grupo de registros accesibles por el usuario,
en el caso del microprocesador 8086, son los siguientes:
- Registros generales o de datos: AX, BX, CX, DX.
- Registros de segmento: CS, DS, SS y DS.
- Registro apuntador de instrucciones: IP.
- Registros apuntadores: SP y BP.
- Registros ndice: SI y DI.
- Registros de estado o banderas: OF, DF, IF, TF, SF, ZF, AF, PF, CF.
Lenguaje de mquina y ejecucin de un programa
El programa almacenado en memoria contiene una serie de instrucciones que la CPU debe reconocer y se
hallan codificadas en lenguaje de mquina.
Ejecucin de un programa
Una computadora funciona ejecutando una serie de instrucciones que conforman un programa de manera
secuencial, estas instrucciones se hallan almacenadas en la memoria. La CPU es la que se encarga de llevar a
cabo las instrucciones especificadas en un programa que bsicamente conlleva dos etapas: bsqueda de una
instruccin y ejecucin de una instruccin. A esta secuencia de dos operaciones se le conoce como ciclo de
instruccin.
Instrucciones aritmticas y lgicas
Las operaciones en una computadora pueden dividirse en dos categoras muy amplias denominadas operaciones aritmticas y operaciones lgicas.

z8 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Las operaciones aritmticas estn constituidas por las operaciones de adicin, substraccin, multiplicacin,
divisin, incremento en uno, decremento en uno y similares, mientras que las operaciones lgicas lo constituyen las operaciones y (AND), o (OR), no (NOT), o exclusivo (XOR) y las combinaciones de y con
no (NAND), o con no (NOR), o exclusivo con no (XNOR), principalmente.
Comunicacin con otros dispositivos
Las comunicaciones entre una computadora y un dispositivo externo se realizan mediante un controlador,
que puede estar incluido en la misma placa principal o puede ser una tarjeta que se incrusta en ella, conformando incluso una pequea computadora embebida, y comunica a los dispositivos con la computadora por
intermedio de un conector denominado puerto, trasladando los mensajes y datos entre perifricos

z8 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Texto pa ra c ome n t a r
Las computadoras son mucho ms importantes en la vida moderna de lo que podemos
pensar. Estn en todas partes. Pero imagina lo que pasara si un da dejasen de funcionar?

Vivir sin computadoras *


Se levanta con el sol sobre el horizonte y comprueba que su despertador no ha sonado.
Se da cuenta enseguida de que se ha dormido. Pero hoy tiene un importante negocio que
cerrar. La superficie de su reloj de pulsera digital permanece inexpresiva. La televisin y
la radio no ayudan; no puede localizar ninguna emisora. Tampoco tiene tiempo de usar
el telfono porque no funciona.
El peridico diario ha desaparecido de su felpudo. Tendr que determinar el tiempo
que har hoy mirando por la ventana. No hay msica esta maana: sus reproductores
de CD y MP3 no responden a sus peticiones. Qu pasa con el desayuno? La cafetera
automtica se niega a funcionar; el microondas, tambin.
No queda ms remedio que ir a la cafetera ms cercana por un delicioso desayuno.
El coche no arranca. De hecho, los nicos que funcionan son los que tienen ms de 15
aos de antigedad. Las lneas del metro estn paradas. La gente parlotea nerviosamente
acerca del fallo en el dispositivo de planificacin del metro, el cual est controlado por
una computadora.
Entra en una cafetera. Pero la sorpresa es grande al encontrarse varias filas de personas esperando mientras los cajeros efectan torpemente los cobros a mano. Mientras
espera, se une a la conversacin de su alrededor. La gente parece ms interesada en
hablar unos con otros en persona, ya que todos los dispositivos de comunicacin de
masas habituales han fallado.
Slo le quedan un par de dlares en la cartera, por lo que ser necesario que pare
en un cajero automtico. Qu fastidio!
Vuelve a casa a esperar ese libro que solicit a travs de la computadora. Lo lleva
esperando durante mucho tiempo, pero los aviones no vuelan debido a que los sistemas
de control de trfico areo no funcionan. En fin, no queda ms remedio que ir a la librera
ms cercana a comprobar si lo tienen. Desde luego, la bsqueda del mismo se convierte
en un suplicio porque el catlogo de libros est informatizado.

z8 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

De vuelta a casa, no deja de especular con las implicaciones que tendra un fallo de
las computadoras a nivel mundial. Cmo podran funcionar los edificios inteligentes en
los que desde los ascensores hasta el control de la humedad dependen de ellas? Podran
seguir produciendo energa las centrales elctricas? Qu les ocurrira a los pacientes
conectados a sistemas informatizados? Y a los satlites que se mantienen en rbita
gracias a los sistemas computarizados de control de guiado? Se colapsara el sistema
financiero si las computadoras no pudieran procesar ni comunicar las transacciones?
Sera el mundo un lugar seguro si todos los sistemas de armamento controlados por
computadoras estuvieran cados?
Nuestra historia podra continuar, pero el mensaje es lo suficientemente claro. Las
computadoras estn en todas partes, y nuestras vidas estn afectadas por su funcionamiento (o su no funcionamiento). Es verdaderamente sorprendente el modo en que las
computadoras se han colado en nuestras vidas en un espacio de tiempo tan corto.
* Beekman, G. (2005). Introduccin a la Informtica (6ed.) Madrid: Pearson Eduacin S.A.

z8 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

AUTOEVALUACIN N 2
1 Las unidades que conforman una computadora basada en microprocesadores
son los siguientes:
a. CPU, memoria, entrada-salida.
b. Control, ALU, memoria, entrada, salida.
c. CPU, memoria, entrada, salida.
d. Todos.
2. Las computadoras personales son herramientas altamente verstiles porque
aceptan las instrucciones de una gran variedad de:
a. Hardware.
b. Software.
c. Firmware.
d. Programadores.
3. Un megabyte equivale aproximadamente a:
a.
b.
c.
d.

1.000 bits.
1.000 bytes.
1 milln de bytes.
1 milln de bits.

4. Las cmaras digitales actuales almacenan las imgenes utilizando:


a.
b.
c.
d.

Un DVD-RAM.
Un CD-ROM.
Memoria flash.
Memoria USB.

EXPLORACIN ONLINE
Simulador de una PC virtual: http://www.pcjs.org/
Ciclo de instruccin: http://www.edsim51.com/microDemo/executeCycleDemo/cycle1.html
Simulador GNU/GLP de un microprocesador: http://www.softwareforeducation.com/

z8 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

REFERENCIAS BIBLIOGRFICAS
Beekman, G. (2005).

Introduccin a la informtica (6 ed.) Madrid: Pearson Eduacin S.A.

Brookshear, J. G. (2007).

Computer Science. An overview (9 ed.). Boston: Pearson Addison Wesley.

Forouzan, B., & Mosharraf, F. (2008). Foundation of Computer Science (2 ed.). USA: Thomson Course Technology.
Fourozan, B. A. (2003).

Introduccin a la ciencia de la computacin. De la manipulacin de datos a la teora


de la computacin. Mxico: International Thomson Editores.

z9 0 z

t e r c e r a

UNIDAD
Introduccin a sistemas operativos,
redes e Internet y sistema de base de datos

OBJETIVOS
Describe el funcionamiento de los sistemas operativos, las redes, Internet y los sistemas de base de datos como componentes de un sistema computacional adoptando actitud proactiva en el aprendizaje de estos temas.
Explica el rol del sistema operativo en la computadora.
Determina los elementos de la arquitectura de un sistema
operativo.
Explica el concepto de proceso y la administracin de procesos.
Comprende y explica el rol de las redes en el desarrollo de
las comunicaciones.
Describe los fundamentes de las redes, internet y el World
Wide Web.
Determina los elementos de un sistema de base de datos.

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

L e c c i n

INTRODUCCIN
A SISTEMAS OPERATIVOS

Una computadora es un sistema formado por dos componentes importantes: hardware y software. El hardware es el equipo fsico de la computadora. El software es la
coleccin de programas que permiten que el hardware realice su trabajo. El software se
divide en dos amplias categoras: el sistema operativo y los programas de aplicacin. El
sistema operativo controla el acceso al hardware por parte de los usuarios. Los programas de aplicacin utilizan el hardware para resolver problemas de los usuarios.
En esta leccin, se presentan los conceptos y los elementos del sistema operativo y el
rol que este juega en un sistema computacional.

6.1. Definicin
Un sistema operativo es el software que controla todas las operaciones de la computadora. Provee el medio por el cual un usuario puede almacenar y recuperar archivos,
provee la interfaz por la cual un usuario puede solicitar la ejecucin de un programa, y
provee el ambiente necesario para ejecutar los programas (Brookshear G., 2012).

z9 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Un sistema operativo es un programa que acta como interfaz entre el usuario y


el hardware de un computador. Su propsito es proporcionar un entorno en el cual el
usuario pueda ejecutar programas de una manera cmoda y eficiente (Silberschatz,
Galvin, & Gagne, 2006).
Un sistema operativo es una interfaz entre el hardware de una computadora y el
usuario (programas o personas) que facilita la ejecucin de otros programas y el acceso
a recursos de hardware y software (Forouzan & Mosharraf, 2008). En la figura 6.1 se
representa la funcin de interfaz entre usuarios y programas con el hardware.

PROGRAMAS
USUARIOS

SISTEMA
OPERATIVO

HARDWARE

Figura 6.1 Sistema operativo como interfaz entre usuario y hardware

Las principales funciones de un sistema operativo son: supervisar las operaciones en


una computadora; almacenar y recuperar archivos; gestionar el acceso a las redes; gestionar la ejecucin de mltiples programas al mismo tiempo; proteger los recursos de la
computadora de acciones no intencionadas y acciones intencionadas.

6.2. Evolucin
Los sistemas operativos han evolucionado en una larga historia, la cual se resume a
continuacin (Fourozan, 2003):

6.2.1. Sistemas por lotes


Los sistemas operativos por lotes se disearon en la dcada del 1950 para controlar
a las computadoras mainframe. En ese entonces, una computadora era una mquina
grande que utilizaba tarjetas perforadas para entrada de datos, impresoras de lnea para
salida y utilidades de cinta para medios de almacenamiento secundarios.
Cada programa a ejecutarse se llamaba tarea. Un programador que deseaba ejecutar
una tarea enva una solicitud a la sala de operaciones junto con tarjetas perforadas para
el programa y los datos. El programador no tena ningn control o interaccin con el
sistema. Si el programa era satisfactorio, el resultado se enviaba al programador; de lo
contrario, se enviaba un listado de error.
z9 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

6.2.2. Sistemas de tiempo compartido


Para utilizar los recursos del sistema eficientemente, se introdujo la multiprogramacin. La idea es mantener varias tareas en memoria y solo asignar un recurso a una
tarea que lo necesite con la condicin de que el recurso est disponible. Por ejemplo,
cuando un programa est usando un dispositivo de entrada-salida, el CPU est libre y
puede ser utilizado por otro programa.
La multiprogramacin trajo la idea de tiempo compartido: los recursos pueden
compartirse entre diferentes tareas. A cada tarea puede asignrsele una parte del tiempo para usar el recurso. Como una computadora es ms rpida que una persona, el
tiempo compartido es transparente para el usuario. Cada usuario tiene la impresin de
que todo el sistema est trabajando para l.
La multiprogramacin y el tiempo compartido mejoraron en gran medida la eficiencia
de un sistema de computacin. Pero esto requera un sistema operativo ms complejo.
El sistema operativo tena que hacer una planificacin: asignacin de los recursos a los
distintos programas y decidir cul programa debera usar cul recurso y cundo.
Durante esta poca, la relacin entre una computadora y el usuario cambi. El usuario poda interactuar directamente con el sistema sin pasar por un operador. Un nuevo
trmino tambin se acu: proceso. Una tarea es un programa a ejecutar, un proceso
es un programa que est en la memoria en espera de recursos.

6.2.3. Sistemas personales, paralelos y distribuidos


Cuando aparecieron las computadoras personales, era necesario el diseo de un sistema operativo para este tipo de computadora, fue entonces que se introdujeron los
sistemas operativos monousuarios tales como DOS (disk operating system); sistema operativo de disco.
La necesidad de una mayor velocidad y eficiencia condujo al diseo de los sistemas
paralelos: varios CPU en una misma mquina. Cada CPU poda utilizarse para servir a
un programa o a una parte de un programa, lo cual significa que muchas tareas podan
lograrse en paralelo en vez de en forma serial. El sistema operativo para estos sistemas
es ms complejo que aquellos con un solo CPU.
La conectividad en red y la interconectividad en red originaron una nueva dimensin
de sistemas operativos. Una tarea realizada previamente por completo en una computadora ahora poda compartirse entre computadoras que podran estar a miles de kilmetros de distancia. Un programa puede ejecutarse parcialmente en una computadora
y parcialmente en otra si estn conectadas mediante un conjunto de redes interconectadas como Internet. Adems los recursos pueden distribuirse. Un programa puede
necesitar archivos localizados en distintas partes del mundo. Los sistemas distribuidos
combinan caractersticas de las generaciones anteriores con nuevos servicios tales como
el control de la seguridad.
z9 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

INTRODUCCIN A LAS REDES DE


COMUNICACION E INTERNET
6.3. Redes de comunicacin
6.3.1. Concepto
Una red de comunicacin es una coleccin de dos o ms dispositivos interconectados
por diferentes medios de transmisin que permiten intercambiar datos mediante el uso
de protocolos de comunicacin.
Una red de comunicaciones informticas tiene como propsito transferir datos e informacin de un punto a otro dentro de la red, pudindose almacenar en diversos dispositivos, tales como un computador personal, un disco de almacenamiento masivo, una
cmara o incluso una impresora de red.
Esta comunicacin es posible debido a la existencia de normas, llamados protocolos,
que deben ser respetados por todas las computadoras involucradas en la red. Los protocolos permiten que diferentes computadores de diferentes fabricantes y con diferentes
caractersticas de funcionamiento puedan hablar el mismo idioma.
La red de comunicacin est formada por dos tipos de componentes: nodos y lneas de
comunicacin. Los nodos suelen manejar los protocolos de red y proporcionar capacidades de conmutacin. Un nodo es por lo general un computador, que ejecuta el software
de red especfico. Las lneas de comunicacin son los medios de transmisin que permiten
interconectar los nodos, pueden adoptar muchas formas. Los ejemplos incluyen: cables
de alambre de cobre, fibra ptica, canales de radio, lneas telefnicas, etc. (figura 6.1).

Figura 6.1.
Red de
Comunicaciones
z9 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

6.3.2. Clasificacin
6.3.2.1. Distribucin geogrfica
Redes LAN (Local Area Network, redes de rea local) son redes pequeas que cubren
tramos pequeos, por lo general no ms de los 100 metros, y se utilizan para conectar
equipos de una oficina, departamento o incluso de un edificio. Debido a sus limitadas dimensiones, son redes muy rpidas, siendo los equipos mayormente utilizados los switch
(Figura 6.2).

Figura 6.2. Red de rea local

Las redes WAN (Wide Area Network, redes de rea extensa) son redes punto a punto
que interconectan diferentes sucursales que se encuentran en diferentes reas geogrficas o incluso en ciudades o pases. Por ejemplo, un cable de fibra ptica para interconectar dos facultades de una universidad hasta incluso un cable submarino entre Europa
y Amrica. Al tener que recorrer una gran distancia sus velocidades son menores que en
las LAN, aunque son capaces de transportar una mayor cantidad de datos. Los equipos
ms utilizados para este tipo de comunicacin son los ruteadores y mdems (Figura 6.3).

Figura 6.3.
Red de rea extensa
z9 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

6.3.2.2. Restriccin de acceso


Redes privadas. Son redes independientes que han sido instaladas para soportar el
flujo de datos de una organizacin de manera exclusiva, de este modo se aseguran que
los datos e informacin que se transmiten no sean vulnerados, usualmente son redes
contratadas por los bancos, compaas de seguros, compaas areas, hospitales, etc.
Redes pblicas. Son generalmente asequibles por diferentes usuarios u organizaciones, para ello es necesario el registro y el pago de las cuotas de conexin. Internet
y las redes de telefona son los ejemplos ms claros de redes pblicas. Tcnicamente,
las redes privadas y pblicas pueden ser LAN o WAN, aunque las redes pblicas, por su
tamao y naturaleza, tienden a ser WAN.
Internet es en realidad un conjunto complejo de redes pblicas y privadas, en el
que algunas partes de las redes privadas son accesibles parcialmente por el pblico (por
ejemplo, el acceso a direcciones en la Red de grupos privados o el envo de correo electrnico a dichos grupos).

6.3.3. Canales de comunicacin


Los canales o medios de comunicacin son lo mismo que las lneas de transmisin.
Son aquellos medios que tienen la capacidad de transmitir los datos y se velocidad dependen del ancho de banda que tengan. Los canales de comunicacin pueden clasificarse en diferentes tipos:
Medios guiados

Cable coaxial, semejante al de las antenas de televisin, puede transmitir hasta


350 millones de bits por segundo. Son junto a la fibra ptica los ms utilizados
por su relacin precio/prestaciones.

Par trenzado, cables constituidos por cientos de filamentos de cobre. Se utilizan


mucho por su bajo coste y fcil instalacin, pero pueden hacer frecuentes las interferencias. Se suelen emplear en las lneas telefnicas.

La fibra ptica es el medio ms moderno y avanzado; soporta velocidades muy altas y es capaz de transmitir en promedio unos 500 millones de bytes por segundo.
Es el medio ms avanzado y seguro, pero su instalacin supone costes elevados.

Medios no guiados

Las microondas son ondas de radio de alta frecuencia que utilizan el aire como
medio de transmisin. Se transmiten en lnea recta, por lo que, debido a la curvatura de la tierra, solo pueden utilizarse en distancias cortas.

z9 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Los satlites son un medio estacionario que gira sobre la Tierra a una determinada distancia y velocidad, por lo que permiten amplificar las seales microondas
transmitidas desde un punto de superficie terrestre a otro. De esta forma se pueden enviar grandes volmenes de datos.

6.3.4. Redes locales


Las redes de rea local o LAN (Local Area Network) son sistemas de comunicacin que
permiten compartir recursos, tanto de hardware como de software, entre computadoras
u otras redes, aunque siempre dentro de un mbito geogrfico limitado. Se pueden conectar a otras redes externas mediante dispositivos que reciben el nombre de pasarelas
(Gateways).
Los tres componentes principales de una red LAN son el servidor (server), las estaciones de trabajo (workstations), compuestas de un ordenador o terminal y una tarjeta
de red, y el cableado que, como ya se ha visto, puede ser coaxial, por trenzado o de
fibra ptica.

6.3.4.1. Topologas
Los dispositivos y terminales de una red se pueden disponer de diferentes formas.
Atendiendo a esa configuracin, se pueden establecer cuatro tipos de redes locales:
Las redes en estrella. Se componen de varios enlaces o dispositivos perifricos,
fsicamente conectados a una unidad central, que acta como servidor, de forma que
los nodos son independientes entre s. Tienen como ventajas la simplicidad de los terminales, ya que la mayora de las operaciones las soporta el servidor, y que el nivel de
seguridad en su funcionamiento es muy alto; adems son bastante fciles de ampliar.
Por contra, tienen como inconvenientes la complejidad del nodo central, su velocidad
limitada por el nmero de extensiones, la gran cantidad de cableado y que, en caso de
que se estropee la estacin central, deja de funcionar toda la red. (Figura 6.4).

Figura 6.4. Topologa estrella


z9 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Redes en anillo. Cada nodo est conectado a sus dos vecinos y los mensajes circulan alrededor del sistema hasta encontrar su destino. Por tanto, todos los dispositivos
estn conectados en serie, en un bucle cerrado y dispuesto como en una lnea punto a
punto. La principal ventaja es que la capacidad de transmisin se reparte equitativamente entre todas las estaciones de trabajo, permaneciendo la red independiente de la
estacin central. Otras ventajas son la distribucin simple de los mensajes, su gran velocidad, la instalacin fcil y barata, la sencillez de los protocolos y las escasas conexiones
mnimas que necesita. El inconveniente ms importante es que, si falla alguno de los
nodos, pueden surgir retrasos en la comunicacin, debido a la necesidad de repetidores
y amplificadores. Si todas las estaciones estn conectadas a un centro de control que
gestione las comunicaciones, nos encontraremos con una red en anillo tipo bucle, como
las utilizadas preferentemente en banca y administracin (Figura 6.5).

Figura 6.5.
Topologa anillo

Redes tipo Bus. Todos los nodos estn conectados a un cable comn, ejerciendo
cada dispositivo su propio control del sistema de comunicaciones y, por lo tanto, no es
necesario estaciones ni servidores. Todas las estaciones tienen una funcin pasiva, por
lo que, en caso de avera de una de ellas, la red sigue funcionando. Sus ventajas son la
facilidad para conectar nuevos nodos, el coste reducido, la buena gestin de los mensajes y la fcil instalacin. Los inconvenientes principales son la complejidad de los protocolos, la deficiente seguridad de los datos, la limitada longitud del cable de conexin o
bus y el mal reparto de los recursos (Figura 6.6).

Figura 6.6.
Topologa Bus

z1 0 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Redes jerrquicas. Estn formadas por varias computadoras conectadas a un host


o a un servidor, como ocurre con la transmisin en estrella, pero con la particularidad de
que cada computadora es, a su vez, servidor de otros ms pequeos o de perifricos.
Esta configuracin en una organizacin centralizada (figura 6.7).

Figura 6.7. Topologa jerrquica

6.4. Internet
6.4.1. Concepto
Existen innumerables definiciones sobre el concepto de Internet, en todas ellas prima
la idea de que Internet es una nube o conglomerado de computadoras que se encuentran dispersas compartiendo datos, recursos y ofreciendo mltiples servicios (figura
6.8), pero si miramos dentro de esta nube encontraremos miles de kilmetros de cable
de fibra ptica, millones de kilmetros de cable de cobre, hardware y software de conexin, todos juntos en una red redundante, rpida y autosuficiente, todos ellos gestionados por un proveedor de comunicaciones. Esta definicin puede ser compleja desde
el punto de vista de su administracin, sin embargo, no es as, cada organizacin que
tiene sus recursos dentro de la Internet es responsable de cuidar y gestionar su propio
segmento, este segmento local se denomina nodo, entonces podemos concluir que una
organizacin es nicamente responsable de su propio nodo. El Centro de Informacin de
la Red Internet (en ingls, Internet Network Information Center Center, INTERNIC) es la
instancia encargada de definir los nombres de los nodos, asignar direcciones y dominios
y supervisar el funcionamiento de Internet
Internet tiene sus origen en 1969, ao en el que la red de computadoras Advanced
Research Projects Agency Network (ARPANET) enva su primer mensaje y establece su
primer enlace con un grupo de universidades de los Estados Unidos como son la Universidad de Stanford y la Universidad de California, utilizando para ellos mdems y lneas
telefnicas convencionales a una velocidad mxima de 50kbits por segundo, para ello se
z1 0 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

utilizaba el protocolo denominado Programa de Control de Red o NCP (Network Control


Program), el cual evolucion ms adelante hasta convertirse en el protocolo de control
de transmisin y el protocolo de Internet TCP/IP (Transmission Control Protocol/Internet
Protocol), base para la comunicacin en Internet.
El protocolo de comunicacin TCP/IP es el principal lenguaje de comunicacin en la
red y, por tanto, requisito indispensable si se desea utilizar todos los servicios disponibles en Internet. El inconveniente es que TCP/IP est orientado para mquinas conectadas fsicamente a la estructura de la red.

Figura 6.8. Internet mltiples servicios

6.4.2. El modelo TCP/IP


El modelo TCP IP es una especificacin para protocolos de redes informticas. TCP/IP
define un conjunto de reglas para que los equipos se comuniquen a travs de una red.
TCP/IP es la base de Internet y sirve para enlazar computadoras que utilizan diferentes
sistemas operativos. TCP/IP fue desarrollado y demostrado por primera vez en 1972 por
el Departamento de Defensa de los Estados Unidos, ejecutndolo en ARPANET, una red
de rea extensa de dicho departamento. TCP/IP est diseado para enrutar y es muy
fiable, es adecuado para redes grandes y medianas, as como en redes empresariales.
El modelo TCP/IP incorpora cuatro capas o niveles jerarquizados (figura 6.9), lo cual
permite agrupar funciones relacionadas e implementar el software de comunicacin por
cada capa y de tipo modular, de esta manera, cada capa debe ocuparse exclusivamente
de su nivel inmediatamente inferior, a quien solicita servicios, y del nivel inmediatamente superior, a quien devuelve resultados.
z1 0 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Figura 6.9. Capas del modelo TCP/IP

La primera capa se denomina capa fsica o de acceso al medio. Esta capa es


responsable de la codificacin y transmisin de datos a travs de medios de comunicacin de red. Se opera con datos en forma de bits que se envan desde la
capa fsica de la fuente de envo y se recibieron en la capa fsica de una fuente de
destino. Esta capa se utiliza tambin para mover los paquetes hasta la capa de
red. Cuando se conecta una computadora mediante un cable Ethernet se conecta
ese equipo en la capa fsica. Esta capa fsica es el nivel ms bajo del modelo.
La segunda capa es la capa de red. Esta capa obtiene datos de una red de
origen a la red destino. Esto generalmente implica el encaminamiento de los paquetes a travs de una red de redes (tambin conocido como interconexin de
redes). Aqu es donde el protocolo IP entra en juego para realizar tareas bsicas
como descomposicin de un mensaje en paquetes en la computadora que enva
el mensaje, as como la composicin de los mismos paquetes en la mquina de
destino.
La tercera capa es la capa de transporte. La responsabilidad de la capa de transporte es la transferencia de mensajes de extremo a extremo. Hay 2 categoras de
transmisin de mensajes de extremo a extremo: orientado a la conexin (TCP) o
sin conexin (UDP). La capa de transporte proporciona este servicio de conexin
de aplicaciones a travs del uso de puertos. Esta capa ofrece una fiabilidad y error
de control. Esta capa asegura que los paquetes lleguen a su destino.
La cuarta y ltima capa corresponde a la capa de aplicacin. Esta capa se
refiere a los protocolos de ms alto nivel usados por la mayora de las aplicacioz1 0 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

nes para la comunicacin de red (tabla 6.1). Un ejemplo de protocolo de capa


de aplicacin es FTP (File Transfer Protocol). Datos codificados de acuerdo a los
protocolos de capa de aplicacin se encapsulan luego en uno o ms protocolos de
capa de transporte que a su vez utilizan protocolos de capa inferior para efectuar
la transferencia de datos en forma real.
PROTOCOLO

PUERTO

DESCRIPCIN

FTP

21

Protocolo de transferencia de archivos

SSH

22

Shell remote seguro

SMTP

25

Protocolo simple de correo

DNS

53

Protocolo de nombre de dominios

HTTP

80

Protocolo de hipertextos

POP3

110

Protocolo de correo de oficina v3

IMAP

143

Interactive Mail Access Protocol

443

Protocolo de hipertextos seguros

HTTPS

Tabla 6.1. Protocolos de la capa de aplicacin

6.4.2.1. Protocolos de la capa de aplicacin


Los protocolos de la capa de aplicacin de TCP/IP ms conocidos son aquellos que
permiten el intercambio de la informacin con el usuario. Estos protocolos especifican la
informacin de control y formato necesaria para muchas de las funciones de comunicacin de Internet.
A. FTP
El protocolo FTP (File Transport Protocol) es un servicio que se utiliza para transferir
informacin, almacenada en archivos, de una mquina local a una remota o viceversa.
Para poder realizar esta operacin, es necesario conocer la direccin IP o el nombre
de la mquina a la que nos queremos conectar para realizar algn tipo de transferencia.
La mquina local es aquella desde donde nos conectamos para hacer la transferencia,
es decir, donde ejecutamos FTP, por otro lado, la mquina remota es aquella a la que nos
conectamos para transferir informacin.
Las aplicaciones ms usadas para efectuar FTP son FiliZilla, Ws_Ftp y Ftp_Pro, entre
otras.
B. SSH
El protocolo SSH (Secure Shell) es una aplicacin o servicios de seguridad que permite la conexin entre computadoras de forma segura, a travs de un programa residente
en la memoria del servidor llamado SSHD.

z1 0 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Este protocolo se ejecuta en el servidor en un puerto (por defecto es el 22) a la espera


de que un computador utilizando un cliente SSH se conecte para ofrecerle una sesin segura encriptndola de extremo a extremo, de este modo se proporciona mayor seguridad
respecto a otros programas clsicos y algo anticuados como telnet, rlogin, rsh, rcp, y rdist.
Entre sus ventajas SSH previene ataques hechos mediante Ip-spoofing, as como la
utilizacin de varios algoritmos (RSA para la llave de intercambio e IDEA, DES o triple
DES para la encriptacin de la sesin).
Las aplicaciones ms usadas para efectuar SSH son: SSH Secure Shell, Axessh, SecureCommNet, SecureKoalaTerm.
C. SMTP
SMPT (Single Mail Transfer Protocol) es el servicio de correo electrnico, el cual proporciona los mecanismos de intercambio de correo y mensajes entre hosts o servidores.
Usualmente corre por defecto en el puerto 25.
SMTP est basado en la entrega punto a punto; un cliente SMTP contactar con el
servidor SMTP del host de destino directamente para entregar el correo. Guardar el
correo hasta que se haya copiado con xito en el receptor.
D. DNS
El protocolo DNS (Domain Name System) es la base para la resolucin de nombres
en Internet, de manera que cada vez que alguien busca una direccin web como www.
uigv.edu.pe o enva un correo electrnico a s216203786@uigv.edu.pe, esta se redirecciona de forma transparente al usuario en su direccin IP correspondiente. El servicio
DNS est implementado en la mayora de los casos mediante el software llamado BIND
(Berkeley Internet Name Domain).
E. HTTP
HTTP (Hyper Text Transport Protocol) es el protocolo encargado de procesar y dar
respuestas a las solicitudes de los navegadores web para visualizar una pgina web,
asimismo sirve para el envo de informacin ingresada en los formularios, como por
ejemplo una pgina de registro de usuarios o un formulario para la creacin de una
cuenta electrnica, etc. HTTP no guarda ninguna informacin luego de finalizada una
transaccin web, por lo tanto, es considerado un protocolo sin estado, por eso para
guardar la informacin entre distintas peticiones, los administradores web deben utilizar
cookies, los cuales son archivos pequeos que envan informacin sobre preferencias y
pautas de navegacin del servidor web al disco duro local del navegador.
El protocolo HTTP generalmente utiliza el puerto 80, y est basado en el modelo cliente/servidor, en donde un cliente HTTP (el navegador Internet Explorer por ejemplo) abre
una conexin y realiza una solicitud al servidor, este responde a la peticin entregando
un recurso (texto, grficos, etc.) o un mensaje de error como 404 Notfound, luego se
cierra la conexin.
z1 0 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

F. POP3
Protocolo POP3 (Post Office Protocol 3). Es un protocolo que utiliza por defecto el
puerto 110 y permite recibir mensajes de correo electrnico que se encuentran almacenados en un servidor de correo, por ello, cuando el usuario se conecta a dicho servidor
puede descargar los mensajes a su computadora.
POP3 es el primer estndar de correo electrnico de Internet, es un protocolo fuera
de lnea, es decir, los mensajes quedan en espera en el servidor hasta que un programa
cliente se conecte y los revise. Su principal ventaja es la diversidad de programas que
existen, los mejores de estos cuentan con avanzadas opciones de configuracin y filtrado de mensajes. No es aconsejable para quienes revisan su correo desde diferentes
lugares, ya que es necesario configurar el programa cliente primero. Ejemplos de programas: Eudora Mail, Outlook Express, Gmail, etc.
G. IMAP
IMAP (Internet Message Access Protocol) tiene las mismas caractersticas que POP3,
pero es ms avanzado, ya que permite trabajar con correo electrnico en un servidor
como si este estuviera en una PC local. IMAP proporciona las mismas funciones de POP,
pero con la ventaja de poder organizar y filtrar los mensajes antes de bajarlos del servidor de correo.
H. HTTPS
El protocolo HTTPS (Hyper Text Transport Protocol Secure) se utiliza para la conexin
a servidores web seguros. Estos servidores son normalmente de mbito comercial y utilizan encriptacin para evitar la intercepcin de los datos enviados, usualmente nmeros de tarjeta de crdito, datos personales, etc. La conexin va Internet es totalmente
segura para el cliente, ya que la informacin se enva encriptada, es decir, codificada de
forma que no pueda ser leda ni modificada por terceros.

6.4.3. Proveedor de servicios de Internet (ISP)


Los proveedores de servicio de Internet son normalmente empresas privadas, aunque en algunos pases pueden ser pblicas, que ofrecen la conectividad y el acceso a
Internet y la interconexin a los consumidores (usuarios particulares o empresas que
desean acceder a Internet). En funcin de su tamao y objetivos comerciales, los ISP
proporcionan algunos o todos de los siguientes servicios:
Recursos de acceso a la Internet pblica (marcacin, lneas arrendadas, cable,
ADSL, etc.).
Direcciones IP fijas o dinmicas, junto con recursos de acceso.
Cuentas de correo electrnico.
z1 0 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Actan como agente para el registro de nombres de dominio.


Almacenamiento y otros servicios para la publicacin en la Red (almacenamiento
de pginas en la Red).
Asistencia en caso de problemas.
Servicios de consultora.
Servicios adicionales tales como control de correo basura (antispam).
Servicios de hosting y housing.
Todos los ISP se interconectan a uno o ms ISP, a fin de facilitar la conectividad a
la Internet pblica. Los ISP pequeos se conectan a ISP grandes y los ISP grandes se
conectan entre s.

6.5. World Web Wide (WWW)


La WWW es un sistema orientado a la publicacin de informacin, al acceso de los
recursos y a la utilizacin de servicios en el mundo de Internet. Los usuarios pueden
utilizar la WWW a travs de navegadores, como Internet Explorer, Firefox o Chrome, que
permiten acceder y visualizar documentos de muchos tipos y formatos (texto, video,
audio, etc.), y disfrutar de un nmero elevadsimo de servicios.
Uno de las caractersticas clave de la popularidad del WWW radica en el concepto de
hipertexto, una tecnologa que permite que un documento contenga informacin, ya bien
en forma de texto o en forma de imagen, como enlaces que relacionan la informacin
presente con otras fuentes de informacin u otras direcciones de Internet. Los enlaces
permiten as saltar entre distintos documentos, que pueden encontrarse en una misma
computadora o en computadoras diferentes, que contienen informacin del mismo tipo.
El nmero de enlaces es ilimitado, lo que confiere a la WWW un aspecto de telaraa que
conecta informacin procedente de las partes ms diversas del mundo.
La WWW est basada en tres componentes tecnolgicos estndar:

El lenguaje de marcas de hipertexto (HTML) es un lenguaje que especifica tanto


los contenidos como el formato de las pginas que se visualizan en los navegadores web. Estas pginas presentan la popular extensin .html.

Localizador Uniforme de Recursos (URL) permite identificar documentos y otros


tipos de recursos almacenados en la Web.

Una arquitectura cliente-servidor basada en el protocolo de transferencia de hipertexto (http). Este protocolo determina la interaccin entre un navegador y un
z1 0 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

servidor web (acceso, sesiones, etc.). La caracterstica ms destacable del http es


que permite a los usuarios establecer un nmero elevado de conexiones a cualquiera de los servidores web disponibles en la Red.
Entramos a continuacin a discutir estas tecnologas con ms detalle.

6.5.1. Lenguaje de marcas de hipertexto (HTML)


Este lenguaje se utiliza para especificar el texto y las imgenes que forman los contenidos de una pgina web. Adems determina cmo la informacin debe ser presentada
al usuario. Una pgina web contiene cdigos especiales (marcas) que indican al navegador cmo visualizar y presentar la informacin. Un ejemplo de cdigo HTML sera:
<IMG SRC=http://www.usc.es/logo.gif_>
<P>Este es el logo de la <A HREF=http://www.uigv.edu.pe> Universidad Inga Garcilaso de la Vega</A><P>
Las lneas que presentan los smbolos <> indican la presencia de cdigo HTML. IMG
SRC (Image Source), por ejemplo, indica al navegador que se presente la imagen logo.
gif. A HREF indica que el trmino Universidad de Santiago de Compostela presenta un
enlace al servidor web www.usc.es y que el enlace debe realizarse a travs del protocolo
http.

6.5.2. Localizador Uniforme de Recursos (URL)


Los recursos en Internet (pginas web, documentos, servidores ftp, correo electrnico) son accesibles a los usuarios gracias al Localizador Uniforme de Recurso (URL,
Uniform Resource Locator). Cuando queremos cargar una pgina desde Internet, escribimos su direccin URL en la celda dispuesta para este propsito en el navegador. As,
por ejemplo, cuando queremos ver la pgina de la Universidad Garcilaso, escribimos la
direccin http://www.uigv.edu.pe
Todas las URL presentan el siguiente formato: protocolo: nombre_dominio
El protocolo. Indica, obviamente, el tipo de protocolo que vamos a utilizar durante la
conexin. Los protocolos ms comunes son http, el protocolo de la www, ftp, el protocolo
de transferencia de ficheros, y mailto, asociado al correo electrnico.
El nombre_dominio. Indica qu computador servidor de Internet nos va a dar la informacin solicitada. Ejemplo: www.unmsm.edu.pe.
Como informacin opcional se puede introducir una ruta de acceso en el servidor:
indica la posicin del fichero que concretamente se ha solicitado dentro del ordenador
z1 0 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

servidor. Los ficheros estn en el servidor ordenados en una estructura de directorios


o carpetas. As, por ejemplo, la siguiente ruta:/personal/isidro/imagen, significa
que la informacin que solicitamos se encuentra en la carpeta llamada personal, dentro
de esta en la subcarpeta isidro, y por ltimo en la subcarpeta imagen que est, a su
vez, dentro de la anterior. La ruta no solo se compone de la posicin de los datos en el
sistema de ficheros, como acabamos de ver, sino tambin del nombre del fichero que
contiene la informacin. Estos ficheros suelen tener por extensin las siglas .htm o bien
.html (HTML: HyperText Mark-up Language: Lenguaje de hipertexto a base de marcas:
Lenguaje de descripcin de pginas web). De este modo, una ruta completa podra ser:
/personal/fulanito/imagen/galeria.htm.
Juntando estos tres elementos, formamos una URL completa. Un ejemplo sera:
http://www.uigv.edu.pe/personal/isidro/imagen/galeria.htm

6.5.3. Protocolo de transferencia de hipertexto (Http)


Los aspectos ms importantes de este protocolo son los siguientes:
Interacciones consulta-respuesta. Http es un protocolo de consulta-respuesta. El cliente enva un mensaje de consulta al servidor que contiene la URL del
recurso requerido. El servidor analiza la ruta enviada por el cliente y, si existe,
responde enviando el contenido del fichero requerido. Si no existe, manda un
mensaje de error.
Tipos de contenidos. El protocolo http permite transferir muchos tipos de ficheros diferentes. Esto no implica que los navegadores estn capacitados para poder
visualizar todos ellos. El servidor enva una cadena de caracteres que indica al
navegador qu tipo de fichero le va a enviar. A estas cadenas se las conoce como
tipos MIME. Por ejemplo, si el contenido de la cadena es text/html, entonces un
navegador interpretar el texto como una pgina escrita en lenguaje html y lo visualizar. Es tarea de los usuarios configurar los navegadores para poder manejar
los diferentes formatos que circulan por la web.
Un recurso por consulta. La versin 1.0 del http solo contempla la transferencia
de un recurso por consulta.
Control de acceso simple. En principio, cualquier usuario puede acceder a todos los recursos disponibles de la red. En algunos casos, estos recursos estn
restringidos y es necesaria una contrasea.
El Http es un protocolo en el que el cliente hace sus solicitudes en ASCII, y el servidor le puede contestar en MIME (Multipurpose Internet Mail Extensions, extensiones
multipropsito de correo de Internet). Entre sus mtodos de operacin ms importantes
estn:

z1 0 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

OPTIONS: Informa de las opciones disponibles sobre un recurso.


HEAD: Solicita leer la cabecera de una pgina web.
GET: Solicita una pgina web.
PUT: Solicita almacenar una pgina web.
POST: Igual que PUT, pero no reemplaza, aade.

6.6. Seguridad Informtica


Son los mecanismos que permiten que los recursos informticos de una organizacin,
particularmente su informacin, se encuentren protegidos contra todo tipo de ataques
informticos, manteniendo con ello su autenticidad, confidencialidad, integridad y disponibilidad. Un sistema de informacin se considera seguro si se encuentra libre de todo
riesgo y dao, sin embargo, no es posible garantizar la seguridad o la inviolabilidad absoluta de un sistema informtico. Por ello, la seguridad informtica es un proceso que
puede ser vulnerado en cualquier momento y desde cualquier lugar.
Autenticidad. Permite asegurar que solo los individuos autorizados tengan acceso a
los recursos informticos.
Confidencialidad. Caracterstica que protege los datos de usuarios no autorizados,
previniendo su divulgacin, hacindolos ininteligibles para aquellos individuos que no
estn involucrados en la operacin.
Integridad. Consiste en mantener la consistencia y originalidad de los datos y la
informacin de tal manera de que estos no puedan ser modificados por usuarios que no
cuentan con los privilegios respectivos; asimismo permite determinar si se han alterado
los datos durante el proceso de transmisin o intercambio sea este casual o intencionalmente.
Disponibilidad. Es la caracterstica que garantiza el correcto funcionamiento de los
sistemas de informacin, permitiendo acceder a la informacin en cualquier momento y
desde cualquier lugar.

6.6.1. Seguridad Informtica Perimetral


Son los mecanismos de proteccin que controlan todo el trfico de entrada y salida
entre los distintos segmentos de redes a travs de una correcta definicin de polticas
de seguridad y mediante una slida configuracin de los dispositivos de proteccin. La
seguridad perimetral constituye el primer frente de proteccin contra ataques desde el
exterior de la red informtica e incluyen esencialmente tcnicas de bloqueo de puertos,
filtrado de paquetes, prevencin y deteccin de intrusiones.

z1 1 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

El permetro de una red es el punto en que la red interna de una organizacin expone
una interfaz a las redes que no son de confianza. Desde el punto de vista de la seguridad, el permetro de red abarca cada punto donde la red interna se conecta a redes y
computadoras que no son controladas por el personal tcnico y especializado en TI de
la organizacin. Dicho de otro modo, las redes perimetrales estn constituidas por todas
aquellas redes que se encuentran fuera del dominio de la empresa y que mantienen
algn tipo de acceso con la red corporativa y, por lo tanto, no pueden ser controladas ni
administradas por ella. Esto incluye conexiones a Internet, a las redes privadas virtuales
y a las conexiones de acceso telefnico e inalmbrico (Figura 6.10).

Figura 6.10. Redes perimetrales

6.6.2. Ataques informticos


Son todas aquellas acciones que suponen una violacin de la seguridad de un sistema
informtico. Los ataques se pueden clasificar en:

6.6.2.1. Ataques controlados


Ataques a nivel de conexin. Los ataques a nivel de conexin (nivel de red)
se caracterizan porque son iniciados y monitoreados por una o ms personas
atacantes.
Ataques a nivel de aplicacin. Se basan en el uso de contenido malicioso o
agentes que, una vez introducidos en el ordenador, son capaces de actuar por s
mismos y propagarse internamente sin necesitar ningn tipo de conexin con el
atacante original. Pueden ser virus, gusanos o troyanos.

6.6.2.2. Ataques segn el efecto causado


Estos ataques estn en funcin de los objetivos de seguridad que vulneran.
Interrupcin. Cuando un recurso del sistema es inhabilitado o se vuelve no disponible. Este tipo de ataque vulnera la disponibilidad de un recurso del sistema
z1 1 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

o de la red, por tanto, el recurso no podr ser utilizado. Aqu se encuentran las
tcnicas de ataque tales como denegacin del servicio, cierre manual de servicios,
robo de informacin de dispositivos de almacenamiento, corte de un enlace de
comunicacin, desmontaje de un sistema de archivos.
Intercepcin. Cuando se consigue acceso a un recurso sin autorizacin. Aqu se
ataca la confidencialidad, las tcnicas ms usuales son captura de informacin,
copia de archivos no autorizados.
Modificacin. Cuando es posible modificar informacin de una fuente de datos.
Aqu se vulnera la integridad, ya que los datos son manipulados por personal no
autorizado en algn momento entre su elaboracin y su llegada al destinatario,
por ello no es vlida la informacin que se recibe cuando esta ha sido manipulada.
Entre las tcnicas ms usadas se encuentran aquellas que tienen acceso a una
base de datos como DNS Spoofing.
Fabricacin. Cuando se insertan objetos falsificados en el sistema. Este tipo de
ataque vulnera la autenticidad. Consiste en lograr la modificacin de un producto
para que sea similar al original, de tal forma que sea difcil establecer diferencias.
La tcnica ms usual Phising.

6.6.2.3. Ataques segn la modalidad de ataque


Son tcnicas de ataque que se pueden realizar en funcin a la forma de actuar del
atacante, entre los ms importantes destacan:
A. Escaneo de puertos
Es el proceso mediante el cual se analizan por medio de un programa el estado de los
puertos de una mquina conectada a una red de comunicaciones. Detecta si un puerto
est abierto, cerrado o protegido por un firewall.
Se utiliza para detectar qu servicios comunes est ofreciendo un servidor y posibles
vulnerabilidades de seguridad segn los puertos abiertos. Tambin puede llegar a detectar el sistema operativo que est ejecutando la mquina segn los puertos que tiene
abiertos. Es usado por administradores de sistemas para analizar posibles problemas de
seguridad, pero tambin es utilizado por usuarios malintencionados que intentan comprometer la seguridad de la mquina o la red. Existen varios programas que escanean
los puertos de un servidor, uno de los ms conocidos es NMAP, disponible tanto para
Linux como Windows.
B. Anlisis de trfico (Sniffing)
Consiste en escuchar o monitorear el trfico de la red. Esta tcnica fue posible debido
a la utilizacin de hubs o concentradores, que son dispositivos que repiten toda la informacin recibida por cada uno de sus puertos, por ello estos equipos fueron remplazados
por los switchs o conmutadores, ya que estos equipos solo mandan la informacin recibida por el puerto adecuado.
z1 1 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

C. Ataques de autentificacin (Spoofing)


Los ataques de autentificacin o suplantacin de la identidad, consisten en introducirse en un sistema suplantando la identidad de un usuario o del propio administrador.
Tambin puede darse aprovechando una sesin establecida por el usuario, o bien con los
datos obtenidos de los ataques de escaneo. Usualmente el atacante accede al sistema
suplantando la identidad de algn usuario, preferentemente del administrador del sistema, luego puede acceder a todos los niveles de la red, aprovechando las relaciones de
confianza entre las redes.
En cada nueva red accesible el atacante realiza nuevamente escaneo de puertos para
intentar acceder a los sistemas como usuario legtimo, ya que desde el origen al destino
pueden existir muchas estaciones, esto genera muchos problemas a la hora de rastrear
el ataque, ya que se requieren recursos computacionales y humanos permanentemente
para detectar los saltos efectuados por el atacante.
D. Ataques de denegacin de servicios
Tambin llamado ataque DoS (Denial of Service), es un ataque a un sistema de computadoras o red que ocasiona que un servicio o recurso sea inaccesible por los usuarios del servicio. Normalmente provoca la prdida de la conectividad de la red por el consumo del ancho
de banda de la red o sobrecarga de los recursos computacionales del sistema de la vctima.
Se genera mediante la saturacin de los puertos con flujo de informacin, haciendo
que el servidor se sobrecargue y no pueda seguir prestando servicios, por eso se le dice
denegacin, pues hace que el servidor no d abasto a la cantidad de usuarios.
Una ampliacin del ataque DoS es el llamado ataque distribuido de denegacin de
servicio, tambin llamado ataque DDoS (Distributed Denial of Service), el cual se lleva a
cabo generando un gran flujo de informacin desde varios puntos de conexin.
La forma ms comn de realizar un DDoS es a travs de un conjunto de robots informticos o bots, que se ejecutan de manera autnoma y automtica (botnet), siendo
esta tcnica el ataque ms usual y eficaz.
En ocasiones, esta herramienta ha sido utilizada como un notable mtodo para comprobar la capacidad de trfico que un ordenador puede soportar sin volverse inestable y
perjudicar los servicios que desempea. Un administrador de redes puede as conocer la
capacidad real de cada mquina.
Un ataque DoS puede ser perpetrado en un gran nmero de formas, aunque bsicamente consisten en:

Consumo de recursos computacionales, tales como ancho de banda, espacio de


disco o capacidad del procesador.

Alteracin de informacin de configuracin, como informacin de rutas de encaminamiento.


z1 1 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Alteracin de informacin de estado, tales como interrupcin de sesiones del protocolo de transporte.

Interrupcin de componentes fsicos de red.

Obstruccin de medios de comunicacin entre usuarios de un servicio y la vctima, de manera que ya no puedan comunicarse adecuadamente.

E. Peticiones Syn
Conocido tambin como SYN Flood, consiste en hacer una peticin de establecimiento
de conexin a un servidor y no responder a su aceptacin de conexin, ya sea porque se
false el paquete de peticin con una direccin IP falsa o por alguna otra causa. Este tipo
de ataque provoca una saturacin en las conexiones abiertas del servidor, de tal forma
que si son muy elevadas pueden llegar a producir un colapso del servicio ofrecido con la
siguiente denegacin de servicio.
F. Explotacin de errores
Es un ataque a nivel de aplicacin, que consiste en aprovechar la vulnerabilidad, error
o inconsistencia de un programa. Esta situacin ocurre cuando un programa ha sido
desarrollado sin tener en cuenta un planeamiento de anlisis de riesgos en el proceso
de diseo, desarrollo e implementacin del aplicativo, a las capacidades del lenguaje o
plataforma que lo contiene o simplemente por descuido. En lo que respecta a aplicaciones web, los ataques ms comunes son:
Cross-site Scripting. Sucede cuando es posible enviar datos o scripts completos desde los campos de entrada de un formulario no validado consistentemente,
este cdigo enviado puede generar en la aplicacin web secuencias de comandos
maliciosas, perjudicando directamente al sistema.
SQL Injection. Es cuando se inserta generalmente desde un formulario o URL
del navegador un cdigo SQL dentro de otro cdigo SQL para alterar la respuesta
de la base de datos.
G. Registrador de teclas (Keyloggers)
Es una tcnica que permite conocer todo lo que un usuario escribe a travs del teclado, incluso a veces registran capturas de pantalla del equipo. Para ello existen herramientas de hardware y software diseadas para tal fin.
H. Introduccin me malware
Es el proceso por el cual se introducen al sistema virus, troyanos o gusanos, los cuales
infectan el equipo informtico.
Virus. Son programas que se propagan entre los equipos. Su cdigo se adjunta
a otro programa existente en el sistema para facilitar su propagacin y causar los
z1 1 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

daos para el que han sido diseados. Su caracterstica principal es que han sido
escritos para que sean replicados en el mayor nmero de equipos posibles.
Gusanos (worms). Son diseados con el mismo fin que los virus, diferencindose
en que estos no necesitan la intervencin del usuario, ya que no se adjuntan a
ningn otro programa, sino que son distribuidos de manera completa por la red,
consumiendo mayormente ancho de banda o bloqueando el equipo infectado.
Troyanos (backdoor). Son aplicaciones aparentemente inofensivas que facilitan
en la mayora de los casos el acceso remoto a los equipos infectados. Estas aplicaciones se pueden esconder en archivos adjuntos en los mensajes que enviamos
por la red.
I. Ingeniera Social
Es un ataque que afecta al objetivo de confidencialidad de la seguridad informtica.
Consiste en obtener informacin confidencial de una persona u organismo para utilizarla
posteriormente con fines maliciosos. Usualmente se utiliza el correo electrnico o pginas web falsas para llevar a cabo el ataque. Las tcnicas ms conocidas son el phising
y el envo de spam.
Phishing. Es una tcnica de engao al usuario, que intenta adquirir informacin
confidencial suplantando la identidad de otra persona, organizaciones o pginas
web de Internet. El mtodo ms usado consiste un colgar en Internet una pgina
web que es copia idntica de alguna otra. La tcnica consiste en que una vez que
el usuario se encuentre utilizando la pgina copiada, este puede ingresar datos
confidenciales como usuario y contrasea o nmeros de tarjeta, los cuales se
mandan directamente a los creadores de la pgina copiada.
Spam. Conocido como correo basura. Corresponde normalmente al correo de
contenido publicitario que no ha sido solicitado, ocasionando con ello principalmente congestin en la red, insercin de malware y uso de recursos en el sistema.

6.6.3. Tecnologas de Proteccin Informtica Perimetral


6.6.3.1. Firewall
Un firewall es un dispositivo de seguridad que tiene la funcin de permitir o denegar
las transmisiones de una red a otra. Generalmente se sita entre una red local y la red
Internet, para evitar que los intrusos puedan acceder a la red interna o privada de una
organizacin (Figura 6.11).
Para permitir o denegar una comunicacin, el firewal examina el tipo de servicio al
que corresponde, como pueden ser la web, el correo o el ftp. Dependiendo del servicio,
el firewall decide si lo permite o no. Adems, el firewall examina si la comunicacin es
entrante o saliente y dependiendo de su direccin puede permitirla o no.
z1 1 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

De este modo, un firewall puede permitir desde una red local hacia Internet servicios
de web, correo y ftp, pero no a IRC que puede ser innecesario para las labores administrativas.
Lo ms importante de un firewall concierne a su configuracin. Es decir, un firewall
mal configurado puede constituirse como una puerta de ingreso a todo tipo de ataques.

Figura 6.11. Firewall y segmentos de Red

6.6.3.2. Sistema de deteccin de intrusos


Un Sistema de deteccin de intrusiones o IDS (Intrusion Detection Systems) es una
herramienta de seguridad que permite detectar o monitorear los eventos ocurridos en un
determinado sistema informtico o red informtica en busca de intentos de comprometer
la seguridad de dicho sistema, as los IDS buscan patrones previamente definidos que
impliquen cualquier tipo de actividad sospechosa o maliciosa sobre nuestra red o servidor.
Los IDS aportan a nuestra seguridad una capacidad de prevencin y de alerta anticipada ante cualquier actividad sospechosa. No estn diseados para detener un ataque,
pero s pueden generar ciertos tipos de respuesta ante estos.
Los IDS aumentan la seguridad de un sistema, vigilan el trfico de la red, examinan los
paquetes, analizndolos en busca de datos sospechosos, detectando en algunos casos el
inicio de un ataque como pueden ser el anlisis de nuestra red, barrido de puertos, etc.
El IDS basado en red (NIDS) ms comnmente utilizado es SNORT, el cual implementa un motor de deteccin de ataques y barrido de puertos que permite en tiempo
real registrar, alertar y responder ante cualquier anomala previamente definida como
patrones que corresponden a ataques, barridos, intentos de aprovechar alguna vulnerabilidad, anlisis de protocolos, entre otros.
z1 1 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Snort implementa un lenguaje de creacin de reglas flexibles, potentes y sencillas,


provee de cientos de filtros o reglas para backdoor, ddos, finger, ftp, ataques web, CGI,
escaneos Nmap.
Puede funcionar como sniffer, es decir, podemos ver en consola y en tiempo real qu
ocurre en nuestra red, todo nuestro trfico, registro de paquetes, permitiendo con ello
guardar en un archivo los eventos para su posterior anlisis (anlisis offline) o como un
IDS normal (en este caso NIDS).
La colocacin de Snort en una red puede realizarse segn el trfico que se quiere vigilar, estos pueden ser paquetes entrantes, paquetes salientes, dentro o fuera de firewall.

6.6.3.3. Sistema de prevencin de intrusos


Los sistemas de prevencin de intrusos o IPS (Intrusion Prevention Systems) conforman la nueva tecnologa de seguridad informtica para proteccin de servidores y redes
que bloquean de forma eficiente ataques externos e internos y todo tipo de amenazas
conocidas y desconocidas.
Los IDS han sido usados ampliamente a lo largo de estos ltimos aos por muchas
compaas porque han proporcionado una capa adicional de seguridad, sin embargo, se
ha encontrado que estos elementos proporcionan seguridad reactiva, es decir, para que
haya proteccin debe existir primero un ataque, si un ataque es pequeo y efectivo el
IDS reaccionar demasiado tarde y el ataque lograr su objetivo.
Ante estas circunstancias se han desarrollado los IPS (Intrusion Prevention Systems)
que han aparecido como una evolucin de los IDS. Los IPS no se limitan a escuchar y
monitorear el trfico de la red, sino que intervienen activamente, ya que el trfico circula
a travs del sistema y cualquier intento de ataque ser bloqueado por el IPS en el mismo
momento en que el evento ocurre.
La tecnologa IPS permite a las organizaciones proteger la informacin crtica de una
forma proactiva, sin limitarse a emitir alertas en una consola luego de que los ataques
han sucedido. Esta tecnologa supone un beneficio continuo y una inversin verdaderamente inteligente para cualquier entorno de red, asimismo protegen infraestructuras,
aplicaciones y en muchos casos mejora el rendimiento de las redes porque a travs de
ellas no circularn cdigos maliciosos.
Un buen sistema IPS debe cumplir como mnimo con caractersticas tales como bloqueo automtico de ataques, proteccin de sistemas no parchados, y optimizacin del
rendimiento de la red, sin estas condiciones no es posible garantizar la operatividad y
productividad de un sistema.

6.6.3.4. Proxy
Un proxy es un dispositivo que acta de intermediario entre el cliente y el servidor
real de una aplicacin, siendo transparente a ambas partes.

z1 1 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Cuando un usuario desea un servicio, lo hace a travs del proxy, este realiza el pedido
al servidor real que a su vez devuelve los resultados al cliente.

6.6.3.5. Polticas de seguridad


Las polticas de seguridad son el conjunto de todas las reglas de seguridad que sigue
una organizacin, en ese sentido, los responsables de la organizacin deben encargarse
de definirla, ya que afecta a todos los usuarios del sistema. De acuerdo con ello, es la
alta direccin asesorada por el administrador de informtica la encargada de elaborar las
polticas de seguridad, de tal manera que el acceso a los recursos, privilegios y derechos
de acceso se encuentren alineados con las polticas establecidas por la organizacin.
La seguridad informtica de una compaa depende de que los empleados (usuarios) aprendan las reglas a travs de sesiones de capacitacin y de concientizacin. Sin
embargo, la seguridad debe ir ms all del conocimiento de los empleados y cubrir las
siguientes reas:

Un mecanismo de seguridad fsica y lgica que se adapte a las necesidades de la


compaa y al uso de los empleados.

Un procedimiento para administrar las actualizaciones.

Una estrategia de realizacin de copias de seguridad (backup) planificada adecuadamente.

Un plan de recuperacin luego de un incidente.

Un sistema documentado actualizado.

6.6.3.6. Anlisis de vulnerabilidades


El anlisis de vulnerabilidades es un componente crtico de cualquier infraestructura
de seguridad, ya que permite la deteccin proactiva y correccin de vulnerabilidades de
seguridad. Mediante el uso de herramientas, procesos y expertos se pueden corregir y
ajustar las deficiencias antes de que sean explotadas y no basarse nicamente en las
medidas de seguridad preventiva para protegerse a s mismos, por lo tanto, su prctica
debe ser frecuente y completa.
De acuerdo con las mejores prcticas, el proceso de anlisis de vulnerabilidades incluye los siguientes pasos:

Descubrimiento. Descubre todos los activos de la red e identifica los detalles de


cada elemento, incluyendo el sistema operativo y los servicios abiertos.

Priorizacin de los activos. Permite clasificar los activos en grupos o unidades de


negocio. Asigna un valor de negocio a los grupos de activos en funcin de su importancia para la operacin de una organizacin.

z1 1 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Evaluacin. Determina un perfil de riesgo de referencia que permita enfocarse en


la eliminacin de los riesgos con base en la importancia de los activos. Identifica
las vulnerabilidades de seguridad de forma peridica y programada.

Informe. Mide el nivel de riesgo en el negocio, asociado con sus activos de acuerdo a sus polticas de seguridad. Fija una postura de seguridad a travs del tiempo.

Remediacin. Prioriza y repara las vulnerabilidades de acuerdo al riesgo que implican para el negocio.

Verificacin. Verifica la eliminacin de amenazas a travs de auditoras de seguimiento.

De acuerdo con ello, el anlisis de vulnerabilidades tiene como objetivos:


Conocer cmo las vulnerabilidades pueden comprometer a los activos de una red.

Priorizar y remediar con efectividad las vulnerabilidades de los activos de una red.

z1 1 9 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

L e c c i n

INTRODUCCIN A SISTEMAS
DE BASE DE DATOS

Uno de los principales requerimientos de las aplicaciones informticas es el almacenamiento de los datos en forma permanente de manera que estos puedan ser recuperados posteriormente. En ese sentido, es difcil imaginar que un programa no tenga la
necesidad de almacenar su informacin en un repositorio no temporal y que pueda ser
solicitada cuando se lo requiera.
Este concepto no es nuevo y existe desde que casi nace la informtica, aunque esto
ha crecido gracias a las diversas herramientas (software) libres y propietarias que se
encargan de gestionar los datos, permitiendo su almacenamiento, procesamiento y recuperacin; en ese sentido, nos referimos a los sistemas gestores de base de datos
(SGBD) que realizan estas tareas de forma prctica como eficiente.
Los SGBD se utilizan para gestionar grandes cantidades de datos, los mismos que
deben definir claramente su estructura para su almacenamiento, como los mecanismos
de manipulacin que permitan su recuperacin.
En esta leccin daremos a conocer los fundamentos de los sistemas de base de
datos.

z1 2 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

7.1. Los sistemas de archivos


y los sistemas de base de datos
Debemos recordar que cuando se vio la necesidad de guardar los datos generados por
los programas o aplicaciones, estos emplearon en un inicio los sistemas de archivos,
los cuales eran diseados para dar solucin a problemas especficos por reas o departamentos, presentndose con ello el aislamiento y problemas de integridad de los datos.
Por otro lado, se presentaban otros problemas, tales como que el acceso concurrente a los datos era improbable toda vez que se deba esperar a que se dejara de utilizar
para que otro usuario pudiera acceder a la misma informacin, adems el problema de
seguridad en el acceso era cercano, ya que no todos los usuarios deberan poder tener
el acceso a la informacin. Estos problemas y otros, motivaron a los expertos a desarrollar nuevas soluciones que permitieran contrarrestar estas debilidades.
Un ejemplo lo podemos visualizar en la Figura 7.1, donde se evidencia un modelo de
un sistema de archivos de una institucin educativa, donde los departamentos de tesorera y acadmico no manejaban la informacin actualizada y adems se presentaba
el problema de la duplicidad de los datos; es decir, cuando un estudiante ingresaba, se
actualizaba los datos o se retiraba de la institucin, esta podra estar actualizada en el
departamento de tesorera, pero en el departamento acadmico no. Adems de ello,
estaba la duplicidad de la informacin que se presentaba en esos departamentos.

Figura 7.1 Ejemplo de un modelo de sistemas de archivos4

Sin embargo, estas dificultades motivaron el desarrollo de nuevas propuestas como


los sistemas de base de datos que han permitido resolver los problemas presentados
anteriormente.
Un sistema de base de datos es una coleccin de archivos interrelacionados y un
conjunto de programas que permiten a los usuarios acceder y modificar estos archivos
(Silberschatz, 2004, p.3).

Elaboracin propia.
z1 2 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Otro autor seala: Un sistema de base de datos es una coleccin de datos interrelacionados, almacenados en conjunto, sin redundancias perjudiciales o innecesarias.
Su finalidad es servir a una aplicacin o ms de la mejor manera posible. Los datos se
almacenan de modo que resulten independientes de los programas que los usan. Se
emplean mtodos bien definidos para incluir nuevos datos y para modificar o extraer los
datos almacenados (Martin, 1975, p.19).
Entendiendo esta propuesta, podemos sealar que los sistemas de base de datos
comprenden dos elementos importantes, los archivos o coleccin de datos y los programas que se encargan de gestionar el acceso y modificacin a los datos. En la Figura 7.2,
se muestra la relacin de los programas, los sistemas gestores de base de datos (SGBD)
y la base de datos en el escenario de una institucin educativa.

Figura 7.2 Ejemplo de un modelo de sistemas de base de datos

7.2. Breve historia de los sistemas de base de datos


Teniendo como referencia el material bibliogrfico del autor (Crovetto C., 2005), podemos sealar que la evolucin de los sistemas de base de datos se presenta de la
siguiente forma:
Esta evolucin nace con los sistemas de ficheros, los cuales fueron los predecesores
de los sistemas de base de datos. Luego de ello nace la Estructura Jerrquica como resultado del Proyecto Apolo (60), en donde la aviacin norteamericana (NAA), desarrollo
un software conocido como GUAM (Generalized Update Access Method), el cual se bas
en la idea de que componentes ms pequeos se juntan formando componentes ms
grandes.
A mediados de los sesenta IBM se uni con la NAA y surge IMS (Information Management System), el cual fue uno de los primeros sistemas jerrquicos comerciales, siendo
usado por los supercomputadores.
A mediados de los setenta, surge IDS (Integrated data store) por parte de General
Electric. Este proyecto lo dirigi el investigador Charles Bachman, donde propone un
nuevo sistema de bases de datos conocido como Sistemas de Red. Este modelo nace
z1 2 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

en parte para poder representar relaciones de datos ms complejas a diferencia del


modelo jerrquico. Para ayudar a establecer como estndar CODASYL (Conference On
Data System Languages), formado por representantes del gobierno de EE.UU. y varios
representantes empresariales, se form el grupo DBTG (Data Base Task Group), elevando un informe a finales de 1971, el cual no fue aceptado por ANSI (American National Standars Institute), pero se conoce que muchos sistemas se desarrollaron siguiendo
la propuesta DBTG. Estos sistemas se conocieron como sistemas de red, CODASYL o
DBTG.
La propuesta DBTG identific tres componentes, en 1971:

El esquema de red: organizacin lgica de la base de datos vista por el administrador de base de datos.

El subesquema: la parte de la base de datos vista por el usuario o el programador


de aplicaciones.

Un lenguaje de gestin de datos para definir las caractersticas y la estructura de


los datos y para manipular los datos.

Los modelos Jerrquico y de Red constituyeron la primera generacin de los sistemas


gestores de base de datos.
En 1970, Edgar Frank Ted Codd de los laboratorios de investigacin de IBM, escribi
un artculo sobre el modelo relacional, llamado A Relational Model of Data for Large
Shared Data Banks que tuvo mucha repercusin, ocasionando con ello el surgimiento
de varios sistemas gestores de base de datos (SGBD) relacionales experimentales.
Los primeros productos comerciales aparecieron a finales de los 70 y principio de los
80. Uno de los pioneros fue el SYSTEM R, proyecto desarrollado en IBM de San Jos
Research Laboratory, en California. Proyecto diseado para probar la utilidad del modelo
relacional, logrando proporcionar una implementacin de sus estructuras de datos y
operaciones, surgiendo dos grandes desarrollos:

El desarrollo de un lenguaje de consulta estructurado llamado SQL, el cual lleg a


ser el lenguaje estndar para los SGBD relacinales.

La produccin de varios DBMS que surgieron durante los aos ochenta, entre ellos
DB2 y SQL/DS de IBM y ORACLE.

Los sistemas de base de datos relacionales se conocieron como la segunda generacin


de SGBD. Sin embargo, estos sistemas presentaron desventajas, siendo una de ellas la
capacidad de modelar los datos; esto hizo que hubiera mucha investigacin al respecto,
y fue que en 1976, Peter Chen propuso el modelo entidad-relacin, que es la tcnica de
modelado de base de datos ms difundida. Ms adelante surgi el modelo EER (extendida), dotndolo de mayor capacidad expresiva.

z1 2 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Las investigaciones constantes y la necesidad de proporcionar un modelo de datos


capaz de representar al mundo real y la amplia complejidad de las aplicaciones que requieren base de datos, motivan el surgimiento de dos modelos: el orientado a objetos y
el modelo relacional extendido. Estos son conocidos como la tercera generacin de los
sistemas de gestin de base de datos.

7.3. Concepto de base de datos


Podemos sealar que una base de datos es una coleccin de datos interrelacionados
que representan la realidad de una organizacin; estos estn almacenados de la manera
ms coherente posible buscando con ello su explotacin.
Debemos recordar que los datos son hechos conocidos que pueden ser guardados
y que tienen un significado implcito. Por ejemplo, pensemos en los nombres de los
clientes, direccin, nmero telefnico, correo electrnico, etc.; al ser guardados usted
podr acceder a esa informacin de la manera ms ordenada posible. Pero este almacenamiento no tendr el xito si no se emplean programas especializados encargados de
realizar esta labor y mucho ms.
Diversos autores sealan que una base de datos es:

() modelo de un sistema verdadero del mundo. El contenido (a veces llamado la


extensin) de una base de datos representa el estado que est siendo modelado.
Los cambios en la base de datos representan los acontecimientos que ocurren en
el ambiente que cambia el estado de lo que est siendo modelado. Es apropiado
estructurar una base de datos para reflejar lo que piensa modelar (Crovetto C.
2005. p.81).

() una base de datos es un conjunto, coleccin o depsito de datos almacenados en un soporte informtico no voltil. Los datos estn interrelacionados y
estructurados de acuerdo con un modelo capaz de recoger el mximo contenido
semntico (Piattini M. 2007, p.24).

7.4. Caractersticas de las bases de datos


Entre las principales caractersticas de las bases de datos, podemos sealar:
Metadatos: debemos recordar que las bases de datos nos solo guardan los datos
en trminos generales, sino tambin almacenan descripcin de la estructura y sus
restricciones, tales como los nombres de los campos, tipo de dato de cada uno
de ellos, restricciones y tambin las relaciones. Por ejemplo, en la Figura 7.3 se
observa el objeto tabla Empleado y su estructura.

z1 2 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Tabla: Empleado
Nombre Columna

Tipo Dato

Restriccin/Relacin

Cod_empl

Carcter (3)

Llave primaria, no nulo

Nom_empl

Carcter (25)

Solo letras

Dir_emp

Carcter (35)

Letras y nmeros

Tel_empl

Carcter (9)

Solo numero

Sal_empl

Numrico (8,2)

Nmero mayor a cero

............

............

............

............

............

............

Numrico (2)

Relacin con Departamento

Dep_empl

Figura 7.3 Estructura de la tabla Empleado

Independencia de datos-programas: representa una caracterstica de las bases de datos a diferencia de los sistemas de archivos. En este ltimo la estructura
de los archivos estaban incluidos o ligados en los programas, ocasionando con ello
que cualquier cambio en su estructura obligara a realizar los cambios en todos los
programas relacionados. Por el contrario, en la base de datos estos cambios de
estructuras no afectan en su mayora a los programas.
Soporte de varias perspectivas de los datos: se debe recordar que muchos
usuarios tienen acceso a la base de datos, ellos extraen los datos necesarios y en
ese sentido se dice que tienen diversas perspectivas o subconjunto de los datos
almacenados; este concepto se conoce como vista, toda vez que estn accediendo a parte de la informacin y no a toda. Esto tambin permite tener una seguridad, toda vez que no accede a toda la informacin, sino a parte de ella.
Control de la concurrencia: los programas especiales encargados de manejar
las bases de datos deben garantizar el control de la concurrencia, es decir, que
varios usuarios puedan acceder a los datos al mismo tiempo, permitiendo su actualizacin sin el perjuicio de prdida de estos. Un ejemplo, si varios vendedores
de productos ofrecen el mismo producto a diversos clientes los programas que
acceden a la base de datos deben garantizar al mismo momento que exista el
stock para garantizar la venta. Estos programas se mueven en un ambiente de
transacciones concurrente.
El concepto de transacciones es importante en un ambiente de base de datos y podemos definirlo como: () un programa en ejecucin o proceso que incluye uno o ms
accesos a la base de datos, como la lectura o actualizacin de los registros de la misma.
Se supone que una transaccin ejecuta un acceso lgicamente correcto a la base de datos si lo ejecut ntegramente sin interferencia de otras transacciones (Ramez Elmasri,
2007, p.13).

z1 2 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

7.5. Participantes de una base de datos


Cuando se define una estructura de una base de datos y luego se pone en marcha
en una institucin u organizacin, se presentan cuatro participantes, los cuales son:
administrador de base de datos, diseador de la base de datos, programadores de los
sistemas de informacin y los usuarios de la base de datos.
El administrador de la base de datos (DBA): encargado del diseo fsico y la
implementacin de la base de datos en la organizacin. Por otro lado, es el encargado de la seguridad y de realizar las copias de respaldo buscando la proteccin
de todos los datos de la organizacin. Asimismo, mantiene el nivel de operatividad y verifica que las aplicaciones y los usuarios obtengan un buen servicio. Se
puede decir que es un profesional especializado en el gestor de la base de datos
(SGBD), realizando para ello cursos de capacitacin o certificacin, permitiendo
con ello un nivel y usos de las diversas herramientas o programas que proporciona los SGBD.
El diseador de la base de datos: encargado del diseo conceptual y lgico
de la base de datos de la organizacin. En ese sentido, analiza la organizacin
identificando qu datos son relevantes, establece las relaciones, luego las restricciones. Por tal motivo, es quien debe tener un buen conocimiento de los datos de
la organizacin y las reglas del negocio, las cuales describen las caractersticas de
cada uno de los datos.
Lo relevante de este participante es cuando construye el diseo lgico de la base
de datos, este no guarda dependencia con algn SGBD que se desee utilizar, permitiendo con ello una propuesta libre donde solo importa la relacin de los datos.
Los programadores de los sistemas de informacin: encargados de construir e implementar los programas que permitirn la automatizacin de los procesos de la organizacin y que finalmente sern de utilidad a los usuarios finales.
Estos programas sern los que consulten, registren, modifiquen y eliminen la
informacin almacenada en la base de datos. Los programas son escritos en lenguajes de tercera o cuarta generacin conocidos por los programadores.
Los usuarios finales: conocidos como clientes de la base de datos y son los
encargados de explotar los datos almacenados. En ese sentido, se puede decir
que si los usuarios aprovechan al mximo las facilidades presentadas por los programas y la integracin de estos con los datos, entonces se considera ptimo en
sus funciones.

7.6. Concepto de sistema gestor de base de datos (SGBD)

Tambin conocido como sistema gestor de base de datos (SGBD) o Database Management Systems (DBMS), es una coleccin de programas que permite a los usuarios
crear o mantener una base de datos. En otras palabras el SGBD es un software especiaz1 2 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

lizado que permite la definicin, construccin, manipulacin y actualizacin de la base


de datos entre varios usuarios y programas. Asimismo, permite tener los datos de toda
la organizacin en forma integrada, de manera que estos se encuentran disponibles a
consultas en un ambiente de transacciones concurrentes.
Diversos autores sealan que una base de datos es:

(...) sistema desarrollado que hace posible acceder a datos integrados que atraviesan los lmites operacionales, funcionales u organizacionales de una empresa
(S. Atre, 1980).

(...) conjunto de soportes lgicos que permiten describir, memorizar, manipular,


tratar y asegurar los conjuntos de datos constituyentes de la base de datos en un
entorno de mltiples usuarios simultneos (Flory, 1982).

(...) conjunto de programas, procedimientos, lenguajes, etc., que suministra a


los usuarios los medios necesarios para describir, recuperar y manipular los datos
integrados en la base, asegurando su confidencialidad y seguridad (De Miguel,
1985).

7.7. Ventajas de los sistemas gestores de base de datos.


Teniendo como referencia el material bibliogrfico del autor (Crovetto, 2005), podemos sealar las siguientes ventajas:
Mejora en la integridad de los datos: relacionado con la validez y la estabilidad de datos almacenados; esto generalmente se presenta mediante restricciones o reglas que no se deben transgredir.
Mejora la accesibilidad a los datos: permite al usuario hacer cualquier tipo de
consulta sobre todos los datos, sin que se necesite que un programador haga una
aplicacin para dicha actividad.
Mejora la seguridad: relacionado a la proteccin de los datos frente a otros
usuarios no autorizados.
Mejora de la productividad: referido al uso de las muchas funciones estndares para el programador. Por otro lado, la disponibilidad de un conjunto de herramientas que simplificarn el desarrollo de las aplicaciones.
Mejora los servicios de copias de seguridad y recuperacin ante fallas:
mediante el uso de programas proporcionados por el software, el usuario sea
quien proporcione todas las medidas necesarias para proteger los datos ante
cualquier tipo de falla.

z1 2 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Mejora el mantenimiento debido a la independencia de datos: debido a


que la estructura de los datos es independiente de los programas.
Mejora en el aumento de concurrencia: debido a que muchos usuarios pueden acceder a la informacin en forma simultnea a los mismos datos.

7.8. Aplicaciones de los sistemas de base de datos


Teniendo como referencia el material bibliogrfico del autor (Ramez, 2007), podemos
sealar algunas de sus aplicaciones de los sistemas de base de datos:
Banca, para informacin de los clientes, cuentas, prstamos y operaciones bancarias.
Lneas areas, para las reservas e informacin de vuelos areos. Fue y es una
de las primeras en emplear las bases de datos para el tratamiento de la informacin que geogrficamente se encuentra distribuida.
Universidades, para el manejo de la informacin de los estudiantes, cursos y
matrculas de las asignaturas.
Empresas telefnicas, para el registro de las llamadas, generacin de facturas
y para almacenar informacin sobre las redes de informacin.
Finanzas, para almacenar informacin sobre grandes empresas, ventas y compras de documentos formales financieros, como bolsa y bonos.
Ventas, para guardar la informacin de los clientes, productos y compras.
Produccin, para la gestin de la cadena de produccin y para el seguimiento de
la produccin de elementos en las factoras, inventarios de elementos en almacenes y pedidos de elementos.
Recursos humanos, para el manejo de la informacin de una organizacin como
la informacin sobre los empleados, generacin de planillas, entre otros.
Esta lista de aplicaciones nos muestra el grado de importancia que tienen las bases
de datos en las instituciones pblicas o privadas. En ese sentido, hemos visto en estas
ltimas dcadas el crecimiento de los sistemas gestores de base de datos (SGBD), garantizando con ello el almacenamiento de grandes cantidades de datos. Por otro lado,
nada de esto tendra xito si los fabricantes de SGBD no estuvieran comprometidos con
las mejoras de sus productos, es as como ORACLE, Microsoft, IBM, entre otras, presentan cada cierto tiempo versiones mejoradas de sus productos.

z1 2 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

RESUMEN
Las redes de comunicaciones constituyen los mecanismos tecnolgicos sobre los cuales se articula la evolucin de los sistemas informticos a todo nivel, del mismo modo el desarrollo tecnolgico y con l, la aparicin
de tecnologas emergentes, particularmente aquellas relacionadas directamente con la Web, exigen con mayor
celeridad nuevos dispositivos de comunicacin cada vez ms sofisticados e inteligentes, desde mayores anchos
de banda en los medios de transmisin hasta equipamiento con capacidad para filtrar y optimizar el flujo de
informacin en mltiples direcciones.
Por otro lado, es prioritaria la proteccin de los datos que circulan por la red, de ah la importancia de
incorporar mecanismos de seguridad informtica que permitan salvaguardar su integridad, confidencialidad y
disponibilidad. Tal situacin exige maximizar los niveles de proteccin en todos los niveles de las organizaciones,
pero fundamentalmente en el permetro de la red, para ello es necesario la correcta instalacin y distribucin
de firewalls, las cuales asociadas a tcnicas como Proxy, IDS, IPS, NAT complementan y amplan la capacidad
del firewall para optimizar la seguridad en el permetro ante ataques que requieren establecer una conexin
mientras estas se llevan a cabo (ataques intencionados). Sin embargo, la utilizacin de firewalls pierde efectividad de proteccin cuando se implementan sin seguir modelos especficos y polticas de seguridad.
En la leccin 7, referida a los sistemas de base de datos, se hace una revisin de los conceptos sobre base
de datos y los sistemas gestores de base de datos (SGBD). El primero entendido como un repositorio de datos
que representa la estructura de una organizacin; y el segundo relacionado a un software que se encarga de
administrar la base de datos. Adems se establece una relacin entre los sistemas de archivos y los sistemas de
base de datos. Otro aspecto importante en esta leccin est relacionado con la historia de los sistemas de base
de datos, entendindose con ello el origen de los SGBD a travs de sus generaciones. Para finalizar, se exponen
las diversas aplicaciones de los sistemas de base de datos en casi todas las empresas u organizaciones actuales.

z1 3 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Te xt o pa ra come n t a r 1
La clave de la seguridad informtica

Algunos expertos quieren que la era de la contrasea llegue a su fin, pues cada vez
es ms vulnerable para proteger la informacin digital.
Hasta hace poco se crea que la contrasea era la forma ms segura de proteger la
vida digital de las personas. Pero hoy muchos creen que una clave es insuficiente y equivaldra a pretender resguardar a una ciudad de un ejrcito enemigo con un candado.
Lo han dicho gigantes de los computadores como IBM, as como la firma Deloitte, que
en un reciente informe afirm que estaban contados los das de la seguridad basada
exclusivamente en la clave.
Voces expertas como la de Mat Honan, escritor snior de la revista Wired, sealan que
el acceso a la informacin digital personal ya no puede depender de una serie secreta
de diez caracteres. El propio Poul-Henning Kamp, quien invent un popular sistema para
encriptar contraseas llamado MD5Crypt, dijo recientemente que su invento era obsoleto.
Les imploro a todos que migren a algo ms seguro, escribi en su blog. La razn es
que el 90 por ciento de las contraseas generadas por los usuarios son susceptibles de
ser descifradas en segundos.
Y es que segn l, una clave de ocho caracteres hoy puede ser encontrada con un
software que va adivinando rpidamente hasta encontrar la combinacin correcta. La
falta de seguridad se ve reflejada a diario. Entre los casos ms sonados est el robo de la
base de datos de PlayStation en 2011, por lo cual Sony tuvo que invertir 171 millones de
dlares en reconstruir la red y buscar mtodos ms seguros para proteger a sus usuarios.
En 2012 a la red social LinkedIn le hackearon 6 millones de contraseas.
Aunque la manera ms popular de robar cuentas es el phishing, que consiste en ofrecer
el acceso a pginas falsas pero en apariencia reales, hay muchas otras modalidades. Al
propio Honan, un hacker llamado Cosmo le rob su identidad de la forma ms sencilla:
con el servicio de olvid su clave que est disponible en todos los portales. Para responder correctamente las preguntas de seguridad, el hacker se vali de la informacin
que su vctima haba publicado en Internet (el nombre del perro, su fecha de nacimiento,
etc.) para robar su clave.
El ladrn entr a su correo de Gmail y borr cientos de mensajes. Tambin obtuvo
acceso a su cuenta de Apple y desapareci toda la informacin de su computador, tableta y telfono, con lo que Honan perdi su mayor tesoro: la historia fotogrfica de su
hija. Por ltimo se apoder de su cuenta de Twitter, desde donde lanz mensajes racistas
z1 3 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

y homofbicos. Las claves de Apple, Twitter y Gmail eran robustas, de diez caracteres,
alfanumricas, algunas con smbolos, pero las tres conectadas entre s. Por eso, una
vez el hacker entr a una de ellas accedi a todas. Su intencin era demostrar que el
sistema de seguridad en lnea es todo menos seguro.
Desde ese entonces Honan se ha dedicado al tema. Lo que encontr es terrorfico. Es
fcil que cualquiera acceda a nuestras vidas digitales y la debilidad mayor es la contrasea, escribi en un reportaje de portada en la edicin de diciembre de Wired. Tambin
prob que el sistema del hacker es sencillo, pues siguiendo sus indicaciones logr acceder
a otras cuentas. En este caso fue Twitter, pero maana puede ser la cuenta bancaria.
Estos cdigos sirvieron en un momento, pero hoy son obsoletos, pues los dispositivos
digitales estn hiperconectados. Y a pesar de todas las advertencias, los usuarios crean
claves de fcil recordacin por su comodidad. El consultor de seguridad Mark Burnett
realiz un estudio con 10.000 claves y encontr que password (o sea contrasea en
ingls) y 123456 eran las ms usadas. Adems, el 49 por ciento de las personas usan
la misma clave para todos los sitios.
Asimismo, ahora hay ms informacin que proteger, ya que la gente guarda ms
datos en la nube. Algunos creen que esto se resuelve con una clave potente. Jeremiah
Grossman y Paul Kocher divulgaron a The New York Times unas pautas para crearla,
como por ejemplo nunca utilizar una palabra del diccionario sino hacerla basada en
una serie de caracteres digitados al azar, que se debe guardar en un disco duro y nunca
en la computadora (ver recuadro). Pero Honan cree que ni siquiera una clave as podra
salvar al mundo de un hacker.
En Colombia el riesgo es mayor porque no existe la cultura de consultar las cuentas
personales desde un solo computador. La gente usa el de la oficina, la universidad, el
caf internet y no tienen una sesin personalizada en el de la casa, por lo cual sus datos
estn expuestos a ser hackeados fcilmente, dijo a SEMANA Pablo Arrieta, experto en
tecnologas de la informacin. Asegura que muchos proveedores de servicios como Twitter
o Facebook no tienen representacin en Colombia y si alguna cuenta es hackeada no
se sabe a quin pedir auxilio. Las empresas no estn muy preparadas para colaborar y
los usuarios deberan luchar por obtener respuesta inmediata, seala.
Los expertos todava no tienen claro cul ser el siguiente sistema de proteccin. Hay
un montn de tcnicas que funcionan bien a pequea escala, como en una empresa,
pero no hay alternativas para las contraseas a gran escala, dijo a SEMANA Rich Mogull,
experto en seguridad informtica y director de securosis.com.
Segn Honan, ese nuevo sistema debera tener dos componentes clave. El primero
es que sea cmodo, pues si es demasiado dispendioso, no ser viable. De hecho, la
gente se hace un lo al manejar las contraseas, pues se necesita que cada cdigo sea
indescifrable y se requiere uno para cada cuenta. El segundo punto es que habr que
entregar parte de la privacidad, algo que no todos estn dispuestos a hacer. Se parecera

z1 3 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

a poner una caja fuerte en su cuarto al cuidado de expertos en seguridad mediante una
cmara. Ellos solo le permitiran abrirla al dueo, pero estaran mirndolo.
Dentro del abanico de posibilidades est la biometra. Marcas como Samsung, Apple
o Sony tienen la tecnologa para reconocer los ojos y la voz en sus televisores e incluso
en los telfonos inteligentes.
Los rasgos de la persona deberan ser los cdigos de identificacin del futuro. Si yo
compro un computador, tableta o telfono lo ideal es que venga personalizado para que
nadie ms pueda usarlo, seal Arrieta.
Algunos ven la respuesta en el sistema de autenticacin de doble factor que emplea
Gmail. Cuando al usuario se le olvida la contrasea la pgina le enva un mensaje de
texto a su telfono mvil con el nuevo cdigo. Aunque este sistema todava se centra en
la clave, Honan cree que es mejor que el sistema actual.
Los bancos tambin han tomado cartas en el asunto. Una primera instancia de seguridad es que el usuario registre la computadora desde la cual hace sus transacciones
bancarias. Cuando alguien intenta ingresar desde otro equipo este le hace cinco preguntas
que solo el dueo sabe responder.
Un sistema reciente es generar claves dinmicas. En este campo el token ha sido la
frmula ms atractiva para empresas, bancos y entidades gubernamentales. Se trata de
un pequeo dispositivo electrnico que le brinda al usuario un nivel extra de seguridad,
pues este lo usa para generar claves aleatorias de seis cifras cada vez que accede a la
pgina. El sistema funciona bien para bancos, pero sera demasiado para proteger un
correo electrnico, dice Gina Pardo, directora de Operacin Bancaria de Asobancaria.
Los ingenieros de sistemas del Departamento de Defensa de Estados Unidos (Darpa)
estn desarrollando otro sistema que identifica al usuario por su forma de digitar el teclado.
A esto lo llaman la huella dactilar cognitiva y aunque no ha salido de los laboratorios de
investigacin, podra ser confiable porque los movimientos del tecleo estn gobernados
por el sistema motor y no por los pensamientos. Fisiolgicamente es improbable que sea
imitado por otra persona, dice Roy Maxion, profesor de Informtica de la Universidad
de Carnegie Mellon, en Estados Unidos.
Lo ideal no es abolir la contrasea sino aadirle otros mtodos de autenticacin
aleatorios. La contrasea sera solo una ficha de un gran rompecabezas que permitira
a los usuarios de la nube tener mayor seguridad.

Cmo sobrevivir a la contrasea


Recomendaciones bsicas para proteger su seguridad.
Nunca
Use palabras comunes o datos como su fecha de nacimiento, telfono o direccin
de la casa como contrasea.

z1 3 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Use la misma contrasea para todas sus cuentas.


Escriba contraseas cortas sino de al menos diez caracteres.
Acceda desde sitios pblicos a sus cuentas.
Guarde las contraseas en la computadora ni en el correo electrnico. Lo mejor es
tenerlas en una USB encriptada.

Siempre
Cambie su clave cada tres meses.
D respuestas falsas a las preguntas de seguridad que le piden al abrir su cuenta y
antelas para recordarlas.
Abra un correo electrnico que le sirva solo para recuperar contraseas y asegrese
de que el nombre de usuario no est ligado a su nombre o gustos personales.
Acepte la autenticacin de dos o ms factores cuando se lo ofrezcan.

La Clave de la Seguridad Informtica


VIDA MODERNA 2013/02/23
http://www.semana.com

z1 3 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Te xto pa ra come n t a r 2
Universo Internet: Ms superficiales
o ms listos?

lcole. Dentro de la serie de postales: France en lan 2000. XIXme sicle. (Atrib. a J.M.Ct, 1901).
Fuente: Wikimedia Commons

En 2008 el tecnlogo americano Nicholas Carr public un artculo en el que afirmaba


que Internet estaba erosionando nuestra capacidad de concentracin y de pensamiento
crtico, e incluso aseguraba que la Red cambiara la estructura de nuestro cerebro y forma
de pensar. Expertos de diversos mbitos comenzaron a realizar estudios y a reflexionar
sobre la relacin entre la Red y nuestras capacidades cognitivas. Algunos coincidan con
Carr, pero otros como Clive Thompson descartaban esos argumentos, asegurando que
siempre que surga una nueva tecnologa se produca el mismo debate. Estos tecnooptimistas afirman que la Red no solo potencia nuestra agilidad cerebral, sino que adems
nos permite aprender ms y ms rpido, en definitiva, nos est haciendo ms inteligentes.
Cuenta Platn en Fedro que Scrates no dejaba de lamentarse ante aquella invencin.
Pero qu sera de la sociedad!, se preguntaba contrariado. Aquello supondra el fin de
z1 3 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

la cultura que l tanto haba cultivado, tema el viejo sabio, que estaba convencido de
que el desarrollo de la escritura llevara a la poblacin a abandonar por completo su
memoria y a convertirse en olvidadizos, vacos de conocimiento.
El filsofo iba incluso ms all y aseguraba que, como las personas entonces podran
acceder a una gran cantidad de informacin sin necesidad de recibir una instruccin
adecuada, quiz se sentiran errneamente cultas, aunque deca no seran ms que
puros ignorantes que desconoceran la verdadera sabidura.
Scrates no erraba demasiado y aquella nueva tecnologa tuvo los efectos que predijo. Tal y como haba vislumbrado, el conocimiento se comenz a volcar sobre el papel,
de manera que ya no haca falta recordarlo todo. No obstante, no todo fue negativo,
como presupuso el sabio, puesto que la escritura y la lectura, lejos de acabar con la
cultura, contribuyeron a propagar la informacin, a estimular nuevas ideas y a expandir
el conocimiento humano, si no la sabidura.
Argumentos similares a los que Scrates esgrima al respecto de la escritura se repiten desde hace unos aos en nuestra sociedad, aunque ahora en el ojo del huracn se
encuentra Internet. En los ltimos aos, prominentes bilogos, pensadores, psiclogos,
psiquiatras, filsofos, educadores, escritores y tecnlogos han reflexionado en torno a
la cuestin de cmo la Red y las nuevas tecnologas estn modulando nuestro cerebro
y nuestra forma de pensar.
Para muchos, la World Wide Web representa una revolucin cultural sin precedentes,
que permite que en una sola tarde sea posible acceder a ms informacin de la que
estaba almacenada en la clebre biblioteca de Alejandra o que a un solo clic tengamos
a nuestra disposicin ms de un milln de terabytes, la mayora de ellos de acceso gratuito. Estos tecnooptimistas, entre los que se encuentran expertos como Clive Thompson,
consideran que la Red es algo positivo, sumamente beneficioso y enriquecedor para el
ser humano, que, adems, agiliza la mente y entrena a las neuronas.
Sin embargo, para otros, navegar de forma intensiva erosiona nuestra capacidad de
concentracin, de memoria y de pensamiento profundo y creativo. Alegan que acceder
a contenidos en lnea requiere un foco de atencin cambiante y corto que puede ir en
detrimento de la atencin sostenida, esencial, por ejemplo, para el estudio. Aseguran
que Internet est provocando cambios en nuestro cerebro, indelebles, y no precisamente
para bien: aseguran que, en definitiva, nos est haciendo ms tontos.

El efecto Google
Nicholas Carr, un tecnlogo americano y antiguo director de la Harvard Business
Review, fue seguramente quien abri definitivamente la caja de los truenos cuando, en
2008, public un artculo, polmico y provocativo, en la revista The Atlantic, que titul:
Nos hace Google ms estpidos?, al que despus sigui un libro, Superficiales. Qu
est haciendo Internet con nuestras mentes? (Taurus Pensamiento, 2011). En ambos, Carr
escriba: En los ltimos aos tengo un sentimiento incmodo de que algo o alguien

z1 3 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

ha jugado con mi cerebro, ha remapeado mis circuitos neuronales y reprogramado mi


memoria [] No pienso como sola hacerlo y soy consciente de ello sobre todo cuando
leo [] Ahora mi concentracin se empieza a ir a la deriva al cabo de dos o tres pginas;
me pongo nervioso, pierdo el hilo, empiezo a buscar algo ms que hacer. [] La lectura
en profundidad que sola venir de manera natural se ha convertido en una lucha.
Y Carr apuntaba a Internet como la causa principal de esa falta de concentracin.
Alegaba que, en definitiva, la Red nos est enseando a no pensar y que nuestra dependencia creciente de la tecnologa estaba cambiando nuestra estructura cerebral. Internet
es un obstculo para cristalizar ideas nuevas o profundizar en las antiguas. Nos incita a
buscar lo breve y lo rpido, y nos aleja de la posibilidad de concentrarnos en una sola
cosa. Cuando abres un libro te aslas de todo porque no hay nada ms que sus pginas.
En cambio, cuando enciendes el ordenador, te llegan mensajes por todas partes; es una
mquina de interrupciones constante, considera.
Algo similar opina Howard Rheingold, ensayista norteamericano experto en las implicaciones culturales, sociales y polticas de los nuevos medios de comunicacin, quien cree
que Internet potencia la credulidad, la distraccin y la superficialidad, con el resultado de
que nuestras mentes estn en una lucha continua por ser disciplinadas. La ubicuidad de
la informacin, opina Rheingold, hace que sea menos probable que busquemos nuevas
lneas de pensamiento antes de conectarnos a la web, lo que redunda en un pensamiento
menos sustancial que satisface las necesidades inmediatas en detrimento de una comprensin ms profunda.
Diversos estudios surgidos en los ltimos cinco aos validan las aserciones de Carr
y apuntan a que Internet est daando la consolidacin de memoria a largo plazo. Por
ejemplo, se ha visto que cuando una persona sabe que puede recuperar fcilmente una
informacin no se molesta en recordarla, como han demostrado una serie de trabajos
publicados en la revista Science y realizados por las universidades estadounidenses de
Harvard, Columbia y Wisconsin-Madison, en los que se meda la capacidad de recordar
de un grupo de voluntarios; vieron que estos retenan menos informacin si saban que
podran acceder a ella ms tarde.
Porque, para qu recordar fechas, nombres, episodios de la historia cuando sabemos que podemos consultrselo a Google? Internet se ha convertido en lo que muchos
expertos han calificado como una especie de ampliacin de nuestra memoria y la han
bautizado como efecto Google. Aunque, de hecho, no es un fenmeno propio de la era
digital. Ya en 1985, Daniel Wegner, un psiclogo americano, demostr que tendemos a
despreocuparnos de aprender conocimientos que sabemos que posee otro miembro del
grupo y propuso el concepto de memoria transactiva.
El problema, sealan los crticos con Internet, es que nuestros cerebros precisan de la
informacin almacenada en la memoria a largo plazo para elaborar pensamiento crtico.
Necesitamos los recuerdos nicos para entender e interactuar con el mundo que nos rodea, por lo que si confiamos a Google el almacenaje de nuestro conocimiento, sealan,
puede que estemos perdiendo una parte importante de nuestra identidad.
z1 3 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Clifford Nass, recientemente fallecido, ha sido otro de los gurs beligerantes contra
la dispersin digital que en su opinin conlleva Internet y las nuevas tecnologas de la
informacin. Este socilogo de la Universidad de Stanford fue de los primeros en establecer una relacin entre la deficiencia de atencin y la multitarea. Para Nass, estar
continuamente expuestos a pantallas y cada vez realizar ms tareas a la vez de todo tipo,
algo que estimula el navegar por Internet, no ayuda a la concentracin ni tampoco a la
capacidad de anlisis. Es ms, merma nuestra empata.
Y al parecer, adems, es capaz de provocar cambios profundos similares a los que
se encuentran en los cerebros de los adictos a las drogas. En una investigacin liderada
por Hao Lei, de la Academia de Ciencias China, y publicada en PlosOne, escanearon el
cerebro de 35 jvenes adictos a Internet y hallaron alteraciones en el cableado neuronal,
as como una disminucin del volumen de sustancia gris y alteraciones en las conexiones
de fibras nerviosas que unan reas del cerebro implicadas en la toma de decisiones, el
autocontrol y las emociones. Gunter Schumann, catedrtico en psiquiatra biolgica del
Kings College de Londres, dio con resultados similares en adictos a los videojuegos. En
ambos casos, esos cambios son similares a los que se han visto en adictos a drogas como
la herona, cocana o marihuana.

Aprendemos ms y ms rpido
No todos los neurocientficos estn de acuerdo con Carr y los expertos que alegan
que Internet nos est haciendo ms tontos. La generacin ms estpida? se pregunta Clive Thompson, periodista especializado en ciencia y tecnologa, y autor del libro
Smarter Than You Think. How Technology is Changing Our Mind (Ms inteligente de lo
que crees. Cmo la tecnologa est cambiando nuestra mente) . Para nada, todo lo
contrario, Internet est haciendo que seamos ms listos, porque nos est ayudando a
aprender ms y ms rpido.
De hecho, cuando la institucin Pew Research Center, dentro del proyecto Pew Internet
& American Life Project, pregunt a su panel de 370 expertos en la Red acerca de esta
cuestin, ocho de cada diez respondieron que Internet, efectivamente, estaba aumentando
la inteligencia humana.
Para Thompson, estamos en un periodo de transicin: estamos pasando de ser pensadores privados a pensadores pblicos, en el sentido de que ahora compartimos nuestros
razonamientos con otros en la red. Y eso tiene efectos positivos y profundos tanto en
nosotros como individuos, en la forma en que se gestan las ideas y los pensamientos,
como en la forma en que generamos ideas socialmente. Ahora la dimensin social es
sumamente importante, considera este experto, para quien nuestra sociedad est de lleno
aprendiendo a adaptarse a Internet. El debate y la lucha en marcha entre detractores y
entusiastas son los mismos que se han producido con todas las revoluciones tecnolgicas,
como la imprenta o el nacimiento de los medios de comunicacin, afirma.
Internet no est cambiando nuestra forma de pensar, rebate el neurocientfico Joshua
Greene, de Harvard, a los crticos con esta tecnologa; nos proporciona un acceso sin
z1 3 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

precedentes a la informacin, pero no ha cambiado lo que nuestros cerebros hacen con


ella, algo que tambin defiende el psiclogo cognitivo Steven Pinker, tambin de Harvard,
para quien los medios electrnicos no van a renovar los mecanismos del cerebro para
procesar la informacin.
Adems, apuntan, es casi axiomtico alegar que Internet cambia nuestro cerebro y sus
procesos porque, de hecho, todo lo que hacemos provoca cambios en el cerebro. Cualquier pensamiento que tengamos, cualquier experiencia influye en el constante proceso
de cableado y recableado de nuestras redes neuronales. Sin ir ms lejos, leer este artculo
est dejndole huellas, a usted lector, en su cerebro, as como ir a correr, charlar con
un amigo o consultar una pgina web. Esto es debido a una cualidad nica de nuestro
cerebro, la plasticidad cerebral, gracias a la que durante toda la vida nuestras neuronas
tienen la capacidad de ir adaptndose a un entorno cambiante.
Y dado que la mayora del uso de Internet que hacemos es para buscar informacin
y para comunicarnos, los expertos como Thompson creen que la Red debera entonces
afectar al cerebro para que furamos mejores en esas cosas. Probablemente, afirman,
eso ya est pasando y seamos mejores que generaciones anteriores no digitales a la hora
de tratar con informacin abstracta.
Navegar por Internet estimula nuestro cerebro. Neurocientficos de la Universidad de
California han descubierto que, de hecho, ejercita la mente mucho ms que leer. Y Gary
Small, director del Centro para la Memoria y el Envejecimiento del Instituto Semel de
neurociencia y comportamiento humano vinculado a la Universidad de California, hizo
un experimento en el que escane la actividad neuronal en gente de entre 55 y 76 aos,
la mitad de los cuales eran usuarios habituales de Internet y la otra mitad, analfabetos
digitales. Vieron que aquellos que ya usaban antes Internet tenan el doble de actividad
que quienes no lo hacan. Una tarea sencilla como buscar una informacin en la web
parece que mejora los circuitos cerebrales en adultos, lo que podra abrir nuevas vas de
estimulacin cognitiva en personas mayores, para ayudarlas a mantener cerebros sanos,
considera Small.
Para Howard Gardner, psiclogo cognitivo creador del concepto de inteligencias mltiples, seguramente Internet sea un enorme espacio de almacenamiento de informacin y
estamos inmersos en el proceso de externalizar el depsito de conocimiento como hicimos
ya con la capacidad de clculos aritmticos y la calculadora. Puede que perdamos algunas
habilidades en este proceso, como la de concentrarnos durante un tiempo prolongado
y ser capaces de recordar grandes cantidades de informacin a largo plazo, pero, muy
posiblemente, Internet tambin nos est dotando de nuevas capacidades.

CCCBLAB
Investigacin e innovacin en cultura
Cristina Sez, 2013.
http://blogs.cccb.org/lab/es/article_univers-internet-mes-superficials-o-mes-llestos/

z1 3 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

AUTOEVALUACIN N 3
1. Cul de los siguientes protocolos es la base de Internet y sirve para enlazar
computadoras que utilizan diferentes sistemas operativos?
a) WWW
b) HTTP
c) HTML
d) FTP
e) TCP/IP
2. El nmero de capas del modelo OSI es:
a) 3
b) 4
c) 5
d) 6
e) 7
3. El nmero de capas del modelo TCP/IP es:
a) 3
b) 4
c) 5
d) 6
e) 7
4. Es una tecnologa de red que permite una extensin segura de la red local (LAN)
sobre una red pblica o no controlada como Internet.
a) LAN
b) WAN
c) VPN
d) SMTP
e) Red Pblica
5. Es una red privada dentro de una organizacin que utiliza tecnologa muy similar a la de Internet, la cual permite a sus usuarios buscar, utilizar y compartir
documentos.
a) Intranet
b) Extranet
c) WWW
d) HTTP
e) URL

z1 4 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

6. Es la instancia encargada de definir los nombres de los nodos, asignar direcciones y dominios y supervisar el funcionamiento de Internet.
a) INTERNIC
b) ARPANET
c) NCP
d) ICANN
e) POP3
7. Cul de los siguientes protocolos opera en la cuarta capa del modelo TCP/IP?
a) IP
b) TCP
c) UDP
d) FTP
e) ARPANET
8. El servicio de correo electrnico..., el cual proporciona los mecanismos de intercambio de correo y mensajes entre hosts o servidores, usualmente se ejecuta
por defecto en el puerto...
a) SMTP, 25
b) HTTP, 80
c) SSH, 22
d) DNS, 53
e) HTTPS, 443
9. El programa de software que reduce el ancho de banda y mejora los tiempos de
respuesta por el almacenamiento en cach y la reutilizacin de las pginas web
solicita con ms frecuencia se llama:
a) SNORT
b) SQUID
c) URL
d) APACHE
e) IMAP
10. Es una tcnica de engao al usuario, que intenta adquirir informacin confidencial suplantando la identidad de otra persona, organizaciones o pginas
web de Internet.
a) Pishing
b) Virus
c) Worms
d) Backdoor
e) Keyloggers

z1 4 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Respuestas de control
1.e, 2.e, 3.b, 4.c, 5.a, 6.d, 7.d, 8.a, 9.b, 10.a

AUTOEVALUACIN N 4
1. Sealar qu caracterstica no corresponde a bases de datos:
a. Independencia de datos y programas.
b. Soporte bajo de transacciones.
c. Metadatos.
d. Soporte de varias perspectivas de los datos.
e. Control de la concurrencia.
2. Aplicacin de los sistemas de base de datos que permite guardar la informacin de los clientes, productos y compras:
a. Lneas areas
b. Produccin
c. Recursos Humanos
d. Universidades
e. Ventas
3. Respecto a las ventajas de los sistemas gestores de base de datos, qu alternativa es la correcta:
a.
b.
c.
d.
e.

Disminuye la concurrencia.
La accesibilidad es impredecible.
La productividad es incierta.
Mejora los servicios de copias de seguridad y recuperacin ante fallas.
Mejora la duplicidad.

4. Este concepto se refiere: Es una coleccin de programas que permite a los


usuarios crear o mantener una base de datos:
a. Base de datos
b. Sistema gestor de base de datos.
c. Software.
d. Transacciones.
e. Hardware.

z1 4 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

5. Los modelos Jerrquico y de Red constituyeron:


a.
b.
c.
d.
e.

Segunda generacin de SGBD.


Tercera generacin de SGBD.
Cuarta generacin de SGBD.
Primera generacin de SGBD.
Quinta generacin de SGBD.

6. Autor que escribe un artculo sobre el modelo relacional, llamado A Relational


Model of Data for Large Shared Data Banks
a.
b.
c.
d.
e.

Abraham Silberschatz.
Mario Piattini.
Ramez Elmasri.
Edgar Frank Ted Codd.
Christian Crovetto.

7. En relacin a los participantes de una base de datos, cul de ellos define el siguiente: Encargados de construir e implementar los programas que permitirn
la automatizacin de los procesos de la organizacin y que finalmente sern de
utilidad a los usuarios finales.
a.
b.
c.
d.
e.

Programadores de sistemas de informacin.


Usuarios finales.
Analistas de sistemas.
Diseador de la base de datos.
Administrador de la base de datos.

8. La siguiente descripcin corresponde a una caracterstica de la base de datos:


Debemos recordar que las bases de datos no solo guardan los datos en trminos generales, sino tambin almacenan descripcin de la estructura y sus
restricciones, tales como los nombres de los campos, tipo de dato de cada uno
de ellos, restricciones y tambin las relaciones.
a. Independencia de datos-programas.
b. Soporte de varias perspectivas de los datos.
c. Metadatos.
d. Control de la concurrencia.
e. Transacciones.
9. Autor que propone el siguiente concepto sobre base de datos: () conjunto,
coleccin o depsito de datos almacenados en un soporte informtico no voltil.
Los datos estn interrelacionados y estructurados de acuerdo con un modelo
capaz de recoger el mximo contenido semntico.
a. Christian Crovetto.
b. Mario Piattini.
c. Edgar Frank Ted Codd.
z1 4 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

d. Ramez Elmasri.
e. Abraham Silberschatz.
10. Es una ventaja de los sistemas gestores de base de datos que seala: Referido
al uso de las muchas funciones estndares para el programador. Por otro lado,
la disponibilidad de un conjunto de herramientas que simplificarn el desarrollo
de las aplicaciones.
a.
b.
c.
d.
e.

Mejora la seguridad.
Mejora en la integridad de los datos.
Mejora en el aumento de concurrencia.
Mejora de la productividad.
Mejora en la integridad de los datos.

Respuestas de control
1.b, 2.e, 3.d, 4.b, 5.d, 6.d, 7.a, 8.c, 9.b, 10.d

EXPLORACIN ONLINE
http://www.oracle.com/lad/index.html
Pgina oficial de Oracle Latinoamrica, en ella podr encontrar informacin de productos y servicios, asimismo
podr bajar programas relacionados con el gestor de base de datos Oracle.
https://www.microsoft.com/es-es/server-cloud/products/sql-server
Pgina oficial de SQL Server de Microsoft en espaol, en ella podr encontrar informacin de este gestor de
base de datos, asimismo podr bajar programas relacionados con el gestor de base de datos Oracle.

z1 4 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

REFERENCIAS BIBLIOGRFICAS

Silberschatz A., Korth H., Sudarshan S. (2002)


Fundamento de base de datos. 4ta. Edicin. Madrid. Editorial
McGraw-Hill.
Piattini Mario y Otros (2007)
Tecnologa y diseo de base de datos. Mxico D.F., Editorial
AlfaOmega. Ra-Ma.
Crovetto C. (2005).
Oracle 10g base de datos. Primera Edicin, Per. Editorial
Megabyte.
Carrasco J. Coronel G. y Marcelo R. (2006).

Oracle 10g. Primera Edicin. Lima-Per. Editorial A&C.

Castaeda J., (2008).

Oracle 11g. Primera Edicin. Lima-Per. Editorial A&C.

Ramez E. y Navathe (2007)


Fundamentos de sistemas de base de datos. Quinta Edicin.
Madrid. Editorial Pearson.

BIBLIOGRAFA COMENTADA

Castaeda J., (2008). Oracle 11g. Primera Edicin. Lima-Per. Editorial A&C.
Para el tema de estructura de la base de datos, puede revisar el captulo 2 de este libro, en l encontraras la estructura
fsica y lgica de la base de datos en Oracle. Adems se hablar del esquema e instancia de una base de datos.
Ramez E. y Navathe (2007) Fundamentos de sistemas de base de datos. Quinta Edicin. Madrid. Editorial Pearson.
Para profundizar ms sobre el tema de tecnologas y aplicaciones emergentes de base de datos, donde encontraras
tecnologas sobre base de datos mviles, base de datos multimedia o sistema de informacin geogrfica (GIS).
Vargas M. (2012). Diseo e implementacin de un Datawarehouse usando SQL Server. Primera Edicin. Lima-Per. Editorial Ritisa
Para el tema de inteligencia de negocios, puede revisar el captulo 1 de este libro, en l encontrara definiciones iniciales
de inteligencia de negocios, datawarehouse, datamart y sus aplicaciones.

z1 4 5 z

c u a r t a

UNIDAD
Introduccin a algoritmos
y lenguajes de programacin

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

L e c c i n

ALGORITMOS

8.1. Definicin
Un algoritmo es un conjunto finito de instrucciones para realizar una tarea o solucionar un problema, tiene un inicio y un fin. Se puede comparar el concepto de algoritmo
con una receta de cocina. As, pues, los algoritmos habitualmente estn formados por
secuencias de instrucciones que probablemente se repiten (iteran) o que requieren decisiones (comparaciones lgicas) hasta que completan su tarea.
Cuando un algoritmo est asociado con el procesamiento de informacin, los datos
se leen de una fuente o dispositivo de entrada, se procesan y emiten un resultado por
un dispositivo de salida, o bien se almacenan en otro dispositivo para su uso posterior.

8.2. Visin histrica


La palabra algoritmo proviene de los vocablos rabes al-Jwarismi, que era el sobrenombre del clebre matemtico y astrnomo Abu Jafar Muhammad ibn Musa (Muhmed
ben Musa), que vivi entre los siglos VIII y IX y destac, no por crear nuevos teoremas,
sino ms bien por escribir libros de muy fcil comprensin y facilitar as el entendimiento
de la matemtica a un mayor nmero de personas.
Al-Jwarismi desarroll en el Al-yebr-mugabata frmulas para la resolucin de ecuaciones de primer y segundo grado con un nmero limitado de pasos e indicaciones claras
z1 4 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

de ejecucin. Explic por medio de algoritmos el uso de dispositivos mecnicos como


los bacos. Por estas razones, aun cuando no fue el creador del primer algoritmo, el
concepto lleva el nombre con el que era conocido.
La palabra algorismo, que originalmente haca referencia a las reglas de uso de la
aritmtica con dgitos rabes, evolucion a la palabra latina algobarismus, que en el
siglo XVIII mutara a algoritmo para definir a toda clase de procedimientos utilizados
con el propsito de resolver problemas o realizar determinadas tareas.
En el siglo XIX, 1842, se produjo el primer algoritmo escrito para una computadora.
La autora fue Ada Byron, en cuyos escritos detallaba la mquina analtica. Por esta razn
es considerada por muchos como la primera programadora, aunque desde Charles Babbage, nadie complet su mquina, por lo que el algoritmo nunca se llev a la prctica.

8.3. Caractersticas
Todo algoritmo debe ser:
Preciso: Debe especificar sin ambigedad el orden en que se deben ejecutar
todas las instrucciones.
Definido: Cada vez que se ejecute bajo las mismas condiciones arrojar el mismo resultado. La secuencia de ejecucin deber ser la misma.
Finito: Debe terminar en un nmero finito de pasos, en un tiempo finito y requiriendo una cantidad finita de esfuerzo.
Para dar solucin a un problema pueden construirse varios algoritmos. Para saber cul
es el mejor se debe de tomar en cuenta su simplicidad, elegancia y eficiencia. En la prctica, para evaluar un buen algoritmo se considera el tiempo que requiere su ejecucin,
esto puede ser expresado en trminos del nmero de veces que se ejecuta cada paso.

8.4. Herramientas para representar algoritmos


Existen varias maneras para representar algoritmos. Veamos:

8.4.1. Diagramas de flujo


Son representaciones grficas que especifican la direccin que siguen los datos usados en la implementacin de un algoritmo para producir un resultado. Estos datos se
encierran en diferentes figuras que estn relacionadas entre s mediante flechas que
indican el orden en que deben ser ejecutadas.
Para hacer comprensibles los diagramas a todas las personas, los smbolos utilizados
han sido normalizados por el Instituto Nacional de Estndares (ANSI, por sus siglas en
ingls: American National Standards Institute) de EE.UU.
z1 5 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Diagrama

Descripcin
Terminal: Indica el inicio y fin del diagrama de flujo.

Entrada-Salida: Indica la entrada y salida de datos.

Procesos: Indica la asignacin de un valor a memoria y/o alguna operacin aritmtica.

Decisin: Indica la decisin que se toma ante una


comparacin de valores, determinando el camino a
seguir.
Subrutina: Representa los subprogramas.

Conector: Representa la continuidad del diagrama


de flujo dentro de una pgina.
Conector: Representa la continuidad del diagrama
de flujo en otra pgina.

Impresora: Indica la salida de la informacin por la


impresora.

Pantalla: Indica la salida de la informacin por medio de la pantalla.

Teclado: Se utiliza en ocasiones en lugar del smbolo


de Entrada-Salida.
Comentario: Permite aadir anotaciones al diagrama.

Flechas de direccin: Direccin en la que se realiza


el flujo.

z1 5 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

8.4.2. Diagramas Nassi-Shneiderman


El diagrama N-S, tambin conocido como diagrama de Chapin, es como un diagrama
de flujo en el que se omiten las flechas de direccin.
Su representacin se realiza por medio de cajas rectangulares que se encuentra una
a continuacin de otra. Cada una de estas cajas indica la accin que se va a realizar.
Inicio
Accin1
Accin2
.
.
.
AccinN
Fin

8.4.3. Pseudocdigo
Es un conjunto de frases escritas en un idioma nativo (espaol, ingls, etc.), instrucciones y algunas palabras clave, que permiten representar la secuencia lgica de las
acciones de un algoritmo.
La ventaja del pseudocdigo es que, en la planificacin de un programa, el programador se concentra en la lgica sin preocuparse de la rigidez sintctica que un lenguaje
de programacin exige.
Inicio
Accin1
Accin2

AccinN
Fin

z1 5 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

8.5. Composicin de un pseudocdigo


Bsicamente los algoritmos representados mediante pseudocdigo estn compuestos
por una seccin de datos y otra del cdigo, as tenemos:
Inicio

3.1416

Constante real: pi

Variable real: r, c

Escribir (Introduzca el radio de la circunferencia)

Leer (r)

Seccin de datos

Seccin del cdigo

2 * pi * r * r

Escribir (El rea es: , a)

Fin

8.5.1. Seccin de datos


En esta seccin se encuentran los identificadores (constantes, variables, tipos de datos) que representan los datos de un algoritmo.
Identificador
Un identificador es una secuencia de caracteres que sirve para identificar una posicin
de memoria del computador y acceder a su contenido. Para definir un identificador se
deben seguir las siguientes reglas:
El primer carcter debe ser una letra, los siguientes caracteres pueden ser letras,
dgitos o el smbolo de subrayado (_).
No debe de comenzar con un nmero, ni debe contener espacios en blanco. Por ejemplo ahorroTotal es un identificador vlido, sin embargo ahorro Total no lo es, ya que el
espacio en blanco incluido entre ahorro y Total indicara la presencia de dos identificadores: ahorro y Total, respectivamente.
Se aconseja elegir nombres de identificadores que describan la informacin que ellos
representan. Esto facilita la comprensin del algoritmo. No es conveniente utilizar nombres cortos ni tampoco excesivamente largos. Por ejemplo, para referirse al sueldo de
un trabajador se podra usar como identificador sueldo, que es ms apropiado que nomz1 5 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

brarlo como x o nombrarlo como el sueldodeltrabajador, en este caso x no sugiere nada


y elsueldodeltrabajador no facilita su escritura.

Identificador

Validez

Explicacin

Clculo1

Contiene un nmero.

2edad

Comienza con un nmero.

salario bruto

Tiene un espacio en blanco


intermedio.

sueldo_trabajador

Puede incluir el smbolo de


subrayado.

Tabla 1. Identificadores vlidos () y no vlidos(x)

Variables
Una variable es un identificador que representa una posicin de memoria cuyo valor
puede variar a lo largo de la ejecucin del programa. Se identifica por un tipo de dato y
un nombre. Por ejemplo:

Numrico entera: edad, cantidad.

Numrico real: sueldo, descuento.

Carcter: seccin, categora.

Cadena: nombre, profesin.

Constantes
Una constante es aquel elemento que no cambia de valor durante la ejecucin de un
programa. Las constantes pueden tener asociados un nombre o no, si no lo tienen, se
llaman literales. Puede ser:

Numrico entera: a20, x30

Numrico real: pi3.1416, m20.8.

Carcter: na, p8

Cadena: prof Doctor, pasPer

Lgico: swfalse, bntrue

z1 5 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Tipos de datos
El tipo de dato define el contenido que tendr una variable o constante. Los datos se
clasifican en diversas categoras, segn el tipo del lenguaje que se usa. Generalmente
podemos encontrar las siguientes categoras:
Enteros
Son nmeros que no contienen componentes decimales o fraccionarios. Pueden ser
positivos o negativos. Permiten realizar operaciones aritmticas.
Reales
Son nmeros que siempre tienen un punto decimal y pueden ser positivos o negativos. Un nmero real consta de un nmero entero y una parte decimal. Permite realizar
operaciones aritmticas.
Carcter
Es un conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato
de este tipo contiene solo un carcter. Dentro del algoritmo se distingue de las variables
porque son delimitados por apstrofos o comillas simples.
As tenemos:
Caracteres alfabticos (A,B,C, Z, a, b, c z)
Caracteres numricos (0, 1, 2, 9)
Caracteres especiales (+, -, /, ^, ;, <, >, $, ...)
Cadena
Es una sucesin de caracteres que se encuentran delimitados por comillas dobles,
representan informacin textual (palabras, frases, etc.). La longitud de una cadena es el
nmero de caracteres comprendidos entre los separadores o delimitadores, los espacios
en blanco tambin se cuentan. Por ejemplo:

Hola amigos Longitud = 11

Bienvenidos al mundo de los algoritmos

Longitud = 38

Lgicos
Denominados tambin booleano, son aquellos datos que solo pueden tomar uno de
dos valores: verdadero (true) o falso (false).

z1 5 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

8.5.2. Seccin del cdigo


A esta seccin se le considera el corazn del algoritmo. En ella van el cuerpo del programa, formado por las sentencias que indican los pasos que se van a realizar durante
la ejecucin del algoritmo.
Expresin
Las expresiones son combinaciones de variables, constantes, operadores, funciones
especiales, parntesis, entre otros, que se forman para representar las operaciones aritmticas, relacionales y lgicas. Por ejemplo:
a+2*bc/3
Una expresin consta de operadores y operandos.
Segn el tipo de datos que manipulan, las expresiones se clasifican en: aritmticas,
relacinales y lgicas.
Operadores y operandos
Los operadores son smbolos especiales que relacionan los valores de una o ms variables o constantes. Es decir, los operadores permiten manipular valores.
Los operandos son los valores, constantes, variables o expresiones que intervienen
en una expresin.

Operando Operador Operando


Variable o Constante
Los tipos de operadores son: operadores aritmticos, operadores relacionales y operadores lgicos.
Operadores aritmticos
Permiten la realizacin de operaciones matemticas con los valores de las variables y
constantes. Pueden ser utilizados con tipos de datos enteros o reales.
Cuando en una operacin aritmtica los operandos son de tipos diferentes, ambos son
convertidos al tipo de operando de precisin ms alta; es decir, si ambos son enteros, el
resultado es entero; si alguno de ellos es real, el resultado es real.
Los operadores aritmticos son:

z1 5 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Operador
aritmtico

Significado

Expresin aritmtica
(a = 13, b = 2)

Resultado

Suma

a+b

15

Resta

ab

11

Multiplicacin

a*b

26

Divisin real

a/b

6.5

Div

Divisin entera

a div b

Mod

Residuo de una divisin

a mod b

Exponenciacin

a^2

169

Tabla 2. Operadores aritmticos

Operadores relacionales
Se utiliza para comparar dos valores, produciendo un resultado lgico (verdadero o
falso). La comparacin se realiza entre valores del mismo tipo de datos (numricos o
cadenas). Estos operadores sirven para expresar las condiciones en los algoritmos.
Los operadores relacionales son:

Operador
relacional
>
>=
<
<=
=
<>

Significado

Expresin relacional
(a = 3, b = 2)

Resultado

Mayor que

a>b

true

Mayor o igual que

a >= b

true

Menor que

a<b

false

Menor o igual que

a <= b

false

Igual a

a+b=5

true

Distinto de

a <> b

true

Tabla 3. Operadores relacinales

z1 5 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Operadores lgicos
Permite establecer comparaciones entre valores lgicos. El resultado de esta comparacin es de tipo lgico o booleano (verdadero o falso).
Los operadores lgicos son:
Variables
X

Operador
y

x and y

x or y

not x

True

true

true

true

false

True

false

false

true

false

False

true

false

true

true

False

false

false

false

true

Tabla 4. Operadores lgicos

8.6. Prioridad de los operadores


Todas las expresiones entre parntesis se evalan primero. Las expresiones con parntesis anidados se evalan de dentro a fuera: el parntesis ms interno se evala
primero.
Dentro de una misma expresin los operadores se evalan en el siguiente orden;

Exponenciacin

*, /, mod

Multiplicacin, divisin, mdulo.

+, -

Suma y resta.

Los operadores en la misma prioridad se evalan de izquierda a derecha.

8.7. Asignacin
Un operador de asignacin altera el valor de una variable sin alterar su tipo. Se representa por una flecha que apunta hacia la izquierda (); este operador copia el valor
del operando o la expresin de la derecha en la variable de la izquierda y aplica las
conversiones de tipo usuales cuando es necesario. El formato general de asignacin es:

Nombre_variable

z1 5 8 z

Expresin

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Donde Expresin puede ser una variable, constante, operacin o funcin.


Ejemplo:
a

2. Significa que a la variable a se le ha asignado el valor 2.

La accin de asignar es destructiva, ya que el valor que tuviera la variable antes de


la asignacin se pierde y se reemplaza por el nuevo valor. As en la secuencia de operaciones:
a

30

189

El valor de la variable a ser 9, es decir, el ltimo valor asignado, ya que los valores
anteriores se han destruido.

8.8. Secuencia de los algoritmos


En un algoritmo se definen tres partes: Entrada, proceso y salida.

Proceso

Entrada
Est formada por la informacin dada al algoritmo o conjunto de instrucciones que
generan los valores con los que se ha de trabajar en caso de que carezca de datos de
entrada.
Proceso
Son los clculos y operaciones necesarias para que, a partir de los datos o instrucciones de entrada, se llegue a los resultados.
Salida
Son las transformaciones que ha sufrido la informacin de entrada a travs del proceso para obtener los resultados finales.

z1 5 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Inicio

3.1416

Constante real: pi

Variable real: r, c

Escribir (Introduzca el radio de la circunferencia)

Leer (r)

Entrada

Proceso

2*pi*r*r
Salida

Escribir (El rea es: , a)

Fin

Entrada de datos
Consiste en recibir desde un dispositivo de entrada (por ejemplo, el teclado) un valor
o dato. Se representa por la palabra Leer, la cual est seguida por el nombre de la variable delimitado entre parntesis:
Leer (nombre_variable)
Se utiliza para que un usuario introduzca los datos requeridos por un algoritmo. Cuando se lee ms de una variable es necesario separarlas por comas:
Leer (nombre_variable1, nombre_variable2,...)
Por ejemplo, para leer las variables a, b, c, se tiene:
Leer (a, b, c)
Salida de datos
Consiste en transferir el valor de una variable o un mensaje a un dispositivo de salida
(por ejemplo, la pantalla, impresora). Se representa por la palabra Escribir, la cual est
seguida por el nombre de la variable delimitado entre parntesis:
Escribir (nombre_variable)
Se utiliza para mostrar al usuario los resultados obtenidos. Cuando se escribe ms de
una variable es necesario separarlas por comas:

Escribir (nombre_variable1, nombre_variable2,...)


z1 6 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Los mensajes se escriben entre comillas dobles . Si una variable es escrita entre
comillas, se mostrar el nombre de la variable correspondiente, y si la variable es escrita
sin comillas se mostrar el contenido de la variable.
Por ejemplo, para imprimir el M.C.D. de dos nmeros, se tiene:
Escribir (El M.C.D es , m)

8.9. Estructuras de control


8.9.1. Estructura secuencial
Se representa por una sentencia o un conjunto de sentencias (a la que en adelante
llamaremos accin) que se ejecutan una a continuacin de otra a modo de secuencia.
Las sentencias se suceden de tal modo que la salida de una es la entrada de la siguiente,
y as sucesivamente hasta finalizar el algoritmo.
Ejemplo 01: Calcular la suma de dos nmeros.

Lectura de datos

suma

nro1 + nro2

Inicio

// Definir variables

entero: nro1, nro2, suma

// Lectura de datos

Escribir (Ingresar dos valores)

Leer (nro1, nro2)

// Calcular suma

suma

nro1 + nro2

// Salida de resultados

Escribir (La suma de ambos nmeros es: , suma)

Fin

z1 6 1 z

Impresin de datos

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Explicacin

El pseudocdigo est delimitado por las palabras: Inicio y Fin.

Los comentarios son mensajes de texto opcionales que se utilizan para documentar
un programa, hacindolo fcilmente entendibles a los lectores. Empieza con los caracteres // seguido del comentario deseado. En nuestro ejemplo se ha utilizado:
// Definir variables
// Lectura de datos
// Calcular suma
// Salida de resultados

Se definen todas las variables que se van a utilizar en el desarrollo del algoritmo.
Se considera el tipo de dato de las variables y a continuacin la lista de variables
separadas por comas. En nuestro ejemplo:
entero: nro1, nro2, suma

Se utiliza la palabra Leer para introducir el valor de una variable a travs del teclado o algn otro medio. En nuestro ejemplo:
Leer (nro1, nro2)
Se asigna un valor a una variable, a travs del smbolo flecha () que dice que
el valor a la derecha tiene que ser asignado a la variable que est a la izquierda.
En nuestro ejemplo, se suman los nmeros nro1 y nro2 utilizando el operador
+. Luego este resultado es asignado a la variable suma:
suma

nro1 + nro2

Se usa la palabra Escribir para identificar una salida estndar a travs del monitor
o consola. En nuestro ejemplo:
Escribir (La suma de ambos nmeros es: , suma)
De esta forma, se muestra en la pantalla el siguiente texto: La suma de ambos
nmeros es: , en este caso el operador , une el texto La suma de ambos
nmeros es: con el contenido de la variable suma.

Ejemplo 02: Teniendo como datos de entrada el radio y la altura de un cilindro, calcular el rea lateral y el volumen del mismo.
z1 6 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

rea lateral = 2 radio * altura

Volumen = radio2 * altura

Inicio

//Definir constantes

Const: pi=3.1416

// Definir variables

real: radio, altura, rea, volumen

// Lectura de datos

Escribir (Ingrese radio y altura:)

Leer (radio, altura)

// Calcular rea y volumen

area

2 * pi * radio * altura

volumen

pi * radio^2 * altura

// Salida de resultados

Escribir (El rea lateral del cilindro es,rea)


Escribir (El volumen del cilindro es, volumen)
Fin
Ejemplo 03: Calcular la cantidad de arena que se necesita para pulir una pared conociendo sus medidas (largo y alto). Se sabe que se necesita 0,5 metros cbicos de arena
por cada metro cuadrado de pared.
Inicio

// Definir variables

real: largo, alto, rea, arena

// Lectura de datos

Escribir (Ingresar largo y alto de la pared)

Leer (largo, alto)


z1 6 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

// Proceso de clculo

rea

largo * alto

arena

0.5 * rea

// Salida de resultados


Escribir (Se necesita, arena, metros cbicos de arena)
Fin
Ejemplo 04: Carmen, Juan y Pedro aportan cantidades de dinero para formar un
capital, Carmen y Juan aportan en dlares, mientras que Pedro aporta en soles. Calcular el capital total en soles y el porcentaje del capital que corresponde a cada persona.
Considere que 1 dlar = 2.80 soles.
Inicio

//Definir constantes

Const: Equiv2.80

// Definir variables

real: aporCa, aporJu, aporPe, capital, porCa, porJu, porPe

// Lectura de datos

Escribir (Ingresar aporte de Carmen, Juan y Pedro)

Leer (aporCa, aporJu, aporPe)

//Clculos
aporCa

aporCa* equiv

aporJu

aporJu* equiv

capital aporCa + aporJu + aporPe


porCa (aporCa*100)/ capital
porJu (aporJu*100)/ capital
porPe (aporPe*100)/ capital

//Salida de resultados

z1 6 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Escribir (El capital total en soles es, capital)

Escribir (Porcentaje de participacin de Carmen, porCa)

Escribir (Porcentaje de participacin de Juan, porJu)

Escribir (Porcentaje de participacin de Pedro, porPe)

Fin
Ejemplo 05: Calcular la suma de los dgitos de un nmero entero positivo de 3 cifras.
Por ejemplo, sumando las cifras del nmero 257 se tiene:
2 + 5 + 7 = 14
Nota: Para obtener cada cifra del nmero ser necesario realizar divisiones sucesivas
entre 10.

Inicio

// Definir e inicializar variables

entero: nro, unidades, decenas, centenas, suma

// Lectura de datos

Escribir (Ingrese dos nmeros:)

Leer (nro)

// Proceso de clculo

unidades
nro

nro Mod 10

nro Div 10

decenas

nro Mod 10
z1 6 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

nro

nro Div 10

centenas
suma

nro Mod 10

unidades + decenas + centenas

// Salida de resultados


Escribir (La suma de los dgitos es, suma)
Fin

8.9.2. Estructura selectiva


Conocida tambin como estructura condicional, permite comparar a una variable con
otra variable o con algn valor constante, el resultado de esta comparacin es de tipo
lgico (booleano), es decir, verdadero (true) o falso (false), en base a este resultado se
decide el camino a seguir.
Las estructuras selectivas pueden clasificarlas en: simple, doble y mltiple.

8.9.2.1. Estructura selectiva simple: Si - Fin_si


Evala una expresin lgica y si su resultado es verdadero (true), se ejecuta una accin determinada. Su sintaxis es la siguiente:

Si (expresin_lgica) entonces

Accin(es)

Fin_si
Funcionamiento de la estructura selectiva Si - Fin_si
Cuando la sentencia Si - Fin_si inicia su ejecucin, se suceden los siguientes pasos:
a. Se evala una expresin_lgica, obtenindose un resultado lgico.
b. Si este resultado es verdadero (true), se ejecuta la(s) Accin(es), luego el pseudocdigo proseguir con la siguiente accin que sigue al Fin_si.
c. Si este resultado es falso (false), la ejecucin del pseudocdigo saltar a la accin
que sigue al Fin_si, es decir, no se ejecuta la(s) Accin(es) que se encuentra a
continuacin del Si.
Ejemplo 01: Leer tres notas de un alumno: examen parcial, examen final y promedio
de prcticas, imprimir el promedio final del estudiante y el mensaje aprobado, solo si
el promedio final es mayor o igual que 10.5.
El siguiente cuadro muestra los resultados con datos de prueba:

z1 6 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

exPar

exFin

promP

promedio =
(exPar+exFin+promP)/3

mensaje

14

16

12

14.00

aprobado

10

14

15

13.00

aprobado

Inicio

// Definir variables

real: exPar, exFin, promP, promedio

// Lectura de datos

Escribir (Ingresar tres notas:)

Leer (exPar, exFin, promP)

// Calcula promedio

promedio

(exPar + exFin + promP) / 3

Si (promedio >= 10.5) entonces

Escribir (El promedio es , promedio, aprobado)

Fin_si
Fin
Explicacin
Para resolver el ejemplo planteado se definen las variables realesexPar, exFin, promP
y promedio:

real: exPar, exFin, promP, promedio

Se ingresan tres notas exPar, exFin, promP:


Escribir (Ingresar tres notas)

Leer (exPar, exFin, promP)

Posteriormente se calcula el promedio de las tres notas ingresadas exPar, exFin,


promP:
promedio

(exPar + exFin + promP) / 3


z1 6 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Con el promedio calculado se evala la expresin lgica (promedio >= 10.5), si esta
condicin es verdadera se imprime el mensaje solicitado:

Si (promedio>=10.5) entonces

Escribir (El promedio es, promedio, aprobado)

Fin_si
Ejemplo 02: Calcular el nuevo sueldo de un trabajador, sabiendo que si su sueldo
actual es inferior a 500 se le aplica un aumento del 15%.
Inicio

// Definir variables

real: sueldo, nuevoSueldo, aum

// Lectura de datos

Escribir (Ingresar sueldo:)

Leer (sueldo)

// Calcula el sueldo

Si (sueldo >=0 and sueldo < 500) entonces

aum

0.15*sueldo

Fin_si
nuevoSueldo

sueldo + aum


Escribir (Nuevo sueldo, nuevoSueldo)
Fin
Ejemplo 03: Calcular el monto final que se paga por un consumo en un restaurante,
sabiendo que los consumos mayores a S/. 100.00 tienen un descuento del 20%.
Inicio

// Definir e inicializar variables

real: consumo, desc

// Lectura de datos

0, montoFinal

z1 6 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Escribir (Ingresar consumo:)

Leer (consumo)

// Calcula el descuento

Si (consumo > 100) entonces

desc

0.20 * consumo

Fin_si
montoFinal

consumo - desc


Escribir (El total a pagar es, montoFinal)
Fin
Ejemplo 04: Calcular el sueldo semanal de un obrero que trabaja por horas, si durante la semana trabaja ms de 40 horas se le paga, por cada hora extra, dos veces la
tarifa normal.
Inicio

// Definir e inicializar variables

real: tarifa, sueldo, extra

entero: horas

// Lectura de datos

Escribir (Ingresar tarifa:)

Leer (tarifa)

Escribir (Ingresar horas trabajadas:)

Leer (horas)

// Proceso calcula el sueldo

Si (horas > 40) entonces

extra

(horas 40) * (2*tarifa)

Fin_si
sueldo

40 * tarifa +extra
z1 6 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N


Escribir (El sueldo final es, sueldo)
Fin
Ejemplo 05: Calcular el mayor de 4 nmeros enteros.
Inicio

// Definir variables

entero: nro1, nro2, nro3, nro4, menor

// Lectura de datos

Escribir (Ingresar 4 nmeros:)

Leer (nro1, nro2, nro3, nro4)

// Proceso

mayor

nro1

Si (nro2 > mayor) entonces

mayor

nro2

Fin_si

Si (nro3 > mayor) entonces

mayor

nro3

Fin_si

Si (nro4 > mayor) entonces

mayor

nro4

Fin_si

Escribir (El mayor es, mayor)
Fin

8.9.2.2. Estructura selectiva doble: Si Sino Fin_si


Se evala la expresin-lgica, si este resultado es verdadero se ejecuta la Accin1, si el
resultado es falso se ejecuta la Accin2. En ambos casos, luego de finalizar la accin seleccionada, se termina la sentencia Si Sino - Fin_si y la ejecucin del pseudocdigo proseguir con la primera sentencia que sigue al Si - Sino - Fin_si. Su sintaxis es la siguiente:
z1 7 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Si (expresin_lgica) entonces
Accin1
Sino
Accin2
Fin_si
Funcionamiento de la estructura selectiva Si Sino - Fin_si
Cuando la sentencia Si Sino - Fin_si inicia su ejecucin, se suceden los siguientes
pasos:
a. Se evala expresin-lgica, obteniendo un resultado lgico.
b. Si este resultado es verdadero, se ejecuta la Accin1 y se va al paso d.
c. Si este resultado es falso, se ejecuta la Accin2 y se va al paso d.
d. La ejecucin del pseudocdigo proseguir con la siguiente sentencia que sigue al
Fin_si
Ejemplo 07: Leer tres notas de un alumno: examen parcial, examen final y promedio
de prcticas, imprima el promedio y el mensaje aprobado en caso de que el promedio
es mayor o igual que 10.5, y si el promedio es menor de 10.5 imprima el promedio y el
mensaje desaprobado.
El siguiente cuadro muestra los resultados con datos de prueba:
exPar

exFin

promP

promedio =
(exPar+ exFin+promP)/3

mensaje

14

16

12

14.00

aprobado

10

08

06

8.0

desaprobado

Inicio

// Definir variables

entero: exPar, exFin, promP

real: promedio

// Lectura de datos

z1 7 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Escribir (Ingrese tres notas:)

Leer (exPar, exFin, promP)

// Calcula promedio

promedio

(exPar + exFin + promP) / 3

Escribir (El promedio es, promedio)

Si (promedio >= 10.5) entonces

Escribir (aprobado)

sino

Escribir (desaprobado)

Fin_si
Fin
Explicacin
Para resolver el ejemplo planteado se definen las variables enteras exPar, exFin,
promP y real promedio:

entero: exPar, exFin, promP

real: promedio

Se lee tres notas:


Leer (exPar, exFin, promP)

Se calcula el promedio de las tres notas con la siguiente expresin:


promedio

(exPar + exFin + promP) / 3

Se muestra el promedio calculado


Escribir (El promedio es, promedio)

Se evala la expresin lgica (promedio >= 10.5) si esta condicin es verdadera se


muestra el mensaje aprobado, de lo contrario se muestra el mensaje aprobado.

Si (promedio >= 10.5) entonces

z1 7 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Escribir (promedio, aprobado)

sino

Escribir (promedio, desaprobado)

Fin_si
Ejemplo 08: Una inmobiliaria ofrece departamentos bajo las siguientes condiciones:
Si los ingresos del comprador son de S/. 5000 o ms, la cuota inicial ser del 15% del
precio del departamento y la diferencia se distribuir en pagos mensuales a pagar en 10
aos. Si los ingresos del comprador son menos de S/. 5000, la cuota inicial ser del 25%
del precio del departamento y la diferencia se distribuir en pagos mensuales a pagar en
15 aos. Se desea conocer el monto de la cuota inicial y el monto mensual.
Inicio

// Definir variables

real : precio, ingreso, inicial, pmen

entero: meses

// Lectura de datos

Escribir (Ingresar precio del departamento)

Leer (precio)

Escribir (Ingresar ingresos del comprador)

Leer (ingreso)

// Clculos

Si (ingreso > 5000) entonces

inicial

0.15 * precio

meses

10 * 12;

Sino
inicial

0.25 * precio

meses

15 * 12;

Fin_si
z1 7 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

pmen

(precio-inicial)/meses

Escribir (La cuota inicial es:, inicial)

Escribir (El pago mensual es:, pmen)

Fin
Ejemplo 09: Leer tres valores tal como a, b, c y calcular el resultado de la siguiente
expresin:
y = (a - b) / c
Donde: c no puede ser cero.
Inicio

// Definir variables

real: a, b, c, y

// Lectura de datos

Escribir (Ingresar tres nmeros)

Leer (a, b, c)

// Calcula expresin

Si (c <> 0 ) entonces

(a - b ) / c

Escribir (y)

Sino

Escribir (No se puede calcular la expresin)

Fin_si
Fin
Ejemplo 10: Una empresa incrementa los sueldos de sus trabajadores en funcin a
su sueldo actual, de esta manera si su sueldo es inferior a S/. 1000 se aplica un aumento del 15%, caso contrario se aplica un aumento del 10%. Mostrar el nuevo sueldo del
trabajador.

z1 7 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Inicio

// Definir variables

real: sueldo, aum, nuevoSueldo

// Lectura de datos

Escribir (Ingrese sueldo)

Leer (sueldo)

// Calcula sueldo

Si (sueldo < 1000) entonces

aum

0.15 * sueldo

sino
aum

0.10 * sueldo

Fin_si
nuevoSueldo

sueldo + aum


Escribir (Nuevo sueldo , nuevoSueldo)
Fin

8.9.2.3. Estructura selectiva mltiple


A. Estructura selectiva mltiple: Si anidado
Un Si anidado es una sentencia Si que est contenida dentro de otra Si o Sino. Cuando
se anidan Si, cada sentencia Sino siempre se corresponde a la sentencia Si ms prxima
dentro del mismo bloque y que no est asociada con otra Sino. Un caso particular de una
sentencia Si anidada es la siguiente:
Si (expresin_lgica1) entonces
Accin1
Sino
Si (expresin_lgica2) entonces
Accin2

z1 7 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Sino
Accin3
Fin_si
Fin_si
Funcionamiento de Si anidado: Si Sino - Si...
Cuando la sentencia si mltiple inicia su ejecucin, se suceden los siguientes pasos:
a. Se evala expresin_lgica1, obteniendo un resultado lgico.
b. Si este resultado es verdadero (true), se ejecuta la Accion1 y se va al paso d.
c. Si este resultado es falso, se evala expresin_lgica2, obteniendo un resultado
lgico, si este resultado es verdadero, se ejecuta la Accion2 y se va al paso d, si
este resultado es falso, se ejecuta la Accion3 y se va al paso d.
d. La ejecucin del pseudocdigo proseguir con la siguiente sentencia que sigue al
ltimo Fin_si
Ejemplo 11: Leer un nmero y averiguar si es positivo, negativo o cero.
Variables a utilizar en el pseudocdigo

nro

nmero a ingresar

mensa

mensaje a mostrar

Inicio

// Definir variables

entero: nro

cadena: mensa

// Lectura de datos

Escribir (Ingresar nmero:)

Leer (nro)

Si(nro = 0 ) entonces

mensa

Cero

Sino
z1 7 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Si (nro>0) entonces

mensa

Positivo

Sino
mensa

Negativo

Fin_si
Fin_si

Escribir (nro,mensa)
Fin
Explicacin:
Para resolver el ejemplo planteado se define la variable entera nro y la variable cadena mensa:

entero:

cadena:

nro
mensa

Se ingresa un nmero cualquiera:

Escribir (Ingresar nmero:)

Leer (nro)

Se evala la expresin lgica (nro = 0) en caso de cumplirse la igualdad se asigna


Cero a la variable mensa:

Si (nro = 0 ) entonces

mensa

Cero

Despus de esta asignacin la ejecucin pasa a la sentencia escribir y finaliza el pseudocdigo:


Escribir (nro, mensa)

Pero si la expresin lgica (nro = 0) resulta ser falsa, se ejecuta el SINO asociado al
primer SI:
Sino

z1 7 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Este sino est conformado por un SI que evala la expresin lgica (nro > 0), si la
asignacin es verdadera se asigna Positivo a la variable mensa:

Si (nro>0) entonces

mensa

Positivo

Despus de esta asignacin la ejecucin pasa a la sentencia escribir y finaliza el pseudocdigo:


Escribir (nro, mensa)

Pero si la expresin lgica resulta ser falsa se ejecuta el SINO asociado al segundo SI,
en la cual se asigna Negativo a la variable mensa:
mensa

Negativo

Despus de esta asignacin la ejecucin pasa a la sentencia escribir y finaliza el pseudocdigo:


Escribir (nro, mensa)

Ejemplo 12: Una compaa de gaseosas est realizando una promocin por la compra de su producto. Dentro de cada chapa viene un nmero que determina el premio
que obtiene un comprador.
Si la chapa tiene un nmero entre 1 y 5, el comprador obtiene como premio el doble
del precio pagado por la gaseosa.
Si la chapa tiene un nmero entre 6 y 8, el comprador obtiene como premio la devolucin del precio pagado por la gaseosa.
Si chapa tiene un nmero entre 9 y 10, el comprador no gana ningn premio.
Escribir un pseudocdigo que muestre los diferentes resultados que se podran obtener al comprar una gaseosa.
Inicio

// Definir variables

entero: nroChapa

real: premio, precio

// Lectura de datos

Escribir (Ingresar precio y nro de chapa: )


z1 7 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Leer (precio, nroChapa)

Si (nroChapa >=1 and nroChapa<=5 ) entonces

premio

2*precio

Sino

Si (nroChapa >=6 and nroChapa<= 8) entonces

premio

precio

Sino

Si (nroChapa >=9 and nroChapa<=10) entonces

premio

Fin_si

Fin_si

Fin_si

Escribir (Premio: , premio)
Fin
Ejemplo 13: El precio de venta de DVD vara de acuerdo con la cantidad que se
compra:

S/. 2.50 si se compran unidades separadas hasta 9.

S/. 2.20 si se compran entre 10 unidades hasta 99.

S/. 1.90 entre 100 y 499 unidades

S/. 1.50 para ms de 500

El vendedor gana por cada CD vendido el 20% del coste. Realizar un pseudocdigo
que calcule el pago total y la ganancia para el vendedor.
Inicio

// Definir variables

entero: cant

real: pago, ganan


z1 7 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

// Lectura de datos

Escribir (Ingresar cantidad de DVD: )

Leer (cant)

Si (cant < 10) entonces

pago

2.50 * cant

Sino

Si (cant < 100) entonces

pago

2.20 * cant

Sino

Si (cant < 500) entonces

pago

1.90 * cant

Sino
pago

1.50 * cant

Fin_si

Fin_si

Fin_si
ganan

0.20 * pago

Escribir (El pago total es: , pago)


Escribir (La ganancia del vendedor es: , ganan)
Fin
B. Estructura selectiva mltiple: En caso sea Fin_caso
Ejecuta una accin dependiendo del resultado del selector. Se presenta como una alternativa de la sentencia Si anidada, ya que en ocasiones resulta ser ms comprensible
y ordenada. Su sintaxis es la siguiente:
En caso sea (selector) hacer

c1: Accin 1
z1 8 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

c2: Accin 2

cn: Accin N

Sino

Accion c

Fin_Caso
Donde:

Selector, cuyo valor se compara con cada una de las alternativas (c1, c2, etc.).

c1, c2, etc., son constantes enteras o de tipo carcter compatibles con el selector.
Si es de tipo carcter c1, c2, etc., deben de ir encerradas entre comillas simples,
es decir, c1, c2, etc.

Sino, cuando toma un valor distinto de las alternativas (c1, c2, etc.). El Sino es
opcional, si se omite y no hay coincidencia finaliza la sentencia En caso sea
Fin_caso sin ejecutar nada.

Las sentencias si anidadas pueden aplicarse a cualquier tipo de dato simple, en contraste con la sentencia En caso Fin_caso donde solo puede aplicarse al selector variables: enteras y caracteres.
Funcionamiento de En caso sea Fin_caso
Cuando la sentencia En caso sea Fin_caso inicia su ejecucin, se suceden los siguientes pasos:
a. Se evala el Selector, obtenindose un resultado de tipo entero o carcter.
b. Se compara este resultado con las alternativas (constantes) c1, c2, etc.
c. Si algunas de estas constantes es igual al valor del selector, entonces se ejecuta
la accin correspondiente a esa alternativa y se va al paso e.
d. Si no existe coincidencia con las alternativas, se ejecutar la accin correspondiente al Sino y se va al paso e.

z1 8 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

e. La ejecucin del pseudocdigo proseguir con la siguiente sentencia que sigue al


Fin_Caso.
Ejemplo 14: Leer una variable entera que representa un da de la semana y que
muestre el texto correspondiente al da. Por ejemplo: Lunes si es 1, Martes si es 2, ,
Domingo si es 7.
Inicio

// Definir variable

entero: da

// Lectura de datos

Escribir (Ingresar da:)

Leer (da)

En caso sea (da) hacer

1 : Escribir (lunes)

2 : Escribir (martes)

3 : Escribir (mircoles)

4 : Escribir (jueves)

5 : Escribir (viernes)

6 : Escribir (sbado)

7 : Escribir (domingo)

Sino

Escribir (Fuera de rango)

Fin_Caso
Fin
Explicacin:
Para resolver el ejemplo planteado se define la variable entera da:
entero: da
Se ingresa la variable da

Escribir (Ingresar da:)


z1 8 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Leer (da)

Y se evala el contenido de la variable da mediante la sentencia En caso sea - hacer,


si coincide con algunos de los valores de 1 a 7 se ejecuta la sentencia correspondiente al
valor que coincide y la ejecucin del pseudocdigo proseguir con la siguiente sentencia
a Fin_caso:
En caso sea (da) hacer

1 : Escribir (lunes)

2 : Escribir (martes)

3 : Escribir (mircoles)

4 : Escribir (jueves)

5 : Escribir (viernes)

6 : Escribir (sbado)

7 : Escribir (domingo)

Si no coincide con algunos de los valores de la sentencia En caso sea hacer se ejecuta la sentencia Sino, ejecutndose:
Sino

Escribir (Fuera de rango)

Ejemplo 15: Pseudocdigo que permite ingresar una calificacin expresada con un
carcter (a, b, c o d) y averiguar su equivalencia correspondiente de acuerdo a la siguiente tabla:
Nota

Descripcin

Sobresaliente

Notable

Aprobado

Insuficiente

Otra letra

Nota no est en el rango

z1 8 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Inicio

// Definir variable

carcter: nota

// Lectura de datos

Escribir (Ingresar nota)

Leer (nota)

En caso sea(nota) hacer

A: Escribir (Sobresaliente)

B: Escribir (Notable)

C: Escribir (Aprobado)

D: Escribir (Insuficiente)

Sino

Escribir (Nota no est en el rango)

Fin_caso
Fin
Ejemplo 16: Una compaa incrementa el sueldo actual de sus empleados de acuerdo a su categora como se muestra en el siguiente cuadro:
Categora

Incremento (%)

25

20

15

10

Adems, recibe un aumento especial de 2.5% de su sueldo actual por cada hijo que
tuviese. Asimismo, si el nuevo sueldo excede a S/. 2000 se descuenta el 3% por impuesto de solidaridad. Construir un pseudocdigo que permita calcular el sueldo neto que
recibe un empleado de dicha compaa.

z1 8 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Inicio

// Definir e inicializar variables

entero: cant

real: sueldo, aum, adic, desc, sueldoNeto

carcter: cat

// Lectura de datos

Escribir (Ingresar categora)

Leer (cat)

Escribir (Ingresar sueldo)

Leer (sueldo)

Escribir (Ingresar cantidad de hijos)

Leer (cant)

En caso sea(cat) hacer

A: aum

0.25 * sueldo

B: aum

0.20 * sueldo

C: aum

0.15 * sueldo

D: aum

0.10 * sueldo

Sino

Escribir (Categora no existe)

sw

Fin_caso

Si (sw = 0) entonces

sueldo + aum

sueldo

Si (cant > 0) entonces

z1 8 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

adic

0.025 * sueldo * cant

Fin_si

sueldo

Si (sueldo > 2000) entonces

sueldo + adic

desc

0.03 * sueldo

Fin_si

sueldoNeto

Escribir (El sueldo neto del empleado es, sueldoNeto)

sueldo - desc

Fin_si
Fin
En ocasiones, es necesario el uso de una variable que altere el funcionamiento del
algoritmo, cambiando su valor entre 0 y 1 o entre verdadero y falso, a esta variable tambin se le conoce como switch o bandera. Para nuestro ejemplo se ha utilizado la variable sw inicializado en cero; este valor cambia a 1 al entrar al sino del En caso sea, luego
de identificar que se ha ingresado una categora diferente a las existentes; esto permite
que una vez impreso el mensaje de error ya no se realicen los siguientes clculos.
Ejemplo 17: Construir un pseudocdigo que acte como una calculadora, permitiendo realizar las operaciones de suma, resta, multiplicacin y divisin entre dos nmeros
cualquiera.
Inicio

// Definir e inicializar variables

real: n1, n2, res

carcter: oper

entero: sw

// Lectura de datos

Escribir (Ingresar primer nmero)

Leer (n1)

Escribir (Ingresar operador)

z1 8 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Leer (oper)

Escribir (Ingresar segundo nmero)

Leer (n2)

En caso sea (oper) hacer

+: res

n1 + n2

- : res

n1 - n2

*: res

n1 * n2

/ : Si (n2 <>0)

res

n1 / n2

Sino

Escribir (Error)
sw

Fin_si

Sino

Escribir (Operador no vlido)

sw

Fin_caso

Si (sw = 0) entonces

Escribir (El resultado es , res)

Fin_si
Fin

z1 8 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Ejemplo 18: Un centro comercial ofrece ventas financiadas por medio de 3 tipos de
tarjetas de crdito como indica a continuacin:
Tipo de Tarjeta

Mximo de Letras

Inters (%)

36

24

12

El cliente solo puede financiar una compra hasta el mximo de letras que se indica
en el cuadro anterior, en caso contrario la venta no debe proceder. Calcular el monto de
cada letra por pagar, as como el monto total.
Inicio

// Definir variables

entero: cant, max

real: monto, inte, letra

carcter: tipo

// Lectura de datos

Escribir (Ingresar tipo de tarjeta)

Leer (tipo)

Escribir (Ingresar monto de la compra)

Leer (monto)

Escribir (Ingresar cantidad de letras a financiar)

Leer (cant)

En caso sea(tipo) hacer

A: max

36

inte

B: max

0.07 * monto

24

inte

0.06 * monto
z1 8 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

C: max

12

inte

0.05 * monto

Sino

Escribir (Tipo de tarjeta no existe)

sw

Fin_caso

Si (sw = 0) entonces

monto + inte

monto

Si (cant <= max) entonces

letra

monto / cant

Escribir (El monto total a pagar es , monto)

Escribir (El monto de cada letra es , letra)

Sino

Escribir (La venta no procede)

Fin_si

Fin_si
Fin
Ejemplo 19: Calcular el consumo de combustible y el total que se invirti en el recorrido
de un automvil. Para esto se debe disear un algoritmo en el que se ingresan los kilometrajes con el que inicia y termina el recorrido, as como la cantidad de galones de combustible con el que se inicia y termina el recorrido. Adems, calcular la cantidad de galones que
consume el auto por cada 100 kilmetros. Los precios por cada galn de combustible son:
Tipo de combustible

Precio (S/.) x galn

Gasolina 97

16.98

Gasolina 95

15.60

Gasolina 89

13.50

Diesel

10.20
z1 8 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Inicio

// Definir variables

entero: tipo

real: kil1, kil2, gal1, gal2, kilRec

// Lectura de datos

Escribir (Ingresar kilometraje de inicio y fin del recorrido)

Leer (kil1, kil2)

Escribir (Ingresar galones con el que inicia y termina el recorrido)

Leer (gal1, gal2)

Escribir (Ingresar tipo de combustible que usa el automvil

0, totGal 0, total, c100

(1)Gasolina 97, (2)Gasolina 95, (3)Gasolina 89, (4)Diesel)

Leer (tipo)

Si (tipo > 0 and tipo < 5) entonces

En caso sea(tipo) hacer

1 : precio

16.98

2 : precio

15.60

3 : precio

13.50

4 : precio

10.20

Fin_caso

kilRec

kil2 kil1

totGal

gal2 gal1

total

totGal * precio

c100

(totGal * 100) / kilRec

Escribir (El total de combustible que se consumi es, totGal)

z1 9 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Escribir (El total de se invirti en el recorrido es, total)

Escribir (El consumo por cada 100 kilmetros es, c100)

Sino

Escribir (El tipo de combustible no es vlido)

Fin_si
Fin
C. Estructura selectiva mltiple: En caso sea mltiple
La sentencia En caso sea mltiple se presenta de dos formas:
a. Cuando ms de una alternativa debe ejecutar la misma accin; para estos casos
se agrupan todas las alternativas con acciones comunes.
Ejemplo 20: Determinar si un nmero que se encuentre en el rango de 1 a 9 es par
o impar.
Inicio

// Definir variable

entero: nro

// Lectura de datos

Escribir (Ingresar nmero)

Leer (nro)

En caso sea (nro) hacer

1: 3: 5: 7: 9: Escribir (impar)

2: 4: 6: 8: Escribir (par)

sino

Escribir (Fuera de rango)

Fin_Caso
Fin
Ejemplo 21: En un campeonato de tiro al blanco se ha llegado a un acuerdo entre los
participantes para que el puntaje obtenido sea calculado en base al puntaje original (el
z1 9 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

que est entre 0 y 10) alcanzado en el tiro multiplicado por un factor, el cual se muestra
en el siguiente cuadro. Hacer un pseudocdigo que muestre el nuevo puntaje obtenido
por cualquier participante.
Puntaje original

Factor

Entre 1 y 5

Entre 6 y 8

Entre 9 y 10

10

Inicio

// Definir e inicializar variables

entero: factor, puntaje, nuevoPuntaje, sw

// Lectura de datos

Escribir (Ingresar puntaje:)

Leer (puntaje)

// Calcula puntaje

caso sea (puntaje) hacer

0: factor

1: 2: 3: 4: 5: factor

6: 7: 8:

factor

9: 10: factor

10

Sino

Escribir (Fuera de rango)

sw

Fin_Caso

Si (sw = 0) entonces

z1 9 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

puntaje + factor

nuevoPuntaje

Escribir (El nuevo puntaje es , nuevoPuntaje)

Fin_si
Fin
Ejemplo 22: Calcular la cantidad de das que tiene un mes, teniendo en cuenta lo
siguiente:
a. El orden del calendario indica que enero es 1, febrero es 2, etc.
b. Enero, marzo, mayo, julio, agosto, octubre y diciembre tienen 31 das.
c. Abril, junio, setiembre y noviembre tienen 30 das.
d. Febrero tiene 28 das o 29 das si el ao bisiesto. Un ao es bisiesto si es mltiplo
de 4 y no de 100 o cuando es mltiplo de 400.
Inicio

// Definir variables

entero: mes, year, dias

// Lectura de datos

Escribir (Ingresar dia, ao)

Leer (mes, year)

En caso sea (mes) Hacer

31

1: 3: 5: 7: 8: 10: 12: das

4: 6: 9 : das

2: Si (year Mod 4 = 0) and (year Mod 100 <>0) or

30

(year Mod 400 = 0)) entonces

das

29

Sino

28

das

Fin_si
z1 9 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Fin_Caso

Escribir (mes, year, da)
Fin
a. Cuando se presentan selecciones basadas en dos o ms niveles; en estos casos
se utiliza la sentencia En caso sea anidado.

8.9.3. Estructura repetitiva


Las estructuras repetitivas se utilizan cuando es necesaria la repeticin de una o ms
sentencias, en un nmero determinado de veces, o tantas veces como lo permita el resultado de una expresin lgica. Los controles de esta estructura son: mientras, repetir y para.
Dentro de las estructuras repetitivas intervienen los contadores y acumuladores, que
son variables que toman valores iniciales antes de que empiece el proceso repetitivo,
para que luego, dentro del proceso repetitivo, incrementar sus valores segn la lgica
de solucin del problema.
Contador: Es una variable numrica entera que se incrementa o decrementa cada
vez que se ejecuta la accin que lo contiene, toma un valor inicial de cero o uno,
segn sea el caso. En la siguiente figura la variable i representa a un contador.

valor anterior

valor actual

cantidad a incrementar

Acumulador o totalizador: Es una variable numrica que se incrementa o decrementa de forma no constante, toma un valor inicial de cero o uno segn sea
el caso. En la siguiente figura, la variable total representa a un acumulador y la
variable parcial es la cantidad en que se incrementar el acumulador en cada
iteracin.

valor actual

total = total + parcial

valor anterior

cantidad a incrementar

Bucle: Es un mecanismo de programacin que repite un segmento de un programa (una o ms sentencias) un cierto nmero de veces. Los bucles se implementan utilizando las sentencias repetitivas: mientras, repetir y para.
z1 9 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Cuerpo del bucle: Son las sentencias que se ejecutarn repetidamente un cierto
nmero de veces.
Iteracin: Representa cada repeticin del cuerpo de bucle.

8.9.3.1. Estructura repetitiva Mientras Fin_mientras


Repite una o ms acciones mientras el resultado de una expresin lgica es verdadera
(true). Si el resultado de la expresin lgica es falsa (false), este proceso de repeticin
termina, y la ejecucin del programa contina con la siguiente sentencia que sigue al
Fin_mientras. Su sintaxis es la siguiente:
Mientras (expresin_lgica) hacer
Accin
Fin_Mientras
Funcionamiento de Mientras Fin_mientras
Cuando la sentencia Mientras inicia su ejecucin, se suceden los siguientes pasos:
a. Se evala expresin_lgica, obtenindose un resultado lgico.
b. Si este resultado es verdadero (true), se ejecuta la accin y se retorna al paso a.
c. Si este resultado es falso (false), la ejecucin del pseudocdigo proseguir con la
sentencia siguiente al Fin_Mientras.
Ejemplo 01: Pseudocdigo que invierta un nmero entero positivo.
Inicio

// Definir e inicializar variables

entero: nro, nro1, digito, nroinvertido

// Leer Datos

Escribir (Ingresar nmero:)

Leer (nro)

// Calcular nmero invertido

nro1

nro

Mientras (nro > 0) hacer


z1 9 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

nro Mod 10

dgito

nroinvertido

nro

nroinvertido * 10 + dgito

nro Div 10

Fin_Mientras

Escribir (El nmero invertido de, nro1, es, nroinvertido)
Fin
Explicacin:
Para resolver el ejemplo planteado se definen las variables enteras: nro., nro.1, dgito
y se inicializa en cero la variable nro. Invertido.

entero: nro, nro1, digito, nroinvertido

Se ingresa la variable nro:


Escribir (Ingresar nmero:)

Leer (nro)

Y se asigna nro a una nueva variable nro1, para conservar el valor original del nmero
ingresado:
nro1

nro

La sentencia Mientras ejecuta tres sentencias, mientras que la expresin lgica (nro
> 0) es verdadera, en estas sentencias se va extrayendo cada dgito del nmero ingresado:

Mientras (nro > 0) hacer

nro Mod 10

dgito

nroinvertido

nro

nroinvertido * 10 + dgito

nro Div 10

Fin_Mientras
Cuando la expresin lgica (nro > 0) llega a ser falsa, se ejecuta la sentencia escribir
y finaliza el pseudocdigo:

Escribir (El nmero invertido de , nro1, es , nroinvertido)

z1 9 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Por ejemplo, si el nmero es 134, entonces el nmero invertido ser 431. Para ir reduciendo cada nmero emplearemos la operacin:
nro

nro Div 10

As tenemos:

134 Div 10 = 13

13 Div 10 = 1

1 Div 10 = 0

Se detiene cuando
es cero

A la vez, para obtener cada dgito emplearemos la operacin:


dgito

dgito Mod 10

As tenemos:

134 Mod 10 = 4

13 Mod 10 = 3

1 Mod 10 = 1

Se puede ir formando el nmero invertido multiplicando el mismo nmero invertido


por 10 y agregndole cada dgito empleando la operacin:
nroinvertido = 10 * nroinvertido + dgito
Que en valores es:

10 * 0 + 4 = 4

10 * 4 + 3 = 43

10 * 43+ 1 = 431

Inicialmente nroinvertido = 0
La siguiente tabla muestra los resultados de la corrida del algoritmo.

z1 9 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Iteracin
nro.

Valores
de
nro.

Expresin
lgica
nro > 0

Resultado
de la
expresin
lgica

134

134>0

13

3
---

Resultados del cuerpo del bucle


digito =
nro Mod
10

nroinvertido =
10*nroinvertido+ dgito

nro =
nro Div 10

True

13 >0

True

43

1> 0

True

431

0>0

False

13

Fin del Mientras

Ejemplo 02: Mostrar los n trminos de la siguiente serie y calcule su suma:


2 + 5 + 8 + 11 + 14 +

Inicio

// Definir e inicializar variables

entero: n, ter

// Leer Datos

Escribir (Ingresar cantidad de trminos:)

Leer (n)

// Calcula serie y suma

con

2, con , suma 0

Mientras (con <= n) Hacer

Escribir (ter)

suma

ter

con con + 1

suma + ter

ter + 3

Fin_mientras

Escribir (La suma es: , suma)
Fin
z1 9 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Ejemplo 03: Calcular la suma total y determine cuntos nmeros mltiplos de M hay
en los N primeros nmeros naturales, tal que M <= N.
Por ejemplo:
Si se desea saber cuntos mltiplos de 7 hay en los primeros 80 nmeros naturales.
Se tiene:

7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77

Inicio

// Definir e inicializar variables

entero: n, m, con, suma

// Leer Datos

Escribir (Ingresar cantidad de nmeros:)

Leer (n)

Escribir (Ingresar mltiplo a validar:)

Leer (m)

// Calcula serie y suma

con

Mientras (m <= n) Hacer

Escribir (m)

con

suma

con + 1
suma + m

m+7

Fin_mientras

Escribir (La suma es:, suma)

Escribir (La cantidad de mltiplos de, m, encontrados en los , n, primeros


nmeros naturales es, con)

Fin

z1 9 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Ejemplo 04: Calcular el cuadrado de un nmero realizando solo sumas. El cuadrado


de un nmero n es la suma de los n primeros nmeros impares. Ejemplo: 32 = 1 + 3 +
5 = 9.
Inicio

// Definir e inicializar variables

entero: n, cuad

// Leer Datos

Escribir (Ingresar nmero:)

Leer (n)

// Calcula serie y suma

con

0, ter 1, con

Mientras (con <= n) Hacer

cuad

ter

con

cuad + ter

ter + 2
con + 1

Fin_mientras

Escribir (El cuadrado de, n, es:, cuad)
Fin
Ejemplo 05: Mostrar la serie y calcular el producto de los n trminos de:
1/12 * 3/22 * 5/32 * 7/42 *
Inicio

// Definir e inicializar variables

entero: n, con

real : num

// Leer Datos

Escribir (Ingresar cantidad de trminos:)

1, den 1, prod 1

z2 0 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Leer (n)

// Calcula serie y multiplica

con

Mientras (con <= n) Hacer

Escribir (num, /, den, ^2)

prod

prod * (num/(den^2))

num

num + 2

den

den + 1

con

con + 1

Fin_mientras

Escribir (El producto es:, prod)
Fin
Ejemplo 06: Mostrar la serie y calcular la suma de los n trminos de:
1 + 2 + 5 + 10 + 17 + 26 +
Inicio

// Definir e inicializar variables

entero: n, con, ter

// Leer Datos

Escribir (Ingresar cantidad de trminos:)

Leer (n)

con

1, suma 0, inc 1

// Calcula serie y suma

Mientras (con <= n) Hacer

Escribir (ter)

suma

suma + ter
z2 0 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

ter

ter + inc

inc

inc + 2

con

con + 1

Fin_mientras

Escribir (La suma es:, suma)
Fin
Ejemplo 07: Ingresar un nmero entero y calcular:
a)

La suma de sus dgitos.

b)

El nmero total (cantidad) de dgitos.

c)

La cantidad de dgitos pares e impares.

Recuerde que para extraer los dgitos de un nmero se divide entre 10 hasta que el
nmero se haga cero, de esta manera cada dgito se obtiene mediante la expresin:
dgito dgito Mod 10, y el valor del nmero se va actualizando con la expresin: nro
nro Div 10
Inicio

// Definir e inicializar variables

entero: nro, dgito, suma

// Leer Datos

Escribir (Ingresar nmero:)

Leer (nro)

Mientras (nro>0) Hacer

0, c 0, cpar 0, cimpar 0

digito

nro Mod 10

suma

suma + dgito

Si (dgito Mod 2 = 0) entonces

cpar

c+1

cpar + 1
z2 0 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Sino

cimpar

Fin_si

nro

cimpar + 1

nro Div 10

Fin_mientras

Escribir (La suma es:, suma)

Escribir (El total de dgitos es:, c)

Escribir (La cantidad de dgitos pares es:, cpar)


Escribir (La cantidad de dgitos impares es:, cimpar)
Fin
Ejemplo 08: Calcular los salarios de un conjunto de n trabajadores, conociendo la tarifa
por hora y las horas trabajadas, as como, la cantidad de trabajadores que reciben un salario
mayor o igual a S/. 700. Considerar una nica tarifa por hora para todos los trabajadores.
Inicio

// Definir e inicializar variables

entero: tar, n, con, hor, salario, conS

// Leer Datos

Escribir (Ingresar tarifa:)

Leer (tar)

Escribir (Ingresar cantidad de trabajadores:)

Leer (n)

// Calculo

con

Mientras (con <= n) Hacer

Escribir (Ingresar horas trabajadas del trabajador, con, :)

Leer (hor)
z2 0 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

hor * tar

salario

Si (salario >= 700) entonces

conS

conS + 1

Fin_si

con

Escribir (El salario del trabajador , con, es , salario)

con + 1

Fin_mientras

Escribir (La cantidad de trabajadores con salarios mayores o iguales a


S/. 700.00 es:, conS)
Fin
Ejemplo 09: Durante un censo se registran los datos de n personas como: sexo (masculino, femenino), edad y estado civil (soltero, casado, viudo, divorciado). Elaborar un
pseudocdigo que muestre el nmero de jvenes solteras que tienen entre 18 y 30 aos.
Inicio

// Definir e inicializar variables

entero: n, edad, con

carcter: sexo, estCiv

// Leer Datos

Escribir (Ingresar cantidad de personas:)

Leer (n)

// Calculo

con

1 , conM 0

Mientras (con <= n) Hacer

Escribir (Ingresar sexo (M)asculino, (F)emenino:)

Leer (sexo)

Escribir (Ingresar edad:)


z2 0 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Leer (edad)

Escribir (Ingresar estado civil (S)oltero, (C)asado, (V)iudo, (D)ivorsiado:)

Leer (estCiv)

Si (sexo = F and estCiv = S and edad>=18 and edad <=30) entonces

conM

Fin_si

con

conM + 1

con + 1

Fin_mientras

Escribir (La cantidad de mujeres solteras entre 18 y 30 aos son:, conM)
Fin
Ejemplo 10: Una organizacin de bienestar familiar registra los pesos de las n personas de un centro poblado, a partir de estos datos, se desea determinar el promedio
de peso de los nios, jvenes, adultos y ancianos que existen en la zona. Considerar la
siguiente tabla de categoras:
Categora

Edad

Nios

0 12

Jvenes

13 29

Adultos

30 59

Ancianos

60 ms

Inicio

// Definir e inicializar variables

entero: n, edad, con

real: peso, sumaN

promJ, promA, promC

// Leer Datos

Escribir (Ingresar cantidad de poblacin)

1, conN 0, conJ 0, conA 0, conC 0

0, sumaJ 0, sumaA 0, sumaC 0, promN,

z2 0 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Leer (n)

// Clculo

con

Mientras (con <= n) Hacer

Escribir (Ingresar edad)

Leer (edad)

Escribir (Ingresar peso)

Leer (peso)

Si (edad <= 12) entonces

sumaN
conN

sumaN + peso

conN + 1

Sino

Si (edad <= 29) entonces

sumaJ
conJ

sumaJ + peso

conJ + 1

Sino

Si (edad <= 59) entonces

sumaA
conA

sumaA + peso

conA + 1

Sino
sumaC
conC

sumaC + peso

conC + 1

Fin_si
Fin_si

z2 0 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Fin_si

Fin_mientras
promN

sumaN / conN

promJ

sumaJ/ conJ

promA

sumaA / conA

promC

sumaC / conC

Escribir (El promedio de peso de los nios es:, promN)

Escribir (El promedio de peso de los jvenes es:, promJ)

Escribir (El promedio de peso de los adultos es:, promA)


Escribir (El promedio de peso de los ancianos es: , promC)
Fin
Ejemplo 11: Para convertir un nmero en base diferente de 10 a base 10, emplearemos la descomposicin polinmica, se denomina as porque tiene la caracterstica de un
polinomio donde la variable del polinomio viene a estar dado por la base del nmero. Se
pide construir un pseudocdigo para realizar la descomposicin polinmica de un nmero.
La siguiente tabla muestra la descomposicin polinmica:
Numero a convertir y su correspondiente base

Proceso de conversin
(descomposicin polinmica)

Resultado
de la conversin

344(7

3*72 + 4*71 + 4*70 = 3*49 + 4*7 + 4 *1=


147 + 28 + 4

179

1304(5

1*53 + 3*52 + 0*51 + 4*50 = 1*125 +


3*25 + 0*5 + 4*1 = 125 + 75 + 0 + 4

204

Por ejemplo, sea el nmero 344.


Se extrae cada dgito con la expresin: dgito
nmero con la expresin: nro nro Div 10

dgito Mod 10 y se va reduciendo el

Se va formando la descomposicin polinmica multiplicando el primer dgito por la


base elevado a la cero, el segundo dgito multiplicado por la base elevado a la 1 y as
sucesivamente, guardando el resultado de esta operacin en un acumulador suma, expresado mediante la operacin: suma suma + dgito * baseexpo, as, inicializando suma
en cero tenemos:
z2 0 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

0 + 4 * 70 = 4
4 + 4 * 71 = 32
32 + 3 * 72 = 179
Inicio

// Definir e inicializar variables

entero: nro, base, dgito, suma

// Leer datos

Escribir (Ingresar un nmero y su base)

Leer (nro, base)

nro1

0, expo 0

nro

Mientras( nro > 0) hacer

dgito

nro Mod 10

suma

suma + dgito * base ^ expo

expo

nro

expo +1

nro Div 10

Fin_mientras

Escribir (El nmero, nro1, en base 10 es, suma)
Fin
Ejemplo 12: Convertir un nmero decimal a una base binaria u octal.

El sistema binario utiliza los dgitos 0, 1

El sistema octal usa ocho dgitos 0, 1, 2, 3, 4, 5, 6 y 7.

En la tabla se muestran los primeros diecisiete nmeros decimales con su respectiva equivalencia binaria y octal.

z2 0 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Decimal

Binario

Octal

0000

0001

0010

0011

0100

0101

0110

Decimal

Binario

Octal

0111

1000

10

1001

11

10

1010

12

11

1011

13

12

1100

14

13

1101

15

14

1110

16

15

1111

17

16

10000

20

17

10001

21

Para convertir un nmero de base decimal a cualquier base, se emplea el mtodo de


las divisiones sucesivas que consiste en dividir sucesivamente el nmero decimal y los
cocientes que se van obteniendo entre la base, hasta que una de las divisiones se haga
0. La unin de todos los restos obtenidos escritos en orden inverso, nos proporcionan
el nmero inicial expresado en el sistema deseado. Por ejemplo, convertir el nmero 10
en base 2, obtenemos:

z2 0 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

10(10)=1010(2)
Inicio

// Definir e inicializar variables

entero: nro, nro1, base, dgito, nuevonro

cadena: mensa

// Lectura de datos

Escribir (Ingrese nmero en base decimal: )

Leer (nro)

Escribir (Ingrese base:)

Leer (base)

nro1

0, coeficiente 1, dgito

nro

Mientras (nro >0) hacer

nro Mod base

residuo

nuevonro nuevonro + coeficiente * residuo

coeficiente

nro

10*coeficiente

nro Div base

Fin_mientras

Si (base = 2) entonces

mensa

Binario
z2 1 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Fin_si

Si (base = 8) entonces

mensa

Octal

Fin_si

Escribir (El nmero,nro1,en, mensa, es, nuevonro)
Fin

8.9.3.2. Estructura repetitiva Repetir Hasta_que


Esta sentencia repite una sentencia o ms sentencias hasta que el resultado de una
expresin lgica sea verdadero (true), momento en que termina la sentencia Repetir y
se contina con el resto del algoritmo. Su sintaxis es la siguiente:
Repetir
Accin
Hasta_que (expresin_lgica)
Funcionamiento de Repetir Hasta_que
Cuando la sentencia Repetir hasta_que inicia su ejecucin, se suceden los siguientes pasos:
a. Se ejecuta la accin (o conjunto de sentencias).
b. Se evala Expresin_lgica, obtenindose un resultado lgico.
c. Si este resultado es falso (false), se retorna al paso a.
d. Si este resultado es verdadero (true), la ejecucin del pseudocdigo proseguir
con sentencia siguiente al hasta_que.
Ejemplo 13: Mostrar los 10 primeros trminos de la serie:
1, 3, 5, 7, ...
Observamos que cada trmino de la serie se incrementa en 2, para lo cual emplearemos la operacin trmino trmino + 2.
Para imprimir los 10 primeros trminos se requiere de un contador que empieza en
1 y acaba en 10, de esta manera cada vez que se obtiene un trmino el contador se
incrementa en 1, para lo cual usaremos con con + 1.
z2 1 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Inicio

// Definir e inicializar variables

entero: trmino

// Calcula e imprime trmino

1, con 1

Repetir

Escribir (trmino)

trmino

con

trmino + 2

con + 1


Hasta_que (con = 10)
Fin
La siguiente tabla muestra los resultados de la corrida del algoritmo.

Iteracin
nmero

Resultados del
cuerpo del bucle

con = 10

Resultado
de la
expresin
lgica

2 = 10

false

3 = 10

false

4 = 10

false

...

...

...

...

...

...

...

...

...

...

...

...

10

19

21

10

10=10

true

con

Escribir
trmino

trmino =

con =

trmino + 2

con + 1

Expresin
lgica

Ejemplo 14: Pseudocdigo que encuentra el menor nmero, de un conjunto de nmeros positivos ingresados. El pseudocdigo termina cuando se ingresa el cero o un
nmero negativo.
Asumimos que el valor inicial del menor nmero es un nmero grande:
menor 99999, para poder iniciar la comparacin con todos los nmeros ingresados.
z2 1 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Inicio

// Definir e inicializar variables

entero: nro, menor

// Calcula e imprime trmino

99999

Repetir

Escribir (Ingresar nmero)

Leer (nro)

Si (nro < menor) entonces

menor

nro

Fin_si

Hasta_que (nro <= 0)

Escribir (El menor nmero ingresado es, menor)

Fin
Ejemplo 15: Generar una secuencia de nmeros utilizando el siguiente algoritmo:

Que empiece con cualquier nmero entero positivo.

Si es par, lo dividimos por dos, si es impar lo multiplicamos por tres y le sumamos


1.

Repetimos el paso anterior con el nmero resultante, la secuencia se repite hasta


obtener el nmero 1.

Por ejemplo, si ingresamos el nmero 7, la secuencia generada sera:


7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 4
Que se obtuvo de la siguiente manera:

z2 1 3 z

2 1

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Nmero
7

Proceso
7 es impar, entonces 7 * 3 + 1 = 22

22

22 es par, entonces 22 / 2 = 11

11

11 es impar, entonces 11 * 3 + 1 =34

34

34 es par, entonces 34 / 2 = 17

17

17 es impar, entonces 17 * 3 + 1 = 52

52

52 es par, entonces 52 / 2 = 26

26

26 es par, entonces 26 / 2 = 13

13

13 es impar, entonces 13 * 3 + 1 = 40

40

40 es par, entonces 40 / 2 = 10

10

10 es par, entonces 10 / 2 = 5

5
16

5 es impar, entonces 5 * 3 + 1 = 16
16 es par, entonces 16 / 2 = 8

8 es par, entonces 8 / 2 = 4

4 es par, entonces 4 / 2 = 2

2 es par, entonces 2 / 2 = 1

1
Observar que la serie comienza a repetir la serie 4 2 1 indefinidamente, el algoritmo
debe de leer el nmero inicial, imprimir el nmero de valores encontrados hasta la aparicin de un valor 1 en la secuencia.
Para los nmeros pares emplearemos la operacin:

nro

nro Div 2

Para los nmeros impares emplearemos la operacin:

nro

3 * nro + 1

Inicio

// Definir variables

entero: nro, residuo

z2 1 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

// Leer Datos

Escribir (Ingresar nmero:)

Leer (nro)

// Calcula la serie

Repetir

nro Mod 2

residuo

Si (residuo = 0) entonces

nro

nro Div 2

Sino

nro

3 * nro + 1

Fin_si

Escribir (nro)

Hasta_que (nro = 1)

Fin
Ejemplo 16: Calcular el promedio de nmeros positivos y el promedio de nmeros
negativos de un conjunto de nmeros ingresados. El pseudocdigo termina cuando se
ingresa el cero.
Inicio

// Definir e inicializar variables

entero: nro, sumap

real: promp, promn

// Ingreso y clculo

0, suman 0, cp 0, cn 0

Repetir

Escribir (Ingresar nmero)

Leer (nro)

z2 1 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Si (nro > 0) entonces

sumap
cp

sumap + nro

cp + 1

Sino

Si (nro < 0) entonces

suman
cn

suman + nro

cn + 1

Fin_si

Fin_si

Hasta_que (nro = 0)

promp

sumap / cp

promn

suman / cn

Escribir (El promedio de los nmeros positivos es, promp)


Escribir (El promedio de los nmeros negativos es, promn)
Fin
Ejemplo 17: Leer n consumos de un restaurante. Si el consumo ingresado excede
los S/. 70.00, se le descontar el 15%. Mostrar el monto de cada consumo realizado y
el total que recauda el restaurante por todos los consumos.
Inicio

// Definir e inicializar variables

entero: n, con

real: consumo, desc

Escribir (Ingresar cantidad de consumos)

Leer (n)

// Clculo

0
0, total 0

Repetir
z2 1 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Escribir (Ingresar consumo)

Leer (consumo)

Si (consumo > 70.00) entonces

desc

0.15 * consumo

Fin_si

consumo

Escribir (El monto final del consumo es, consumo)

total

con

consumo desc

total + consumo

con +1

Hasta_que (con = n)

Escribir (El total que recauda el restaurante es, total)

Fin
Ejemplo 18: Calcular la compra de N productos de diferentes precios, dicha compra
se realiza hasta que el cliente ya no desea seguir comprando. Mostrar el monto total que
paga el cliente.
Inicio

// Definir e inicializar variables

entero: cant

real: precio, subTot, total

caracter: resp

// Clculo

Repetir

Escribir (Ingresar precio del producto)

Leer (precio)

Escribir (Ingresar cantidad de productos)

z2 1 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Leer (cant)

subTot

total

Escribir (Desea seguir comprando (S/N)?)

Leer (resp)

precio * cant

total + subTot

Hasta_que(resp = N)


Escribir (El total a pagar es, total)
Fin
Ejemplo 19: Calcular el monto total que se paga por una entrada a un evento cultural, los precios varan de acuerdo con el tipo de entrada:
Tipo

Precio (S/.)

Vip

70.00

Platea

50.00

Popular

30.00

Adems el precio tiene un incremento del 12% por impuesto. Validar el ingreso de
datos.
Inicio

// Definir variables

real: precio, inc

carcter: tipo

// Clculo

Repetir

Escribir (Ingresar tipo de entrada (V)ip, (P)latea, Popu(L)ar)

Leer (tipo)

Si (tipo <> V and tipo <> P and tipo <> L)

Escribir (Tipo no existe)


z2 1 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Fin_si

Hasta_que (tipo = V or tipo = P or tipo = L)

Segn sea (tipo)

V: precio

70.00

P: precio

50.00

L: precio

30.00

Fin_segn
inc

precio * 0.12

precio

precio + inc


Escribir (El precio final a pagar es , precio)
Fin
Ejemplo 20: Un entrenador le ha propuesto a un atleta recorrer una ruta de cinco
kilmetros durante 10 das, con el fin de determinar si es apto para competir. Para que
el atleta sea considerado apto debe cumplir, por lo menos, una de las siguientes condiciones:

Que en ninguna de las pruebas haga un tiempo mayor a 16 minutos.

Que su promedio de tiempos sea menor o igual a 15 minutos.

Inicio

// Definir e inicializar variables

entero: tpo, ct

real: prom

// Clculo

0, suma 0, con 0

Repetir

Escribir (Ingresar tiempo en minutos)

Leer (tpo)

Si (tpo > 16) entonces

z2 1 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Fin_si

suma

con

suma + tpo

con + 1

Hasta_que (con = 10)

prom

ct + 1

suma / 10

Si ((ct = 0) or (prom <= 15))

Escribir (Si es apto para competir)

Sino

Escribir (No es apto para competir)

Fin_si
Fin
Ejemplo 21: Se ingresan los resultados de la evaluacin de un cierto nmero de
alumnos del curso de Programacin; por cada alumno se informa: su asistencia (1 =
presente; 0 = ausente) y su calificacin. A partir de esta informacin se debe calcular:

La cantidad y el porcentaje de alumnos presentes.

Promedio de calificaciones de alumnos presentes.

Si un alumno est ausente no se registra su calificacin. El pseudocdigo termina


cuando se ingresa como asistencia un valor diferente a 1 0.
Inicio

// Definir e inicializar variables

entero: asis, calf, suma

real: porp, prom

// Clculo

0, cap 0, caa 0, cant 0

Repetir

Escribir (Ingresar asistencia (1)Presente, (0)Ausente)

z2 2 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Leer (asis)

Si (asis = 1)

Escribir (Ingresar calificacin)

Leer (calf)
suma

suma + calf

Fin_si

Segn sea (asis) hacer

1 : cap

cap + 1

0 : caa

caa + 1

Fin_segn

cant

cant + 1

Hasta_que (asis <> 0 or asis <>1)

porp
prom

(cap * 100) / cant


suma / cap

Escribir (La cantidad de alumnos presentes es, cap)

Escribir (El porcentaje de alumnos presentes es, porp)

Escribir (El promedio de calificaciones de los alumnos presentes es, prom)

Fin
Ejemplo 22: Pseudocdigo que lee nmeros de forma consecutiva y aleatoria hasta
que se ingrese el nmero 0 (cero). Calcular la suma de todos los nmeros ingresados
antes de que aparezca el primer nmero mayor a 150, as como la suma de todos los
nmeros que entran a continuacin de este, hasta la aparicin del cero.
Mostrar la cantidad de nmeros ingresados (sin contar el cero ni el primer nmero
mayor de 150), en la primera y la segunda suma.
Contemplar la posibilidad de que entre antes el 0 que el primer nmero mayor de
150.

z2 2 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Inicio

// Definir e inicializar variables

entero: nro, sw

// Clculo

0, suma1 0, suma2 0, con 0

Repetir

Escribir (Ingresar nmero)

Leer (nro)

Si (nro <> 0) entonces

con

con + 1

Fin_si

Si (sw = 1) entonces

suma2

suma2 + nro

Fin_si

Si ((nro < 150) and (sw = 0)) entonces

suma1

Sino

sw = 1

con

suma1 + nro

con - 1

Fin_si

Hasta_que (nro = 0)

Escribir (La cantidad de nmeros ingresados es, con)

Escribir (La primera suma es, suma1)


Escribir (La segunda suma es, suma2)
Fin

z2 2 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

8.9.3.3. Estructura repetitiva Desde Fin_desde


La sentencia Desde, repite una o ms acciones un nmero determinado de veces. Se
utiliza cuando se conoce por anticipado el nmero de veces que se van a repetir estas
acciones. Su sintaxis es la siguiente:
Desde (iValor_Inicial) hasta (expresin_Lgica) con incremento N hacer
Accin
Fin_desde
Valor_inicial: especifica el primer valor asignado a la variable de control. Esta
inicializacin se realiza solo la primera vez que se repite el bucle.
Expresin_lgica: esta expresin debe ser verdadera para que se ejecute el
bucle. La expresin_lgica se compara con la variable de control cada vez que se
repite el bucle.
Incremento N: indica el valor que va a aumentar o disminuir a la variable de
control.
Funcionamiento de Desde Fin_desde
Cuando la sentencia Desde inicia su ejecucin, se suceden los siguientes pasos:

Se asigna un valor_inicial a la variable de control, en nuestro caso i.

Si la variable de control cumple la expresin_lgica, se ejecuta la accin luego se


incrementa (o disminuye) la variable de control.

Si la variable de control no cumple la Condicin se ejecuta la sentencia siguiente


a Fin_desde.

Ejemplo 23: Calcular la suma de los cuadrados y los cubos de los N primeros nmeros naturales.
Inicio

// Definir e inicializar variables

entero: n, nro, cuad, cubo, sumaCuad

// Leer dato

Escribir (Ingresar cantidad de nmeros naturales)

Leer (n)
z2 2 3 z

0, sumaCubo 0

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Desde (nro

1) hasta (nro <= n) con incremento 1 Hacer


nro * nro

cuad

sumaCuad

cubo

sumaCubo

sumaCuad + cuad

nro * nro * nro


sumaCubo + cubo

Fin_desde

Escribir(La suma de los cuadrados es, sumaCuad)


Escribir(La suma de los cubos es, sumaCubo)
Fin
Explicacin:
Para realizar el ejercicio planteado se definen las variables enteras n, nro, cuad, cubo
y se define e inicializa en cero las variables sumaCuad, sumaCubo:

entero: n, nro, cuad, cubo, sumaCuad

0, sumaCubo 0

Se ingresa la cantidad de nmeros que se desea sumar mediante la variable n:


Escribir (Ingresar cantidad de nmeros naturales)

Leer (n)

Enseguida se ejecuta la sentencia Desde, en el que se asigna a la variable nro el valor


de 1 y se evala la expresin lgica (nro<=n), si es verdadera se ejecutan las cuatro
sentencias que tiene esta estructura, luego se incrementa en una unidad el valor de la
variable nro., en ese momento la sentencia Desde vuelve a verificar la expresin lgica
(nro<=n) si es verdadero contina el bucle:

Desde (nro

1) hasta (nro <= n) con incremento 1 Hacer


nro * nro

cuad

sumaCuad

cubo

sumaCubo

sumaCuad + cuad

nro * nro * nro


sumaCubo + cubo

Fin_desde

z2 2 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Cuando la expresin lgica (nro<=n) llega a ser falso el bucle termina y se ejecuta la
sentencia escribir y finaliza el pseudocdigo:

Escribir (La suma de los cuadrados es, sumaCuad)

Escribir (La suma de los cubos es, sumaCubo)

Ejemplo 24: Calcular el nmero PI, de acuerdo a la siguiente frmula:


PI/4 = 1 - 1/3 + 1/5 - 1/7 + ...
El nmero de trminos debe ser ingresado.
Inicio

// Definir e inicializar variables

entero: n, num

// Leer dato

Escribir (Ingresar cantidad de trminos)

Leer (n)

Desde (con

1, den 1

1) hasta (con <= n) con incremento 1 Hacer

suma

num

den

suma + (num / den)

num * -1

den + 2

Fin_desde
pi

suma * 4


Escribir (El valor de PI es , pi)
Fin
Ejemplo 25: Encontrar todos los divisores de un nmero ingresado. Un nmero a es
divisor de otro nmero b, cuando el residuo de la divisin de b entre a es cero, en otras
palabras cuando el residuo es exacto. As, pues, decimos que 5 es divisor de 20, porque
el residuo de 20 Mod 5 es cero.
Por ejemplo, los divisores de 24 son: 1, 2, 3, 4, 6, 8, 12, 24, para hallar estos valores
es necesario dividir al nmero 24 con valores comprendidos entre 1 y 24.

z2 2 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Inicio

// Definir e inicializar variables

entero: nro, i

// Leer datos

Escribir (Ingresar nmero)

Leer (nro)

Desde (i

1) hasta (i <= nro) con incremento 1 hacer

Si (nro Mod i = 0) entonces

Escribir (i)

Fin_si
Fin_desde
Fin
Ejemplo 26: Calcular el factorial de un nmero entero. El factorial de un nmero n
se representa por n! y su frmula es:

n ! = 1 * 2 * 3 * 4 * * (n-2) * (n-1) * n

As, por ejemplo:


1!=1

2!=1*2=2

3!=1*2*3=6

4 ! = 1 * 2 * 3 * 4 = 24

4 ! = 3 ! * 4 = 24

Se observa que el factorial de 4 es el factorial de 3 multiplicado por 4, quiere decir


que el factorial de n es el factorial de (n -1) multiplicado por n.

n! =
(n-1)! * n

Esto nos sirve para implementar la lgica del programa empleando:


z2 2 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

fact

fact * i

Inicio

// Definir e inicializar variables

entero i, nro, fact

// Leer Datos

Escribir (Ingresar nmero:)

Leer (nro)

// Calcula el factorial

Desde (i

1) hasta (i <= nro) con incremento 1 hacer

fact

fact * i

Fin_desde

Escribir (El factorial es: , fact)
Fin
La siguiente tabla muestra los resultados de la corrida del algoritmo para 5!
Resultados
del cuerpo del
bucle

Iteracin
Nro.
i

Expresin
lgica
<=5

Valor de la
expresin
lgica

Incremento
i=i+1

1<= 5

true

2<= 5

true

3 <=5

true

4 <=5

true

24

5<= 5

true

120

6<= 5

false

fact = fact * i

Finaliza la sentencia desde

Ejemplo 27: Obtener el cuadrado de un nmero entero utilizando la frmula:


n2 = 1 + 3 + 5 + . . . + 2n-1.
z2 2 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Para obtener cada trmino de la serie emplearemos la frmula 2 * n 1.


Si n = 1

2 *1 1 = 1

Si n = 2

2*2 - 1 = 3

Si n = 3

2*3 1 = 5

Posteriormente es necesario sumar cada uno de los trminos empleando la operacin


suma suma + trmino.
1

0+1

1+3

4+5

Inicio

// Definir e inicializar variables

entero: nro, i, trmino, suma

// Leer Datos

Escribir (Ingresar nmero:)

Leer (nro)

Desde (i

1) hasta (i <= nro) con incremento 1 hacer


2*i-1

trmino

Escribir (trmino)

suma

suma + trmino

Fin-desde

Escribir (El nmero al cuadrado es:, suma)
Fin
Ejemplo 28: Determinar si un ao es bisiesto en un rango dado. Un ao es bisiesto
si es mltiplo de 4 pero no mltiplo de 100, excepto los mltiplos de 400.
Como tenemos que hallar los aos bisiestos en un rango, empleamos un bucle repetitivo que permita recorrer los aos determinados en el rango aoinicio y aotermino que
definen el ao de inicio y trmino, respectivamente, de esta manera usamos un contador
z2 2 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

ao que empieza en aoinicio y termina en aotermino que se ir incrementando en 1,


el mismo que definir cada ao que se evala como bisiesto. De esta manera, dentro del
bucle realizamos los clculos correspondientes
Inicio

// Definir variables

entero: aoinicio, aotermino, a

// Leer dato

Escribir (Ingresar ao inicial y ao final)

Leer (aoinicio, aotermino)

Desde (a aoinicio) hasta (a <=aotermino) con incremento 1 Hacer

Si ((a Mod 4 = 0) and (a Mod 100 <>0) or (a Mod 400 = 0)) entonces

Escribir (El ao, a, es bisiesto)

Fin_si

Fin_desde
Fin

z2 2 9 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

L e c c i n

LENGUAJE DE PROGRAMACIN

9.1. Lenguaje de programacin


Conjunto de reglas sintcticas y semnticas que definen su estructura y el significado
de sus elementos y expresiones. Se usan para crear programas de computadoras.

9.2. Tipos de lenguaje de programacin


Lenguaje mquina: Es aquel lenguaje cuyas instrucciones estn escritas en cdigo binario (0 o 1) directamente entendible por la computadora, es decir, un
programa escrito en este lenguaje no necesita traducirse para ser comprendido
y ejecutado.

Lenguaje de bajo nivel (Ensamblador): Es aquel lenguaje cuyas instrucciones


estn escritas en cdigos alfabticos conocidos como mnemotcnicos (add, sub,
div, etc.).

Este lenguaje es totalmente dependiente del ordenador, es decir, trabaja de forma


directa con los registros de memoria del ordenador, por esto que un programa escrito en
cdigo ensamblador solo funciona en un tipo de ordenador.

z2 3 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Lenguaje de alto nivel: Es aquel lenguaje cuyas instrucciones o sentencias estn


escritas con palabras similares a los lenguajes humanos (en general en ingls),
lo que facilita la escritura y comprensin del programa. Es un lenguaje independiente del ordenador, es decir, no depende del diseo del hardware. Entre los lenguajes de programacin de alto nivel tenemos: Pascal, Cobol, C, C++, Java, etc.).

9.3. Programa
Un programa es una secuencia de instrucciones u rdenes escritas en un lenguaje de
programacin dadas a la computadora para que interprete y ejecute una tarea concreta.
Un programa escrito en un lenguaje de alto nivel no puede ser ejecutado directamente por un ordenador, sino que debe ser traducido a lenguaje mquina, por lo que surgen
los siguientes programas:
Programa fuente: Es un programa escrito en lenguaje de alto nivel que no ha
sido traducido a cdigo mquina.
Programa objeto: Es el programa fuente que ha sido traducido por el compilador a cdigo mquina. An no es directamente ejecutable.
Programa ejecutable: Es un programa que ha sido traducido completamente a
cdigo mquina, ya es directamente ejecutable.

9.4. Compilador
Es un programa encargado de traducir los programas fuentes escrito en un lenguaje
de alto nivel a programas objetos escrito en lenguaje ensamblador o mquina
El proceso de compilacin consta de dos etapas fundamentales: el anlisis y la sntesis.

z2 3 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Cdigo Fuente

Anlisis Lxico

Anlisis Sintctico

Anlisis Semntico
Gestor de errores
Tabla de smbolos

Generacin del Cdigo

Cdigo Objeto

Figura 9.1. Etapas de un compilador

En la etapa de anlisis se controla la escritura correcta del cdigo fuente. Comprende


las siguientes fases:
Anlisis lxico: Lee el cdigo fuente y verifica si todas las expresiones pertenecen o no al lenguaje, para esto analiza smbolo por smbolo, indicando un token
por cada elemento reconocido y un error en caso contrario.
En esta fase, se identifica a las palabras clave, identificadoras, operadores, constantes
numricas, signos de puntuacin, llaves, parntesis, etc., como componentes lxicos.
Ejemplo:

suma

max

min

0.5


id

igual

id

mas

id

z2 3 3 z

por

num

separador

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Anlisis sintctico: Analiza la estructura de las expresiones en base a gramticas, identificando una expresin matemtica mal formada. Este anlisis se realiza
de forma jerrquica, construyendo rboles de derivacin. Ejemplo:
=
suma

max *
min 0.5
Anlisis semntico: Busca establecer que el cdigo fuente cumpla con la semntica solicitada por el compilador, para esto, verifica el rbol sintctico comprobando que una variable concuerde con el tipo de la expresin asignada y que
las variables estn declaradas antes de ser usadas. Ejemplo:
=
suma
real

max *
real
min 0.5
real
real

En la etapa de sntesis se procede a generar grupos de los componentes que conforman el programa para obtener una salida. Comprende las siguientes fases:
Generacin de cdigo intermedio: generar instrucciones para la mquina virtual genrica a partir del anlisis de las primeras tres fases.
Optimizacin de cdigo: transforma el cdigo intermedio en otro equivalente
que tenga menos lneas de cdigo, sea de menor tamao y tenga un menor tiempo de ejecucin.
Generacin de cdigo objeto: Genera el cdigo objeto que utiliza instrucciones
en cdigo mquina o cdigo ensamblador.
En el proceso de compilacin, tanto las fases de la etapa de anlisis como las fases de
la etapa de sntesis interactan con la tabla de smbolos y el gestor de errores.
z2 3 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Tabla de smbolos: es un diccionario con operaciones de insercin, borrado y


bsqueda, que almacena informacin sobre los smbolos que aparecen en el programa como: identificadores, etiquetas, tipos definidos por el usuario (arreglos,
registros, etc.), tipo de retorno, argumentos de una funcin, entre otros.
Gestor de errores: Detecta e informa los errores que se producen durante la
fase de anlisis, generando mensajes significativos.
En tiempo de compilacin: detecta errores lxicos (ortogrficos), sintcticos
(construcciones incorrectas) y semnticos (errores de tipo).
En tiempo de ejecucin: detecta errores de direccionamiento de vectores fuera de
rango, divisiones entre cero, etc.

9.4.1. Errores en la fase de compilacin


Errores fatales: Son raros. Indican errores internos del compilador. Cuando este
error ocurre, la compilacin se detiene inmediatamente.
Errores de sintaxis: Son errores tpicos de sintaxis. Finaliza la compilacin mostrndose una lista con todos los errores encontrados. Algunos errores suelen ser
consecuencia de otros cometidos con anterioridad. Si no se da solucin a estos
errores no se puede obtener un programa objeto y ni, como consecuencia, un
programa ejecutable.
Advertencias o avisos (warnings): Alerta sobre la existencia de lneas de cdigo
sospechosas que a pesar de no infringir ninguna regla sintctica, el compilador las
encuentra susceptibles de provocar un error. Con un warning la compilacin no se
detiene, por lo que se puede obtener un programa objeto y un programa ejecutable.

9.5. Intrprete
Se encarga de traducir lnea a lnea las sentencias de un programa escrito en lenguaje de alto nivel. La ejecucin de los programas compilados es ms rpida que la de los
interpretados, ya que el intrprete debe traducir mientras est en la fase de ejecucin

9.6. Paradigmas de programacin


Un paradigma de programacin define un conjunto de reglas, patrones y estilos de
programacin que son usados por un programador en la construccin de un programa
o subprograma.
z2 3 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Los lenguajes de programacin estn basados en uno o ms paradigmas Por ejemplo:


Smalltalk, Java, C++, entre otros lenguajes, estn basados en el paradigma orientado a
objetos. El lenguaje de programacin Scheme se basa en el paradigma funcional.

9.7. Clasificacin de los paradigmas de programacin


9.7.1. Paradigma imperativo
Describe la programacin en trminos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le
indican a la computadora cmo realizar una tarea.
El hardware de las computadoras est diseado para ejecutar cdigo de mquina, por
esto su implementacin se realiza de forma imperativa.

9.7.2. Paradigma declarativo


Se enfoca en describir las propiedades del problema y de la solucin buscada, especificando un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones, entre otros. La solucin es obtenida mediante mecanismos internos de control, no
se especifica cmo fue encontrada, solo se especifica a la computadora qu es lo que se
desea obtener o qu es lo que est buscando.

9.7.3. Paradigma estructurado


Este paradigma se basa en el diseo descendente, esto es, se plantea una operacin
como un todo y se divide en segmentos ms sencillos o de menor complejidad, facilitando as el desarrollo de un programa; una vez terminados todos los segmentos del
programa se procede a unirlos. Los programas son controlados a travs de tres estructuras: secuencial, selectiva y repetitiva (iterativa), que permite una mejor comprensin
de la programacin.

9.7.4. Paradigma funcional


Se basa en la definicin de funciones matemticas y evitando declarar y cambiar
datos. Evita efectos laterales, pues no existe la asignacin. Ejemplo: LISP, Scheme,
Haskell.
z2 3 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

9.7.5. Paradigma lgico


Basada en la definicin de reglas lgicas. Resuelve los problemas construyendo un
motor de inferencias lgicas que responde a preguntas planteadas por el sistema. Ejemplo: Prolog, Mercury.

9.7.6. Paradigma orientado a objetos


Basado en la creacin de objetos que representan situaciones del mundo real y que
interactan intercambiando mensaje. Emplea varias tcnicas, como: herencia, abstraccin, polimorfismo y encapsulamiento. Su uso se populariz a principios de la dcada de
los aos 1990. Ejemplos: C++, Java.

z2 3 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Texto pa ra come n t a r 1
Nativos digitales y Padres 2.0: La factura digital
de tener pasado en la Red
En esta poca del ao cuando el cole finaliza muchos padres asistimos con orgullo
a las fiestas de fin de curso y otras actividades similares que ponen fin al ao escolar.
Muchos padres, plenamente conscientes del peso que tiene Internet en nuestras vidas y
de las tendencias tecnolgicas que van a condicionar su futuro, vemos con preocupacin
la ligereza y frecuencia con la que los progenitores vuelcan sin control las hazaas de sus
peques con las finalidades vinculadas a la difusin entre sus conocidos. Los ms prudentes
utilizan enlaces a carpetas de servicios de almacenamiento en nube como Dropbox y los
menos los cuelgan en sus canales propios de YouTube totalmente en abierto. Adems,
quienes somos conscientes de la problemtica existente tenemos que sufrir agresiones
virtuales al ver que a pesar de nuestros esfuerzos por evitar este tipo de situaciones, nuestros menores aparecen acompaando a otros en actividades como fiestas de colegio o
celebraciones de cumpleaos.
Aunque este tema lo aborda de forma completa el artculo Festivales de fin de curso: Debe permitirse hacer fotos?, lo ms significativo, como coment Ricard Martnez
hace unas semanas en el III Congreso Nacional de la Asociacin de Profesionales de
Privacidad (APEP), son los comentarios de muchos padres al pie del mismo. En ellos se
mezclan, en muchos casos, el enfado por las medidas a tomar y lo ridcula que les suena
la preocupacin de los autores.
Quiz, lo que muchos padres no son capaces de ver o entender es la importancia o
trascendencia que tienen los hechos que ahora cuelgan en la Red para sus hijos... en
el futuro. En un mundo donde el crecimiento de la tecnologa es brutal, donde la incorporacin de la innovacin tiene cada vez ciclos ms cortos de penetracin, es complejo
poder vaticinar qu importancia pueden tener los datos del hoy en el maana. Aunque
Gemma Galdon, sociloga y participante en el III Congreso APEP, ha colgado un excelente post titulado: La memoria obligatoria, planteando este nuevo escenario como un
elemento que alterar nuestro concepto de libertad, creo necesario como experto en la
materia intentar hacer ver de qu estamos hablando y cules son las cuestiones que nos
preocupan a los profesionales que entendemos de esto y que podemos predecir, por el
anlisis de las tendencias tecnolgicas en curso, cules son las posibles situaciones que
se plantearn en este siglo XXI. Para ello, he credo adecuado usar un relato futurista, al
igual que ya hice en el post El tsunami tecnolgico que no pudimos evitar, en el ao

z2 3 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

2012, para contar la alta dependencia tecnolgica en nuestro da a da y por qu la


seguridad es una asignatura pendiente. Aqu comienza el relato.

Ao 2031. Conversacin entre padre e hijo.


Qu tal va tu bsqueda de trabajo, Pedro?, pregunt su padre.
Pues no muy bien, Pap. No s qu est pasando, pero en las diferentes ofertas
online a las que me voy apuntando, en cuestin de minutos aparece la respuesta descartando mi candidatura, respondi el hijo.
Cmo dices? En cuestin de minutos? No te llaman ni siquiera para hacer la
entrevista?, interrog de nuevo el padre.
Claro, pap. Ahora los departamentos de Recursos Humanos tienen algoritmos de
seleccin y scoring automticos que les permiten evaluar y ponderar las caractersticas del
candidato. Aprovechan las tecnologas de big data y la cantidad de informacin colgada
en la Red para realizar en tiempo real un procesado de todo eso y construyen un timeline
de los diferentes solicitantes. Luego aplican criterios de seleccin segn ponderaciones
que asignan a las actividades que el candidato ha ido evidenciando a lo largo de su vida
(pertenencia a asociaciones, actividades deportivas, implicaciones polticas, etc.). Todo est
en la Red y los algoritmos son capaces de pronosticar qu capacidades, conocimientos,
habilidades y aptitudes podra tener el candidato, explico Pedro a su padre.
Desconoca que hubiramos llegado a este nivel de automatizacin, respondi
el padre que qued pensativo al conocer los nuevos mtodos que se estaban aplicando.
En ese momento, el hijo pregunt al padre.
Por qu lo hacais?.
El qu?- respondi su padre.
Colgar toda nuestra vida. Era necesario? Nunca he entendido por qu tienen que
conocer mis compaeros de colegio que no saba nadar a los 3 aos, que me caa de
la bicicleta a los 5, que bailaba tan mal cuando era pequeo en las diferentes actuaciones del colegio. Esos son recuerdos de familia, pero que deberan haber quedado para
nosotros y como mucho, nuestros conocidos ms prximos. Ahora pongo mi nombre en
Internet y me salen pginas que son capaces de localizar todo mi pasado y reconstruir mi
vida, espet el hijo.
Todo aquello era nuevo. Cuando t naciste, YouTube tena pocos aos y cualquier
cosa que hacas era fcil subirla y compartirla con tus abuelos, primos y dems familia.
Nos gustaba mostrar cmo crecas, respondi su padre.
Pero Pap, todo accesible sin restricciones a nadie, todo colgado y visible para
cualquier internauta en la Red?, plante de nuevo el hijo.

z2 3 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Cmo iba a saber que todo eso no quedaba en el olvido? No tena muchas visitas
y eran cosas que ponamos para que las vieran en aquellos momentos solo nosotros,
respondi de nuevo el padre.
Pero eran indexables y estaban en la memoria de Internet para siempre, pap. Quedaban fuera de vuestro control. No podas garantizar que solo estuvieran en los sitios en
las que lo subas porque los contenidos una vez son pblicos, ya dejan de poderse limitar.
ramos muy ignorantes, hijo. Ahora nos llamaran analfabetos digitales y en aquellas
pocas de explosin de las redes sociales pareca que si no estabas metiendo tu vida en
Facebook o contando lo que hacas en Twitter, eras un atrasado tecnolgico.
Esta conversacin ficticia, hoy en el ao 2015 no tiene todava mucho sentido, aunque
ya sabemos que los procesos de seleccin de personal se ven influenciados por las redes
sociales. Sin embargo, la memoria eterna y la indexacin continua de la Red obligan a
pensar no en el ahora, sino en lo que podr suceder en el futuro. Dado que no sabemos
los rumbos que pueden mover a las nuevas tecnologas ni cmo los derechos pasarn
a ser regulados, es cuanto menos temerario volcar demasiado en un entorno inestable
que no sabemos qu consecuencias puede acarrear. Como padres, somos garantes de
la educacin de nuestros hijos y debemos preservar su intimidad y dignidad como un
bien preciado dado que la reputacin (online) ya es un valor en alza que cada vez ms
condicionar lo que son o pueden llegar a ser nuestros hijos en el futuro.
Si te parece descabellado o exagerado el relato, plantate slo como se daban prstamos bancarios hace 10 aos. Para poderlo recordar puedes ver series como Cuntame
cmo pas, donde se relata la importancia del director de oficina en algunos de los
momentos ms importantes de algunas familias a la hora de otorgar prstamos para cosas
importantes y cmo se hace ahora ese proceso. El scoring bancario es una realidad, pero
cuando realmente el potencial del big data y las tecnologas cognitivas sean una realidad
cotidiana, de verdad crees que querrs haber colgado tanta informacin en la Red?
Por eso es loable y necesario movimientos y ONG como Padres 2.0 que intentan mitigar
el desconocimiento de los tutores y padres en estas materias, para evitar pagar facturas
como las comentadas. La ignorancia tecnolgica puede ser un elemento discriminador
en el futuro y por eso nos toca a todos hacer ver la cara oculta del uso de los nuevos
servicios que seducen al usuario con sus cantos de sirena, para atraparlos en una tela de
araa de la que es difcil salir pese a existir el derecho al olvido y que nunca sabremos
en qu momento podr acabar devorndonos.
Apuntes de seguridad de la informacin
Blog personal de Javier Cao Avellaneda
LOPD, Reflexiones sobre seguridad 11/07/2015

z2 4 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Te xto pa ra come n t a r 2
CONTROL DE LOS DATOS DEL GENOMA1
Tecnologas y aplicaciones emergentes
de base de datos
La biologa engloba una enorme variedad de informacin. Las ciencias medioambientales nos ofrecen una visin del modo en que las especies viven e interactan en un
mundo repleto de fenmenos naturales.
La gentica ha emergido como un campo ideal para la aplicacin de la tecnologa de la
informacin. En un sentido amplio, puede considerarse como la construccin de modelos
de datos basados en la informacin sobre los genes (considerados como las unidades
fundamentales de la herencia) y la bsqueda de relaciones entre esa informacin. La gentica puede dividirse en tres ramas: mendeliana, molecular y poblacional. La gentica
mendeliana es el estudio de la transmisin de los rasgos entre las distintas generaciones.
La gentica molecular se encarga de analizar la estructura qumica y la funcin de los
genes a nivel molecular. Por ltimo, la gentica poblacional observa el modo en que la
informacin gentica vara entre los distintos grupos de organismos.
La gentica molecular ofrece un aspecto mucho ms detallado de la informacin
gentica al permitir que los investigadores examinen la composicin, la estructura y el
funcionamiento de los genes. Sus orgenes pueden establecerse en dos descubrimientos
importantes. El primero ocurri en 1869 cuando Friedrich Miescher descubri el ncleo
y sus componentes primarios, el ADN (cido desoxorribonucleico). En investigaciones
posteriores se determin que el ADN y otro compuesto relacionado, el ARN (cido ribonucleico), formaban parte de los nucletidos (azcar, fosforo y base que, combinados,
formaban el cido nucleico) enlazados en polmeros largos mediante el azcar y el fosfato.
El segundo descubrimiento fue la demostracin de Oswald Avery, en 1944, de que el ADN
era la sustancia molecular encargada de transportar la informacin gentica. A partir de
entonces, los genes fueron considerados como cadenas de cidos nucleicos alineados en
cromosomas y que ofrecen tres funciones principales: (1) duplicar la informacin gentica
entre las generaciones, (2) proporcionar cianotipos para la creacin de polipptidos y (3)
acumular los cambios que permiten la evolucin. Watson y Crick descubrieron la estructura
1 Ramez E. y Navathe (2007). Fundamentos de sistemas de base de datos. Quinta Edicin. Madrid.
Editorial Pearson. pp 889-893

z2 4 1 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

de doble hlice del ADN en 1953, lo cual mostro una nueva investigacin de la gentica
molecular. El descubrimiento del ADN y de su estructura es considerado como el trabajo
biolgico ms importante de los ltimos 100 aos, y el nuevo campo que se abri puede
ser la frontera cientfica de los prximos 100 aos.

Caractersticas de los datos biolgicos


Los datos biolgicos exhiben muchas caractersticas especiales que hacen que su control
suponga un gran problema. Por ejemplo, las nuevas tcnicas experimentales permiten la
obtencin de ingentes cantidades de datos biolgicos a partir de un nico experimento.
El desarrollo de los microarrays de DNA de alta densidad, u oligonucletidos, en la
dcada de los 90 del pasado siglo, ha hecho surgir un nuevo nivel de sensibilidad y especificidad en la monitorizacin a gran escala de la expresin del gen. Un experimento
con un microarray ADN (gene-chip) puede obtener datos de cientos de genes simultneamente, lo que dificulta enormemente al investigador la interpretacin de esos datos
y la formacin de conclusiones acerca de las funciones de los mismos. Estos microarray
son matrices bidimensionales en las que cada elemento registra el nivel de expresin de
un gen particular de un experimento concreto. El objetivo es localizar los genes que han
cambiado de forma ms significativa entre el dato de ejemplo y el de control en la forma
de sobreexpresin y subexpresion.
Empezaremos resumiendo las caractersticas relacionadas con la informacin biolgica y nos centraremos en un campo multidisciplinar llamado bioinformtica, la cual se
dirige al control de la informacin gentica, centrndose especialmente en el ADN y en
el anlisis de las secuencias de las protenas. Para aparejar todos los tipos de informacin
biolgica, es preciso avanzar en un modelado, almacenamiento, recuperacin y administracin. Adems, las aplicaciones de la bioinformtica se extienden al estudio de las
mutaciones y las enfermedades relacionadas, los efectos de las drogas en los genes, las
rutas bioqumicas y las protenas, las investigaciones antropolgicas de los patrones de
migracin de las tribus y los tratamientos teraputicos, por citar algunas.
Caracterstica 1, los datos biolgicos son altamente complejos en comparacin con
la mayora de otros dominios o aplicaciones.
Caracterstica 2, la cantidad y el rango de variacin de los datos son grandes.
Caracterstica 3, los esquemas de las bases de datos biolgicas cambian rpidamente.
Caracterstica 4, las representaciones del mismo dato realizadas por distintos bilogos
podran ser diferentes (incluso usando el mismo sistema).
Caracterstica 5, la mayora de los usuarios de los datos biolgicos no necesitan
acceso de escritura a la base de datos.
Caracterstica 6, la mayora de bilogos no tienen constancia de la estructura interna
de la base de datos ni del diseo del esquema.

z2 4 2 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

Caracterstica 7, el contexto de los datos aade significado sobre su uso en aplicaciones biolgicas.
Caracterstica 8, la definicin y representacin de consultas complejas es extremadamente importante para los bilogos.
Caracterstica 9, los usuarios de la informacin biolgica necesitan acceder con
frecuencia a los valores antiguos de los datos, particularmente cuando quieren
verificar los resultados anteriores.

El proyecto del genoma humano


El trmino genoma est definido como la informacin gentica total que puede obtenerse acerca de una entidad. El genoma humano, por ejemplo, suele hacer referencia
al conjunto completo de genes necesarios para crear un ser humano (ms de 25000
diseminados por ms de 23 pares de cromosomas y una cantidad estimada de 3 a 4
mil millones de nucletidos). El objetivo del HGP (proyecto del genoma humano, Human
Genome Project), ha sido conseguir la secuencia completa (el orden de las bases) de estos
nucletidos. En junio del ao 2000, se anunci un primer borrador de toda la secuencia
del genoma humano, estudio que apareci publicado en el ao 2001.
El genoma est completo en un 99.9% de fiabilidad. De forma aislada, la secuencia
del ADN humano no resulta particularmente til. Sin embargo, esta secuencia puede
combinarse con otros datos y usarse como una potente herramienta que ayude en temas
relacionados con la gentica, bioqumica, medicina, antropologa y agricultura. En las
bases de dato existentes sobre el genoma, el inters ha estado puesto en la curating (o
recopilacin con algn examen inicial y control de calidad) y en la clasificacin de la
informacin referente a los datos de la secuencia del genoma.

z2 4 3 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

AUTOEVALUACIN N 5
1. Leer el sueldo de tres empleados y aplicarles un aumento del 10%, 12% y 15%
respectivamente. Calcular el nuevo sueldo de cada empleado.
2. Dada las siguientes ecuaciones:
a = b + 2c + 3m
c = a + 3b + n
z = m + n + 5a
Disee un algoritmo que determine los valores de m y z conociendo los
valores de a, b, y c.
3. Conociendo el valor de los catetos de un tringulo rectngulo calcular su hipotenusa aplicando el teorema de Pitgoras, calcular adems el permetro y el
rea del tringulo.
4. Una persona tiene 2 recipientes llenos de gasolina cuyas capacidades estn
dadas en galones y pies cbicos, respectivamente. Disee un pseudocdigo que
determine la cantidad total de gasolina en metros cbicos, pies cbicos y yardas cbicas. Considere los siguientes factores de conversin:
1 pie cbico = 0.0283 metros cbicos
1 galn = 3.79 litros
1 metro cbico = 1000 litros
1 yarda cbica = 27 pies cbicos
5. Disee un pseudocdigo que calcule las HH:MM:SS transcurridos entre dos
tiempos. Ambos tiempos vienen dados en el formato HH:MM:SS.
6. Disee un pseudocdigo que lea la hora actual del da HH:MM:SS y determine
cuntas horas, minutos y segundos restan para culminar el da.
7. El sueldo neto de un vendedor se calcula como la suma de un sueldo bsico ms
el 12% del monto total que ha vendido. Disee un pseudocdigo que determine
el sueldo neto de un vendedor sabiendo que hizo tres ventas en el mes.
z2 4 4 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

8. La nota final de un curso de computacin se obtiene mediante las siguientes


frmulas:
Pf = (Ep + 2 Ef + Pp) / 4
Ef = (Pe + Py) / 2
Pp = (P1 + P2) / 2
Donde:
Pf : Promedio final
Ep : Examen parcial
Ef : Examen final
Pp : Promedio de prcticas
Pe : Prueba escrita
Py : Proyecto
P1 : Prctica 1
P2 : Prctica 2

Segn reglamento la nota mnima aprobatoria es 10.5. Construir un pseudocdigo que permita calcular la nota mnima en la prueba escrita (Pe) que un
determinado alumno debe tener para aprobar el curso.

9. Elaborar un pseudocdigo que permita convertir un volumen dado en litros a


sus equivalentes en mililitros, hectolitro, pie cbico, pinta, galones. Se sabe
que:
1 litro = 1000 mililitros
1 hectolitro = 100 litros
1 pie cbico = 28.32 litros
z2 4 5 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

1 onza fluida = 29.57 mililitro


1 pinta = 16 onza fluida
1 galn = 3.785 litros
10. Elaborar un pseudocdigo que dado el largo y el ancho de una propiedad, permita determinar cuntos metros de alambre sern necesarios para colocar al
permetro 5 hilos de alambrado.
11. Dado un nmero de tres cifras, elabore un pseudocdigo que permita obtener
el nmero al revs. As, si se lee 235 el pseudocdigo debe de mostrar el 532.
12. Calcular el permetro de una circunferencia dado su radio. Luego calcule el
permetro de la misma si se reduce al 50%, y el permetro de la misma si se
reduce al 25% con respecto al resultado anterior.
13. Disee un pseudocdigo que lea un nmero de 4 dgitos luego intercambie el
primer digito con el ltimo dgito.
14. Una empresa constructora ofrece departamentos al crdito. Para adquirir un
departamento se abona una cuota inicial del 12% del coste del departamento
y se determina la cantidad de aos que se financia. Al monto financiado se le
aplica un inters del 10% anual. Disear un pseudocdigo que calcule el monto
mensual que se paga por un departamento.
15. En un sistema de numeracin inglesa la estatura de una persona est dada por
la suma de los pies y pulgadas que tiene. As, por ejemplo, una persona puede
medir 34. Construir un pseudocdigo que exprese una medida dada en pies y
pulgadas a metros. Se sabe que: 1 pie = 12 pulgadas, 1 pulgada = 2.54 cm y 1
metro = 100 cm.
16. Evaluar la siguiente funcin:

x 2

x / 6
=
f(
x)
x
x 3 + 5

si
si
si
si

( x Mod 4 ) = 0
( x Mod 4 ) = 1
( x Mod 4 ) = 2
( x Mod 4 ) = 3

17. Escriba un programa que lea tres letras y compruebe si son iguales. Por
ejemplo:
Si la entrada fuese B B B, la salida debera ser hay tres letras iguales a B.
Si la entrada fuese B C B, la salida debera ser hay dos letras iguales a B.
Si la entrada fuese B C D, la salida debera ser no hay letras iguales.
z2 4 6 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

18. Escribir un programa para hallar el valor absoluto de un nmero:

0,

si

x=0

x =

x,

si

x > 0

-x,

si

x < 0

Por ejemplo:
De -7 su valor absoluto es: -(-7) = 7 (cuando es negativo se cambia de
signo).
De 7 su valor absoluto es: (7) = 7 (cuando es positivo nos da el mismo
nmero).
19. Escribir un programa para leer dos nmeros a, b y obtenga el valor numrico
de la funcin.
2a + b,

si

a2 - b2 < 0

f (x)

a2 - 2b,

si

a2 - b2 = 0

a + b,

si

a2 - b2 > 0

20. Pseudocdigo que determine si un nmero es divisible por 5. Un nmero es


divisible por 5 cuando acaba en cero 0 en 5.
21. Mostrar el nombre correspondiente a un nmero de mes y adems mostrar la
estacin al cual pertenece. Considerar 3 meses por estacin.
Verano

enero, febrero, marzo

Otoo

abril, mayo, junio

Invierno

julio, agosto, setiembre

Primavera

octubre, noviembre, diciembre.

z2 4 7 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

22. Una papelera ha puesto en oferta la venta al por mayor (en cientos) de papel
bond de acuerdo a los siguientes criterios:
Para los primeros 5 cientos, se hace un descuento del 10% por cada ciento.
Para los cientos de exceso sobre 5, se hace un descuento del 15% por cada
ciento.

Disee un algoritmo que determine el importe bruto, el importe del descuento


y el importe a pagar por una compra de papel bond.

23. Ingresar cuatro valores por el teclado a, b, c, d. Se desea redondear a la centena ms prxima y visualizar la salida. Por ejemplo:
a = 2, b = 3, c = 6 y d = 2 entonces n = 2362 el resultado redondeado ser
2400.
Si n = 2342 el resultado redondeado ser 2300
Si n = 2962 el resultado redondeado ser 3000
24. Pseudocdigo que lea tres nmeros y diga si la suma de los dos primeros nmeros es igual al tercer nmero.
25. Una empresa de bienes races ofrece casas de inters social bajo las siguientes condiciones: si el ingreso mensual del comprador es menos de S/. 2250 la
cuota inicial ser igual al 15% del costo de la casa y el resto se distribuir en
120 cuotas mensuales. Si el ingreso mensual del comprador es mayor o igual
a S/. 2250 la cuota inicial ser igual al 30% del coste de la casa y el resto se
distribuir en 75 cuotas mensuales. Disee un algoritmo que permita determinar cunto debe pagar un comprador por concepto de cuota inicial y cunto por
cada cuota mensual.
26. En una escuela la colegiatura de los alumnos se determina segn el nmero de
materias que cursan. El coste de todas las materias es el mismo. Se ha establecido un programa para estimular a los alumnos, el cual consiste en lo siguiente:
si el promedio obtenido por un alumno en el ltimo periodo es mayor o igual
que 15, se le har un descuento del 30% sobre la colegiatura y no se le cobrar
impuesto; si el promedio obtenido es menor que 15 deber pagar la colegiatura
completa, la cual incluye el 10% de impuesto. Obtener cunto debe pagar un
alumno.
27. Una persona desea iniciar un negocio, para lo cual piensa verificar cunto dinero le prestar el banco por hipotecar su casa. Tiene una cuenta bancaria, pero
no quiere disponer de ella a menos que el monto por hipotecar su casa sea muy
pequeo. Si el monto de la hipoteca es menor que $30,000 entonces invertir
el 50% de la inversin total y un socio invertir el otro 50%. Si el monto de la
z2 4 8 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

hipoteca es de $30,000 o ms, entonces invertir el monto total de la hipoteca


y el resto del dinero que se necesite para cubrir la inversin total se repartir a
partes iguales entre el socio y l.
28. Elaborar un algoritmo que tenga como entrada los valores de dos ngulos,
expresados en grados, minutos y segundos, obtenga el valor de su suma de la
misma forma. Se supone que las entradas son correctas, en el sentido de que
cada ngulo est expresado como tres nmeros enteros, en los rangos respectivos (0 - 360), (0 - 60) y (0 - 60). La salida debe estar expresada de la misma
manera.
29. El Ministerio de Agricultura ha distribuido la siembra de 3 productos en terrenos con ms de 1000 hectreas de la siguiente manera:

Producto

Terreno (%)

Papa

50

Zanahoria

30

Camote

20

Si la superficie del terreno es menor o igual 1000 hectreas, se deber sembrar


de la siguiente manera:
Producto

Terreno (%)

Papa

60

Zanahoria

15

Camote

25

Se desea saber la cantidad de toneladas de papa, zanahoria y camote que se


espera cosechar, si se sabe que se obtienen 2 toneladas de papa, zanahoria y
camote en 10, 8 y 9 hectreas, respectivamente.

30. Una empresa elctrica dispone de la siguiente tabla de costes:


Cd. de tarifa

Descripcin

Tarifa 1 KW/hora (S/.)

Porcentaje (%)

Domstico

35.00

1.5

Industrial

80.00

2.5

Comercial

100.00

z2 4 9 z

F U N D A M E N T O S D E C I E N C I A S D E L A C O M P U TA C I N

Adems se dispone del cobro de un impuesto especial que est dado por los
porcentajes mencionados en el cuadro anterior, as como el cobro por arbitrios
municipales:
Alumbrado pblico

4.5%

Limpieza pblica

10%

Parques y jardines

2.5%

31. Calcular el coste del servicio de mudanza, de acuerdo con la distancia entre el
punto de partida y de llegada, el tipo de carga y al nmero de viajes ida y vuelta.
Para calcular el coste se debe tener en cuenta:
a) Si la distancia por cada viaje es mayor o igual a 5 km, se cobrar S/. 5.00 por
kilmetro, de lo contrario se cobrar el monto bsico que ser igual a S/. 25.00.
b) La carga puede ser frgil o no frgil. Solo si la carga es frgil al monto calculado
anteriormente se le aumentar 20%.
c) El monto resultante de acuerdo con la distancia y al tipo de carga se multiplicar por el nmero de viajes.
32. Una empresa calcula las bonificaciones de sus empleados teniendo en cuenta
lo siguiente: si el sueldo del empleado es menor a S/.750, recibe una bonificacin del 15% del sueldo, si el sueldo est entre S/. 750 y S/. 1200, recibe
una bonificacin del 10% y si el sueldo es superior a los S/. 1200, recibe una
bonificacin del 7%.

z2 5 0 z

FERMN PREZ / LUZA MONTERO / ALMGUER MARTNEZ / DAZ ROJAS

BIBLIOGRAFA
Connolly, Thomas and Begg, Carolyn (2008). Database Solutions. 5ta. Ed. Espaa. Addison Wesley.
Date, J. (1995).

An Introduction to Data Base Systems. 5ta. Ed. USA. Addison Wesley.

Elmasri, Ramez y Shamkant Navathe (1997).

Sistemas de bases de datos. Conceptos fundamentales. Segunda Edicin


Addison-Wesley Iberoamericana.

Korth, H. y otros (2002).

Fundamentos de base de datos. 5ta. Ed. Espaa. MacGraw-Hill.

Luque I. y Otros (2002).

Bases de datos -desde Chen hasta Codd con Oracle. Espaa. Alfaomega.

Martin, James. (1975).

Computer Data Base Organization. USA. Prentice Hall.

Kroenke, D. (2003).

Procesamiento de base de datos. Fundamentos, diseo e implementacin.


8va. Edicin, Mxico. Pearson Educacin.

Finkelstein, C. (1992).

Strategic Systems Development. Sydney:Addison-Wesley.

Booch, G., Rumbaugh, J. y Jacobson, I. (1999). El lenguaje unificado de modelado. Madrid: Addison Wesley.

z2 5 1 z