Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia
|
|
- Ana María Ramos Poblete
- hace 8 años
- Vistas:
Transcripción
1 Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 3: El TAD Lista lineal Prof. Montserrat Serrano Montero
2 ÍNDICE El TAD lista lineal Implementación con estructuras estáticas Implementación con variables dinámicas El TAD lista enlazada Operaciones para lista enlazada ordenada
3 (significa que cada elemento tiene un único predecesor, excepto el primero, y un único sucesor, excepto el último) EL TAD LISTA LINEAL Conjunto de valores: - Una lista es una secuencia elementos de un determinado tipo la lista es homogénea. (a 1, a 2, a 3,..., a n ) donde n 0, si n = 0, la lista es vacía. - Los elementos de una lista tienen la propiedad de estar ordenados de forma lineal, según las posiciones que ocupan. a i precede a a i+1 para i = 1, 2, 3,..., n- 1 a i sucede a a i-1 para i = 2, 3, 4,..., n
4 EL TAD LISTA LINEAL Observaciones: - La lista es una estructura dinámica desde el punto de vista lógico, ya que su longitud dependerá del número de elementos que tenga, aumentará al insertar y se reducirá al suprimir. - El TAD lista puede implementarse de formas estática o dinámica. - Igualmente, considerar las operaciones básicas depende de: a) La implementación elegida para las listas b) El problema que se va a resolver.
5 EL TAD LISTA LINEAL Especificación informal: Sintaxis Semántica TAD lista (VALORES: secuencia de elementos; OPERACIONES: Inicia, Localiza, Recupera, Inserta, SuprimeDir, Modifica) Inicia (Lista) Lista Efecto: Devuelve una lista vacía. Localiza (Lista, Elemento) Posicion Efecto: Devuelve la posición donde está el Elemento de la Lista. Si no está, devuelve nulo. Recupera (Lista, Posición) Elemento Efecto: Devuelve el Elemento que está en la Posición. Excepción: Que la posición no sea un índice de la Lista. Inserta (Lista, Posición, Elemento) Lista Efecto: Devuelve la Lista después de añadir el Elemento en la Posición. Excepciones: Que la posición no sea un índice de la Lista, que la Lista esté llena. SuprimeDir (Lista, Posicion) Lista Efecto: Devuelve la lista sin el elemento de la Posición especificada. Excepciones: Que la posición no sea un índice de la Lista, que la Lista sea vacía. Modifica (Lista, Posicion, Elemento) Lista Efecto: Devuelve la lista con el nuevo Elemento en la Posición especificada. Excepciones: Que la Posición no sea un índice de la Lista, que la Lista sea vacía.
6 EL TAD LISTA LINEAL Especificación formal: TAD lista (VALORES: secuencia de elementos; OPERACIONES:Inicia, Localiza, Recupera, Inserta, SuprimeDir, Modifica) Sintaxis: *Inicia (Lista ) Lista Localiza (Lista, Elemento) Posicion Recupera (Lista, Posicion) Elemento *Inserta (Lista, Posicion, Elemento) Lista SuprimeDir (Lista, Posicion) Lista Modifica (Lista, Posicion, Elemento) Semántica: Lista SuprimeDir (Inicia (Lista )) error SuprimeDir (Inserta (L, P, E), P) L Modifica (Inicia (Lista ), P, E) error Modifica (Inserta (L, P, E), P, E1) Inserta (L,P,E1) * Constructores
7 TAD E IMPLEMENTACIÓN En este punto hay que marcar la distinción entre un TAD y la naturaleza de su implementación. Ambos conceptos pueden considerarse de forma estática o dinámica. Ej: 1. Una variable de tipo array es una estructura estática, pero puede almacenarse en memoria de forma estática (declarada en la zona de declaración de variables) o de forma dinámica (variables dinámicas). 2. Una pila o una lista son por naturaleza dinámicas pero pueden implementarse con asignación de memoria estática (dentro de un array) o con asignación de memoria dinámica (variables dinámicas y punteros).
8 IMPLEMENTACIÓN ESTÁTICA unit LEstatic; interface const Max =...; {especifica tamaño máximo lista} type tinfo =...;{tipo de campo de información lista} Lista = record Elementos: array [1..Max] of tinfo; Ultimo: integer Posicion = 0.. Max; procedure Inicia (var L: Lista); function Localiza (L: Lista; E: tinfo): Posicion; procedure Recupera (L: Lista; P:Posicion; var E: tinfo); procedure Inserta (var L: Lista; P:Posicion; E: tinfo); procedure SuprimeDir (var L: Lista; P: Posicion); procedure Modifica (var L: Lista; P: Posicion; E: tinfo);
9 IMPLEMENTACIÓN ESTÁTICA implementation procedure Inicia; L.Ultimo := 0 function Localiza; var Q: Posicion; Lc: boolean; Q := 1; Lc := false; while (Q <= L.Ultimo) and not Lc do Lc := L.Elementos [Q] = E; if not Lc then Q := Q + 1 if Lc then Localiza := Q else Localiza := 0
10 IMPLEMENTACIÓN ESTÁTICA implementation (continúa...) procedure Error (n: integer); {procedimiento oculto que sólo se ve en el módulo} case n of 1: writeln ( Error: posición no existe ); 2: writeln ( Error: lista llena. No se pueden añadir elementos); 3: writeln ( Error: lista vacía. No se pueden suprimir o modificar elementos ); {case} readln {Pausa} procedure Recupera; if (P > L.Ultimo) or (P < 1) then Error (1) else E := L.Elementos [P]
11 IMPLEMENTACIÓN ESTÁTICA implementation (continúa...) procedure Inserta; var Q: Posicion; if L.Ultimo = Max then Error (2) else if (P > L.Ultimo) or (P < 1) then Error (1) else for Q := L.Ultimo downto P do L.Elementos [Q + 1] := L.Elementos [Q] ; L.Ultimo := L.Ultimo + 1; L.Elementos [P] := E end procedure Suprime; var Q: Posicion; if L.Ultimo = 0 then Error (3) else if (P > L.Ultimo) or (P < 1) then Error (1) else L.Ultimo := L.Ultimo 1; for Q := P to L.Ultimo do L.Elementos [Q] := L.Elementos [Q+1] end
12 IMPLEMENTACIÓN ESTÁTICA implementation (continúa...) procedure Modifica; if L.Ultimo = 0 then Error (3) else if (P > L.Ultimo) or (P < 1) then Error (1) else L.Elementos [P] := E end.
13 IMPLEMENTACIÓN DINÁMICA Las desventajas de la implementación anterior son: a) Estructura rígida. Inserción y supresión desplazando el resto del array. b) No se utiliza de forma óptima la memoria. Hay que reservar espacio en memoria para toda la estructura durante toda la ejecución. Estos inconvenientes pueden solucionarse utilizando variables dinámicas. Los elementos de la lista dinámica se definen como datos de tipo registro con, al menos, dos componentes: 1. Almacén del dato de la lista. 2. Puntero, que almacena la posición de memoria del siguiente elemento de la lista o nil si es el último elemento.
14 EL TAD LISTA ENLAZADA Una lista dinámica simple se llama lista enlazada. Cada uno de los elementos de una lista dinámica se llaman nodos. El número de nodos puede variar rápidamente en un proceso, aumentando por inserción de nodos o disminuyendo por supresión de nodos. Una lista enlazada es aquella en la que el orden de las componentes se determina mediante un campo enlace explícito en cada nodo. Las operaciones sobre una lista enlazada permiten acceder a la misma mediante un puntero externo, que contiene la dirección del primer nodo de la lista.
15 TAD LISTA IMPLEMENTADO CON LISTAS ENLAZADAS unit LDinami; interface type tinfo =...;{tipo de campo de información lista} Ptr = ^Nodo; Nodo = record Info: tinfo; Sig: Ptr {Excepción a la regla de que los identificadores deben definirse antes de usarse. El tipo Ptr se define como un puntero a un registro del tipo Nodo, el cual no ha sido aún definido.} procedure Inicia (var L: Ptr); function Localiza (L: Ptr; E: tinfo): Ptr; procedure Recupera (L: Ptr; P: Ptr; var E: tinfo); procedure Inserta (var L: Ptr; P: Ptr; E: tinfo); procedure SuprimeDir (var L: Ptr; P: Ptr); procedure Modifica (L: Ptr; P: Ptr; E: tinfo);
16 TAD LISTA IMPLEMENTADO CON LISTAS ENLAZADAS implementation procedure Inicia; L := nil L function Localiza; while (L^.Sig < > nil) and (L^.Info < > E) do L := L^.Sig; if L^.Info < > E then Localiza := nil else Localiza := L L^.Sig L E
17 TAD LISTA IMPLEMENTADO CON LISTAS ENLAZADAS implementation (continúa...) procedure Recupera; if not (L=nil) then if (P < > nil) then E := P^.Info function Anterior (P: Ptr; L: Ptr): Ptr; {El anterior de lista vacía, de dirección no existente y del primer nodo de la lista, devuelve nil} if (L = nil) or (P = nil) or (L = P) then Anterior := nil else while (L^.Sig<>P) and (L^.Sig<>nil) do L := L^.Sig; if L^.Sig = P then Anterior := L else Anterior := nil end {else} L L^.Sig = P
18 TAD LISTA IMPLEMENTADO CON LISTAS ENLAZADAS a) b) c) implementation (continúa...) procedure Inserta; {Inserta en L un nodo con el var A: Ptrnodo; campo E, delante del nodo de dirección P} new (A); A^.Info := E; E if (L = nil) then L := A {si L vacía} else if P = L then {si P primer nodo} A^.Sig := P; L := A end A L=P A^.Sig = nil L=A A^.Sig = P else {si P es oto nodo, A entre anterior y P} Anterior (P, L)^.Sig := A; A^.Sig := P end E L Anterior (P, L)^.Sig
19 TAD LISTA IMPLEMENTADO CON LISTAS ENLAZADAS implementation (continúa...) procedure SuprimeDir; if P = L then {Primer nodo} L := L^.Sig; dispose (P) end else if Anterior (P, L) < > nil then {Enlaza anterior con siguiente} Anterior (P, L)^.Sig := P^.Sig dispose (P) end P = L L???? P???? Anterior (P,L)^.Sig:=P^.Sig procedure Modifica; if not (L = nil) then if (P < > nil) then P^.Info := E end.
20 CLASIFICACIÓN OPERACIONES DE TAD LISTA ENLAZADA Iniciar una lista enlazada: - Inicia (L) - EsVacia(L) Búsqueda en una lista: - Localiza (E, L) -Existe (E, L) Operaciones de dirección: - Siguiente (P, L) - Anterior (P, L) - Último (L) Inserción de un elemento en la lista: -Inserprim(E, L) - Inserta (E, P, L) - Inserfin (E, L) Supresión de un elemento de una lista: - Suprime (E, L) - SuprimeDir (P, L) - Anula (L) Recorrido de una lista: - Visualiza (L)
21 ALGUNAS OPERACIONES DEL TAD LISTA ENLAZADA EsVacia (L): Función que determina si L es vacía o no. Existe (E, L): Función que determina si el elemento E se encuentra en L o no. Inserprim (E, L): Inserta un nodo con la información E como primer nodo de la lista. Inserfin (E, L): Inserta un nodo con el campo E como último nodo de la lista L. Suprime (E, L): Elimina el nodo de la lista que contiene E Siguiente (P, L): Función que devuelve la dirección del nodo siguiente a P. Anterior (P, L): Función que devuelve la dirección del nodo anterior a P. Primero (L): Función que devuelve la dirección del primer nodo de la lista L. Último (L): Función que devuelve la dirección del último nodo de la lista L. Anula (L): Esta operación vacía la lista L. Visualiza (L): Visualiza el campo de información de todos los elementos de la lista.
22 IMPLEMENTACIÓN DEL TAD LISTA ENLAZADA unit LEnlaza; interface type tinfo =...;{tipo de campo de información lista} Ptr = ^Nodo; Nodo = record Info: tinfo; Sig: Ptr procedure Inicia ( var L: Ptr); function Esvacia (L: Ptr): boolean; function Localiza (E: tinfo; L: Ptr): Ptr; function Existe (E: tinfo; L: Ptr): boolean; function Anterior (P, L: Ptr): Ptr; function Siguiente (P, L: Ptr):Ptr; function Ultimo (L: Ptr): Ptr; procedure Inserprim (E: tinfo; var L: Ptr); procedure Inserta (E:tInfo; P:Ptr; var L:Ptr); procedure Inserfin (E: tinfo; var L: Ptr); procedure Suprime (E: tinfo; var L: Ptr); procedure Suprimedir (P: Ptr; var L: Ptr); procedure Anula (var L: Ptr); procedure Visualiza (L: Ptr);
23 IMPLEMENTACIÓN DEL TAD LISTA ENLAZADA implementation function EsVacia; EsVacia:= L=nil function Existe; if not EsVacia (L) then while (L^.Sig<>nil) and (L^.Info<>E) do L := L^.Sig; Existe := (L^.Info = E) else Existe := false
24 IMPLEMENTACIÓN DEL TAD LISTA ENLAZADA implementation (continúa...) function Siguiente; if EsVacia (L) or (P = nil) then Siguiente := nil else Siguiente := P^.Sig P P^.Sig function Ultimo; if EsVacia(L) then Ultimo := nil else while (L^.Sig<>nil) do L := L^.Sig; Ultimo := L; end L L^.Sig = nil
25 IMPLEMENTACIÓN DEL TAD LISTA ENLAZADA implementation (continúa...) function Crea (E: tinfo): Ptr; var N: Ptr; new (N); N^.Info := E; N^.Sig := nil; Crea := N procedure Inserprim; var A: Ptr; A := Crea (E); A^.Sig := L; L := A A A L E L E N N^.Sig = nil E A^.Sig = L
26 IMPLEMENTACIÓN DEL TAD LISTA ENLAZADA implementation (continúa...) procedure Inserfin; var A: Ptr; A := Crea (E); if EsVacia (L) then L := A else Ultimo(L)^.Sig := A; procedure Suprime; var A: Ptr; A := Localiza(E, L); if A<>nil then if A = L then L := L^.Sig {primer nodo} else Anterior (A, L)^.Sig := A^.Sig; dispose(a) end {if} L L Ultimo(L)^.Sig=A L L??? E???
27 IMPLEMENTACIÓN DEL TAD LISTA ENLAZADA implementation (continúa...) procedure Anula; while not EsVacia (L) do SuprimeDir (Ultimo(L), L) procedure Visualiza; while L< > nil do write(l^.info, ); L := L^.Sig end end.
28 TAD LISTA ORDENADA En las listas vistas anteriormente los elementos están ordenados con respecto a la posición que ocupan dentro de la lista. Si el tipo de información que representa cada elemento es un tipo ordinal se puede mantener la lista ordenada respecto a dicho campo. La formación de una lista ordenada se basa en dos operaciones: Posinser (E, L): Devuelve la dirección del nodo anterior al que contiene el campo E según la ordenación dada y nil si es el anterior al primero. Inserorden (E, L): Si la lista está vacía el nodo se inserta como el primero de la lista, si no se inserta en la posición que le corresponde.
29 IMPLEMENTACIÓN DE OPERACIONES LISTA ORDENADA function Posinser (E: tinfo; L: Ptr): Ptr; var T: Ptr; T := nil; if not EsVacia (L) then while (E >= L^.Info) and (L^.Sig <> nil) do T := L; L := L^.Sig if E >= L^.Info then T := L Posinser := T L L^.Sig T E
30 IMPLEMENTACIÓN DE OPERACIONES LISTA ORDENADA procedure Inserorden (E: tinfo; var L: Ptr); var A, N: Ptr; N := Crea (E); if EsVacia(L) then L := N else A := Posinser (E, L); if A = nil then {primera posición} N^.Sig := L; L := N else {posición intermedia} N^.Sig := A^.Sig; A^.Sig := N end end {else} L L N 15 A A^.Sig 15 N^.Sig N
31 IMPLEMENTACIÓN DE OPERACIONES LISTA ORDENADA Ahora la operación de búsqueda es más eficiente, ya que para decidir si un elemento está o no en la lista, basta con encontrar un elemento mayor. Buscorden (E, L): Devuelve la dirección del nodo que contiene el campo e o nil si no se encuentra en la lista. function Buscorden (E: tinfo; L: Ptr): Ptr; while (L^.Sig <> nil) and (L^.Info < E) do L := L^.Sig; if L^.Info = E then Buscorden := L else Buscorden := nil El resto de operaciones son iguales a las listas no ordenadas. Cambiar las llamadas a Localiza por Buscorden.
32 Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 3: TAD Pila Prof. Montserrat Serrano Montero
33 ÍNDICE Definición Especificación Implementación estática Implementación dinámica Aplicaciones de pilas Esquema recursivo TAD Pila
34 EL TAD PILA - Una pila es una lista (estructura dinámica) de elementos en la que todas las inserciones y supresiones se realizan por el mismo extremo de la lista. - La característica de esta estructura de datos es que el primer elemento obtenido es el último que se ha introducido; motivo por el que se conoce como estructura Lifo (Last in first out). - Se utiliza siempre que se quiere recuperar una serie de elementos en orden inverso a como se introdujeron. - Ejs.: pila de platos, de libros, etc.
35 EL TAD PILA Especificación informal: TAD pila (VALORES: pila de elementos; OPERACIONES: Inicia, EsVacia, Apilar, Desapilar, Cima) Inicia ( ) Pila Efecto: Devuelve una pila vacía. EsVacia (Pila) Boolean Efecto: Devuelve true si la pila está vacía y false en caso contrario. Apilar (Pila, Elemento) Pila Efecto: Devuelve una pila resultado de poner el elemento en la cima de la pila. Excepción: Que la pila esté llena. Desapilar (Pila) Pila Efecto: Devuelve la Pila sin el elemento de la cima. Excepción: Si la Pila está vacía produce error. Cima (Pila) Elemento Efecto: Devuelve el Elemento cima de la Pila. Excepción: Si la Pila está vacía produce error.
36 EL TAD PILA Especificación formal: TAD pila (VALORES: pila de elementos; OPERACIONES: Inicia, EsVacia, Apilar, Desapilar, Cima) Sintaxis: *Inicia ( ) Pila EsVacia (Pila) Boolean *Apilar (Pila, Elemento) Pila Desapilar (Pila) Pila Cima (Pila) Elemento Semántica: EsVacia (Inicia ( )) true EsVacia (Apilar (P, E)) false Cima (Inicia ( )) error Cima (Apilar (P, E)) Ε Desapilar (Inicia ( )) error Desapilar (Apilar (P, E)) P * Constructores
37 IMPLEMENTACIÓN ESTÁTICA unit PEstatic; interface const Max =...; {especifica tamaño máximo lista} type tinfo =...;{tipo de campo de información lista} Pila = record Elementos: array [1..Max] of tinfo; ultimo: integer procedure Inicia (var P: Pila); function EsVacia (P: Pila): Boolean; procedure Apilar (var P: Pila; E: tinfo); procedure Desapilar (var P: Pila); procedure Cima (P: Pila; var E: tinfo);
38 IMPLEMENTACIÓN ESTÁTICA implementation procedure Inicia; P.ultimo := 0 function EsVacia; EsVacia:= P.ultimo = 0; procedure Error (n: integer); {procedimiento oculto que sólo se ve en el módulo} case n of 1: writeln ( Error: Pila llena. ); 2: writeln ( Error: Pila vacía. ); {case} readln
39 IMPLEMENTACIÓN ESTÁTICA implementation (continúa...) procedure Apilar; if P.ultimo = Max then Error (1) else P.ultimo := P.ultimo +1; P.Elementos [P.ultimo] := E end procedure Desapilar; if EsVacia (P) then Error (2) else P.ultimo := P.ultimo - 1; procedure Cima; if EsVacia (P) then Error (2) else E := P.Elementos [P.ultimo]
40 IMPLEMENTACIÓN DINÁMICA La pila será un puntero a un nodo, puntero que señala el extremo de una lista enlazada por el que se efectúan las operaciones de manejo de la pila: P
41 TAD PILA IMPLEMENTADO CON LISTAS ENLAZADAS unit PDinami; interface type tinfo =...; {tipo de campo de información lista} Ptr = ^Nodo; Nodo = record Info: tinfo; Sig: Ptr procedure Inicia (var P: Ptr); function EsVacia (P: Ptr): boolean; procedure Apilar (var P: Ptr; E: tinfo); procedure Desapilar (var P: Ptr); procedure Cima (P: Ptr; var E: tinfo);
42 TAD PILA IMPLEMENTADO CON LISTAS ENLAZADAS implementation procedure Inicia; P := nil function EsVacia; EsVacia := P = nil procedure Apilar; var aux: ptrnodo; new (aux); with aux^ do (1) Info := E; (2) Sig := P; (3) P := aux P 15 8 aux P 15 8 aux 1 (1) (3) (2)
43 TAD PILA IMPLEMENTADO CON LISTAS ENLAZADAS implementation (continúa...) procedure Desapilar; var aux: Ptr; P if not EsVacia(P) then 15 (1) aux := P; (2) P := P^.Sig; 8 (3) dispose(aux); end else writeln ( Error: Pila vacía ) procedure Cima; if not EsVacia(P) then E := P^.Info else writeln ( Error: Pila vacía ) Pila (1) (3) (2) aux P ???? 8 aux
44 APLICACIONES DE LAS PILAS a) Eliminar la recursividad. b) Transformar expresiones aritméticas de unas notaciones a otras: 1. Infija: es la empleada normalmente y requiere el uso de paréntesis para modificar la prioridad de los operadores. 2. Prefija o polaca: es aquella en la que el operador se coloca delante de los dos operandos. En ella, no es necesario el uso de paréntesis. 3. Postfija o polaca inversa: coloca el operador a continuación de sus dos operandos. La ventaja que ofrece es que la expresión puede evaluarse de izquierda a derecha recorriéndola una sola vez.
45 A) ELIMINAR LA RECURSIVIDAD En cada llamada se añade una tabla de activación en una pila denominada recursiva. En esta pila se almacenan los argumentos y objetos locales con su valor en el momento de producirse la llamada. La recursividad se puede implementar mediante una unidad pila. Bajo esta perspectiva la recursividad se convierte en un par de bucles. El primero apila, el segundo desapila y evalúa.
46 EJEMPLO: FACTORIAL DE n function factorial (n: word): real; var pila: Ptr; i: word; fac: real; Inicia (pila); {primer bucle: apila las distintas llamadas} for i := n downto 1 do Apilar (i, pila); {Segundo bucle: resuelve las llamadas} fac:=1 {caso base} while pila < > nil do fac := Cima(pila) * fac; Desapilar(pila) factorial := fac function factorial (n: word): real; if n = 0 then factorial :=1 else factorial := n*factorial (n-1)
47 B) EVALUAR EXPRESIONES ARITMÉTICAS Pasos que sigue el ordenador: a) Transformar la expresión de infija a postfija. b) Evaluar la expresión postfija. Ejemplo inverso: a) Postfija a infija: Postfija: AB+CD*AB-/- Infija: ((A+B)-((C*D)/(A-B))) B (A+B) D (C*D) A C (A+B) (A+B)
48 B) EVALUAR EXPRESIONES ARITMÉTICAS B (A-B) ((C*D)/(A-B)) A (C*D) (A+B) (C*D) (A+B) (A+B) ((A+B)-((C*D) /(A-B))) b) Se calcularía el valor expresión sustituyendo los correspondientes valores, respetando el orden de operación.
49 ESQUEMAS RECURSIVOS CON PILAS uses Upila;... procedure X (var P); var elem: telem; if not EsVacia(P) then Cima (P, elem); Desapilar (P); Operación (elem); X (P); Apilar (P, elem); end Desapilar (P, elem);
50 IMPLEMENTACIÓN PILAS procedure Desapilar (var P: Ptr; var E: tinfo); var aux: Ptr; if not EsVacia (P) then E := P^.Info; aux := P; P:= P^.Sig; dispose (aux); end else writeln ( Error: Pila vacía )
51 EJ. ESQUEMA RECURSIVO Implementar un algoritmo en Pascal que cuente el número de elementos de una pila de forma recursiva sin utilizar ninguna estructura de datos auxiliar. a) Escribir la sección interface de la unidad Pila. b) function Contar (var P: Ptr): integer; var long, elem: integer; if not EsVacia (P) then Desapilar (P, elem); long := Contar (P) + 1; Apilar (P, elem); Contar := long; end else Contar := 0
52 Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 3:TAD cola Prof. Montserrat Serrano Montero
53 ÍNDICE Definición Especificación del TAD Implementaciones estáticas Implementación dinámica Esquemas recursivos
54 EL TAD COLA - Una cola es una lista de elementos, en la cual las eliminaciones se realizan por el frente o principio de la cola, y los nuevos elementos son añadidos por el otro extremo, llamado fondo o final de la cola. - En esta estructura el primer elemento que entra es el primero en salir, por eso se les llama listas Fifo (First in, first out). - Ejs.: espectadores esperando en la taquilla de un cine, tareas a realizar por una impresora, etc. - Las colas son estructuras de datos dinámicas.
55 EL TAD COLA Especificación informal: TAD cola (VALORES: cola de elementos; OPERACIONES: Inicia, EsVacia, Primero, Encolar, Desencolar); Inicia ( ) Cola Efecto: Devuelve una cola vacía. EsVacia (Cola) Boolean Efecto: Devuelve true si la cola está vacía y false en caso contrario. Primero (Cola) Elemento Efecto: Devuelve el Elemento Frente de la cola. Excepción: Si la Cola está vacía produce error. Encolar (Cola, Elemento) Cola Efecto: Añade un nuevo Elemento a la Cola por el Final. Excepción: Que la cola esté llena. Desencolar (Cola) Cola Efecto: Elimina el elemento Frente de la cola. Excepción: Si la Cola está vacía produce error.
56 EL TAD COLA Especificación formal: TAD cola (VALORES: cola de elementos; OPERACIONES: Inicia, EsVacia, Primero, Encolar, Desencolar) Sintaxis: *Inicia ( ) Cola EsVacia (Cola) Boolean Primero (Cola, Elemento) Cola *Encolar (Cola) Cola Desencolar (Cola) Cola Semántica: EsVacia (Inicia ( )) true EsVacia (Poner (Cola, E)) false Primero (Inicia ( )) Primero (Encolar (Cola, E)) error si EsVacia (Cola) entonces E si_no Primero (Cola) Desencolar (Inicia ( )) error Desencolar (Encolar (Cola, E)) si EsVacia (Cola) then Inicia ( ) si_no Encolar (Desencolar (Cola), E)
57 IMPLEMENTACIÓN ESTÁTICA unit CEstatic; interface const Max =...; {especifica tamaño máximo lista} type Posicion = 0..Max; tinfo =...; {tipo de campo de información lista} Cola = record Elementos: array [1..Max] of tinfo; frente, final: Posicion procedure Inicia (var C: Cola); function EsVacia (C: Cola): boolean; procedure Primero (C: Cola; var E: tinfo); procedure Encolar (var C: Cola; E: tinfo); procedure Desencolar (var C: Cola);
58 IMPLEMENTACIÓN ESTÁTICA implementation procedure Inicia; C.frente := 1; C.final := 0 function EsVacia; EsVacia := C.final < C.frente function EsLlena (C: Cola): boolean; EsLlena := C.final = Max procedure Primero; if not EsVacia (C) then E := C.Elementos [C.frente]
59 IMPLEMENTACIÓN ESTÁTICA implementation (continúa...) procedure Encolar; if not EsLlena (C) then with C do final := final +1; Elementos [final] := E end procedure Desencolar; if not EsVacia (C) then for i:= 1 to C.final-1 do C.Elementos [i] := C.Elementos [i+1]; C.final:=C.final-1; end end.
60 IMPLEMENTACIÓN CIRCULAR unit CCEstatic; interface const long =...; {especifica tamaño máximo lista} type Posicion = 0..long; tinfo =...; {tipo de campo de información lista} Cola = record Elementos: array [1..long] of tinfo; frente, final: Posicion procedure Inicia (var C: Cola); function EsVacia (C: Cola): boolean; function Primero (C: Cola): tinfo; procedure Encolar (E: tinfo; var C: Cola); procedure Desencolar (var C: Cola); Es preferible esta implementación porque no se desplazan los elementos del array, al suprimir el primer elemento de la cola, como ocurre en la implementación lineal.
61 TAD COLA IMPLEMENTADO CON ARRAY CIRCULAR implementation function Siguiente (P: integer): integer; Siguiente := (P mod long) + 1 procedure Inicia; C.frente := 1; C.final := long; function EsVacia; EsVacia := Siguiente (C.final) = C.frente function EsLlena(C: Cola): boolean; EsLlena := Siguiente(Siguiente(C.final)) = C.frente
62 TAD COLA IMPLEMENTADO CON ARRAY CIRCULAR implementation (continúa...) function Primero; if not EsVacia (C) then Primero := C.Elementos[C.frente] procedure Encolar; if not EsLlena (C) then with C do final := Siguiente (final); Elementos [final] := E end procedure Desencolar; if not EsVacia (C) then C.frente := C.frente + 1
63 IMPLEMENTACIÓN DEL TAD COLA CON LISTAS ENLAZADAS unit CDinamic; interface type tinfo =...; {tipo de campo de información lista} Ptr = ^Nodoc; Nodoc = record Frente Info: tinfo; Sig: Ptr Cola = record frente, final: Ptr procedure Inicia (var C: Cola); function EsVacia (C: Cola): boolean; procedure Primero (C: Cola; var E: tinfo); procedure Desencolar (var C: Cola); procedure Encolar (var C: Cola; E: tinfo); Final
64 TAD COLA IMPLEMENTADO CON LISTAS ENLAZADAS implementation procedure Inicia; C.frente := nil; C.final := nil function EsVacia; EsVacia := C.frente = nil procedure Primero; if not EsVacia (C) then E := C.frente^.Info
65 TAD COLA IMPLEMENTADO CON LISTAS ENLAZADAS implementation (continúa...) procedure Desencolar; var A: ptr; if not EsVacia (C) then with C do A:= frente; frente := frente^.sig; if frente = nil then final := nil; dispose (A); end
66 TAD COLA IMPLEMENTADO CON LISTAS ENLAZADAS implementation (continúa...) function Crea (E: tinfo): Ptr; var A: ptr; new (A); A^.Info:= E; A^.Sig := nil; Crea := A procedure Encolar; var N: ptr; N := Crea (E) with C do if EsVacia (C) then frente := N else final^.sig := N; final := N; end end.
67 ESQUEMAS RECURSIVOS CON COLAS uses Ucola;... procedure X (var C); var elem: tinfo; if not EsVacia (C) then elem := Primero (C); Desencolar (C); Operación (elem); X (C); Encolar (C, elem); end Desencolar (C, elem)
68 ESQUEMAS RECURSIVOS CON COLAS Ejemplo: Dado el TAD Cola de enteros se pide implementar una operación que invierta el contenido de una Cola. a) Escribir la sección interface de la unidad cola. b) procedure Invertir (var C: Cola); var elem: integer; if not EsVacia (C) then Desencolar (C, elem); Invertir (C); Encolar (C, elem) end
Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009
Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier
Más detallesTAD Lineales: Pila, Cola y Lista
TAD Lineales: Pila, Cola y Lista Objetivos! Dar a conocer los TAD lineales pila, cola y lista! Presentar la especificación de cada uno de los TAD! Discutir implementaciones alternativas para cada uno de
Más detallesDepartamento de Informática Universidad de Valladolid Campus de Segovia TEMA 3: ESTRUCTURAS DINÁMICAS LINEALES. LISTAS ENLAZADAS, PILAS Y COLAS
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 3: ESTRUCTURAS DINÁMICAS LINEALES. LISTAS ENLAZADAS, PILAS Y COLAS ÍNDICE Listas enlazadas Pilas Colas DEFINICIÓN DEL TIPO LISTA
Más detallesEstructura de datos Tema 6: Tablas de dispersión (hashing)
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 6: Tablas de dispersión (hashing) Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Funciones hash
Más detallesEstructuras de Datos y Algoritmos. Árboles de Expresión
Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.
Más detallesEstructura de Datos y de la Información. Pilas y expresiones aritméticas
Estructura de Datos y de la Información Pilas y expresiones aritméticas LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detallesInstituto de Computación - Facultad de Ingeniería - Universidad de la República
Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo
Más detallesDEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006
ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los
Más detalles14. ÁRBOLES. 14.1 Fundamentos y terminología básica
Ricardo Ferrís / Jesús Albert Algoritmos y estructuras de datos I 14. ÁRBOLES 14.1 FUNDAMENTOS Y TERMINOLOGÍA BÁSICA... 79 14.2. ÁRBOLES BINARIOS... 81 14.3. FUNDAMENTOS... 82 14.3. OPERACIONES CON ÁRBOLES
Más detallesEn cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Más detallesINSTITUTO POLITECNICO NACIONAL. ESCUELA SUPEIRIOR DE INGENIERIA MECANICA Y ELECTRICA. UNIDAD CULHUACAN. INTEGRANTES: FLORES ACOLTZI ONESIMO
INSTITUTO POLITECNICO NACIONAL. ESCUELA SUPEIRIOR DE INGENIERIA MECANICA Y ELECTRICA. UNIDAD CULHUACAN. INTEGRANTES: FLORES ACOLTZI ONESIMO MARCEL SANTOS ARIEL MARTINEZ AGUILAR GILBERTO. MATERIA: ESTRUCTURA
Más detallesHerencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases
Herencia 3.- Herencia La herencia nos permite definir datos y métodos que son generales (comunes a distintas clases) por separado de las que son particulares a cada clase. Esto se logra definiendo lo que
Más detalles3.2 Operaciones aritmético-lógicas en Pascal
3.2 Operaciones aritmético-lógicas en Pascal Operadores Los operadores sirven para combinar los términos de las expresiones. En Pascal, se manejan tres grupos de operadores : 1. ARITMÉTICOS 2. RELACIONALES
Más detallesEscuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática
Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo
Más detallesARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no
Más detallesCOLAS. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny
COLAS 2002 GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURA DE DATOS TEMA 4 Estructura de datos Cola ÍNDICE 4.1. Definición y ejemplos...3 4.2. El TAD
Más detallesTema 4.- Pilas y Colas
Apuntes elaborados por: Eduardo Quevedo, Raquel López y Aaron Asencio Revisado por: Javier Miranda el???? Tema 4.- Pilas y Colas Las pilas y colas son estructuras de datos que se utilizan generalmente
Más detallesAlgorítmica y Lenguajes de Programación. Ordenación (i)
Algorítmica y Lenguajes de Programación Ordenación (i) Ordenación. Introducción A lo largo del curso hemos visto distintas formas de almacenar datos: Vectores. Matrices. Ficheros Listas (pilas y colas)
Más detallesModulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
Más detallesARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un
Más detallesCentro de Capacitación en Informática
Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.
Más detallesOPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)
APRENDERAPROGRAMAR.COM OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero
Más detallesAmpliación de Estructuras de Datos
Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios
Más detallesPilas y Colas. Capítulo 3
Pilas y Colas Capítulo 3 Pilas Una pila representa una estructura lineal de datos en que se puede agregar o quitar elementos únicamente por uno de los dos extremos. En consecuencia, los elementos de una
Más detallesFundamentos de la Programación
Fundamentos de la Programación El Software Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software. Dos grandes grupos de software
Más detallesPráctico 5. Definiciones Inductivas - Segunda Parte -
Práctico 5 Definiciones Inductivas - Segunda Parte - Objetivos: Trabajar con tipos inductivos. Realizar pruebas por inducción y análisis de casos. Familiarizarse con los lemas de inversión y las tácticas
Más detallesEstructura de datos (arreglos) Vectores y Matrices
Apunte del curso PROGRAMACIÓN (FI-UBA,, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez Estructura de datos (arreglos) Hasta aquí se han visto distintos tipos de estructuras
Más detallesLABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL
OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos
Más detallescol 1 2 1 5 9 ----------------------------------------------- 3 Type mismatch cadena vacía fila 1 z + i 4 1 fila 2
Nombre y Apellidos: Especialidad y Grupo: FUNDAMENTOS DE INFORMÁTICA 22-enero-2002 CUESTIÓN de Estructuras repetitivas y alternativas (1.5 puntos) 1. Suponiendo que el usuario teclea los datos 1, 2, 3,
Más detallesSemántica Denotacional
Semántica Denotacional Idea: El significado de un programa es la función denotada por el programa Componentes del metalenguaje para la definición semántica denotacional de un L.P.: Dominios sintácticos
Más detallesDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos 1 Sesión No. 5 Nombre: Primitivas para el diseño de instrucciones. Segunda parte. Objetivo de la sesión: Al concluir la sesión el estudiante identificará las diferentes
Más detallesManual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL
Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Índice 1 Introducción... 5 1.1 Perfil de la aplicación... 5 1.2 Requisitos técnicos... 5 2 Manual de usuario... 7 2.1 Instalación del certificado...
Más detallesJava Avanzado Facultad de Ingeniería. Escuela de computación.
2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 3 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas
Más detallesOperación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática
Manejo básico de base de datos Unas de las capacidades de Excel es la de trabajar con listas o tablas de información: nombres, direcciones, teléfonos, etc. Excel puede trabajar con tablas de información
Más detallesOperación Microsoft Access 97
Utilizar expresiones y criterios Trabajar con expresiones Las expresiones son un componente fundamental de numerosas operaciones en Access. Una expresión es una combinación de símbolos (identificadores,
Más detallesFórmulas y funciones
Fórmulas y funciones Uso de fórmulas Las fórmulas son el corazón y el alma de la hoja de cálculo. Si no las necesitáramos sería lo mismo que trabajáramos en un procesador de textos. Excel 2007 ofrece un
Más detallesÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny
ÁRBOLES BINRIOS 2002 GRUPO # 22 lumnos: guilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURS DE DTOS TEM 6 Estructuras de datos no lineales. Árboles binarios ÍNDICE 6.1. Introducción.
Más detallesSeminario Profesional MS PROJECT 2010. MODULO 2: Introducción y organización de las tareas
MODULO 2: Introducción y organización de las tareas En este módulo aprenderemos a trabajar con las tareas, conoceremos los fundamentos básicos en la creación y organización de tareas en las secuencia más
Más detallesUniversidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS
Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin
Más detallesEstructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents
Más detallesFigura 4.1 Clasificación de los lenguajes de bases de datos
1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje
Más detallesLINUX - Los archivos de órdenes I
LINUX - Los archivos de órdenes I Objetivos: Se pretende introducir al alumno en el uso de los archivos de órdenes (conocidos como scripts) utilizando el lenguaje de programación propio del intérprete
Más detallesCómo nombrar variables ( 2&
&'()*+,, *)-.&'*/0+!" #$ # http://www.escet.urjc.es/~aiiq/ Introducción a Visual Studio.NET Aprendiendo el IDE de Visual Basic.NET Elementos del lenguaje. Variables y estructuras de datos Introducción
Más detallesCurso 2006/2007 Estructura de Datos y de la Información I. Informática, I. T. Informática de Gestión y de Sistemas PRÁCTICA 2
Curso 2006/2007 Estructura de Datos y de la Información I. Informática, I. T. Informática de Gestión y de Sistemas PRÁCTICA 2 1 El problema Desserts es un local de hostelería que sirve toda clase de postres.
Más detallesUNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS.
UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS. 5.1.- SECUENCIA En este caso, las instrucciones se ejecutan una después de la otra sin omitir ninguna de ellas. La sintaxis para
Más detallesEDWIN KÄMMERER ORCASITA INGENIERO ELECTRÓNICO
Identifica los tipos de datos y funciones - Tipos de Datos: Excel soporta 5 tipos de datos, estos son: a) Numéricos: Están formados por cualquiera de los 10 dígitos (del 0 al 9) y pueden estar acompañados
Más detallesÁrboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores
Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,
Más detallesALGORITMO HILL CLIMBING
ALGORITMO HILL CLIMBING También es conocido como el método de ascenso de colinas Usa una técnica de mejoramiento iterativo Comienza a partir de un punto (punto actual) en el espacio de búsqueda Si el nuevo
Más detallesListas, Pilas, Colas y Punteros. Semana 3
Listas, Pilas, Colas y Punteros Semana 3 Dictado por Marco González Núñez 14 de Febrero de 2011 Estructuras de datos simples Hoy hablaremos de lo que sin duda me motivó a crear este curso que son los punteros,
Más detallesInstructivo Asesoría Básica Comunidad Virtual SharePoint 2010
Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010 CONTENIDO 1. Qué es? 2. Cómo crear y acceder a la Comunidad Virtual en Microsoft SharePoint 2010? Ejemplo. 3. Qué tengo en la página de inicio
Más detallesCASO PRÁCTICO DISTRIBUCIÓN DE COSTES
CASO PRÁCTICO DISTRIBUCIÓN DE COSTES Nuestra empresa tiene centros de distribución en tres ciudades europeas: Zaragoza, Milán y Burdeos. Hemos solicitado a los responsables de cada uno de los centros que
Más detallesEl problema de los Filósofos
El problema de los Filósofos Problemas de Programación Concurrente Solución con Semáforos Para evitar una situación de interbloqueo se limita el número de filósofos en disposición de comer a 4. PROGRAM
Más detallesIntroducción a la calidad de código
Universidad de Buenos Aires Facultad De Ingeniería Introducción a la calidad de código [75.40] Algoritmos y Programación I 2do Cuatrimestre 2010 Cátedra: Ing. Pablo Guarna Autor: Bernardo Ortega Moncada
Más detallesSoporte lógico de computadoras
Soporte lógico de computadoras Software: Sistemas Operativos Lenguajes de programación Lenguajes de Programación. Clasificación Proximidad del lenguaje al que entiende el ordenador: Bajo nivel: específico
Más detallesIntroducción. Visual Basic para Aplicaciones (VBA) en Excel: aspectos elementales
Introducción Visual Basic para Aplicaciones (VBA) en Excel: aspectos elementales Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl
Más detallesDividir automáticamente las palabras en todo un documento
Guiones Si una palabra es demasiado larga para caber al final de una línea, Word lleva la palabra a la línea siguiente sin dividirla con un guión. Sin embargo, puede utilizar la característica de división
Más detallesClase Nº 9 OPERADOR PC. P á g i n a 1 HOJA DE CALCULO MICROSOFT EXCEL
P á g i n a 1 Clase Nº 9 HOJA DE CALCULO MICROSOFT EXCEL Para acceder a este programa se debe hacer clic en el botón INICIO, luego en PROGRAMAS, luego en MICROSOFT OFFICE y finalmente en MICROSOFT EXCEL.
Más detallesPROGRAMACIÓN CONCURRENTE. Tema 5 Monitores
PROGRAMACIÓN CONCURRENTE Tema 5 Monitores 1 Indice Definición de los monitores Sincronización condicional usando monitores Algunos problemas con monitores 2 Problemas de las regiones críticas condicionales
Más detallesCapitulo V Administración de memoria
Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal
Más detallesCurso 0 de Informática
Curso 0 de Informática 2015-2016 Tema 1: Introducción a la Informática y Conceptos básicos 1 Motivación (I): En los procesos industriales, cada vez es mayor el uso de sistemas informáticos para: Monitorización,
Más detallesOrganizando mi clase en el GES Material de apoyo
Tabla de contenido 1. Cómo subir el programa del curso?... 1 1.1. Subir el programa del curso... 1 1.2 Enlazar un programa... 3 1.3 Crear un programa en GES... 5 2. Cómo agrego apuntes o material de clase?...
Más detallesProgramación: QBASIC
1. QBASIC Programación: QBASIC Guía del alumno Qbasic es una versión moderna del lenguaje BASIC. Se trata de un lenguaje de alto nivel. En un lenguaje de alto nivel las instrucciones tienen un formato
Más detallesTema: Arreglos de Objetos en C++.
Programación II. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de Objetos en C++. Objetivos Específicos Describir la implementación de arreglos de Objetos.
Más detallesPreguntas correspondientes al examen de la sesión 1
Preguntas correspondientes al examen de la sesión 1 Qué tipo de datos puedes utilizar para los campos en una tabla de Access? En función de la naturaleza de la información puedes elegir entre varios tipos
Más detallesIntroducción a la Programación Ingenieria en Informática Junio 2008
Introducción a la Programación Ingenieria en Informática Junio 2008 Ejercicio 1 [2 puntos] Escribe un programa que reciba el fichero binario.dat, fichero binario de enteros positivos y devuelva un fichero
Más detallesWinHIPE: edición, compilación y ejecución de programas; y generación de animaciones web. Manual de usuario.
WinHIPE: edición, compilación y ejecución de programas; y generación de animaciones web. Manual de usuario. Índice contenido. INTRODUCCIÓN... 1-2 1. ENTORNO DE TRABAJO... 1-2 2. EDICIÓN DE PROGRAMAS...
Más detallesRecomendaciones básicas para los estudiantes
Recomendaciones básicas para los estudiantes Campus Virtual FaHCE Abril 2016 Acceso al Campus Se puede acceder al Campus desde la página principal de la Facultad (http://www.fahce.unlp.edu.ar) pulsando
Más detallesMetodología y Tecnología de la Programación
Metodología y Tecnología de la Programación Curso 2008/09 Tema 7 Tipos de Datos Abstractos Temario 7.1 Concepto de Tipo de Datos Abstracto 7.2 Clasificación de Tipos de Datos Abstractos 7.3 Especificación
Más detallesAPUNTES DE WINDOWS. Windows y sus Elementos INSTITUTO DE CAPACITACIÓN PROFESIONAL. Elementos de Windows
1 APUNTES DE WINDOWS Unidad 1: Windows y sus Elementos Elementos de Windows Escritorio: Es la pantalla que aparece cuando se inicia una sesión con Windows, desde aquí es de donde se administra el computador.
Más detallesMenús. Gestor de Menús
Menús Para dar acceso a las categorías, artículos y generar espacio para los módulos se deben crear menús, éstos son enlaces a determinado recurso en el portal Web, sin ellos no es posible visualizar ninguno
Más detallesExamen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento
Más detallesESTRUCTURA DE DATOS: ARREGLOS
ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción
Más detallesPROPORCIONALIDAD - teoría
PROPORCIONALIDAD RAZÓN: razón de dos números es el cociente indicado de ambos. Es decir, la razón de los dos números a y b es a:b, o lo que es lo mismo, la fracción b a. PROPORCIÓN: es la igualdad de dos
Más detallesComercial Cartas de Fidelización
Comercial Cartas de Fidelización El objetivo es poder enviar, de una forma sencilla a través de e-mail, textos en su idioma a todos los clientes que cumplen determinadas características. En principio,
Más detallesOperación de Microsoft Word
Trabajar con tablas Las tablas permiten organizar la información y crear atractivos diseños de página con columnas paralelas de texto y gráficos. Las tablas pueden utilizarse para alinear números en columnas
Más detallesCurso de Excel Avanzado
Curso de Excel Avanzado J. David Moreno TRABAJANDO CON RANGOS J. David Moreno 1 3 Para programar correctamente en VBA y trabajar con Excel es obligatorio aprender a trabajar con rangos (seleccionar, copiar,
Más detallesUna desigualdad se obtiene al escribir dos expresiones numéricas o algebraicas relacionadas con alguno de los símbolos
MATEMÁTICAS BÁSICAS DESIGUALDADES DESIGUALDADES DE PRIMER GRADO EN UNA VARIABLE La epresión a b significa que "a" no es igual a "b ". Según los valores particulares de a de b, puede tenerse a > b, que
Más detallesProyectos de Innovación Docente
Proyectos de Innovación Docente Manual de Usuario Vicerrectorado de Docencia y Profesorado Contenido INTRODUCCIÓN... 3 DATOS PERSONALES... 6 Modificar email... 6 Modificar contraseña... 7 GESTIÓN PROYECTOS...
Más detallesSISTEMAS OPERATIVOS AVANZADOS
SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3
Más detallesTema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión
Más detallesFunciones en Excel (II)
Funciones en Excel (II) Las Funciones de Texto Jose Ignacio González Gómez Departamento de Economía Financiera y Contabilidad - Universidad de La Laguna www.jggomez.eu INDICE 1 Para qué las funciones de
Más detallesTema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos
Tema 2 Memoria Dinámica 2.1 Datos estáticos y dinámicos Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo
Más detallesCapítulo 12: Indexación y asociación
Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación
Más detallesInstalación del programa PSPP y obtención de una distribución de frecuencias.
Práctica 2. Instalación del programa PSPP y obtención de una distribución de frecuencias. Con esta práctica instalaremos el programa PSPP. El programa es un software específico para el análisis estadístico
Más detallesMANUAL DE USUARIOS DEL MODULO DE EVALUACIÓN DE DESEMPEÑO SISTEMA DE ADMINISTRACIÓN DE SERVIDORES PÚBLICOS (SASP)
MINISTERIO DE ADMINISTRACIÓN PÚBLICA (MAP) Dirección de Tecnología de la Información y Comunicación MANUAL DE USUARIOS DEL MODULO DE EVALUACIÓN DE DESEMPEÑO SISTEMA DE ADMINISTRACIÓN DE SERVIDORES PÚBLICOS
Más detallesUsando el editor de texto vi
Usando el editor de texto vi Juan José Álvarez Sánchez Escuela Universitaria de Informática Universidad de Valladolid campus Segovia 24 de febrero de 2004 1. Introducción Antes de empaparse en el uso del
Más detallesEjemplos de conversión de reales a enteros
Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print
Más detallesProcesadores de lenguaje Tema 5 Comprobación de tipos
Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,
Más detallesLección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009
Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios Dra. Noemí L. Ruiz Limardo 2009 Objetivos de la Lección Al finalizar esta lección los estudiantes: Identificarán, de una lista de expresiones
Más detallesHoja1!C4. Hoja1!$C$4. Fila
CAPÍTULO 6......... Cálculo y funciones con Excel 2000 6.1.- Referencias De Celdas Como vimos con anterioridad en Excel 2000 se referencian las celdas por la fila y la columna en la que están. Además como
Más detallesTitulación: Ingeniero Técnico en Informática de Gestión Curso: 2º
1. Ejercicio (1 punto) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 Describir cual es el estado del array A después de cada paso principal del algoritmo: InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8,
Más detallesMicrosoft Office XP Excel XP (I)
PRÁCTICA 1 HOJA DE CÁLCULO Microsoft Office XP Excel XP (I) 1. Entrar en Windows 98 (ver práctica 1), y en el Excel abriendo el icono Microsoft Office del escritorio y seleccionar el icono Microsoft Excel,
Más detallesINTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS
CONTENIDOS 1. Introducción a las cadenas 2. Definición 3. Declaración de cadenas 4. Inicialización de cadenas 5. Escritura y Lectura de datos tipo cadena 6. Funciones de manipulación de cadenas 7. Arrays
Más detallesVECTORES. Módulo, dirección y sentido de un vector fijo En un vector fijo se llama módulo del mismo a la longitud del segmento que lo define.
VECTORES El estudio de los vectores es uno de tantos conocimientos de las matemáticas que provienen de la física. En esta ciencia se distingue entre magnitudes escalares y magnitudes vectoriales. Se llaman
Más detalles3. COLA DE PRIORIDAD DEFINICION (I)
3. COLA DE PRIORIDAD DEFINICION (I) Conjunto de elementos ordenados con las operaciones: Crear ( ) > ColaPrioridad EsVacio () > Boolean Insertar (ColaPrioridad, Item) > ColaPrioridad BorrarMínimo (ColaPrioridad)
Más detallesInformática Aplicada a la Gestión de Empresas (IAGE) Parte III Excel e Internet Tema 2
Informática Aplicada a la Gestión de Empresas (IAGE) Parte III Excel e Internet Tema 2 1. Rango de celdas. Definición. Selección Contenido. 2. Referencias relativas, absolutas y mixtas. 3. Gráficos. Creación,
Más detalles35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico
q 1 q 2 Prof. Félix Aguirre 35 Energía Electrostática Potencial Eléctrico La interacción electrostática es representada muy bien a través de la ley de Coulomb, esto es: mediante fuerzas. Existen, sin embargo,
Más detalles1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)
1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los
Más detallesSolución al Examen de Prácticas de Programación (Ingeniería Informática)
Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa
Más detallesSiemens Industry IA/DT/BT Service&Support - Automation Service, Automation Sup...
Page 1 of 7 Automation Technology > Productos y sistemas para manejo y visualización > Software HMI > Sistema SCADA SIMATIC WinCC > SIMATIC WinCC > Configuración del sistema WinCC -- Creación de la configuración
Más detalles