of 300
7/27/2019 Informe Final_leon Zarate
1/300
I N D I C EPg.
INDICE 1
RESUMEN 5
INTRODUCCION 6
MARCO TEORICO 9
MATERIALES Y METODOS 11
RESULTADOS 12
CAPTULO I
1. HARDWARE Y SOFTWARE. 13
1.1 Hardware 13
1.2 Software. 33
7/27/2019 Informe Final_leon Zarate
2/300
CAPITULO III
3. PROGRAMACIN ESTRUCTURADA. 54
3.1 Secuenciales 54
3.2 Selectivas 55
3.3 Repetitivas. 58
3.4 Relacin de ejercicios 62
CAPTULO IV
4. ESTRUCTURA DE DATOS. 65
4.1 Tipos de datos 65
4.2 Estructura de datos 68
4.2.1Estaticas. 68
4.2.2 Dinmicas 102
4.3 Relacin de Ejercicios. 133
7/27/2019 Informe Final_leon Zarate
3/300
CAPTULO VII
7. SOFTWARE DE PROGRAMACIN MATLAB. 168
7.1 Introduccin. 168
7.2 Operadores 169
7.3 Variables. 171
7.4 Expresiones. 171
7.5 Matlab y el algebra lineal. 172
7.6 Comandos de programacin. 192
7.7 Grficos 2-D. 199
7.8 Grficos 3-D. 204
7.9 Relacin de ejercicios. 212
CAPTULO VIII
8. LENGUAJE DE PROGRAMACIN C++. 220
7/27/2019 Informe Final_leon Zarate
4/300
8.13 Cadenas de caracteres en C++. 278
8.14 Grficos en C++. 282
8.15 Relacin de ejercicios. 287
DISCUSION 297
REFERENCIAS BIBLIOGRAFICAS 298
APENDICE 300
Diagrama de las estructuras de datos 300
7/27/2019 Informe Final_leon Zarate
5/300
RESUMEN
En este trabajo de investigacin se ha elaborado un texto de naturaleza terico-prctico
que expone de forma sistemtica y detallada, las definiciones y ejemplos ms importantes de
las Estructuras de datos, Herramientas de programacin, Ordenamiento y bsqueda de datos,
Software Matlab y el Lenguaje de programacin C++, permitiendo el dictado de la asignatura
de programacin de computadoras correspondiente al cuarto ciclo acadmico del currculo de
estudios de la Escuela profesional de Matemtica de la Facultad de Ciencias Naturales y
Matemtica de la Universidad Nacional del Callao.
El texto Programacin de computadoras y sus aplicaciones procura hacer
comprender la asignatura en referencia y as mismo pretende preparar al estudiante para que
emprenda con xito el estudio de asignaturas de ciclos posteriores, tales como: Investigacin
Operativa I y II, Matemtica Computacional I, II y III, Mtodos matemticos y los Cursos de
7/27/2019 Informe Final_leon Zarate
6/300
INTRODUCCION
Con el avance de la ciencia y la tecnologa nos enfrentamos a una manera diferente de
ensear las matemticas y sus aplicaciones.
La asignatura de programacin de computadoras proporciona las herramientas
necesarias para la utilizacin de la computadora como un complemento para el estudio de las
ciencias e ingeniera.
No podemos estar al margen del avance de la tecnologa informtica que se ha
convertido en una herramienta de investigacin para la resolucin de complejos problemas
planteados en la realizacin y aplicacin de modelos matemticos de Ingeniera u otras
disciplinas. Por tanto es necesario contar con un texto que nos permita utilizar de forma
eficiente sus aplicaciones a la matemtica e ingeniera.
Es muy limitado la bibliografa, especialmente en textos que logren compilar y
7/27/2019 Informe Final_leon Zarate
7/300
El presente trabajo constituye una investigacin de gabinete (bsqueda, recopilacin,
ordenacin y centralizacin de material bibliogrfico). Es necesario indicar que con el
presente texto no se pretende agotar un tema bastante extenso, complejo y que guarda relacin
con otras reas tanto en ciencia e ingenieras, por el contrario se desea exponer de manera
pragmtica y accesible los temas contenidos en el syllabus de Programacin de
Computadoras para que sirva de gua y referencia preferencialmente para los estudiantes
universitarios de la especialidad matemtica y afines.
OBJETIVO GENERAL
Desarrollar - preparar, redactar y editar - un texto de Programacin de Computadoras
y sus aplicaciones en el que se compile informacin tcnica y cientfica existente, que sirva
de gua y referencia bibliogrfica para los estudiantes de ciencias e ingenieras principalmente
de la Universidad Nacional del Callao.
7/27/2019 Informe Final_leon Zarate
8/300
La informacin que se recopilar, est frecuentemente dispersa en libros, revistas y
manuales, entre otros, de procedencia nacional e internacional. Se compilar despus de una
exhaustiva revisin y anlisis del material utilizado, es all donde radica la importancia del
presente trabajo, porque permitir generar una fuente bibliogrfica de constante consulta de
los estudiantes de matemtica y ramas afines.
El Texto: Programacin de computadoras y sus aplicaciones permitir cubrir parte
de la brecha existente por la falta de bibliografa aplicada, donde se incluyan los nuevos
avances de la tecnologa informtica.
7/27/2019 Informe Final_leon Zarate
9/300
MARCO TEORICO
Existen pocos textos que logren compilar y tratar todos los temas relacionados con la
programacin acadmica del curso de programacin de computadoras, se encuentra
bibliografa que ponen nfasis en algunos temas y en otros no.
Todos los captulos en su integridad contienen material aprovechable (teora-practica)
para los estudiantes de ciencias e ingenieras.
Los temas ms importantes acorde con la programacin acadmica y que se trataran en
este texto son los siguientes:
PROGRAMACION ESTRUCTURADA
La programacin estructurada es una forma de escribir programas de ordenador de
forma clara. Para ello utiliza nicamente tres estructuras: secuencia, seleccin e iteracin;
7/27/2019 Informe Final_leon Zarate
10/300
TEORIA DE GRAFOS
La teora de grafos estudia las propiedades de los grafos (tambin llamadas grficas).
Un grafo es un conjunto, no vaco, de objetos llamados vrtices (o nodos) y una seleccin de
pares de vrtices, llamados aristas que pueden ser orientados o no. Tpicamente, un grafo se
representa mediante una serie de puntos (los vrtices) conectados por lneas (las aristas).
SOFTWARE MATLAB
MATLAB es un software desarrollado en un ambiente de algoritmo de interaccin,
visualizacin y anlisis de datos.Con esta herramienta se puede resolver problemas
computacionales tcnicos ms rpido que con los tradicionales lenguajes de programacin,
tales como: C, C++ y Fortran.
Es usado para una gran variedad de clculos cientficos y de ingeniera, especialmente
para control automtico y diseo de procesos adems de otra variedad de aplicaciones tales
7/27/2019 Informe Final_leon Zarate
11/300
MATERIALES Y MTODOS
MATERIALES
El texto PROGRAMACION DE COMPUTADORAS Y SUS APLICACIONES no
est sujeto a experimento de laboratorio, sin embargo se ha desarrollado sobre la base de
textos, que se propone en la referencia: Nakamura Choichiro(2000), Stroustrup Bjarne(2002),
Delores Etter(1998), software especializado y experiencias propias en el dictado de la
asignatura Programacin de Computadoras.
Adems tambin se ha usado material de tipo tcnico en el diseo e impresin de
informes trimestrales y final. Toda la informacin ha sido procesada en una computadora
personal, usando Microsoft Word y en concordancia con las directivas vigentes, mediante el
cual se han editado y elaborado los esquemas y dibujos relacionados a los diversos temas
7/27/2019 Informe Final_leon Zarate
12/300
RESULTADOS
El resultado del presente trabajo de investigacin es el texto:
PROGRAMACION DE COMPUTADORAS Y SUS APLICACIONES cuyo contenido se
expone en ocho captulos distribuidos en el orden sealado en el ndice y que se presenta en
las paginas siguientes.
En cada captulo se exponen, en forma clara y directa, los conceptos y leyes
asociados a los temas tratados, a fin de que el estudiante pueda tener una buena referencia
para comprender la solucin de los problemas que se presentan al final del captulo.
Por otro se han elaborado algunas figuras de diagramas de flujo con el fin de
facilitar la comprensin de los programas desarrollados y luego poder codificarlo en el
Lenguaje de programacin C++.
Adicionalmente se disearon por cada captulo una relacin de ejercicios que
7/27/2019 Informe Final_leon Zarate
13/300
CAPITULO I
HARDWARE Y SOFTWARE
1.1 HARDWARE
QU ES UNA COMPUTADORA?
Figura 1.1 Computadora
7/27/2019 Informe Final_leon Zarate
14/300
Lic. Elmer Alberto Len Zrate
Definicin 1.2 El ordenador es una mquina de propsito general que gracias a su
velocidad recibe todo tipo de informacin, la procesa o sea la ordena y una vez procesada la
emite ya digerida para su interpretacin.
Definicin 1.3 El ordenador es un conjunto de circuitos electrnicos comprimidos en una
pastilla de silicio (llamada Chip), siendo su funcin fundamental la de encausar las seales
electromagnticas de un dispositivo a otro.
Definicin 1.4 El ordenador es en realidad el MICROPROCESADOR, o sea un
conmutador, es el cerebro y razn de ser del ente denominado computadora. Todo lo dems
que le rodea y se le es conectado no es ms que dispositivos mediante los cuales el cerebro se
alimenta de energa e interacta con el medio ambiente y por lo tanto con nosotros los
usuarios.
7/27/2019 Informe Final_leon Zarate
15/300
CAPITULO I: Hardware y Software
La unidad fundamental de trabajo de este reloj es la cantidad de instrucciones que el
microprocesador puede ejecutar en un segundo. As uno de 12 Mhz. Puede realizar 12
millones de ciclos por segundo.
Figura 1.2 Unidad Central de proceso
7/27/2019 Informe Final_leon Zarate
16/300
Lic. Elmer Alberto Len Zrate
VELOCIDAD de sincronizacin con la cual stas son realizadas. As entre una computadora
286 y una 486 hay una notable diferencia de poder y velocidad incomparable ya que a la
primera no podremos agregarle u ordenarle tantas cosas como a la segunda; y por otro lado
entre una 486 de 25 Mhz y una 486 de 50 Mhz estamos hablando que las dos tienen el mismo
poder, pero la segunda dobla la velocidad a la primera.
1.1.2 TARJETA PRINCIPAL
Definicin 1.6 Tambin llamada Tarjeta Madre o Motherboard es donde se encuentran las
conexiones bsicas para todos los componentes de la computadora, los cuales giran en torno
al microprocesador. Es bsicamente la que permite o no el futuro crecimiento de las
habilidades de cualquier computadora, una tarjeta con una arquitectura muy cerrada terminar
con la vida de todo el equipo en el momento que sta requiera una reparacin o mejora, ste
7/27/2019 Informe Final_leon Zarate
17/300
CAPITULO I: Hardware y Software
Figura 1.3 Tarjeta principal
1.1.3 EL COPROCESADOR MATEMTICO O NUMRICO
Definicin 1.7 Es un microprocesador de instalacin opcional, tambin denominado
7/27/2019 Informe Final_leon Zarate
18/300
Lic. Elmer Alberto Len Zrate
Que su motherboard cuente con un slot disponible especfico para el
coprocesador matemtico.
Que el que le venden sea de la misma marca que el Microprocesador Principal
de su computadora
Que trabaje a la misma velocidad que lo hace el Microprocesador Principal de
su computadora. Esto es, si usted cuenta con una computadora 486 SX de 25
Mhz, el coprocesador debe ser un 487 SX de 25 Mhz. Como puede usted
observar el coprocesador es algo as como la mitad del microprocesador
completo.
Figura 1.4 Coprocesador matemtico
7/27/2019 Informe Final_leon Zarate
19/300
CAPITULO I: Hardware y Software
Figura 1.5 Memorias
TIPOS DE MEMORIAS:
a) MEMORIA ROM
7/27/2019 Informe Final_leon Zarate
20/300
Lic. Elmer Alberto Len Zrate
Por lo tanto, programa que se desea ejecutar en la computadora, programa que
mximo debe ser del mismo tamao que la capacidad de dicha memoria, de lo contrario se
ver imposibilitada de ejecutarlo.
Observacin 1.1
Cuando se vea en la necesidad de adquirir un programa de cmputo,
independientemente de cual o para que sea, lea muy bien las instrucciones antes de pagarlo,
puesto que en ellas debe especificar claramente la cantidad recursos mnimos necesarios que
debe tener su equipo para trabajar con ste. Bsquelos con el ttulo,
Observacin 1.2
Como puede usted ver, si al momento de apagar nuestra computadora se volatilizan
7/27/2019 Informe Final_leon Zarate
21/300
CAPITULO I: Hardware y Software
a) EL DISQUETE, FLOPPY O DISCO FLEXIBLE
Definicin 1.11 Es un medio o soporte de almacenamiento de datos formado por una pieza
circular de material magntico, fina y flexible encerrada en una cubierta de plstico cuadrada
o rectangular. Esta tecnologa actualmente muy poco se utiliza.
b) CINTA DE RESPALDO
Definicin 1.12 Son como las cintas de cassette de audio y pueden almacenar desde 20
Mbytes hasta 2 Gigabytes o ms. Son medios de almacenamiento muy econmicos y sobre
todo muy rpidos, ya que pueden almacenar todo un disco duro en un pequeo cassette en
unos cuantos minutos.
Figura 1.6 Cintas de respaldo
7/27/2019 Informe Final_leon Zarate
22/300
Lic. Elmer Alberto Len Zrate
Figura 1.7 Disco duro
d) CD-ROM o DISCO COMPACTO
Definicin 1.14 Son de mayor capacidad ya que mnimo son de 720 Mbytes y pueden
llegar a almacenar en el futuro alrededor de algunos Terabytes. Se recomienda ir comprando
equipo que contengan ste dispositivo, ya que gracias a las grandes cantidades de informacin
7/27/2019 Informe Final_leon Zarate
23/300
CAPITULO I: Hardware y Software
1.1.6 FUENTE DE PODER
Definicin 1.15 Una fuente de poder o alimentacin es un dispositivo que convierte la
tensin alterna de la red de suministro, en una o varias tensiones, prcticamente continuas,
que alimentan los distintos circuitos del ordenador al que se conecta.Tanto el microprocesador como todos los circuitos que forman los dispositivos se
alimentan de cantidades muy pequeas de energa necesitan de una fuente que les suministre
y regule la cantidad necesaria. Ya que cualquier variacin en el voltaje podra ser suficiente
para quemar dichos circuitos.
Figura 1.9 Fuente de poder
7/27/2019 Informe Final_leon Zarate
24/300
Lic. Elmer Alberto Len Zrate
1.1.8 DISPOSITIVOS DE ENTRADA DE INFORMACIN
Son todos aquellos que permiten al microprocesador la obtencin de la informacin e
instrucciones a seguir en determinado momento. Gracias a ellos, nosotros podemos
comunicarnos con la computadora. Entre los ms utilizados se encuentran:
a) EL TECLADO
Definicin 1.17 Es un perifrico de entrada o dispositivo, en parte inspirado en el teclado
de las mquinas de escribir, que utiliza una disposicin de botones o teclas, para que acten
como palancas mecnicas o interruptores electrnicos que envan informacin a la
computadora. Despus de las tarjetas perforadas y las cintas de papel, la interaccin a travs
de los teclados al estilo teletipo se convirti en el principal medio de entrada para las
computadoras. El teclado tiene entre 99 y 127 teclas aproximadamente.
7/27/2019 Informe Final_leon Zarate
25/300
CAPITULO I: Hardware y Software
sobre una superficie plana mueve la flecha en la direccin que se haga sobre la pantalla. Una
vez sealado, permite escoger objetos e incluso tomarlos y cambiarlos de lugar.
Figura 1.11 Mouse
c) LOS RASTREADORES PTICOS O ESCANNERS
Definicin 1.19 Son prcticamente pequeas copiadoras, que mediante haces de luz
digitalizan punto por punto una imagen y la transfieren a la memoria de la computadora en
7/27/2019 Informe Final_leon Zarate
26/300
Lic. Elmer Alberto Len Zrate
de espacio disponible en su disco duro, as como el tamao de la memoria RAM de su
mquina, ya que de no coincidir nunca podr usar su rastreador ms all de las capacidades de
su equipo.
Una de las funciones ms sobresalientes de los rastreadores de imgenes son las de
permitir que programas inteligentes de reconocimiento de caracteres conviertan la imagen del
documento rastreado en texto libre que puede, una vez convertido ser modificable incluso
letra por letra.
1.- Escner manual: Se parece al ratn y a medida que se desplaza por una
superficie lisa va convirtiendo la imagen en archivo, son muy lentos y requieren de
mucha precisin para evitar errores en la imagen obtenida.
2.- Escner de cama: Son bsicamente pequeas copiadoras que al igual qu stas,
rastrean el documento depositado en su pantalla. Son muy rpidos, precisos y cada
7/27/2019 Informe Final_leon Zarate
27/300
CAPITULO I: Hardware y Software
1.1.9 DISPOSITIVOS DE SALIDA DE INFORMACIN
Son todos aquellos que nos permiten obtener la informacin procesada por la
computadora, y entre los ms comunes se encuentran:
a) EL MONITOR
Definicin 1.20 Es un aparato de los llamados CTR (Tubo de rayos Catdicos) en los
cuales se pueden representar los datos de tipo texto o grficos procesados por la computadora.
El estndar en vdeo de las modernas computadoras se basa en el sistema VGA, el cual le da
al usuario la capacidad de poder representar en la pantalla no slo imgenes de mejor calidad
sino que incluso se pueden apreciar en calidad normal fotografas autnticas, dicha capacidad
no la tena ninguno de los sistemas de vdeo anteriores a ste.
7/27/2019 Informe Final_leon Zarate
28/300
Lic. Elmer Alberto Len Zrate
Por si fuera poco si no fuera de la calidad que necesitamos no nos va a servir en el
momento de usar programas que generen represente imgenes detalladas, realsticas o
precisas. Esto deben tomarlo en cuenta sobre todo aquellas personas que requieren equipo de
cmputo para prestar servicios de Diseo Grfico, Arquitectura, Edicin de Vdeo, Imprentas,
etc.
A la capacidad de generar imgenes de calidad de un monitor se le llama resolucin y
se determina por la cantidad de puntos o pixeles que contenga la pantalla. As un monitor
de 640x480 (El estndar en VGA) representar con menor calidad y cantidad de colores las
imgenes realsticas que uno de 1024x768 comnmente denominado SuperVGA. Tambin loshay intermedios de 800x600 puntos.
Adems un monitor de sistema VGA normal puede representar imgenes mximo
hasta 256 tonalidades diferentes en cambio uno mejor podr manejar hasta 16 millones de
7/27/2019 Informe Final_leon Zarate
29/300
CAPITULO I: Hardware y Software
1.- MATRICIAL DE PUNTOS
Definicin 1.21 Son las ms rpidas y vendidas, buenas para el trabajo comn de oficina,
aunque ruidosas son las ms econmicas por hoja impresa y baratas en el mercado. Tambin
se denominan as porque su sistema de impresin esta basado en el mismo de la maquina de
escribir, esto es, un rodillo, papel normal, una cinta entintada, pero en lugar de una cua con
el tipo de letra aqu se substituye por una cabeza de agujas, las cuales salen en secuencia
vertical punzando los puntos indicados para formar la letra.
Esto lo hacen lnea vertical por lnea vertical por letra por palabra por rengln. Como
puede usted observar en cualquier momento, esto lo hacen tan rpido que apenas alcanzamos
a apreciar como se va dibujando el rengln de letras dejando atrs ese tpico ruido de oficina
computarizada.
La medida de rapidez y calidad es la cantidad de caracteres que pueden imprimir por
7/27/2019 Informe Final_leon Zarate
30/300
Lic. Elmer Alberto Len Zrate
2.- INYECCION DE TINTA
Definicin 1.22 Estas funcionan muy parecido a las de matriz de puntos, solo que en vez
de agujas tienen pequesimos microtubos decenas de veces ms delgados que un cabello
humano por donde arrojan pequeos chorros o gotas de tinta que al tocar el papel se dispersan
y forman una imagen del texto de muy buen calidad, aunque son baratas son por lo general
ms lentas que la de agujas, pero tiene la gran ventaja de manejar alta calidad, incluso las de
colores son las ms populares sobre todo en uso profesional, estudiantil y domstico.
Por un precio razonable se pueden encontrar impresoras de calidad tal a colores que
pueden representar con un muy buen porcentaje de fidelidad una fotografa real a 720x720
DPI (puntos por pulgada).
Figura 1.15 Impresora inyeccin de tinta
7/27/2019 Informe Final_leon Zarate
31/300
CAPITULO I: Hardware y Software
Aunque siguen bajando rpidamente de precio, son las ms caras por hoja impresa, sin
embargo son las nicas con calidad de imprenta, son la herramienta imprescindible para una
imprenta, edicin fotogrfica o negocio de diseo grfico. La velocidad de stas como de las
de inyeccin de tinta se mide en Hojas por minuto.
Figura 1.16 Impresora laser
4.-LOS PLOTTERS
7/27/2019 Informe Final_leon Zarate
32/300
Lic. Elmer Alberto Len Zrate
1.1.10 DISPOSITIVOS DE ENTRADA Y SALIDA DE INFORMACIN
Son aquellos mediante los cuales podemos tanto accesar como introducir informacin
o instrucciones al microprocesador. Entre los ms comunes:
a) UNIDADES DE LECTURA/ESCRITURA DE DISQUETES
Definicin 1.25 Estas se especializan en leer la informacin almacenada en los disquetes,
as como escribir en estos los datos a ser almacenados. Segn su densidad de escritura ser el
tipo de disquete que podrn leer o escribir.
b) MONITORES ITERATIVOS
Definicin 1.26 Existen monitores especiales que presentan informacin como cualquier
monitor lo hace, permitiendo adems introducir informacin sealando con nuestro dedo
7/27/2019 Informe Final_leon Zarate
33/300
CAPITULO I: Hardware y Software
aprovechar la infraestructura telefnica existente en nuestro mundo para enviar por la misma
va, voz, datos, imgenes y una vez del otro lado demodula dichas seales convirtindolas de
nuevo en bits que al ser interpretados reproducen en la computadora la informacin recibida
desde el otro lado del mundo.
Aunada a sta capacidad las nuevas computadoras vienen con una tarjeta de mdem
con fax combinado, al cual le llaman fax-mdem lo cual significa que adems de poder
conectarse con cualquier computadora sincronizada con nosotros en cualquier parte del
mundo, tambin podemos conectarnos con otras personas, empresas o instituciones que
aunque no tengan computadora si tengan un fax convencional como el que ya esimprescindible en cualquier empresa.
Si observamos detenidamente un fax convencional encontraremos qu ste dispositivo
es 3 aparatos en uno, o sea:
7/27/2019 Informe Final_leon Zarate
34/300
Lic. Elmer Alberto Len Zrate
la tecnologa y por tanto de los costos, en direccin completamente opuesta aumenta la
inversin de los servicios y programas necesarios para optimizar dichos equipos.
En sus orgenes la programacin de los ordenadores era hecho slo, para y por los
mismos cientficos que las construan para propsitos muy especficos. El clculo de la
trayectoria de los proyectiles usados en la II Guerra Mundial, y posteriormente usos muy
parecidos, hasta que mucho despus que fue utilizada en el Censo de los Estados Unidos fue
reconocindose su valor en el campo administrativo donde estuvo hasta hace 2 dcadas,
cuando gracias a la Computadora Personal pasaron al dominio pblico donde con tantas
necesidades fueron surgiendo las aplicaciones diversas para cada oficio.
1.2.1 LOS SISTEMAS OPERATIVOS
Para que una maquina basada completamente en electrnica y un ser humano, ser con
7/27/2019 Informe Final_leon Zarate
35/300
CAPITULO I: Hardware y Software
Definicin 1.30 El MS-DOS Microsoft(Disk Operative System) es un sistema operativo
con cual de una u otra forma hemos estado ms familiarizados desde la aparicin de las
Computadoras Personales y sobre el cul trabajan la mayora de los programas usados tanto
en la pequea, mediana y grande empresa, as como en Industrias, Instituciones y hogares por
millones de gentes alrededor del mundo. Su versin ms nueva a la fecha es la 6.22
Definicin 1.31 El OS/2 WARP Diseado por IBM es el competidor ms cercano de MS-
DOS sobre todo por sus grandes capacidades de interconexin de equipos y facilidad de uso
bajo ambiente grfico.
Definicin 1.32 El Netware diseado por Novell, lder mundial en sistemas operativos
para redes de computadoras que ha conquistado al mundo de la informtica por el poder y
versatilidad de sus funciones, as como su extremada capacidad de interconectar
computadoras y recursos de tan variadas capacidades y marcas.
7/27/2019 Informe Final_leon Zarate
36/300
Lic. Elmer Alberto Len Zrate
que trabajamos en Instituciones o Empresas y an para los particulares existe un nmero
preciso de aplicaciones, que como herramientas no deben faltar en ninguna computadora de
uso personal.
1.2.2 PROCESADORES DE TEXTO
Definicin 1.34 Tambin llamados Procesadores de palabras, fueron los primeros en servir
de atraccin en la adquisicin de una computadora, ya que sustituyen absolutamente el trabajo
de una tradicional maquina de escribir, a nuestras fechas han evolucionado tanto que ya slo
les falta tomar dictado, - y no les falta mucho para hacerlo pero dentro de las necesidades de
escritura actuales en la mayora de ellos podemos encontrar las siguientes funciones:
Escribir de corrido y una sola vez todo nuestro documento
Permiten con suma rapidez y flexibilidad hacer modificaciones al contenido, como:
7/27/2019 Informe Final_leon Zarate
37/300
CAPITULO I: Hardware y Software
Se pueden crear cartas o documentos de tipo constante, ya sea para circulares o
formatos especficos incluso de facturacin y manipularlos rpidamente.
Analizar el documento desde distintos ngulos sin necesidad de imprimirlo.
Permitir que el programa corrija automticamente nuestra ortografa o incluso nos
ayude a escribir ms pronto mediante palabras que va aprendiendo.
Crear Documentos estilo periodstico a base de columnas, con grficos, imgenes o
fotografas e incluso en formato cuadricular.
Cuentan palabras, deshacen los cambios, imprimen partes, etc.
COMPA A QUE LO PRODUCE NOMBRE Y VERSI N
Microsoft Notepad, WordPad, Word para Windows
Novell Wordperfect para DOS y Windows
Software Libre OpenOffice, Latex
7/27/2019 Informe Final_leon Zarate
38/300
Lic. Elmer Alberto Len Zrate
Inmensa cantidad de funciones automticas para necesidades financieras, cientficas,
matemticas, lgicas, de texto, etc.
Diseo y formato fcil de corregir y ampliar
Estilo, tipo y tamao de letra fcilmente modificables
Manipulacin de hojas en libros de trabajo
Implementacin avanzada de varios grficos estadsticos
Incrustacin de texto e imgenes de diseo grfico
Impresin inteligente fcilmente controlable
Poder en la manipulacin de grandes cantidades de registros de informacin
Diseo, Generacin e Impresin rpida de reportes y listados.
Herramientas flexibles de proyeccin y anlisis para la planeacin y la oportuna toma
de decisiones
7/27/2019 Informe Final_leon Zarate
39/300
CAPITULO I: Hardware y Software
registros basadas en criterios de bsqueda que satisfagan la necesidad inmediata del jefe del
departamento diciendo .... !!Quiero un listado de todos los clientes de la zona norte del pas,
que sean del sexo masculino, con edad mayor a 40 aos, que tengan saldo menor a N$100,000
y ventas anuales promedio, etc.
Entre sus funciones principales tenemos las siguientes:
Permiten crear fcilmente cualquier estructura de registro y comenzar a capturar la
informacin deseada
Mediante sofisticados pero sencillos lenguajes o procedimientos facilitan la
programacin de sistemas especficos
Sus consultas son muy rpidas
Permiten ordenar grandes cantidades de informacin en poco tiempo.
Son muy tiles para las listas y reportes basados en condiciones de bsqueda.
7/27/2019 Informe Final_leon Zarate
40/300
Lic. Elmer Alberto Len Zrate
1.2.5 OTRAS APLICACIONES POPULARES EN LAS EMPRESAS
NOMBRE COMPA A QUE LO PRODUCE REA DE APLICACI N
Autocad 2011 Autodesk Diseo Arquitectnico 3D
Bancos Apemex, Compaq, Microsip Control de Bancos y conciliaciones
Caja Apemex Sistema de punto de venta
Contpaq Computacin en Accin Sistema de Contabilidad Integral
Coreldraw Corel Diseo Grfico Publicitario
MegaPak Computacin en Accin Facturacin, Inventarios, CxC y CxP
Money 2.0 Microsoft Administracin de finanzas personales
7/27/2019 Informe Final_leon Zarate
41/300
CAPITULO I: Hardware y Software
1.3 CONCEPTOS BASICOS
1.3.1 INFORMTICA
Definicin 1.37 Ciencia que se encarga de la organizacin y mantenimiento de la
informacin haciendo uso de las sistemas integrados de Cmputo.
1.3.2 COMPUTACIN
Definicin 1.38 Conjunto de mtodos y tcnicas que permiten administrar, manipular y
controlar en forma automtica y correcta la informacin utilizando para ello la ayuda de un
Computador
1.3.3 SECUENCIA PARA EL PROCESAMIENTO DE DATOS
Ilustracin 1.1 Procesamiento de datos
7/27/2019 Informe Final_leon Zarate
42/300
Lic. Elmer Alberto Len Zrate
El uso de los algoritmos tiene un gran valor estratgico en las computadoras, ya que ellas
pueden resolver un determinado problema despus de que se le ha dicho como resolverlo.
Todo algoritmo debe cumplir las siguientes caractersticas fundamentales:
Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.
Un algoritmo debe estar bien definido. Si se elabora varios algoritmos todos deben
dar el mismo resultado.
Un algoritmo debe ser finito. Todo algoritmo tiene que terminar en algn
momento, es decir tiene un nmero determinado de pasos.
1.3.6 PROGRAMA
Definicin 1.41 Es el conjunto de instrucciones escritas en un orden lgico y codificados
en un determinado Lenguaje de Programacin, las cuales permiten llevar a cabo un
determinado proceso previamente establecido.
7/27/2019 Informe Final_leon Zarate
43/300
CAPITULO I: Hardware y Software
c) Calculadoras.
d) Microcomputadoras y minicomputadoras.
3. Tienen un poder similar al de la minicomputadora, pero representan solo una fraccin
de su costo.
a) Macrocomputadora.
b) Estacin de trabajo.
c) Computadoras de propsito especial.
d) Ninguna de las anteriores.
4. Son utilizadas comnmente por bancos y aerolneas.
a) Estacin de trabajo.
b) Computadoras de propsito especial.
c) Macrocomputadoras.
7/27/2019 Informe Final_leon Zarate
44/300
Lic. Elmer Alberto Len Zrate
b) Monitor.
c) Teclado.
d) CPU.
8. Consiste en presionar rpidamente dos veces el botn primario del ratn.
a) Clic sostenido.
b) Clic.
c) Clic arrastrado.
d) Ninguna de las anteriores.
9. Consiste en mantener presionado el botn primario del ratn y mover el ratn para
desplazar algn elemento en la pantalla.
a) Clic.
b) Clic arrastrado.
7/27/2019 Informe Final_leon Zarate
45/300
CAPITULO I: Hardware y Software
12. algunas de las funciones del sistema operativo son:
a) Proporcionar una interfaz con el usuario.
b) Administrar los dispositivos de hardware en la computadora.
c) Administrar y mantener los sistemas de archivo de disco.
d) Todas las anteriores.
13. Cul de los siguientes no es un tipo de sistema operativo de interfaz grfica?
a) MS-DOS.
b) Windows 2000.
c) Windows XP.
d) Macintosh.
14. Es un programa que traduce un lenguaje de alto nivel a lenguaje mquina y genera un
archivo programa o ejecutable.
7/27/2019 Informe Final_leon Zarate
46/300
Lic. Elmer Alberto Len Zrate
17. Un archivo es un smbolo en pantalla que representa un programa, un archivo de datos
u otra entidad o funcin de la computadora.
a) Verdadero.
b) Falso.
18. Un acceso directo es un vnculo con cualquier elemento al que puede tener acceso
desde una computadora, como un programa, archivo, carpeta, unidad de disco,
impresora u otra computadora.
a) Verdadero.
b) Falso.
19. Una ventana es un smbolo en pantalla que presenta la ubicacin actual del ratn.
a) Verdadero.
b) Falso.
7/27/2019 Informe Final_leon Zarate
47/300
CAPITULO II
HERRAMIENTAS DE PROGRAMACION
2.1 ANALISIS DEL PROBLEMA
Requisitos:
Comprensin de la Naturaleza del problema.
El Problema debe estar bien definido.
Las especificaciones de Entrada y Salida de los datos sean descritas con
detalle.
Deber responder a las siguientes preguntas:
a) Que informacin debe proporcionar la resolucin del problema?
La respuesta que obtenga aqu indicara los resultados deseados o las salidas
7/27/2019 Informe Final_leon Zarate
48/300
Lic. Elmer Alberto Len Zrate
2.2 DISEO DEL ALGORITMO
La informacin o dato proporcionada al algoritmo constituye su entrada y la
informacin producida por el algoritmo constituye su Salida.
Ejemplo 2.2
Leer el radio de un crculo y calcular su superficie y la longitud de la circunferencia.
Inicio
Ingresar valor de la Radio del crculo
Calcular Superficie
Superficie 3.141592 * Radio ^ 2
Calcular Circunferencia
Circunferencia 3.141592 * Radio * 2
7/27/2019 Informe Final_leon Zarate
49/300
CAPITULO II: Herramientas de programacin
SMBOLOS PRINCIPALES DE UN DIAGRAMA DE FLUJO
SIMBOLO DESCRIPCION
TERMINAL: Representa el inicio y el Final de un
programaENTRADA/SALIDA: Todo tipo de Introduccin de
Datos en la memoria desde entrada (Leer) o Salida
(imprimir) de informacin.
PROCESO: Cualquier tipo de operacin que pueda
originar cambio de valor almacenada en la memoria,
operaciones aritmticas, etc.
DECISI N: Indica operaciones Lgicas o de
7/27/2019 Informe Final_leon Zarate
50/300
Lic. Elmer Alberto Len Zrate
Ejemplo 2.3
Realizar el Diagrama de Flujo de la Suma de todos los nmeros pares entre 2 y 100.
Ilustracin 2.1 Diagrama de flujo de suma de pares
7/27/2019 Informe Final_leon Zarate
51/300
CAPITULO II: Herramientas de programacin
2.4 PSEUDOCODIGO
Definicin 2.2 Es un lenguaje de descripcin del algoritmo, esto es la traduccin de un
problema a un lenguaje de Programacin escogido por el usuario.
La ventaja de un Pseudocdigo es que al usarlo en la planificacin de un programa, el
programador se puede concentrar en la Lgica y en las estructuras de control y no
preocuparse de las reglas de un Lenguaje de Programacin.
Todo algoritmo empieza con la palabra Inicio y termina con la Palabra Fin. Entre estas
palabras se escriben las instrucciones o acciones por lnea.
Ejemplo 2.4
Pseudocdigo para determinar e imprimir el mayor valor de DOS nmeros ingresados.
Inicio
7/27/2019 Informe Final_leon Zarate
52/300
Lic. Elmer Alberto Len Zrate
Mientras CONTADOR
7/27/2019 Informe Final_leon Zarate
53/300
CAPITULO II: Herramientas de programacin
6. Definir un Algoritmo para escribir un programa que pida el ingreso de N nmeros que
calcule su promedio.
7. Definir un Algoritmo que ingrese las edades de tres personas y contar cuantos son
mayores y menores de Edad.
8. Definir un Algoritmo que ingrese un monto por capital a una cuenta, si el Capital se
excede en 1000 Soles aumentar en 5% al Capital de lo Contrario reducir el 2% al
Capital.
9. Definir el Algoritmo para hallar el elevado ensimo de un nmero cualquiera.
10. Definir el algoritmo para ordenar ascendentemente el ingreso de 20 nmeros enteros
positivos.
7/27/2019 Informe Final_leon Zarate
54/300
CAPITULO III
PROGRAMACION ESTRUCTURADA
La programacin estructurada hace los programas ms fciles de escribir, verificar,
leer y mantener. Los programas deben estar dotados de una estructura que puede ser:
Secuenciales
Selectivas
Repetitivas
3.1 ESTRUCTURAS SECUENCIALESDefinicin 3.1 Es aquella en la que la una instruccin sigue a otra en secuencia. Las tareas
se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente
hasta el final del proceso.
7/27/2019 Informe Final_leon Zarate
55/300
CAPITULO III: Programacin estructurada
3.2 ESTRUCTURAS SELECTIVAS
Definicin 3.2 En las estructuras selectivas se evala una condicin y en funcin del
resultado de la misma se realiza una opcin u otra. Las condiciones se especifican usando
expresiones lgicas.
Las estructuras selectivas pueden ser:
Simples
Dobles
Mltiples
3.2.1 ESTRUCTURA SIMPLE (SI-ENTONCES)
Ejecuta una determinada accin cuando se cumple una condicin.
Tener en cuenta:
7/27/2019 Informe Final_leon Zarate
56/300
Lic. Elmer Alberto Len Zrate
PSEUDOCODIGO
SI CONDICION ENTONCES
ACCION 1
ACCION 2
FIN_SI
PSEUDOCODIGO EN INGLES
IF CONDICION THEN
ACCION 1
ACCION 2
ENDIF
3.2.2 ESTRUCTURA DOBLE (SI ENTONCES SINO)
7/27/2019 Informe Final_leon Zarate
57/300
CAPITULO III: Programacin estructurada
PSEUDOCODIGO
SI CONDICION ENTONCES
ACCION VERDADERAS
SINO
ACCIONES FALSAS
FIN_SI
PSEUDOCODIGO EN INGLES
IF CONDICION THEN
ACCION VERDADERAS
ELSE
ACCIONES FALSAS
ENDIF
7/27/2019 Informe Final_leon Zarate
58/300
Lic. Elmer Alberto Len Zrate
PSEUDOCODIGO EN INGLES
CASE CONDICION OF
Expresin 1 : Accin 1
Expresin 2 : Accin 2
Expresin 3 : Accin 3
OTHERWISE // ELSE
Action
END_CASE
OBSERVACIONES DE LA ALTERNATIVA MULTIPLE
- Algunos lenguajes de programacin delimitan las acciones para las instrucciones
compuestas con las palabras Inicio Fin (pascal Begin End).
- Los valores que toman las expresiones no siempre sern consecutivos o nicos,
7/27/2019 Informe Final_leon Zarate
59/300
CAPITULO III: Programacin estructurada
3.3.1 ESTRUCTURA MIENTRAS-HACER (WHILE - DO)
Permite al programa llevar a cabo la ejecucin secuencial de un proceso
mientras la condicin establecida se cumpla o sea verdad.
Ilustracin 3.4 Estructura Repetitiva Mientras-Hacer
7/27/2019 Informe Final_leon Zarate
60/300
Lic. Elmer Alberto Len Zrate
3.3.2 ESTRUCTURA REPETIRHASTA (REPEAT - UNTIL)
Permite al programa llevar a cabo la ejecucin secuencial de un proceso
mientras que la condicin establecida no se cumpla.
Cuando la condicin se cumpla se continuara la ejecucin del programa
despus de HASTA.
Ilustracin 3.5 Estructura Repetitiva Repetir - Hasta
ACCIONES O
INSTRUCCIONES
7/27/2019 Informe Final_leon Zarate
61/300
CAPITULO III: Programacin estructurada
3.3.3 ESTRUCTURA DESDEHACER O PARAHACER (FOR.TO.DO)
Permite ejecutar un bloque de instrucciones un numero especifico de veces,
luego se continuara la ejecucin del programa de FIN_PARA.
Ilustracin 3.6 Estructura Repetitiva Para - Hacer
7/27/2019 Informe Final_leon Zarate
62/300
Lic. Elmer Alberto Len Zrate
3.4 RELACION DE EJERCICIOS:
1. Realizar el ingreso de 4 notas para un alumno y promediarlos.
2. Calcular el factorial de un numero N
3. Ingrese un nmero entero y genere la tabla de multiplicar de dicho nmero.
4. Calcular:
!!21
2
n
nxx
5. Calcular la suma de los N nmeros enteros positivos y terminar con nmero negativo.
6. Sumar los nmeros enteros de 100 a 200 mediante a) Estructura Repetir b) Estructura
Mientras c) Estructura Desde
7. Se desea leer las calificaciones de una clase y contar l nmero total de aprobados.
8. Representar las siguientes condiciones en forma de alternativa simple, en pseucodigo y
diagrama de flujo:
7/27/2019 Informe Final_leon Zarate
63/300
CAPITULO III: Programacin estructurada
Colocar un mensaje a cada uno.
para los mayores y menores de edad
para los aprobados y desaprobados en su promedio
para numero par e impar
para los mayores y menores de 30 aos
10. Hacer su diagrama de flujo y pseudocdigo para la suma de los N primeros nmeros
enteros cuadrados 12+22+32...n2
11. Hacer su diagrama de flujo y pseudocdigo para calcular la planilla de una empresa, se
ingresa el nmero de los empleados y para cada uno de ellos se ingresa el nmero dehoras y el salario por hora, se calcula el pago y se acumula para el total de la planilla.
12. Hacer su diagrama de flujo y pseudocdigo para un restaurant ofrece un descuento del
10% para consumos de hasta 30 nuevos soles, un descuento de 20% para consumos
7/27/2019 Informe Final_leon Zarate
64/300
Lic. Elmer Alberto Len Zrate
18. Realizar un Pseudocdigo que solo permita el ingreso de nmeros enteros y cuando
ingrese un impar se termina el ingreso.
19. Desarrollar un Pseudocdigo que permita ingresar los datos de N alumnos. Para cada
alumno se ingresara su nombre y 6 notas. Calcular el promedio para cada uno de estos
alumnos. El proceso terminara cuando se ingrese la palabra FIN como un nombre de
un alumno. Al final mostrara el promedio general de todos los alumnos.
20. Realizar un Pseudocdigo que permita el ingreso de una clave de acceso, si la clave
ingresada es correcta, entonces mostrar el mensaje BIENVENIDO AL SISTEMA,
en caso contrario CLAVE INCORRECTA, se debe permitir mximo 3 intentos.
7/27/2019 Informe Final_leon Zarate
65/300
CAPITULO IV
ESTRUCTURAS DE DATOS
4.1TIPOS DE DATOS
Definicin 4.1 El Tipo de Datos de una variable es el conjunto de valores que dicha
variable puede asumir
Todos lo Lenguajes de Programacin de alto nivel tienen incorporados Tipos de Datos
bsicos tales como enteros, reales, caracteres y lgicos.
El tipo de Datos de una variable en un programa para un lenguaje de alto nivel
requiere de una Declaracin de Tipo la cual tiene 2 objetivos:
1. Separar el espacio de memoria que los valores de la variable requieran.
7/27/2019 Informe Final_leon Zarate
66/300
Lic. Elmer Alberto Len Zrate
A) ENTEROS
Definicin 4.3 El tipo entero es un subconjunto finito de los nmeros enteros. Los enteros
son nmeros completos, no tienen componentes fraccionarios o decimales y pueden ser
negativos o positivos. Ejm: 5, -5
Los nmeros enteros mximos y mnimos de una computadora suelen ser 32768 a
+32767, los nmeros enteros fuera de este rango no se suelen representar como nmeros
enteros, sino como reales, en algunos lenguajes de Programacin hay excepciones.
B) REALES
Definicin 4.4 El tipo real consiste en un subconjunto de los nmeros reales. Los nmeros
reales siempre tienen un punto decimal y pueden ser positivos o negativos. Un nmero real
consta de un entero y una parte decimal. Ejm:
7/27/2019 Informe Final_leon Zarate
67/300
CAPITULO IV: Estructuras de datos
Ejemplo 4.1
Si el numero fuera 123456700000000000000 (14)
Descomponer en Cifras 123 456 700 000 000 000 000
Y luego en forma de potencia de 10 1.234567 * 1020
Ejemplo 4.2
Si el nmero fuera 0.0000000000123456
Y luego en forma de potencia de 10 1.23456 * 10-11
4.1.2. DATOS LOGICOS (BOOLEANOS)
Definicin 4.5 El tipo Lgico es aquel que solo puede tomar uno de dos valores.
Verdadero (TRUE) False (FALSE)
7/27/2019 Informe Final_leon Zarate
68/300
Lic. Elmer Alberto Len Zrate
CARACTERES ESPECIALES: (+ - * / ^, < > $...)
4.2 ESTRUCTURA DE DATOS
Definicin 4.7 Es una coleccin de datos que pueden ser caracterizados por su
organizacin y las operaciones que se definan en ella.
Estticos: arreglos, registro, archivo, conjunto, cadena.
Dinmicos: Listas, Pilas, Colas, Listas enlazadas, rboles.
4.2.1 ESTRUCTURA DE DATOS ESTATICAS
A) ARREGLOS
Definicin 4.8 Es una estructura de Datos utilizado para almacenar datos de un mismo
tipo.Un arreglo se define como el conjunto de datos finito, ordenado y homogneo.
7/27/2019 Informe Final_leon Zarate
69/300
CAPITULO IV: Estructuras de datos
Observacin 4.1
El arreglo unidimensional tiene un solo nombre de variable que representa a todos los
elementos.
Observacin 4.2
En algunos casos el ndice del arreglo empieza en 0 1
Observacin 4.3
El ndice indica la posicin ordenada de cmo se ingresan los datos
Observacin 4.4
7/27/2019 Informe Final_leon Zarate
70/300
Lic. Elmer Alberto Len Zrate
El valor mnimo permitido de un vector se denomina LIMITE INFERIOR del vector
y el valor mximo permitido se denomina LIMITE SUPERIOR.
Cada elemento de un vector se puede procesar como si fuese una variable simple al
ocupar una posicin de memoria.
NUMERO [10] 100
NUMERO [20] DIEZ
La salida seria ESCRIBIR (NUMERO [10])
NOTACIONES ALGORITMICAS PARA VECTORES UNIDIMENSIONALES
EN ALGORITMOS
Ejemplo 4.3
En pascal:
7/27/2019 Informe Final_leon Zarate
71/300
CAPITULO IV: Estructuras de datos
Dim sumas (100 to 200) as long // (entero largo)
OPERACIONES BASICAS CON VECTORES O ARREGLOS
ESCRIBIR (NUMERO [10]) Visualiza el valor Numero con ndice 10
NUMERO [4] 50 Almacena el valor 50 en NUMERO [4]
SUMANUMERO [1]+NUMERO[5] Almacena la suma de NUMERO[1] y
NUMERO[2] en la variable SUMA.
SUMASUMA+NUMERO[5] Aade en la variable SUMA el valor de NUMERO[5]
X[5] X[5] + 3.5 Suma 3.5 a X[5]
X[11] X[2] + X[4] Almacena la suma de X[2] y X[4]
Observacion 4.5
Los Arreglos pueden tener por ndice:
7/27/2019 Informe Final_leon Zarate
72/300
Lic. Elmer Alberto Len Zrate
Pero si se desea asignar elementos a un vector, se debe utilizar estructuras
Repetitivas (desde, mientras o repetir) o selectivas como l (Si entonces)
Ejemplo 4.6
Si se introducen los valores 10,11,10 mediante asignaciones
A[1] 10 A(1) 10
A[2] 11 A(2) 11
A[3] 10 A(3) 10
b) LECTURA Y ESCRITURA
Normalmente la Lectura y escritura se realizan con estructuras repetitivas como el
FOR (para o desde), las instrucciones simples se representan as:
7/27/2019 Informe Final_leon Zarate
73/300
CAPITULO IV: Estructuras de datos
Ejemplo 4.7
Pseudocdigo para permitir el INGRESO de 5 nmeros
Inicio
PARA ndice=1 HASTA 5 HACER
LEER nmeros [ndice]
FIN_PARA
Fin
Ejemplo 4.8
Pseudocdigo para IMPRIMIR los 5 nmeros ingresados anteriormente
Inicio
7/27/2019 Informe Final_leon Zarate
74/300
Lic. Elmer Alberto Len Zrate
ndice ndice + 1
FIN_MIENTRAS
FIN
d) AADIR
Un arreglo llamado PROMEDIO se ha dimensionado a seis elementos pero
solo han sido llenados cuatro valores, se podrn aadir dos elementos ms con una
simple operacin de asignacin.
PROM [1] PROM [2] PROM [3] PROM [4] PROM [5] PROM [6]
10 11 20 11
En la realizacin del Pseudocdigo:
PROM [5] 20
7/27/2019 Informe Final_leon Zarate
75/300
CAPITULO IV: Estructuras de datos
INDICE CANTIDAD DE ELEMENTOS LLENOS // INDICE = 6
MIENTRAS INDICE > = POSICION HACER
LETRAS [INDICE + 1] LETRAS [INDICE]
INDICE INDICE1
FIN_MIENTRAS
LEER LETRAS [INDICE]
FIN
f) BORRAR
La operacin de borrar provoca el movimiento hacia arriba de los elementos
inferiores.
2.- ARREGLO DE VARIAS DIMENSIONES
Los Arreglos no Unidimensionales se dividen en 2 grupos:
7/27/2019 Informe Final_leon Zarate
76/300
Lic. Elmer Alberto Len Zrate
Nombre del Arreglo : NOTAS
Cantidad de Filas : 4
Cantidad de Columnas : 5
Total de elementos : 20
Los elementos de un Arreglo Bidimensional tienen la siguiente referencia:
NOMBRE_DE_LA_MATRIZ [ I , J ]
Donde: I es el elemento que representa a las filas y J representa la Columnas.
En Notacin Algortmica se Representa:
NOMBRE_DE_LA_MATRIZ[ I..N,J..N]
NOTACIONES ALGORITMICAS PARA VECTORES BIDIMENSIONALES
En pascal :
7/27/2019 Informe Final_leon Zarate
77/300
CAPITULO IV: Estructuras de datos
b) ARREGLOS MULTIDIMENSIONALES
Puede ser definido de tres, cuatro o ms dimensiones.
Ejemplo 4.11
Un arreglo de tres dimensiones puede tener:
- 5 Cursos de un alumno
- Tipo de sexo
- 6 ciclos aos
B) REGISTROS
Definicin 4.11 Es una coleccin de informacin, normalmente relativa a una entidad
particular. Un registro es una coleccin de campos lgicamente relacionado, que pueden ser
tratados como una unidad por algn programa.
7/27/2019 Informe Final_leon Zarate
78/300
Lic. Elmer Alberto Len Zrate
A [1].Nombre Oscar Ibez
A [1].Promedio 17.4
A [1].Edad 29
Ingresar 5 datos al registro declarado:
PARA INDICE 1 HASTA 5 HACER
INICIO
LEER A[INDICE].CODIGO
LEER A[INDICE].NOMBRE
LEER A[INDICE].PROMEDIO
LEER A[INDICE].EDAD
FIN
FIN_PARA
7/27/2019 Informe Final_leon Zarate
79/300
CAPITULO IV: Estructuras de datos
INICIO
LEER CODIGO
LEER NOMBRE
LEER PROMEDIO
LEER EDAD
FIN_CON
FIN_PARA
DECLARACION DE UN REGISTRO DE DATOS EN UN PSEUDOCODIGO
// DEFINIR ESTRUCTURA DE REGISTROS
CAMPO 1 : TIPO DE DATOS
CAMPO 2 : TIPO DE DATOS
CAMPO 3 : TIPO DE DATOS
7/27/2019 Informe Final_leon Zarate
80/300
Lic. Elmer Alberto Len Zrate
registros. Todos los registros de un archivo son del mismo tipo, es decir, un archivo est
formado por un conjunto de registros homogneos. Cada registro est formado por campos
que contienen informacin referente a un elemento o caracterstica en particular dentro del
archivo. Adems un registro puede tener un campo clave cuyo valor sirve para identificar de
forma nica el registro, y por tanto, dicho valor no puede aparecer repetido en otro registro
diferente.
CLASIFICACIN DE LOS ARCHIVOS SEGN SU USO
Archivos permanentes.- Contienen informacin que vara poco a lo largo del tiempo.
Archivos de movimientos.- En ellos se almacena la informacin que se utilizar para
actualizar los archivos maestros. Sus registros denominados movimientos son de tres
clases: altas, bajas y cambios.
Archivos de maniobra o trabajo.- Tienen una vida limitada, normalmente igual a la
7/27/2019 Informe Final_leon Zarate
81/300
CAPITULO IV: Estructuras de datos
1. ORGANIZACIN SECUENCIAL
Definicin 4.13 Es aqulla en la cual los registros ocupan posiciones consecutivas de
memoria, y slo se puede acceder a ellos de uno en uno a partir del primero.
En un archivo secuencial no se pueden hacer operaciones de escritura cuando se est
leyendo, ni operaciones de lectura cuando se est escribiendo.
Por otro lado, para actualizarlos es preciso crear nuevos archivos donde se copien los
registros que vayan a permanecer, modificados o no, junto con los nuevos.
Acceso secuencial
Registro 1 Registro 2 Registro 3 Registro 4 Registro 5
2. ORGANIZACIN DIRECTA O ALEATORIA
7/27/2019 Informe Final_leon Zarate
82/300
Lic. Elmer Alberto Len Zrate
Acceso directo
Registro 2 Registro 1 Registro 5
Posicin 1 Posicin 2 Posicin 3 Posicin 4 Posicin 5
3. ORGANIZACIN SECUENCIAL INDEXADA
Un archivo con esta organizacin consta de 3 reas:
rea de ndices
rea primaria
rea de excedentes (overflow)
Definicin 4.15 El rea primaria contendr los registros de datos, clasificados en orden
ascendente por su campo clave.
Definicin 4.16 El rea de ndices es un archivo secuencial creado por el sistema, en el
7/27/2019 Informe Final_leon Zarate
83/300
CAPITULO IV: Estructuras de datos
Los inconvenientes que presenta son la necesidad de espacio adicional para el rea de
ndices y el desaprovechamiento de espacio que resulta de quedar huecos intermedios libres
despus de sucesivas actualizaciones.
rea de ndices
01
AC
04
CH
06
GF
rea primaria
AA - AB - AC - BC - CH - FA - GF -
01 02 03 04 05 06
rea de excedentes
7/27/2019 Informe Final_leon Zarate
84/300
Lic. Elmer Alberto Len Zrate
CLASIFICACIN
Definicin 4.21 Es la operacin consistente en reubicar los registros de tal forma que
queden ordenados con respecto a los valores de un campo que denominamos clave de
ordenacin.
CONCATENACIN
Definicin 4.22 Dados dos archivos con registros de igual estructura, se trata de obtener
uno solo en que figuren todos los registros del primero y a continuacin todos los del
segundo.
INTERSECCIN
Definicin 4.23 Dados dos archivos de igual estructura se trata de obtener otro en el que
figuren lo registros comunes a ambos.
7/27/2019 Informe Final_leon Zarate
85/300
CAPITULO IV: Estructuras de datos
ACTUALIZACIN
Definicin 4.26 Es la operacin de modificar un archivo por medio de un archivo de
movimientos, conteniendo altas, bajas y modificaciones que hay que realizar sobre el archivo
maestro.
REORGANIZACIN
Definicin 4.27 Reubica los registros de un archivo que ha sufrido actualizaciones, para
ocupar los posibles huecos libres intermedios resultantes de bajas de registros para optimizar
la ocupacin de la memoria, liberando la que no estaba aprovechada.
BORRADO
Definicin 4.28 Eliminacin total del archivo, cuando ya no se necesite, dejando libre la
memoria del dispositivo de almacenamiento utilizado.
7/27/2019 Informe Final_leon Zarate
86/300
Lic. Elmer Alberto Len Zrate
BEGIN
CH: =UPCASE (Texto[C]);
IF (CH='A') OR (CH='E') OR (CH='I') OR (CH='O') OR (CH='U') THEN
CONTADOR:=CONTADOR +1;
END;
Sin embargo, sera ms cmodo aislarel conjunto de caracteres 'A', 'E', 'I', 'O' y 'U' y,
para cada carcter del texto, decidir si pertenece o no al conjunto de vocales:
Ejemplo 4.13
Para cada carcter Texto[C] ....
Si UPCASE (Texto[C]) pertenece a VOCALES, entonces ..
Incrementar contador de vocales,
En caso contrario, no realizar ninguna accin.
7/27/2019 Informe Final_leon Zarate
87/300
CAPITULO IV: Estructuras de datos
Para definir una constante de tipo CONJUNTO, despus de la palabra CONST, el
identificador de la constante y el signo igual, se escriben todos los elementos del tipo base que
queremos que constituyan el conjunto, separados por comas y encerrados entre corchetes.
Ejemplo 4.14
Conjuntos constantes (constantes de tipo SET) vlidos seran:
CONST VOCALES = ['A','E','I','O','U'];
PARES = [2,4,6,8,0];
De esta manera, con el identificador VOCALES hemos aislado un conjunto de
elementos del tipo base CHAR, y con el identificador PARES lo hemos hecho del tipo base
BYTE.
Se obtendra el mismo resultado si la especificacin de los elementos constituyentes se
realizase en distinto orden;
7/27/2019 Informe Final_leon Zarate
88/300
Lic. Elmer Alberto Len Zrate
Para declarar variables de tipo CONJUNTO, despus de la palabra VAR, el
identificador de la variable y los dos puntos, se escriben las palabras reservadas SET OF
seguidas del identificador del tipo base o subrango del mismo. As,
VAR LETRAS : SET OF CHAR;
NUMERO: SET OF BYTE;
MAYUS : SET OF 'A'....Z';
DECEN : SET OF 10...99;
BOOLE : SET OF BOOLEAN;
Seran declaraciones vlidas de variables de tipo SET. LETRAS es una variable que
podr contener cualquier conjunto de caracteres; NUMERO podr contener cualquier
conjunto de nmeros que pertenezcan al rango 0..255; MAYUS podr contener cualquier
conjunto de caracteres pertenecientes al rango 'A'..'Z', DECEN cualquier conjunto de nmeros
pertenecientes al rango 10..99 y BOOLE cualquier subconjunto del conjunto
7/27/2019 Informe Final_leon Zarate
89/300
CAPITULO IV: Estructuras de datos
MAYUS := ['A','B','S'];
DECEN := [10,20,30,40,50,60,70,80,90];
BOOLE := []; { conjunto vaco }
Como hemos dicho, el tipo base no puede tener ms de 256 valores posibles y los
valores ordinales de los valores menor y mayor del tipo base deben estar en el rango 0..255.
Por esta razn el tipo base de un SET no puede ser de los tipos SHORTINT, INTEGER,
LONGINT ni WORD. Igualmente no puede serlo el subrango -100..100, por ejemplo, as
como algn tipo abs-tracto con ms de 256 valores enumerados.
Ya sabemos definir constantes y declarar variables de tipo SET. Tambin es posible,
como para otros tipos de datos, definir tipos SET, con TYPE:
TYPE NOMBRE = STRING [15];
CALEN = SET OF 1...31;
VAR NAME : NOMBRE;
7/27/2019 Informe Final_leon Zarate
90/300
Lic. Elmer Alberto Len Zrate
OPERADORES RELACIONALES PARA EL TIPO SET
Con el tipo SET se pueden utilizar los siguientes operadores binarios de comparacin
(que por tanto, dan resultado BOOLEAN), con los siguientes significados:
OPERADOR OPERACION TIPO DE OPERANDOS
=
=
IN
Igualdad de ConjuntosDesigualdad de Conjuntos
Subconjunto de
Superconjunto de
Pertenencia a
Tipos Set compatiblesTipos Set compatibles
Tipos Set compatibles
Tipos Set compatibles
Operador izd.: cualquier tipo ordinal T
Operador der.: Set cuyo tipo base sea
compatible con T.
Tipos SET compatibles son aquellos que tienen el mismo tipo base o tipos base
7/27/2019 Informe Final_leon Zarate
91/300
CAPITULO IV: Estructuras de datos
iv) A >= B : es TRUE si y slo si cada miembro de B lo es tambin de A; i.e., si A incluye a
B (A es superconjunto de B).
v) T IN A : retorna TRUE cuando el valor del operando de tipo ordinal, T, es un miembro
del operando de tipo SET, A; en caso contrario devuelve FALSE.
Ejemplos 4.19
Si A = ['a','e','i','o','u']; B = ['a','i','u']; T = 'o', entonces:
WRITE (A = B); {FALSE}
WRITE (A B); {TRUE}
WRITE (A = B); {TRUE}
WRITE (T IN A); {TRUE}
WRITE (T IN B); {FALSE}
Podemos ya codificar en Pascal el programa, del que hablamos al principio del tema,
7/27/2019 Informe Final_leon Zarate
92/300
Lic. Elmer Alberto Len Zrate
OPERADOR OPERACION TIPO DE OPERANDOS
+
-
*
Unin de Conjuntos
Diferencia de Conjuntos
Interseccin de Conjuntos
Tipos Set compatibles
Tipos Set compatibles
Tipos Set compatibles
El resultado de estas operaciones sigue las reglas de la lgica de conjuntos: si A y B son
SET's compatibles, entonces:
i) A + B : resulta un conjunto formado por los elementos que estn en A, en B o en
ambos conjuntos.
ii) A - B : resulta un conjunto formado por los elementos que estn en A y no estn en
B.
iii) A * B : resulta un conjunto formado por los elementos que estn simultneamente
en A y B.
7/27/2019 Informe Final_leon Zarate
93/300
CAPITULO IV: Estructuras de datos
El juego de caracteres:
Los Lenguajes de Programacin utilizan juego de caracteres para comunicarse con las
computadoras.
Los cdigos de comunicacin con las PC son 2:
ASCII (American Standard Code for Information Interchange)
El cdigo Ascii bsico utiliza 7 bits para cada carcter a representar que supone a 128
caracteres distintos, el cdigo Ascii ampliado utiliza 8 bits y en este caso consta de 256
caracteres.
El cdigo ASCII se compone de los siguientes tipos de caracteres:
Alfabticos (a,b,c...z, A,B,C...Z)
Numricos (0,1,2,3,4,5,6,7,8,9)
Especiales (+,-,*, /, {,}, [,], ...)
7/27/2019 Informe Final_leon Zarate
94/300
Lic. Elmer Alberto Len Zrate
52 4 123 {
53 5 124 54 6 125 }
55 7 126 ~
56 8 127
57 9 128
58 : 129
59 ; 130
60 < 154
61 = 160
62 > 161
63 ? 162
64 @ 163
65 A 164
*********** *********** 165
7/27/2019 Informe Final_leon Zarate
95/300
CAPITULO IV: Estructuras de datos
Utiliza 8 bits por carcter y tambin consta de 256 caracteres, solo es utilizado por la
firma IBM y sus componentes.
Nota:
En general, un carcter de cualquier tipo ocupara un byte de almacenamiento de
memoria.
1. CADENAS DE LONGITUD FIJA
Definicin 4.30 Son cadenas con longitud declarada al inicio de la Programacin en la cual
cuenta blancos a la izquierda o derecha o en la separacin de letras.
V I S U A L B A S I C V I
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
7/27/2019 Informe Final_leon Zarate
96/300
Lic. Elmer Alberto Len Zrate
15 es la longitud actual del Arreglo
3. CADENAS DE LONGITUD INDEFINIDA
Definicin 4.32 Son aquellas que se unen a travs de un puntero estas listas contienen
caracteres empaquetados de la forma (2/elemento carcter).
6 V I S U A L
DONDE
6 es la Longitud Actual
OPERACIONES CON CADENAS
Las operaciones ms usadas son:
CALCULO DE LA LONGITUD
7/27/2019 Informe Final_leon Zarate
97/300
CAPITULO IV: Estructuras de datos
Ejemplo 4.21
M i c r o s o f t V i s u a l S t u d i otiene 23 caracteres
La operacin de determina la longitud de la cadena se representara por la funcin
cuyo formato es:
LONGITUD (Cadena de Caracteres)
Dicha formula tiene acceso a datos tipo carcter pero el resultado ser
numrico.
Ejemplos:
LONGITUD (MICROSOFT VISUAL STUDIO') 23 caracteres
LONGITUD ( ') 3 caracteres
LONGITUD ( ESTRUCTURA DE DATOS) 21 caracteres
(19 letras) y (3 espacios)
7/27/2019 Informe Final_leon Zarate
98/300
Lic. Elmer Alberto Len Zrate
Ejemplo 4.23
A > B
A = a
COMPARACION DE IGUALDAD: Utilizar el Signo Igual
AREVALO = AREVALO verdadero
AREVALO = Arvalo falso
AREVALO = Arvalo falso
Ejemplo 4.24
COMPARACION DE DESIGUALDAD: Utilizar
Arvalo < AREVALO
Cceres > Arvalo
AREVALO > Arvalo
7/27/2019 Informe Final_leon Zarate
99/300
CAPITULO IV: Estructuras de datos
d) EXTRACCION DE SUBCADENAS
Definicin 4.36 Es aquella que permite la extraccin de una parte especfica de una
cadena llamndose as Subcadena.
Utilizar la siguiente funcin:
SUBCADENA (Cadena , Posicin Inicial, longitud de la subcadena)
En este caso la Subcadena estar compuesta por la cantidad de caracteres que
extraiga desde la posicin actual y la longitud de la misma.
SUBCADENA (Cadena , Posicin Inicial)
En este caso la Subcadena estar formado por caracteres de la cadena desde la
posicin inicial hacia al final de la misma.
Ejemplo 4.25
Subcadena (abcdefg, 2,4) bcde
7/27/2019 Informe Final_leon Zarate
100/300
Lic. Elmer Alberto Len Zrate
Funcin:
Cadena = Funcin Cambiante a cadena (valor numrico)
Numero = Funcin cambiante a numero (Valor de texto)
EN C: ATOI (CADENA) ITOA, FCVT
EN BASIC:
- VAL: Devuelve los nmeros contenidos en una cadena.
VAL (cadena)
- STR: Devuelve la representacin de cadena en nmeros.
STR (numero)
g) INSERTAR CADENAS
Definicin 4.39 Inserta una subcadena dentro de una cadena ms larga = y en
7/27/2019 Informe Final_leon Zarate
101/300
CAPITULO IV: Estructuras de datos
Ejemplo 4.26
CADENA= E S T R U C T U R A I N F O R M A C I O N, debemos agregar las
letras que faltan para que la nueva cadena sea ESTRUCTURA DE LA
INFORMACIN
Subcadena (cadena, 1, (12-1)) ESTRUCTURA_
Cadena a insertar DE LA_
Subcadena (cadena, 12, (22-12+1) INFORMACION
h) BORRAR CADENAS
Definicin 4.40 Elimina determinados caracteres de cuerdo a una posicin y la
cantidad de caracteres a borrar.
Sintaxis: BORRAR (Cadena, posicin, Longitud a eliminar)
Idea: Si el texto es: ABCD El nuevo texto ser: AD
7/27/2019 Informe Final_leon Zarate
102/300
Lic. Elmer Alberto Len Zrate
i) CAMBIAR CADENAS
Sustituye un texto por otro.
Sintaxis: CAMBIAR (Cadena, Subcadena a sustituir, Subcadena nueva)
Idea: Si el texto es: ABCD El nuevo texto ser: AXYD
CAMBIAR (ABCDEF,BC,XY) AXYDEF
Algoritmo para CAMBIAR cadenas:
Inicio
A POSICION (cadena, Subcadena) Entero
B BORRAR (cadena, A, LONGITUD (CADENA)) string
DEVOLVER (INSERTAR (cadena, A, Subcadena) string
Fin
7/27/2019 Informe Final_leon Zarate
103/300
CAPITULO IV: Estructuras de datos
Una manera simple de implementar una lista es utilizando un arreglo. Sin embargo, las
operaciones de insercin y borrado de elementos en arreglos son ineficientes, puesto que para
insertar un elemento en la parte media del arreglo es necesario mover todos los elementos que
se encuentren delante de l, para hacer espacio, y al borrar un elemento es necesario mover
todos los elementos para ocupar el espacio desocupado. Una implementacin ms eficiente
del TDA se logra utilizando listas enlazadas.
A continuacin se presenta una implementacin en Java del TDA utilizando listas
enlazadas y sus operaciones asociadas:
estaVacia (): devuelve verdadero si la lista esta vaca, falso en caso contrario.
insertar(x, k): inserta el elementox en la k-sima posicin de la lista.
buscar(x): devuelve la posicin en la lista del elemento x.
b scarK (k) d l l k i l t d l li t
7/27/2019 Informe Final_leon Zarate
104/300
Lic. Elmer Alberto Len Zrate
que el previo del primer elemento es la cabecera. Una lista vaca corresponde, en este caso, a
una cabecera cuya referencia siguiente es null.
Ilustracin 4.1 Esquema de una lista
Los archivos NodoLista.java, IteradorLista.java y Lista.java contienen una
implementacin completa del TDA lista. La clase NodoLista implementa los nodos de la lista
enlazada, la clase Lista implementa las operaciones de la lista propiamente tal, y la clase
IteradorLista implementa objetos que permiten recorrer la lista y posee la siguiente interfaz:
Avanzar (): avanza el iterador al siguiente nodo de la lista.
7/27/2019 Informe Final_leon Zarate
105/300
CAPITULO IV: Estructuras de datos
Ilustracin 4.2 Esquema de una pila
La interfaz de este TDA provee las siguientes operaciones:
apilar(x): inserta el elementox en el tope de la pila (push en ingls).
desapilar (): retorna el elemento que se encuentre en el tope de la pila y lo elimina de
sta (pop en ingls).
tope (): retorna el elemento que se encuentre en el tope de la pila, pero sin eliminarlo
7/27/2019 Informe Final_leon Zarate
106/300
Lic. Elmer Alberto Len Zrate
IMPLEMENTACIN DEL TDA PILA
A continuacin se muestran dos maneras de implementar una pila: utilizando un
arreglo y utilizando una lista enlazada. En ambos casos el costo de las operaciones es de O
(1).
1.- IMPLEMENTACIN UTILIZANDO ARREGLOS
Para implementar una pila utilizando un arreglo, basta con definir el arreglo del tipo de
dato que se almacenar en la pila. Una variable de instancia indicar la posicin del tope de la
pila, lo cual permitir realizar las operaciones de insercin y borrado, y tambin permitir
saber si la pila esta vaca, definiendo que dicha variable vale -1 cuando no hay elementos en
el arreglo.
7/27/2019 Informe Final_leon Zarate
107/300
CAPITULO IV: Estructuras de datos
if (tope+1
7/27/2019 Informe Final_leon Zarate
108/300
Lic. Elmer Alberto Len Zrate
{
if (tope==-1)
{
return true;
}
else
{
return false;
}
}
}
El inconveniente de esta implementacin es que es necesario fijar de antemano el
7/27/2019 Informe Final_leon Zarate
109/300
CAPITULO IV: Estructuras de datos
else
{
MAX_ELEM=MAX_ELEM*2;
Object[] nuevo_arreglo=new Object[MAX_ELEM];
for (int i=0; i
7/27/2019 Informe Final_leon Zarate
110/300
Lic. Elmer Alberto Len Zrate
private NodoLista lista;
public PilaLista()
{
lista=null;
}
public void apilar(Object x)
{
lista=new NodoLista(x, lista);
}
public Object desapilar() //si esta vacia se produce UNDERFLOW
{
if (!estaVacia())
{
7/27/2019 Informe Final_leon Zarate
111/300
CAPITULO IV: Estructuras de datos
}
}
public boolean estaVacia()
{
return lista==null;
}
}
Dependiendo de la aplicacin que se le de a la pila es necesario definir que accin
realizar en caso de que ocurra overflow (rebalse de la pila) o underflow (intentar desapilar
cuando la pila esta vaca). Java posee un mecanismo denominado excepciones, que permite
realizar acciones cuando se producen ciertos eventos especficos (como por ejemplo overflow
7/27/2019 Informe Final_leon Zarate
112/300
Lic. Elmer Alberto Len Zrate
Ilustracin 4.3 Esquema de recursividad
Si la llamada recursiva es lo ltimo que hace la funcin F, entonces dicha llamada se
puede substituir por un ciclo while. Este caso es conocido como tail recursion y en lo posible
hay que evitarlo en la programacin, ya que cada llamada recursiva ocupa espacio en la
memoria del computador, y en el caso del tail recursion es muy simple eliminarla.
void imprimir(int[] a, int j) // versin recursiva
7/27/2019 Informe Final_leon Zarate
113/300
CAPITULO IV: Estructuras de datos
j=j+1;
}
}
En el caso general, cuando el llamado recursivo se realiza en medio de la funcin F, la
recursin se puede eliminar utilizando una pila.
Ejemplo 4.29
Recorrido en preorden de un rbol binario.
// "raiz" es la referencia a la raiz del arbol
// Llamado inicial: preorden(raiz)
// Versin recursiva
7/27/2019 Informe Final_leon Zarate
114/300
Lic. Elmer Alberto Len Zrate
Nodo aux;
Pila pila=new Pila(); // pila de nodos
pila.apilar(nodo);
while(!pila.estaVacia()) // mientras la pila no este vacia
{
aux=pila.desapilar();
if (aux!=null)
{
System.out.print(aux.elemento);
// Primero se apila el nodo derecho y luego el izquierdo
// Para mantener el orden correcto del recorrido
// Al desapilar los nodos
pila apilar(aux der);
CAPITULO IV E d d
7/27/2019 Informe Final_leon Zarate
115/300
CAPITULO IV: Estructuras de datos
Nodo aux;
Pila pila=new Pila(); // pila de nodos
pila.apilar(nodo);
while(!pila.estaVacia()) // mientras la pila no este vacia
{
aux=pila.desapilar();
while (aux!=null)
{
System.out.print(aux.elemento);
pila.apilar(aux.der);
aux=aux.izq;
}
}
Li El Alb L Z
7/27/2019 Informe Final_leon Zarate
116/300
Lic. Elmer Alberto Len Zrate
C) COLAS
Definicin 4.43 Una cola (queue en ingls) es una lista de elementos en donde siempre se
insertan nuevos elementos al final de la lista y se extraen elementos desde el inicio de la lista.
Tambin se conoce a las colas como listas FIFO (FIRST IN - FIRST OUT: el primero que
entra es el primero que sale).
Ilustracin 4.4 Esquema de cola
Las operaciones bsicas en una cola son:
( )
CAPITULO IV E d d
7/27/2019 Informe Final_leon Zarate
117/300
CAPITULO IV: Estructuras de datos
ultimo: indica el ndice de la posicin de ltimo elemento de la cola. Si se invoca
encolar, el elemento debe ser insertado en el casillero siguiente al que indica la
variable.
numElem: indica cuntos elementos posee la cola. Definiendo MAX_ELEM como el
tamao mximo del arreglo, y por lo tanto de la cola, entonces la cola esta vaca si
numElem==0 y est llena si numElem==MAX_ELEM.
Ilustracin 4.5 Esquema de elementos en una cola
Li El Alb t L Z t
7/27/2019 Informe Final_leon Zarate
118/300
Lic. Elmer Alberto Len Zrate
Ilustracin 4.6 Esquema de elementos en una cola para implementar con arreglo circular
class ColaArreglo
{
private Object[] arreglo;
private int primero, ultimo, numElem;
private int MAX_ELEM=100; /maximo numero de elemento en la cola
bli C l A l ()
CAPITULO IV E t t d d t
7/27/2019 Informe Final_leon Zarate
119/300
CAPITULO IV: Estructuras de datos
arreglo[ultimo]=x;
numElem++;
}
}
public Object sacar()
{
if (!estaVacia()) // si esta vacia se produce UNDERFLOW
{
Object x=arreglo[primero];
primero= (primero+1) %MAX_ELEM;
numElem--;
return x;
}
Lic Elmer Alberto Len Zrate
7/27/2019 Informe Final_leon Zarate
120/300
Lic. Elmer Alberto Len Zrate
D) LISTAS ENLAZADAS
Definicin 4.44 En Ciencias de la Computacin, una lista enlazada es una de las
estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de
datos. Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios
y una o dos referencias (punteros) al nodo anterior y/o posterior. El principal beneficio de las
listas enlazadas respecto a los arreglos convencionales es que el orden de los elementos
enlazados puede ser diferente al orden de almacenamiento en la memoria o el disco,
permitiendo que el orden de recorrido de la lista sea diferente al de almacenamiento.
Una lista enlazada es un tipo de dato auto-referenciado porque contienen un puntero o
link a otro dato del mismo tipo. Las listas enlazadas permiten inserciones y eliminacin de
nodos en cualquier punto de la lista en tiempo constante (suponiendo que dicho punto est
CAPITULO IV: Estructuras de datos
7/27/2019 Informe Final_leon Zarate
121/300
CAPITULO IV: Estructuras de datos
TIPOS DE LISTAS ENLAZADAS
1.-LISTAS SIMPLES ENLAZADAS
Definicin 4.45 La lista enlazada bsica es la lista enlazada simple la cual tiene un enlace
por nodo. Este enlace apunta al siguiente nodo en la lista, o al valor NULL o a la lista vaca, si
es el ltimo nodo.
Ilustracin 4.7 Esquema de lista enlazada simple
Una lista enlazada simple contiene dos valores: el valor actual del nodo y un enlace al
siguiente nodo
2.- LISTA DOBLEMENTE ENLAZADA
Lic Elmer Alberto Len Zrate
7/27/2019 Informe Final_leon Zarate
122/300
Lic. Elmer Alberto Len Zrate
En algn lenguaje de muy bajo nivel, XOR-Linking ofrece una va para implementar
listas doblemente enlazadas, usando una sola palabra para ambos enlaces, aunque el uso de
esta tcnica no se suele utilizar.
3.- LISTAS ENLAZADAS CIRCULARES
Definicin 4.47 En una lista enlazada circular, el primer y el ltimo nodo estn unidos
juntos. Esto se puede hacer tanto para listas enlazadas simples como para las doblemente
enlazadas. Para recorrer un lista enlazada circular podemos empezar por cualquier nodo y
seguir la lista en cualquier direccin hasta que se regrese hasta el nodo original. Desde otro
punto de vista, las listas enlazadas circulares pueden ser vistas como listas sin comienzo ni
fin. Este tipo de listas es el ms usado para dirigir buffers para ingerir datos, y para visitar
todos los nodos de una lista a partir de uno dado.
CAPITULO IV: Estructuras de datos
7/27/2019 Informe Final_leon Zarate
123/300
CAPITULO IV: Estructuras de datos
ltimo elemento en una lista enlazada circular simple, esto nos permite rpidas inserciones al
principio, y tambin permite accesos al primer nodo desde el puntero del ltimo nodo.[1]
b) Lista Enlazada Doblemente Circular
Definicin 4.49 En una lista enlazada doblemente circular, cada nodo tiene dos enlaces,
similares a los de la lista doblemente enlazada, excepto que el enlace anterior del primer nodo
apunta al ltimo y el enlace siguiente del ltimo nodo, apunta al primero. Como en una lista
doblemente enlazada, las inserciones y eliminaciones pueden ser hechas desde cualquier
punto con acceso a algn nodo cercano. Aunque estructuralmente una lista circular
doblemente enlazada no tiene ni principio ni fin, un puntero de acceso externo puede
establecer el nodo apuntado que est en la cabeza o al nodo cola, y as mantener el orden tan
bien como en una lista doblemente enlazada.
Lic Elmer Alberto Len Zrate
7/27/2019 Informe Final_leon Zarate
124/300
Lic. Elmer Alberto Len Zrate
El campo de datos de un nodo puede ser otra lista enlazada. Mediante este mecanismo,
podemos construir muchas estructuras de datos enlazadas con listas; esta prctica tiene su
origen en el lenguaje de programacin Lisp, donde las listas enlazadas son una estructura de
datos primaria (aunque no la nica), y ahora es una caracterstica comn en el estilo de
programacin funcional.
A veces, las listas enlazadas son usadas para implementar arreglos asociativos, y estas
en el contexto de las llamadas listas asociativas. Hay pocas ventajas en este uso de las listas
enlazadas; hay mejores formas de implementar stas estructuras, por ejemplo con rboles
binarios de bsqueda equilibrados. Sin embargo, a veces una lista enlazada es dinmicamente
creada fuera de un subconjunto propio de nodos semejante a un rbol, y son usadas ms
eficientemente para recorrer sta serie de datos
VENTAJAS
CAPITULO IV: Estructuras de datos
7/27/2019 Informe Final_leon Zarate
125/300
CAPITULO IV: Estructuras de datos
independientemente de la posicin en la que se inserte, solo se debe crear el nodo y modificar
los enlaces. Esto no es as en los arreglos, ya que si el elemento lo insertamos al inicio o en
medio, tenemos un tiempo lineal debido a que se tienen que mover todos los elementos que se
encuentran a la derecha de la posicin donde lo vamos a insertar y despus insertar el
elemento en dicha posicin; solo al insertar al final del arreglo se obtienen tiempos constantes.
Al eliminar un elemento paso lo mismo que se menciono en el punto anterior.
DESVENTAJAS DE USAR LISTAS:
El acceso a un elemento es ms lento, debido a que la informacin no est en
posiciones contiguas de memoria, por lo que no podemos acceder a un elemento con base en
su posicin como se hace en los arreglos.
OPERACIONES EN LISTAS ENLAZADAS
Lic Elmer Alberto Len Zrate
7/27/2019 Informe Final_leon Zarate
126/300
Lic. Elmer Alberto Len Zrate
c) BORRADO. La operacin de borrado consiste en quitar un nodo de la lista,
redefiniendo las ligas que correspondan. Se pueden presentar cuatro casos:
Eliminar el primer nodo.
Eliminar el ltimo nodo.
Eliminar un nodo con cierta informacin.
Eliminar el nodo anterior o posterior al nodo cierta con informacin.
d) BSQUEDA. Esta operacin consiste en visitar cada uno de los nodos, tomando al
campo liga como puntero al siguiente nodo a visitar.
E) RBOLES
Definicin 4.51 Un rbol se define como una coleccin de nodos organizados en forma
CAPITULO IV: Estructuras de datos
7/27/2019 Informe Final_leon Zarate
127/300
CAPITULO IV: Estructuras de datos
Definicin 4.52 Los nodos que no poseen hijos se denominan hojas. Dos nodos que tienen
el padre en comn se denominan hermanos.
Definicin 4.53 Un camino entre un nodo n1 y un nodo nk est definido como la secuencia
de nodos n1, n2,..., nk tal que ni es padre de ni+1, 1
7/27/2019 Informe Final_leon Zarate
128/300
Lic. Elmer Alberto Len Zrate
Ilustracin 4.11 Esquema de los elementos de un rbol
A es la raz del rbol.
A es padre de B, C y D.
E y F son hermanos puesto que ambos son hijos de B
CAPITULO IV: Estructuras de datos
7/27/2019 Informe Final_leon Zarate
129/300
CAPITULO IV: Estructuras de datos
RBOLES BINARIOS
Definicin 4.55 Un rbol binario es un rbol en donde cada nodo posee 2 referencias a
subrboles (ni ms, ni menos). En general, dichas referencias se denominan izquierda y
derecha, y consecuentemente se define el subrbol izquierdo y subrbol derecho del rbol.
Ilustracin 4.12 Esquema de un rbol binario
Lic. Elmer Alberto Len Zrate
7/27/2019 Informe Final_leon Zarate
130/300
n a
Ilustracin 4.13 Esquema de un rbol binario con nodos internos y externos
PROPIEDADES DE LOS RBOLES BINARIOS
Propiedad 4.1
Si se define i = nmero de nodos internos, e = nmero de nodos externos, entonces se
CAPITULO IV: Estructuras de datos
7/27/2019 Informe Final_leon Zarate
131/300
En = In+2n
Propiedad 4.3
Cuntos rboles binarios distintos se pueden construir con n nodos internos?
n 0 1 2 3
bn 1 1 2 5
bn?
Ejemplo 4.31
Lic. Elmer Alberto Len Zrate
7/27/2019 Informe Final_leon Zarate
132/300
Ejemplo 4.32
La siguiente figura muestra un ejemplo de un rbol de expresiones matemticas. En un
rbol de expresiones las hojas corresponden a los operandos de la expresin (variables o
constantes), mientras que los nodos restantes contienen operadores. Dado que los operadores
matemticos son binarios (o unarios como en el caso del operador signo -), un rbol de
expresiones resulta ser un rbol binario.
Ilustracin 4.14 Esquema de un rbol binario de expresiones matemticas
CAPITULO IV: Estructuras de datos
7/27/2019 Informe Final_leon Zarate
133/300
RECORRIDOS DE RBOLES BINARIOS
Existen tres formas principales para recorrer un rbol binario en forma recursiva. Estas
son:
Preorden: raz - subrbol izquierdo - subrbol derecho.
Inorden: subrbol izquierdo - raiz - subrbol derecho.
Postorden: subrbol izquierdo - subrbol derecho - raz.
Ejemplos 4.33
Recorrido del rbol de expresiones anterior enpreorden se obtiene: * + a b - c d
Recorrido del rbol de expresiones en inorden se obtiene: a + b * c - d
Recorrido del rbol de expresiones enpostorden se obtiene: a b + c d - *
Lic. Elmer Alberto Len Zrate
7/27/2019 Informe Final_leon Zarate
134/300
4. Realizar el algoritmo para ingresar un arreglo bidimensional de numero y luego
determine:
La suma de la primera fila
La multiplicacin de la ltima fila
La suma de primera columna
La multiplicacin de la ltima columna
La suma de la diagonal principal
La multiplicacin de la diagonal secundaria
5. Escribir un pseudocdigo que permita sumar el nmero de elementos positivos y el de
negativos de una matriz n.
6. De una lista de n elementos escribir el pseudocdigo que permita insertar el valor x en
un lugar ingresado por el usuario.
CAPITULO IV: Estructuras de datos
7/27/2019 Informe Final_leon Zarate
135/300
A B C D E E F
12. Programa en Visual Basic donde se ingrese un texto en los Cuadros TEXT1 Y TEXT2
y luego se unan en un cuadro de TEXT3 al presionar Clic en un botn command que
se llame Concatenacin.
Text3.Text = Text1.Text + Text2.Text
Text3.Text = Text1.Text & Text2.Text
7/27/2019 Informe Final_leon Zarate
136/300
CAPITULO V
TEORIA DE GRAFOS
5.1 CONCEPTOS BASICOS
Definicin 5.1 Un grafo es un objeto matemtico que se utiliza para representar circuitos,redes, etc. Los grafos son muy utilizados en computacin, ya que permiten resolver problemas
muy complejos.
Definicin 5.2 Un grafo consta de vrtices (o nodos) y aristas. Los vrtices son objetos que
contienen informacin y las aristas son conexiones entre vrtices. Para representarlos, se
suelen utilizar puntos para los vrtices y lneas para las conexiones, aunque hay que recordar
siempre que la definicin de un grafo no depende de su representacin.
CAPITULO V: Teoria de grafos
7/27/2019 Informe Final_leon Zarate
137/300
reduccin del grafo en el que solo entran a formar parte el nmero mnimo de aristas que
forman un rbol y conectan a todos los nodos.
Definicin 5.5 Un grafo es completo si cuenta con todas las aristas posibles (es decir, todos
los nodos estn conectados con todos), disperso si tiene relativamente pocas aristas y denso si
le faltan pocas para ser completo.
Definicin 5.6 Un grafo no dirigido es cuando las aristas son la mayor parte de las veces
bidireccionales, es decir, si una arista conecta dos nodos A y B se puede recorrer tanto en
sentido hacia B como en sentido hacia A.
Definicin 5.7 Un grafo dirigido es cuando las aristas son unidireccionales. Estas uniones
se suelen dibujar con una flecha.
Lic. Elmer Alberto Len Zrate
7/27/2019 Informe F