Estructura de datos

75
METODOLOGÍA DE PROGRAMACIÓN, DESARROLLO DE PROGRAMAS EN JAVA Lic. Diego Fabian Gómez

Transcript of Estructura de datos

Page 1: Estructura de datos

METODOLOGÍA DE PROGRAMACIÓN, DESARROLLO

DE PROGRAMAS EN JAVA

Lic. Diego Fabian Gómez

Page 2: Estructura de datos

OBJETIVOS• Resolver problemas mediante el uso de una

computadora• Entender las etapas en la resolución de un

problema.• Conocer el concepto de algoritmo• Examinar las técnicas de resolución de

problemas.• Procesar un programa en JAVA.

Page 3: Estructura de datos

BREVE HISTORIA DE JAVA• Java surgió en 1991 dentro de la empresa Sun Microsystems

como un lenguaje de programación sencillo y universal destinado a electrodomésticos.

• La reducida potencia de cálculo y memoria de los electrodomésticos llevó a desarrollar un lenguaje sencillo que pudiera generar código de tamaño muy reducido.

• Java desarrolla un código “neutro” que no depende del tipo de electrodoméstico, el cual se ejecuta sobre una “máquina virtual”, denominada Java Virtual Machine (JVM).

• La JVM interpreta el código neutro (independiente del procesador) convirtiéndolo a código propio de la máquina concreta.

• En realidad, ninguna empresa de electrodomésticos se interesó por el nuevo lenguaje.

Page 4: Estructura de datos

BREVE HISTORIA DE JAVA• A finales de 1995 Java se reconvirtió en un lenguaje de

programación utilizable en Internet (en la World Wide Web). Para ello se incorporó una JVM en Netscape Navigator 2.0, produciendo una verdadera revolución en el mundo de los ordenadores.

• En Septiembre de 1996 se utilizó Java en la matrícula de los alumnos de la ESIISS.

• La promesa de Java consiste en llegar a ser el “nexo universal” que conecte a los usuarios con la información, esté donde esté esta información: “Write once, run everywhere”

• Java 1.1 apareció a principios de 1997 mejorando mucho la primera versión del lenguaje

• Java 1.2 (Java 2) apareció a finales de 1998 incorporando nuevos elementos. Según sus creadores en Sun Microsystems, ésta es la primera versión realmente profesional.

Page 5: Estructura de datos

RESOLUCIÓN DE PROBLEMAS• El proceso para resolver problemas con una computadora

implica la escritura de un programa y su posterior ejecución:• ANÁLISIS: El problema o la situación se examina considerando la

especificación de los requerimientos indicados por el cliente, respecto al programa.DISEÑO DEL ALGORITMO: Una vez que se analice el problema se diseña una solución que se dirija a un algoritmo o método que lo resuelva correctamente.CODIFICACIÓN: La solución se escribe en la sintaxis de algún lenguaje de alto nivel, obteniendo un programa fuente que a continuación será compilado.COMPILACION Y EJECUCION: Que el programa se agrupa, se compila, se obtiene el programa objeto y si no existen errores se ejecuta.

Page 6: Estructura de datos

RESOLUCIÓN DE PROBLEMAS• VERIFICACIÓN Y EJECUCIÓN: El programa se comprueba

rigurosamente y se eliminan todos los errores que aparezca a dichos erratas se le denomina bugs

• MANTENIMIENTO: El programa se actualiza y se modifica cada ves que sea necesario para que se cumplan todas las necesidades de los usuarios; en esta fase se utilizan y mejoran los algoritmos realizando los cambios si los requisitos así lo exigen.DOCUMENTACION: Escritura de las diferentes fases del ciclo de vida del software, escribiendo en limpio el análisis, el diseño y la codificación. Se elaboran los manuales de usuario y el técnico, también las normas para el mantenimiento.

Page 7: Estructura de datos

ANÁLISIS DEL PROBLEMA• Esta fase requiere definir el problema y especificar

claramente las tareas que el programa debe realizar y el resultado o solución que se espera, esta etapa se divide en varias fases– Comprender el problema lo más fielmente posible – Entender y describir los requerimientos o requisitos del programa. Es

necesario aclarar si el programa requiere interacción con el usuario para leer datos de entrada y especificar los formatos de salida o resultados.

– especificar los datos supone describirlos y Sí representarlos en su formato correspondiente.

– el programa produce una salida se debe especificar Cómo generar y dar formato a los resultados.

Page 8: Estructura de datos

DISEÑO DEL ALGORITMO• Después de analizar el problema y la descripción

de las especificaciones necesarias, El Paso siguiente es diseñar un algoritmo que lo resuelva para esto la computadora necesita que se le indique las tareas acciones a ejecutar.

• Un algoritmo es un método para resolver un problema mediante una serie de pasos precisos, definido y finitos.

• La especificación del orden en el que se realizan las instrucciones o acciones del programa, se denomina control de programas; este control se realiza con instrucciones secuenciales o repetitivas

Page 9: Estructura de datos

DISEÑO DEL ALGORITMO• Cualquier software bien diseñado consta de un programa principal siendo

este el módulo de nivel más alto que llama a los subprogramas que son de nivel más bajo.– El proceso implica ejecutar los siguientes pasos hasta que el programa

concluye:• Programa un módulo• Comprobarlo• Depurarlo• Combinar módulos

Page 10: Estructura de datos

DISEÑO DEL ALGORITMO• Hacer un pseudocodigo que imprima los números del 1 al 100. • PROGRAMA contador1• ENTORNO:• c <- 0• ALGORITMO:• Borrar_pantalla( )• MIENTRAS c < 101 HACER• ESCRIBIR c• c <- c + 1• FINMIENTRAS• FINPROGRAMA

Page 11: Estructura de datos

CODIFICACIÓN• La codificación es la escritura en leguaje de programación de

la representación del algoritmo desarrollada en la fase de diseño y análisis.

• Es entonces pasar a un lenguaje de programación, en el caso de JAVA se guarda en un archivo de texto con la extensión de JAVA. Luego se de debe compilar el código fuente.

Page 12: Estructura de datos

COMPILACIÓN – INTERPRETACION DE UN PROGRAMA JAVA

• El programa fuente debe traducirse a lenguaje máquina; este proceso lo debe realizar con el compilador y el sistema operativo, que prácticamente se encarga de ello. La ejecución del código fuente en el compilador verifica la exactitud y corrección de la sintaxis del programa fuente.

Page 13: Estructura de datos

VERIFICACIÓN Y DEPURACIÓN DE UN PROGRAMA JAVA

• La verificación o depuración de un programa es el proceso de su ejecución con una amplia variedad de datos de entrada llamados test o prueba que determinarán si el programa tiene errores (bugs).

• Errores que se pueden hallar en la verificación son:– Errores de compilación– Errores de ejecución– Errores lógicos

Page 14: Estructura de datos

DOCUMENTACIÓN Y MANTENIMIENTO

• La documentación de un programa consiste en describir los pasos a seguir en el proceso de resolución; su importancia destaca por su decisiva influencia en el producto final.

• La documentación puede ser interna o externa.

Page 15: Estructura de datos

CREACIÓN DE UN PROGRAMA EN JAVA

Page 16: Estructura de datos

CREACIÓN DE UN PROGRAMA EN JAVA• Java tiene dos tipos de programas:

aplicaciones y applets.• Una applet es un programa que se ejecuta

como parte de una página web.• Una aplicación en JAVA es como cualquier

otro programa que se ejecuta en una computadora determinada.

Page 17: Estructura de datos

CREACIÓN DE UN PROGRAMA EN JAVA• Una aplicación en JAVA es un conjunto de

clases, las clases contienen datos y métodos para su manipulación.

Page 18: Estructura de datos

EJECUCIÓN DE UN PROGRAMA EN JAVA• Edición del programa.• Compilación del programa.• Carga del programa en memoria.• Verificación de bytecodes y ejecución del

programa.

Page 19: Estructura de datos

Código fuente(editor)

Compilador

Generación Bytecode

Cargador

Interprete

Ejecución

Biblioteca de clases

Page 20: Estructura de datos

ACTIVIDAD• Hacer la resolución del siguiente problema usando el

pseudocódigo (MÍNIMO 20) y mostrar los pasos en JAVA:– Ir a cine a ver la película “DeadPool”

• Hacer el pseudocódigo y su respectivo programa en JAVA – Hacer un programa que imprima la suma de los 100 primeros

números.– Hacer un pseudocódigo que imprima los números impares hasta el

100 y que imprima cuantos impares hay.– Hacer un pseudocódigo que imprima todos los números naturales que

hay desde la unidad hasta un numero que introducimos por teclado.• Realice un ejemplo de un Array.• Realice un ejemplo de una Matriz.• De un ejemplo de una Pila.

Page 21: Estructura de datos

3° CLASEELEMENTOS DE JAVA

Page 22: Estructura de datos

ELEMENTOS BÁSICOS DE JAVA• Objetivos:

– Formar identificadores básicos del lenguaje– Escribir expresiones en Java– Escribir la sintaxis de expresiones aritméticas.

Page 23: Estructura de datos

Estructura General• Cada programa se compone de una o más clases y

obligatoriamente main () debe ser uno de los métodos de la clase principal.

• Debe tener una serie de declaraciones import que permitan incluir archivos que consten de clases y datos predefinidos.

• Un programa debe incluir:– Declaraciones para importar clases de los paquetes– Declaraciones de clases.– El método main()– Métodos definidos por el usuario dentro de las clases.– Comentarios del programa.

Page 24: Estructura de datos

Estructura General

Page 25: Estructura de datos

Declaración import• En Java, las clases se agrupan en paquetes (packages) que definen utilidades o

grupos temáticos, y que se encuentran en el disco con su mismo nombre.• Para incorporar y utilizar las clases de un paquete en un programa se utiliza la

declaración import.• Ejemplo:

– Import java.awt.Graphics;– Esta trae la clase Graphics del paquete awt.

• La sintaxis general de la declaración import es:– Import nombrePaquete.nombreClase;

• Los paquetes pueden ser definidos por el programador para agrupar las clases creadas.

– Ejemplo:– Si ha definido la un paquete llamado Casa, con las clases Climatizador, Computador, Nevera, Tv, se

pueden hacer las siguientes declaraciones:– import casa.Computador;– import casa.Never– O también:– import casa.*;

Page 26: Estructura de datos

Declaración clases• El programa debe tener al menos una clase, la principal, que incluya el método

main () y si es necesario otros métodos y variables. generalmente indicando el acceso; seguida por su indicador, la palabra reservada class, su nombre y sus miembros: variables y métodos;

• por ejemplo:• class Potencia• {• int n, p;• public static void main(String [] ar)• {• int r, e;• int n, p;• n = 7;• p = e = 5;• r = 1;• for ( ; p > 0; p--)• r = r*n;• System.out.println("Potencia de " + n + "^" + e + " = " + r);• }• }

Page 27: Estructura de datos

Declaración clases• El archivo donde se guarde el programa anterior debe tener como nombre

potencia.java; el nombre del archivo fuente siempre será el mismo que el de la clase principal, es decir, la que contiene main(), y la extensión java.

• class Sumatorio• {• int n, p;• public int sumar()• {• int k, e;• n = 71;• p = e = 5;• return n+k+e+p;• }• }• Las declaraciones dentro de una clase indican al compilador que los métodos definidos• por el usuario o variables son comunes a todos los miembros de su clase. En la clase• Sumatorio las variables n, p se pueden utilizar en cualquier método de la clase; sin• embargo, k y e, situados en el método sumar(), sólo se pueden utilizar dentro de ese• método.

Page 28: Estructura de datos

Método main()• Cada programa Java tiene un método main() como punto inicial de entrada al

programa cuya estructura es:• public static void main(String [] ar)• {• ... bloque de sentencias• }• Un programa puede tener sólo un método main(); hacer dos métodos• main() produce un error, aunque estén en clases diferentes.• El argumento de main() es una colección (array) de cadenas que• permiten introducir datos sucesivos de caracteres en la línea de ejecución• del programa; por ejemplo, suponga que tiene el programa Nombres,

entonces la• ejecución puede ser:• java Nombres Luis Gerardo Fernando

Page 29: Estructura de datos

Método main()• En esta ejecución Luis, Gerardo y Fernando

están asignados a ar[0], ar[1] y ar[2] y el programa se puede referir a esas cadenas.

• Java exige que este método se declare como public static void;

• Sólo se puede llamar a otro método static y hacer referencias a variables de la misma clase.

Page 30: Estructura de datos

Método main()• En esta ejecución Luis, Gerardo y Fernando

están asignados a ar[0], ar[1] y ar[2] y el programa se puede referir a esas cadenas.

• Java exige que este método se declare como public static void;

• Sólo se puede llamar a otro método static y hacer referencias a variables de la misma clase.

Page 31: Estructura de datos

Método main()• El programa siguiente se compone de tres métodos que se• invocan sucesivamente: obtenerdatos(), alfabetizar() y verpalabras.• // declaraciones import• class Programa• {• public static void main(String [] ar)• {• obtenerdatos();• alfabetizar();• verpalabras();• }• ...• }

Page 32: Estructura de datos

Método main()• El programa siguiente se compone de tres métodos que se• invocan sucesivamente: obtenerdatos(), alfabetizar() y verpalabras.• // declaraciones import• class Programa• {• public static void main(String [] ar)• {• obtenerdatos();• alfabetizar();• verpalabras();• }• ...• }

Page 33: Estructura de datos

Métodos definidos por el usuario• Todos los programas se construyen a partir de una o

más clases compuestas por una serie de variables y métodos que se integran para crear una aplicación; todos los métodos contienen una o más sentencias de Java, generalmente creadas para realizar una única tarea, como imprimir en pantalla, escribir un archivo o cambiar el color de la pantalla; es posible declarar un número casi ilimitado de métodos en una clase de Java.

Page 34: Estructura de datos

Métodos definidos por el usuario• Si la llamada es desde un objeto de la clase, se invoca

al método precedido del objeto y el selector punto (.). ejemplo, se crea un objeto de la clase Sumatorio y se invoca al método sumar():

• Sumatorio sr = new Sumatorio();• sr.sumar();

Page 35: Estructura de datos

Métodos definidos por el usuario• Todos los métodos tienen nombre y una lista de valores atribuidos, llamados

parámetros o argumentos, se puede asignar cualquier nombre a un método pero normalmente se procura que dicho nombre describa su propósito.

• Los métodos en Java se especifican en la clase a la que pertenecen; su definición es la estructura del mismo.

• tipo_retorno nombreMetodo (lista_de_parámetros) principio del método• {• sentencias cuerpo del método• return expresión valor que devuelve• } y fin del método• tipo_retorno Es el tipo de valor, o void devuelto por la función• nombre_función Nombre del método• lista_de_parámetros Lista de parámetros, o void, pasados al método; se

conoce también como argumentos o argumentos formales.

Page 36: Estructura de datos

Métodos definidos por el usuario• A veces, para referirse a un método, se menciona el prototipo que

tiene; esto es simplemente su cabecera:• tipo_retorno nombreMetodo (lista_de_parámetros);Ejemplo de prototipo:• void contarArriba(int valor);

• La palabra reservada void significa que el método no devuelve un valor; el nombre del método es contarArriba y tiene un argumento de tipo entero, int valor.

Page 37: Estructura de datos

Métodos definidos por el usuario• Java también proporciona clases con métodos predefinidos

denominados clases de biblioteca, organizados en paquetes; estos métodos están listos para ser llamados en todo momento, aunque requieren la incorporación del paquete donde se encuentran, o bien sólo la clase del paquete. La invocación de uno de ellos desde la clase a la que pertenecen o desde el objeto; por ejemplo, para llamar al método que calcula la raíz cuadrada y mostrar el resultado debe escribir:

• double r = 17.8;• System.out.println(Math.sqrt(r));

Page 38: Estructura de datos

Ejemplo• Éste es un programa formado por una clase que

contiene dos métodos además de main(): calcula() y mostrar(); el primero determina el valor de una función para un valor dado de x; el segundo muestra el resultado; main() llama a cada uno de los métodos auxiliares, especificados como static por las restricciones de main(); la función se evalúa utilizando el seno de la clase Math; ésta se encuentra en el paquete java.lang, el cual se importa automáticamente.

Page 39: Estructura de datos

Ejemplo• class Evaluar• {• public static void main(String [] ar)• {• double f;• f = calcula();• mostrar(f);• }• static double calcula()• {• double x = 3.14159/4.0;• return x*Math.sin(x) + 0.5;• }• static void mostrar(double r)• {• System.out.println("Valor de la función: " + r);• }• // termina la declaración de la clase• }

Page 40: Estructura de datos

Comentarios• Un comentario es información que se añade en las líneas del programa para proporcionar datos que son

ignorados por el compilador y no implican la realización de alguna tarea concreta; su uso es totalmente opcional, aunque recomendable.

• /*• Programa : Saludo.java• Programador : Nombre• Descripción : Primer programa Java• Fecha creación : 23-02-2016• Revisión : Ninguna• */

Page 41: Estructura de datos
Page 42: Estructura de datos
Page 43: Estructura de datos
Page 44: Estructura de datos

“Hola Mundo” en Java“Hola Mundo” orient. a

objetos• El ejemplo del “Hola Mundo” es un mal ejemplo de la

orientación a objetos porque:• Se crea una clase pero no se crea un objeto de la

clase• El intérprete llama al método main de la clase pero no

manda ningún mensaje a una instancia de una clase• Un ejemplo orientado a objetos debería incluir:• – La creación de objetos además de la definición de

clases• – El llamamiento a métodos de instancia (no

estáticos) sobre el objeto creado

Page 45: Estructura de datos
Page 46: Estructura de datos

Actividad• Consultar los siguientes términos y dar un ejemplo de cada uno:

– TOKEN• IDENTIFICADORES• PALABRAS RESERVADAS• LITERALES• OPERADORES• OTROS SEPARADORES

• Haga el listado de los signos de puntuación usados en JAVA y para que sirven cada uno.

• Desarrollar los siguientes ejercicios usando JAVA.– Introducir tantas frases como queramos y contarlas.– Solo permita introducir S o N.– Introducir un numero por teclado. Que nos diga si es positivo o negativo.– Introducir un numero por teclado. Que nos diga si es par o impar.

Page 47: Estructura de datos

ESTRUCTURA DE DATOS• En la práctica, la mayor parte de la información útil no aparece aislada en

forma de datos simples, sino que lo hace de forma organizada y estructurada.

• Los diccionarios, guías, enciclopedias, etc; son colección de datos que serían inútiles si no estuvieran organizadas de acuerdo con unas determinadas reglas. Además, tener estructurada la información supone ventajas adicionales, al facilitar el acceso y el manejo de los datos.

• Por ello parece razonable desarrollar la idea de la agrupación de datos, que tenga un cierto tipo de estructura y organización interna.

• El corazón de un sistema son sus datos, que se introducen a través de una de entrada del sistema y se almacena posteriormente en los archivos.

• Los datos individualmente no tienen ningún significado, pero cuando lógicamente existe relación entre ellos, se establece información significativa.

Page 48: Estructura de datos

ESTRUCTURA DE DATOS

PROGRAMACIÓN = ESTRUCTURA DE DATOS + ALGORITMOS

Page 49: Estructura de datos

ESTRUCTURA DE DATOS• Un tipo de Dato simple, no esta compuesto de otras estructuras, que

no sean los bits, y que por tanto su representación sobre el computador es directa, sin embargo existe unas operaciones de cada tipo, que en cierta manera los caracterizan.

• Una estructura de datos es una colección de datos que se caracterizan por su organización y las operaciones que se definen en ellos.

• Por tanto una estructura de datos vendrá caracterizada tanto por unas ciertas relaciones entre los datos que la constituyen.

• Ejemplo: Orden de los componentes de un vector de números Reales.

Page 50: Estructura de datos

ESTRUCTURA DE DATOS• Se le llama dato de tipo estructurado a una entidad,

con un solo identificador constituido por datos de otro tipo, de acuerdo con las reglas que definen cada una de las estructuras de datos.

• Ejemplo:• Una cadena esta formada por una sucesión de caracteres, una matriz por

datos simples organizados en forma de filas y columnas y un archivo esta constituido por registros, estos por campos que componen a su vez de datos simples.

• Un dato puede ser tanto un entero como una matriz.

Page 51: Estructura de datos

TIPOS DE DATOS ESTRUCTURADOS• Según su posición:• Estructuras Contiguas o físicas:

– Son aquellas que al representarse en el hardware del computador lo hacen situando sus datos en áreas adyacentes de memoria.

– Los datos se relacionan por sus vecindad o por su posición relativa dentro de la estructura.

• Estructuras Enlazadas:– Son estructuras cuyos datos no tienen por qué situarse de forma contigua en la memoria,

en las estructuras enlazadas los datos se relacionan unos con otros mediante punteros.• Según su variabilidad de tamaño:• Estructuras estáticas:

– Son aquellas en las que el tamaño ocupado en memoria se definen con anterioridad a la ejecución del programa que los usa. De forma que su dimensión no puede modificarse durante la misma.

• Ejemplo: Una matriz

Page 52: Estructura de datos

TIPOS DE DATOS ESTRUCTURADOS• Estructuras dinámicas:

– Estas pueden crecer o decrecer en tamaño durante la ejecución, dependiendo de las necesidades de la aplicación, sin que el programador pueda o deba determinarlo previamente.

– No tienen limitaciones en su tamaño, salvo la restricción de la memoria disponible en el computador.

Page 53: Estructura de datos

ESTRUCTURAS DE DATOS CONTIGUAS

• Cadenas: – La cadena es la estructura más simple y se define como una se cuenca de

caracteres que se interpretan como un dato único. Su longitud puede ser fija o variable.

– En este tipo de datos se puede almacenar una palabra, frases, etc.– La longitud de una cadena se puede determinar bien indicando al

principio de la misma el número de caracteres que contiene, bien situando un carácter especial denominado fin-de-cadena.

• Ejemplo:– Representar las siguientes cadenas:

• Capital 94• Jaca 99

Page 54: Estructura de datos

ESTRUCTURAS DE DATOS CONTIGUAS

Page 55: Estructura de datos

ESTRUCTURAS DE DATOS CONTIGUAS

• En el segundo caso el carácter elegido como fin-de-cadena ha sido el #. La cadena que no contiene ningún carácter se denomina cadena vacía de longitud es 0, no se debe confundir por una cadena formada sólo por blancos (o espacios) cuya longitud es igual al número de blancos que contiene.

• Una variable de tipo cadena de tamaño 10 puede guardar cadenas de 10 caracteres, pero también de menos si se indica en dónde terminan los caracteres de la cadena.

• Ejemplo:– Jaca 99

Page 56: Estructura de datos

ESTRUCTURAS DE DATOS CONTIGUAS

Page 57: Estructura de datos

ESTRUCTURAS DE DATOS CONTIGUAS

• Una variable de tipo cadena de tamaño 10 puede guardar cadenas de 10 caracteres, pero también de menos si se indica en dónde terminan los caracteres de la cadena.

• Ejemplo:– Jaca 99

Page 58: Estructura de datos

ESTRUCTURAS DE DATOS CONTIGUAS

• Operaciones que se pueden realizar sobre los datos tipo cadena:

• Asignación:• Guardar una cadena en una variable tipo cadena. Como en

toda asignación a una variable, la cadena que se guarda puede ser una constante una variable tipo cadena o una expresión que produzca un dato tipo cadena.

• Ejemplo:• Nombre -- “Pepe”• Nombre -- mi-nombre-de-pila

Page 59: Estructura de datos

ESTRUCTURAS DE DATOS CONTIGUAS

• Operaciones que se pueden realizar sobre los datos tipo cadena:

• Concatenación:• Formar una cadena a partir de dos ya existentes,

yuxtaponiendo los caracteres de ambas. Si se denota por // al operador “concatenación”, el resultado de:

• Ejemplo:• “ab” // “cd” es “abcd”

Page 60: Estructura de datos

ESTRUCTURAS DE DATOS CONTIGUAS

• Operaciones que se pueden realizar sobre los datos tipo cadena:

• Extracción de subcadena:• Permite formar una cadena (subcadena) a partir de otra ya

existente. La subcadena se forma tomando un tramo consecutivo de la cadena inicial

• Ejemplo:• Si NOMBRE es una variable de tipo cadena que contiene

“JUAN PEDRO ORTEGA” y denotamos por (n:m) la extracción de m caracteres tomados a partir del lugar n, entonces NOMBRE (6:5) es una subcadena de contiene “PEDRO”.

Page 61: Estructura de datos

ESTRUCTURAS DE DATOS CONTIGUAS

Un caso particular de extracción que se utiliza a menudo es extraer un único carácter, Por ello se suele proporcionar un método directo: el nombre seguido por el lugar que ocupa dentro de la cadena.Ejemplo:NOMBRE(6) = “P” = NOMBRE(6:1)

Page 62: Estructura de datos

ESTRUCTURAS DE DATOS CONTIGUAS

• Operaciones que se pueden realizar sobre los datos tipo cadena:

• Obtención de longitud:• La longitud de una cadena es un dato de tipo entero, cuyo

valor es el número de caracteres que contiene ésta. En el primero de los dos métodos anteriores de representación de cadenas, la longitud se obtiene consultando el número de la primera casilla; en el segundo método la longitud es el número de orden que ocupa el carácter de fin-de-cadena, menos uno.

Page 63: Estructura de datos

ESTRUCTURAS DE DATOS CONTIGUAS

• Operaciones que se pueden realizar sobre los datos tipo cadena:

• Comparación de cadenas:• Consiste en comparar las cadenas carácter a carácter

comenzando por el primero de la izquierda, igual que consulta un diccionario.

• El orden de comparación viene dado por el código de E/S del computador que normalmente es el código ASCII.

• Ejemplo• “Jose” < “Julio”

Page 64: Estructura de datos

ARRAYS• Es un conjunto de datos del mismo tipo almacenados en la

memoria en posiciones adyacentes. Sus componentes individuales se llaman elementos y se distinguen entre ellos por el nombre del array seguido de uno o varios índices o subíndices.

• Se pueden procesar ya sea individual como el conjunto minimos del array.

• Se debe declarar el número de elementos cuando este se crea, definiendo el número de dimensiones o número de índices.

• Especificar el límite máximo y el mínimo del array, denominando el rango.

Page 65: Estructura de datos

TIPOS DE ARRAYS• UNIDIMENSIONAL (VECTORES)• BIDIMENSIONAL (MATRICES)• MULTIDIMENSIONALES• También conocido como arrays de dimensión 1, 2 ó n.• Ejemplo:• Número de dimensiones 2, rango (3;5) y el número total de

elementos es 15.

Page 66: Estructura de datos

TIPOS DE ARRAYS• VECTORES• Por simplicidad y mayor frecuencia de uso los vectores es el

tipo de array más usado.• Las notaciones algorítmicas que se usan son:• Nombre_vector = vector(inf .. sup) de tipo• Nombre_vector nombre valido del vector• Inf .. Sup límites inferior y superior• Tipo tipo de los elementos del vector.

Page 67: Estructura de datos

TIPOS DE ARRAYS• VECTORES• Ejemplo:• La declaración de un vector supone una reserva de espacio.

• NUMEROS = vector (1..10) de real

• FORTRAN BASIC• REAL X(10) DIM X(10) AS SINGLE

• PASCAL C• X: array(1..10) of real float x(10)

Page 68: Estructura de datos

TIPOS DE ARRAYS• Es importante señalar que podemos implementar arrays

cuyos elementos sean a su vez cadenas o elementos de otro tipo.

• Ejemplo:• Tipo: palabra = cadena(16)• COCHES = vector (1..9) de palabra• Esto permite en un solo vector manipular hasta 9 cadenas

conteniendo como máximo 16 caracteres cada una.

Page 69: Estructura de datos

OPERACIONES SOBRE ARRAYS• Las operaciones sobre elementos del vector son:• Asignación:

Tiene el mimo significado que la asignación de un valor a una variable no dimensionada, ya que un vector con su índice representa la misma entidad que una variable no dimensionada.

A(20) 5 asigna el valor 5 al elemento 20 del vector AA(17) B asigna el valor de la variable B al elemento 17 del vector A

Page 70: Estructura de datos

OPERACIONES SOBRE ARRAYS• Las operaciones sobre elementos del vector son:• Acceso secuencial o recorrido del vector:• Consiste en acceder a los elementos de un vector para

someterlos a un determinado proceso, como leer o escribir.• A la operación de efectuar una acción general sobre todos los

elementos de un vector se le denomina recorrido y se utilizan estructuras repetitivas.

Page 71: Estructura de datos

OPERACIONES SOBRE ARRAYS• Ejemplo 1:• Escribir un algoritmo para recorrer secuencialmente un vector

H de 10 elementos (haciendo la lectura y escritura de cada uno) primero con un bucle desde y luego con un bucle mientras.

Page 72: Estructura de datos

OPERACIONES SOBRE ARRAYS

Page 73: Estructura de datos

OPERACIONES SOBRE ARRAYS• Ejemplo 2:• Supongamos que queremos procesar los primeros de un

vector PUNTOS, previamente declarado, realizando las siguientes operaciones desde 1 hasta LIMITE (donde este valor debe necesariamente ser menor que el límite superior del rango):

• a) lectura del array• b) cálculo de la suma de los valores del array• c) cálculo de la media de los valores.

• Escribe el algoritmo correspondiente.

Page 74: Estructura de datos

OPERACIONES SOBRE ARRAYS

Page 75: Estructura de datos