Estructura de datos (arreglos) Vectores y Matrices

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Estructura de datos (arreglos) Vectores y Matrices"

Transcripción

1 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 de control. A partir de este punto se verá la aplicación de las mismas a distintos tipos de problemas. Estructura de datos: Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ella. Dentro de ellas encontramos distintos tipos, los tipos de datos más frecuentes en los diferentes lenguajes son: simples Tipos de datos estructurados estándar definidos por el programador (no estándar) simples o estáticos entero (integer) real (real) carácter (char) lógico (boolean) subrango (subrange) enumerativo (enumerated) arrays (vectores/matrices) registros ficheros conjuntos cadenas (string) compuestos o dinámicos listas (pilas/colas) listas enlazadas árboles grafos Las estructuras estáticas son aquellas en las que el tamaño de memoria ocupado se define antes de que el programa se ejecute y no puede modificarse durante la ejecución Las estructuras dinámicas son aquellas en las que no se debe definir previamente el tamaño de memoria Los datos simples tienen en común que cada variable representa un elemento, en los estructurados un identificador puede representar múltiples datos individuales, pudiendo cada uno de estos ser referenciados independientemente. ARRAY UNIDIMENSIONALES: VECTORES ARRAY (ARREGLO): Es un conjunto finito y ordenado de elementos homogéneos. Ordenado : cada elemento del arreglo puede ser identificado Homogéneo : son del mismo tipo de dato El tipo más simple de arreglo es el unidimensional o vector (matriz de una dimensión). Página 1 de 13

2 Por ejemplo podría ser un vector denominado NOTAS NOTAS[1] NOTAS[2] NOTAS[k] NOTAS[j] Los subíndices 1, 2, k, n, indican la posición del elemento, en Pascal van entre corchetes. El primer elemento es el 5, el segundo es el 8, el elemento k es 7 y el enésimo es 3. Un array puede ser declarado de dos formas distintas que son: Declaraciones Tipo Array En las declaraciones del tipo array usaremos los siguientes pasos.: 1. La estructura del arreglo se describe en Type. 2. Se le asigna ese tipo a una o más variables. Variables Tipo Array Type XX = array [ ] of real; Var: Alfa : XX; array y of son obligatorias [ ] indica los valores que toman los índices del vector, son del tipo subrango. real identifica que tipo de elementos almacena el vector. En las declaraciones de variable tipo array se hará de la siguiente forma.: 1. En la declaración se describe la variable. Var: Alfa : array [ ] of real; ; Los elementos cumplen la misma función que en el caso anterior. Dentro de los distintos tipos que un array puede almacenar en sus posiciones, puede ser un tipo Array como el del siguiente tipo: Type Linea = array [1..40] of char; Hoja = array [1..30] of Linea; Libro = array [1..30] of Linea; Las operaciones que se pueden hacer con un vector son: asignación lectura/escritura recorrido (acceso secuencial) actualizar (añadir, borrar, insertar) ordenación búsqueda Asignación: Es darle un valor a un elemento de un vector Pseudocódigo en español Código se programa A[3] 5 A[3] := 5; Página 2 de 13

3 Para la asignación como para otro procesos se debe recurrir a estructuras repetitivas (desde, mientras o repetir). Ejemplo: A cada uno de los 55 elementos del vector CARGA se le debe asignar el valor 0 Algoritmo de asigna Pseudocódigo en español desde I = 1 hasta 55 hacer fin desde CARGA[I] 0 Código se programa for I = 1 to 55 do CARGA[I] := 0; Su estructugrama tiene la siguiente forma desde I = 1 hasta 55 CARGA[I] 0 Pseudocódigo del programa nombre vector1(program); declaraciones (uses) Crt, Dos; constantes(const) A = 1; B = 55; tipo (type) matriz = array [1..55] de enteros variables (var) I entero CARGA matriz funciones(function)(no hay); procedimientos (procedure); inicio (); limpieza(limpia la pantalla); asigna (hace ciclo y asigna); salida fin(end.) Diagrama N-S nombre selección1 declaraciones Crt, Dos Constantes A, B tipos matriz [55] Variables Y CARGA funciones y procedimientos comienzo (programa) limpieza asigna salida fin (programa) Como se puede ver tenemos la definición del vector en tipo o type. Página 3 de 13

4 El código del procedimiento es: procedure asigna; {* comienzo de la asignación *} for I := A to B do {* se define el ciclo de 1 a 55*} CARGA[I] := 0; {* asigna los valores *} end; {* fin del ciclo *} Página 4 de 13

5 Quedándonos el programa de la siguiente manera. Program Vector_1; {* Este es el primer programa con vectores *} uses Crt, dos; {declaraciones} const {* constantes *} A = 1; B = 55; type matriz = array [1..55] of integer; var I: integer; {* controla el ciclo *} CARGA: matriz; procedure limpieza; {* comienzo de limpieza de la pantalla *} ClrScr; end; {* fin de limpieza de la pantalla *} procedure asigna; {* comienzo de la asignación *} for I := A to B do {* se define el ciclo de 1 a 55 *} CARGA[I] := 0; {* asigna la valores *} end; {* fin de la asignación *} procedure salida; {* comienzo del procedimiento salida *} {* solo sirve para ver resultados *} Var H :char; limpieza; asigna; salida; end. Lectura/escritura: writeln ( 'Presione cualquier tecla '); readln (H); {* esta instrucción y la anterior son para dar tiempo para *} {* ver resultados *} end; {* fin del procedimiento salida *} Es una operación de entrada salida sobre un vector. Manejado por estructuras repetitivas. Ejemplo: Ingresar por teclado cada uno de los 5 elementos de un vector de nom- Página 5 de 13

6 bre vec. Y luego leerlos y presentarlos por pantalla en orden inverso al que entraron (de 5 a 1) Algoritmo de escribe Pseudocódigo en español desde I = 1 hasta 5 hacer comienzo imprimo mensaje leo y escribo en vec[i] fin desde Código se programa for I = 1 to 5 do write ( ); read (vec[i] ); end; Su estructugrama tiene la siguiente forma desde I = 1 hasta 5 imprimo mensaje leo vec[i] El código del procedimiento es: procedure escribir; {* escribe en el vector *} for I := A to B do {* se define el ciclo de 1 a 5 *} write ('Ingrese vec(',i:1,') : '); readln(vec[i]); {* escribe en el vector *} end; end; {* fin de escritura *} Página 6 de 13

7 Algoritmo de lee Pseudocódigo en español desde I = 1 hasta 5 hacer leo vec[i] fin desde Su estructugrama tiene la siguiente forma Código se programa for I = 1 to 5 do read (vec[i] ); desde I = 1 hasta 5 imprimo vec[i] El código del procedimiento es: procedure leer; {* lee el vector *} for I := B downto A do {* se define el ciclo de 5 a 1 *} writeln ('vec(',i:1,') = ',vec[i]:2); {* lee el vector y lo saca por pantalla *} end; {* fin de lectura *} Pseudocódigo del programa Nombre vector2(program); Declaraciones (uses) Crt, Dos; Constantes(const) A = 1; B = 5; tipo (type) Matriz = array [1..5] de enteros variables (var) I entero vec matriz Funciones(function)(NO hay); Procedimientos (procedure); Diagrama N-S nombre selección1 declaraciones Crt, Dos Constantes A, B tipos matriz [5] Variables I vec funciones y procedimientos comienzo (programa) limpieza Página 7 de 13

8 inicio (); limpieza(limpia la pantalla); escribir (escribe en el vector) leer (lee del vector y saca por pantalla) salida fin(end.) Program Vector_2 {* Este es el segundo programa con vectores *} uses crt, dos; {declaraciones} const {* constantes *} A = 1; B = 5; type matriz = array [1..5] of integer; var I: integer; {* controla el ciclo *} vec: matriz; escribe lee salida fin (programa) procedure limpieza; {* comienzo de limpieza de la pantalla *} ClrScr; end; {* fin de limpieza de la pantalla *} procedure escribir; {* escribe en el vector *} for I := A to B do {* se define el ciclo de 1 a 5 *} write ('Ingrese vec(',i:1,') : '); readln(vec[i]); {* escribe en el vector *} end; end; {* fin de escritura *} procedure leer; {* lee el vector *} for I := B downto A do {* se define el ciclo de 5 a 1 *} writeln ('vec(',i:1,') = ',vec[i]:2); Página 8 de 13

9 {* lee el vector y lo saca por pantalla *} end; {* fin de lectura *} procedure salida; {* comienzo del procedimiento salida *} {* solo sirve para ver resultados *} Var H :char; writeln ( 'Presione cualquier tecla '); readln (H); {* esta instrucción y la anterior son para dar tiempo para *} {* ver resultados *} end; {* fin del procedimiento salida *} limpieza; escribir; leer; salida; end. Recorrer: Esta operación se realiza cuando uno lee el vector, y se aplica tanto cuando se busca un elemento de un vector o cuando se desea listar el mismo, como lo vimos en el ejemplo anterior. Actualizar Añadir: Se denomina así a la operación de agregar un nuevo, elemento al final del vector. la única condición necesaria para esta operación consiste en la comprobación de espacio libre en memoria. Ejemplo: Dado el vector U de 7 elementos añadir un elemento más al vector Algoritmo de añade Pseudocódigo en español I 0 repetir I I +1 hasta que U[I] = 0 o i > k si i es menor o igual a k entonces leo nuevo U[I] sino Código se programa I := 0; repeat I := I + 1; until U[I] = 0 or i >q if I <= k then else read (U[I] ) Página 9 de 13

10 fin_si imprimo No más lugar writeln( No mas lugar ) Su estructugrama tiene la siguiente forma I I +1 U[I] = 0 o i > k I es menor o igual a k leo nuevo U[I] imprimo No más lugar El código del procedimiento es: procedure agrega; {* agrega un elemento al vector *} I:=0; repeat I := I + 1; until (U[I]=0) or (I> 7); {* Se repite hasta que se encuentre una bandera o se termine el vector *} if I<= 7 then writeln ('Ingrese un nuevo elemento al vector'); read ( U[I]) end else writeln ('No hay mas lugar en el vector'); end; {* fin de agrega *} Borrar: Es eliminar un elemento de un vector se puede hacer de dos maneras una es reemplazar el elemento por el utilizado como señal. Puede servir pero no es recomendado en proyectos pequeños. Pero no así en grandes. El otro método consiste en mover los elementos que se encuentran debajo de él una posición hacia arriba, colocando una bandera en la última celda. Ambos métodos tienen el paso de búsqueda en común utilizado en añadir, lo que varían son los pasos posteriores al Si. (Solo representaremos estos pasos) Ejemplo: Dado el vector U de 7 elementos eliminar un elemento al vector Método rudimentario Página 10 de 13

11 Algoritmo de elimina (rudimentario) Pseudocódigo en español Y 0 repetir I I +1 hasta que U[I] = 0 o I > k si I es menor o igual a k entonces U[I] 0 sino imprimo No existe el elemento fin_si Su estructugrama tiene la siguiente forma Código se programa I := 0; repeat I := I + 1; until U[I] = 0 or I >q if I <= k then else U[I] := 0; writeln( No existe el elemento ) I I +1 U[I] = 0 o I > k I es menor o igual a k Método Optimo Algoritmo de elimina (optimo) Pseudocódigo en español I 0 Lee Aux U[I] 0 repetir I I +1 hasta que U[i] = Aux o I > k si i es menor o igual a k entonces repetir U[I] U[I + 1] I I +1 hasta que U[i] = 0 o I > k sino imprimo No existe el elemento Código se programa I := 0; Readln(Aux); repeat I := I + 1; until U[i] = Aux or I >q if I <= k then repeat U[I] := U[I+1]; I := I + 1; until U[I] = 0 or I >q ; else writeln( No existe el elemento ) Página 11 de 13

12 imprimo No existe el elemento fin_si Su estructugrama tiene la siguiente forma I 0 Lee Aux I I +1 U[I] = Aux o I > k I es menor o igual a k U[I] U[I+1] I I +1 U[I] = 0 o I > k imprimo No existe el elemento Insertar: Se debe trabajar sobre un vector ordenado. Consiste en introducir un nuevo elemento al vector sin que este pierda el orden. Para ello se debe comprobar que haya lugar libre en el vector, luego de lo cual se deberá desplazar hacia bajo los elementos necesarios como para generar un espacio libre en la posición adecuada sin que se pierda el orden. Algoritmo de inserta (Ordenado creciente) Pseudocódigo en español I 0 Lee Aux repetir I I +1 hasta que U[i] = 0 o I > B si i es menor o igual a B entonces I I -1 mientras U[i] > Aux U[I+1] U[I] I I -1 fin mientras Código se programa I := 0; Read(Aux); repeat I := I + 1; until U[i] = 0 or I >B if I <= B then I := I - 1; while U[I] > Aux U[I+1] := U[I]; I := I - 1; Página 12 de 13

13 U[I+1] Aux sino imprimo No hay lugar fin_si end; U[I+1] = Aux; end else writeln( No hay lugar ) Su estructugrama tiene la siguiente forma I 0 Lee Aux I I +1 U[I] = Aux o I > k I es menor o igual a k I I -1 U[I] > Aux U[I+1] U[I] I I -1 U[I+1] Aux imprimo No hay lugar Ordenación: La ordenación o clasificación es, el proceso de clasificar datos en algún orden o secuencia específica como creciente o decreciente. Existen varios métodos de ellos elegiremos el de intercambio (decantación). Algoritmo de ordena (Ordenado creciente) Pseudocódigo en español I 0 repetir I I +1 hasta que U[i] = 0 o I > B P I - 1 desde I 1 hasta P -1 hacer desde J 1 hasta P - I hacer si U[J] > U[J +1] entonces (intercambiar) Código se programa I := 0; repeat I := I + 1; until U[i] = 0 or I > B P := I - 1; for I = 1 to P-1 do for J = 1 to P- I do if U[J] > U[J +1] then Página 13 de 13

14 Aux U[J] U[J] U[J +1] U[J +1] Aux fin si fin desde fin desde Aux := U[J]; U[J] := U[J +1]; U[J +1] := Aux ; end; Su estructugrama tiene la siguiente forma I 0 I I +1 U[I] = 0 o I > k P I -1 I 1 hasta P -1 J 1 hasta P - I U[J] > U[J +1] Aux U[J] U[J] U[J +1] U[J +1] Aux Búsqueda: La búsqueda de un dato dentro de un array consiste en determinar si un elemento N pertenece o no al conjunto de datos y posición que el ocupa en el conjunto. Los distintos tipos de búsqueda se pueden clasificar en: búsqueda secuencial búsqueda binaria búsqueda por transformación de claves (hash) En este curso solo se verá el primer tipo, ya que las dos siguientes están fuera del alcance del mismo. Página 14 de 14

15 Búsqueda Secuencial: Compara cada elemento del vector con el valor deseado. Si se encuentra es el método que ofrece menor eficiencia pero el más sencillo. Esto se puede ver en el ejemplo anterior. Ejemplo general Hacer un programa que permita operar con un vector de siete posiciones, que opere con números naturales. Pudiendo agregar, eliminar o insertar un valor, también se podrá listar todos los valores que tiene el vector. Usaremos como centinela el número 0 (cero) por lo cual lo primero que deberá hacer el programa deberá asignarle a todos los elementos del vector dicho valor. El programa cuenta con tres llamados. limpieza; {* limpia la pantalla *} asigna; {* asigna los 0 al vector *} menu; {* llama al módulo menú *} end. Los módulos limpieza y asigna ya se han detallado. En cuanto a menu es un selector. Algoritmo de menu Pseudocódigo en español repetir repetir llama a Limpieza escribir Titulos escribir Opciones leer valor elegido (H) hasta que H > 0 y H < 7 según sea H hacer 1: llama a Agrega 2: llama a Lista 3: llama a Borra 4: llama a Ordena 5: Inserta sino limpia pantalla fin según mientras H > 6 Código se programa repeat repeat limpieza; writeln (' M E N U '); writeln ( ' 1. Ingresar un valor al vector '); writeln; write ( ' Elija una opción '); readln (H); {* lee la opción *} until (H > 0) and (H < 7); case H of 1 : Agrega; 2 : Lista; 3 : Borra; 4 : Ordena; 5 : Inserta; else clrscr; Página 15 de 15

16 end; until H = 6; En el procedimiento borra, lo que realiza el algoritmo es desplazar cada uno de los elementos posteriores al que queremos eliminar a una posición anterior a la que teníamos. Este procedimiento cuenta con dos partes. a) encuentra el elemento a borrar b) desplaza los elementos posteriores a una posición anterior, el centinela nos sirve para optimizar el proceso. Página 16 de 16

17 program vectores; {* Programa de subrutinas de vectores *} uses crt, dos; {*declaraciones*} const {* constantes *} NL = #13#10; {* Nueva Línea Carrige Return, Line Feed*} A = 1; B = 7; type vector = array [1..7] of integer; var I: integer; {* controla el ciclo *} U: vector; procedure limpieza; {* comienzo de limpieza de la pantalla *} ClrScr; end; {* fin de limpieza de la pantalla *} procedure salida; {* comienzo del procedimiento salida *} {* solo sirve para ver resultados *} Var H :char; writeln ( 'Presione cualquir tecla '); readln (H); {* esta instrucci n y la anterior son para dar tiempo para *} {* ver resultados *} end; {* fin del procedimiento salida *} procedure Lugar; {* determina cuantos lugares están ocupados del vector *} I:=0; repeat I := I + 1; until (U[I]=0) or (I> 7); {* Se repite hasta que se encuentre una bandera o se termine el vector *} end; {* fin de lugar *} procedure asigna; {* comienzo de la asignación *} Página 17 de 17

18 for I := 1 to 7 do {* se define el ciclo de 1 a 7 *} U[I] := 0; {* asigna *} end; {* fin de la asignación *} procedure Ordena; {* ordena el vector *} var J, P, Aux : integer; I := 0; repeat I := I + 1; until (U[I]=0) or ( I>B ); {* Determina cuantos valores validos hay en el vector *} P := I - 1; for I := 1 to P - 1 do {* se define el ciclo hasta el anteúltimo valor cargado *} for J := 1 to P - I do if U[J] > U[J+1] then {* Intercambia *} Aux := U[J]; U[J] := U[J+1]; U[J+1] := Aux; end end; {* fin del ordenamiento *} procedure lista; {* lee y lista el vector *} I := 1; while (U[I] <> 0) and (I<= B ) do {* se lee hasta encontrar *} {* un centinela o el final del vector *} writeln ('U(',I:1,') = ',U[I]:3); {* lee el vector y lo saca por pantalla *} I := I + 1; end; Salida; end; {* fin de lectura y listado *} Página 18 de 18

19 procedure Borra; {* borra un elemento del vector *} var J : integer; H : char; I := 1; write ('Ingrese el valor a borrar : '); read (J); while (U[I] <> 0) and (I<= B ) and (U[I] <> J) do {* se hace la búsqueda *} I := I + 1; if U[I] <> J then {* No se encontró el valor *} write (' Elemento no encontrado '); readln(h); end else while U[I] <> 0 do {* Se borra el valor *} U[I] := U[I+1]; I := I + 1; end; write (' Elemento borrado '); readln(h); end; end; {* fin de borrado *} Página 19 de 19

20 procedure agrega; {* agrega un elemento al vector *} var H:char; Lugar; if I <= 7 then repeat write ('Ingrese un nuevo valor al vector : '); readln ( U[I]); I := I + 1; until (U[I-1] = 0) or (I > B) else write ('No hay mas lugar en el vector'); Read (H); end end; {* fin de agrega *} Página 20 de 20

21 procedure inserta; {* inserta un elemento al vector ordenado *} var H:char; K, Aux : integer; Lugar; if I <= B then K := I; write ('Ordeno el vector? (S/N) '); Read (H); if (H = 'S') or (H = 's') then Ordena; write ('Ingrese el valor a insertar : '); Read (Aux); I := K - 1; while U[I] > Aux do U[I+1] := U[I]; I := I - 1; end; U[I+1] := Aux; end else write ('No hay mas lugar en el vector'); Read (H); end end; {* fin de agrega *} Página 21 de 21

22 Copia de un array: procedure menu; {* comienzo del procedimiento menu *} {* genera y maneja un menu de opciones *} Var H :integer; repeat repeat limpieza; writeln (' M E N U '); writeln (' ', NL, NL, NL); writeln ( ' 1. Ingresar un valor al vector ', NL); writeln ( ' 2. Listar el vector ', NL); writeln ( ' 3. Borrar un valor ', NL); writeln ( ' 4. Ordenar el vector ', NL); writeln ( ' 5. Insertar un valor ', NL); writeln ( ' 6. Salir del programa ', NL, NL); write ( ' Elija una opcion '); readln (H); {* lee la opción *} until (H > 0) and (H < 7); case H of 1 : Agrega; {* Llamada al procedimiento de agregar *} 2 : Lista; {* Llamada al procedimiento de listar *} 3 : Borra; {* Llamada al procedimiento de borrar *} 4 : Ordena; {* Llamada al procedimiento de ordenar *} 5 : Inserta; {* Llamada al procedimiento de insertar *} else clrscr; {* Llamada a la salida del programa *} end; until H = 6; end; {* fin del procedimiento menu *} {* Comienzo del programa *} limpieza; {* limpia la pantalla *} asigna; {* asigna los 0 al vector *} menu; {* llama al módulo menú *} end. {* Fin del programa *} Página 22 de 22

23 Un array puede ser asignado a otro array, si y solo si, ambos tienen el mismo tipo y el mismo tamaño. Lo que implica que ambos fueron declarados por el mismo identificador o por identificadores equivalentes. Ejemplo: Type XX = array [1..30] of byte; YY = array [1..30] of byte; Var: Alfa, Gama: XX; Beta: YY; Parámetros de valor y de variable: Alfa := Gama; {única expresión válida}. Beta := Alfa; Gama := Beta;. Los arrays pueden ser utilizados como parámetros en funciones y procedimientos; sin embargo, el valor de una función no puede ser un array. Las variables tipo array pueden ser utilizadas como parámetros en la comunicación entre funciones y procedimientos. El array local se inicializa de modo que contiene los mismos valores que el array real correspondiente. El procedimiento manipula el array local y cualquier cambio que se haga en el array local no se refleja en el array real. type Vector = array [1..10] of real; var M, N, P : Vector; R : boolean; function Identidad (A, B : Vector) : boolean; var end; procedure Suma (A; B: Vector; end; R := Identidad(M,N); var C: Vector); Página 23 de 23

24 Suma (M,N,P); Pasaje de elementos individuales: En lugar de pasar todos los elementos del array, se pasan de uno por vez. Para el ejemplo anterior se puede decir: function Identidad (A, B : real) : boolean; var end; R := Identidad(M[3], N[3]); Array bidimensionales (Tablas) Un array bidimensional (tabla o matriz) es un array con dos índices, al igual que los vectores que deben ser ordinales o tipo subrango. Para localizar o almacenar un valor en el array se deben especificar dos posiciones (dos subíndices), uno para la fila y otro para la columna. Los elementos se referencian con el formato: T [3,A] elemento de la fila 3 y columna 4 Los diferentes tipos de índices no necesitan ser subrango del mismo tipo. Declaración de los arrays bidimensionales Al igual que en los arrays de una dimensión (los vectores), los arrays multidimensionales (tablas) se crean con declaraciones type y var cuando un programa se codifica en Pascal. type Tabla = array [1..10,4..25] of real; type Tabla = array [1..10] of array [4..25] of real; var Manejo de tablas M, : array [1..10,4..25] of real; Para el manejo de tablas, no debemos olvidarnos que las celdas de las mismas se identifican por dos subíndices. Por lo tanto cualquier proceso que queramos realizar sobre la misma, involucrará a ambos subíndices. Por ejemplo cuando se desea leer un array se podrá hacer por filas, según se puede ver. var M, : array [1..10,4..25] of real; Página 24 de 24

25 Por columnas. Array multidimensionales For Fila := 1 to 10 For Columna := 4 to 25 Writeln(A[Fila, Columna]); For Columna := 4 to 25 For Fila := 1 to 10 Writeln(A[Fila, Columna]); Pascal no tiene límite para el número de dimensiones. Pero al usuario corriente no se le recomienda superar las 3 dimensiones, ya que se vuelve complejo su manejo. Declaración de los arrays multidimensionales Al igual que en los arrays de bidimensionales (las tablas), los arrays multidimensionales se crean con declaraciones type y var cuando un programa se codifica en Pascal. type Matriz = array [1..10,4..25, A.. Z ] of byte; type Vector = array [1..10] of byte; Matriz = array [4..25, A.. Z ] of Vector; type Vector = array [1..10] of byte; Tabla = array [4..25] of Vector; Matriz = array [ A.. Z ] of Tabla; var M, : array [1..10] of array [4..25,] of array [ A.. Z ] of byte; CONSTANTES DE TIPO ARRAY (TIPEADAS) Turbo Pascal permite que las constantes con tipo (tipeadas) puedan ser de casi cualquier tipo. Las constantes con tipo, no son constantes en el estricto sentido, sino variables inicializadas, es decir, variables que tienen un valor inicial específico en la cabecera del programa. Ejemplos const Página 25 de 25

26 A : array [1..5] of integer = (10,20,30,40,50); const ( vectores ) Dias Por Mes : array [l..l2] of integer = (31,28,31,30,31,30,31,31,30,31,30,31); Página 26 de 26

27 Práctica Nº 7 1. Leer una lista de 10 valores enteros. Listarlos por pantalla en sentido inverso al que ingresaron. 2. Dado un vector 15 valores, hacer un programa que pueda obtener, y sacar por pantalla el mayor de los valores el menor de los valores el más próximo al promedio 3. Suponiendo que los valores del problema anterior fueran mediciones. Se pide modificarlo de forma tal que sin uso de vectores auxiliares. Se pueda calcular la desviación media y ña desviación estándar n j= Xj X ( Xj X ) MD = 1 S = N N Donde X j, es cada uno de los valores X es el promedio de los valores, y N la cantidad de valores. 4. Se lee las letras de una palabra carácter a carácter. El último carácter que ingresa es la barra de dividir(/), que indica que la palabra ha finalizado. Escribir un programa que imprima la palabra en el orden que se ingresó y en sentido inverso (pera arep, la palabra podrá tener hasta 20 caracteres). n j= Diseñar un algoritmo recursivo, que permita invertir el contenido de un vector. Como indica el ejemplo: Vector original: Vector invertido: El algoritmo no podrá usar un vector auxiliar. 6. Hacer un programa que permita realizar la suma y el producto de dos vectores. El usuario puede elegir el tamaño del vector (entre 2 y 10 valores) El usuario elige la operación a realizar. 7. Dado un vector de 20 posiciones (números enteros). Genere un programa que permita realizar Página 27 de 27

28 las siguientes operaciones. Ingresar un elemento en el final de la cola (primera posición libre del vector). Comprobando antes del ingreso que existe una posición libre, sino colocar un mensaje de aviso. Sacar el elemento que se encuentra en la primera posición (si hay, sino colocar un mensaje de aviso), corriendo luego los demás en la cola una posición hacia delante. Listar en cualquier momento el contenido de la cola del primero al último. 8. Dado un vector de 20 posiciones (números enteros). Genere un programa que permita realizar las siguientes operaciones. Ingresar un elemento en la última posición de la pila (primera posición libre del vector). Comprobando antes del ingreso que existe una posición libre, sino colocar un mensaje de aviso. Sacar el elemento que se encuentra en la última posición (si hay, sino colocar un mensaje de aviso). Listar en cualquier momento el contenido de la pila del primero al último. 9. Dado un vector de 20 posiciones (números enteros). Genere un programa que permita realizar las siguientes operaciones. Ingresar un elemento en la posición que le corresponda de la lista, de manera que la misma se mantenga en orden creciente. (para lo cual desplaza los demás elementos una posición para atrás).comprobando antes del ingreso que existe una posición libre, sino colocar un mensaje de aviso. Sacar de la lista el elemento que indica el usuario (si se encuentra, sino colocar un mensaje de aviso). Listar en cualquier momento el contenido de la cola del primero al último. 10. Pascal como otros lenguajes operan con números enteros 2, , estos no tienen errores por redondeo. Para valores más grandes se trabajan con reales, pero ellos si tienen errores de redondeo. Se le pide a Ud.. Haga un programa que opere con números que poseen entre 10 y 20 cifras, que puedan hacer: Suma Resta Multiplicación Sin errores, asegurando todas las cifras Página 28 de 28

29 ** Se recomienda hacer todos los problemas de esta práctica. Página 29 de 29

ESTRUCTURA DE DATOS: ARREGLOS

ESTRUCTURA 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 detalles

Arreglos y Registros

Arreglos y Registros Arreglos y Registros 1. Introducción a las estructuras de datos Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ella.

Más detalles

UTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS

UTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS GUIA DE ESTUDIO: ARCHIVOS DIRECTOS Introducción: Una característica común de los tipos de datos que hemos visto hasta ahora es que la información que cargamos se mantiene vigente solamente mientras está

Más detalles

Academia técnica de computación A.T.C.

Academia técnica de computación A.T.C. Academia técnica de computación A.T.C. Free Pascal (FPC) El Free Pascal es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES 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 detalles

Estructura de Datos: Archivos. Programacion I Mgter. Vallejos, Oscar A.

Estructura de Datos: Archivos. Programacion I Mgter. Vallejos, Oscar A. Archivo: Concepto Para poder acceder a determinada información en cualquier momento, se necesitará que ella esté depositada en soportes físicos los cuales la almacenan en forma permanente. Este es el caso

Más detalles

Tema 2. Software. Informática (1º Ingeniería Civil) jcarmur@unex.es

Tema 2. Software. Informática (1º Ingeniería Civil) jcarmur@unex.es Tema 2. Software Informática (1º Ingeniería Civil) Curso 2011/2012 Javier Carmona Murillo jcarmur@unex.es Índice Introducción. Programas e instrucciones. Tipos y estructuras de datos. Algoritmos. Proceso

Más detalles

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS.

UNIDAD 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 detalles

Ejemplos de conversión de reales a enteros

Ejemplos 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 detalles

Modulo 1 El lenguaje Java

Modulo 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 detalles

UTN FRLP Ing. en Sistemas de Información Algoritmos y Estructura de Datos Trabajos Prácticos Curso 2010

UTN FRLP Ing. en Sistemas de Información Algoritmos y Estructura de Datos Trabajos Prácticos Curso 2010 Práctico de Pascal Nº 2 Ejercicios para la ejercitación del Lenguaje Pascal Objetivo: Es que los alumnos conozcan un lenguaje de programación, donde puedan ejercitar los conocimiento adquiridos hasta ahora

Más detalles

LABORATORIO DE PROGRAMACIÓN II Problemas HOJA 1 RECURSIVIDAD

LABORATORIO DE PROGRAMACIÓN II Problemas HOJA 1 RECURSIVIDAD LABORATORIO DE PROGRAMACIÓN II Problemas HOJA 1 RECURSIVIDAD NÚMERO 1. PROGRAM Hoja1_numero1 (input,output); **** Este programa pide al usuario N letras y las escribe, en el orden inverso al que fueron

Más detalles

Fundamentos de la Programación

Fundamentos 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 detalles

Estructura 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 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 detalles

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos.

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos. Introducción a la ciencia de la computación y a la programación 1. La computadora CONTENIDOS 2. Entidades primitivas para el desarrollo de algoritmos. 3. Metodología a seguir para la resolución de problemas

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES 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 detalles

ARCHIVOS de TEXTO en PASCAL

ARCHIVOS de TEXTO en PASCAL Apunte del curso ALGORITMOS y PROGRAMACIÓN (FI-UBA, Prof. Ing. F. J. LAGE, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez ARCHIVOS de TEXTO en PASCAL Un archivo o fichero

Más detalles

Arreglos. // Incluir E/S y Librerías Standard #include #include

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h> Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en

Más detalles

Aprender a programar con Turbo Pascal. Turbo pascal

Aprender a programar con Turbo Pascal. Turbo pascal Aprender a programar con Turbo Pascal Realizar una aplicación que realice la suma de dos números. Program suma; crt; var numero1:integer; numero2:integer; suma:integer; begin clrscr; writeln ('Escriba

Más detalles

Programación en Pascal

Programación en Pascal Programación en Pascal Segunda parte de la asignatura. El profesor: Nombre:. Despacho: Edificio de la ETSII 2ª Planta. Correo electrónico: fdoperez@ull.es. Miércoles, Viernes: 3.30 a 5.30. Objetivos: Aprender

Más detalles

Estructura de datos Tema 6: Tablas de dispersión (hashing)

Estructura 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 detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado

Más detalles

Tema 9. Vectores y Matrices

Tema 9. Vectores y Matrices Tema 9. Vectores y Matrices OBJETIVO En temas anteriores hemos declarado variables simples de tipo int, float, o de cualquier otro tipo simple. A menudo necesitaremos declarar una colección de variables,

Más detalles

Escuela 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 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 detalles

construcción de programas Prof. Eliana Guzmán U.

construcción de programas Prof. Eliana Guzmán U. Unidad II. Metodología para la construcción de programas Prof. Eliana Guzmán U. Semestre: A-2015 Introducción Resolver un problema con una computadora conduce a la escritura de un programa y a su ejecución.

Más detalles

Sentencias o instrucciones en Visual BASIC

Sentencias o instrucciones en Visual BASIC Tecnología a de la Informació Sentencias o instrucciones en Visual BASIC REM Tecnología a de la Informació REM es una sentencia no ejecutable y permite introducir comentarios en los programas. A esta práctica

Más detalles

PRACTICA 6. VECTORES Y MATRICES.

PRACTICA 6. VECTORES Y MATRICES. PRACTICA 6. VECTORES Y MATRICES. 1. Introducción. Los vectores y matrices son uno de los medios principales para el almacenamiento de los datos en un programa. En esta práctica veremos todos los conceptos

Más detalles

Introducción a la Programación Ingenieria en Informática Junio 2008

Introducció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 detalles

Tutorial Básico de vbscript

Tutorial Básico de vbscript Tutorial Básico de vbscript Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así

Más detalles

Trabajo Práctico Nº 8 Tipo Registros. Búsqueda y Ordenación en Arreglos.

Trabajo Práctico Nº 8 Tipo Registros. Búsqueda y Ordenación en Arreglos. Trabajo Práctico Nº 8 Tipo Registros. Búsqueda y Ordenación en Arreglos. Objetivo: Interiorizarnos en la creación de tipo definidos por el desarrollador. Los registros nos permiten tener la posibilidad

Más detalles

Cómo nombrar variables ( 2&

Có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 detalles

Algoritmos. Autor: José Ángel Acosta Rodríguez

Algoritmos. Autor: José Ángel Acosta Rodríguez Autor: 2006 ÍNDICE Página Índice 1 Problema 1. Movimiento de figuras geométricas.2 Problema 2. Conversión decimal a binario....3 Problema 3. Secuencias binarias..4 Problema 4. Conversión a binario a octal...

Más detalles

DIAGRAMAS DE FLUJO: DFD

DIAGRAMAS DE FLUJO: DFD DIAGRAMAS DE FLUJO: DFD DFD es un programa de libre disposición para ayuda al diseño e implementación de algoritmos expresados en diagramas de flujo (DF). Además incorpora opciones para el depurado de

Más detalles

Resolución de Problemas

Resolución de Problemas Resolución de Problemas con algoritmos Colaboratorio de Computación Avanzada (CNCA) 2015 1 / 27 Contenidos 1 Introducción 2 Elementos de algoritmos Elementos Variables Estructuras de Control Condicionales

Más detalles

Arrays y Cadenas en C

Arrays y Cadenas en C Arrays y Cadenas en C Los arrays son variables estructuradas, donde cada elemento se almacena de forma consecutiva en memoria. Las cadenas de caracteres son declaradas en C como arrays de caracteres y

Más detalles

Vectores. 27/05/05 Programación Digital I 1

Vectores. 27/05/05 Programación Digital I 1 Vectores Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación

Más detalles

Prerrequisitos El alumno debe conocer y dominar los aspectos básicos de programación.

Prerrequisitos El alumno debe conocer y dominar los aspectos básicos de programación. Objetivo El objetivo de la práctica es que el alumno aprenda a desarrollar de programas orientados a objetos en Visual Basic.NET. Aprender el entorno de programación Visual Basic.NET Obligatoriedad La

Más detalles

Introducción al tipo de dato ARRAY

Introducción al tipo de dato ARRAY CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción

Más detalles

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS 4.1 Antecedentes históricos El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code)

Más detalles

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para.

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para. ESTRUCTURAS DE REPETICIÓN OBJETIVOS Aprender a construir grandes y complejos problemas a través de la ejecución repetida de una secuencia de proposiciones llamados ciclos o estructuras repetitivas. Distinguir

Más detalles

Ejemplo de la implementación del llenado de un arreglo de forma aleatoria

Ejemplo de la implementación del llenado de un arreglo de forma aleatoria OBJETIVO 6.3. MANEJO DE ARREGLOS LLENADO DE UN VECTOR Un arreglo se puede llenar de dos formas una de manera aleatoria en donde el compilador llena el arreglo y otra forma es darle la oportunidad al usuario

Más detalles

Programación: QBASIC

Programació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 detalles

Curso 0 de Informática

Curso 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 detalles

Diseño de algoritmos

Diseño de algoritmos Diseño de algoritmos Jose Jesus García Rueda. Adaptado de El algoritmo, una iniciación a la programación (http://www.desarrolloweb.com/manuales/67/ http://www.desarrolloweb.com/manuales/67/) ) y de Diseño

Más detalles

Unidad, Librería, Unidad estándar, Interfaz, Implementación, Inicialización

Unidad, Librería, Unidad estándar, Interfaz, Implementación, Inicialización 9. UNIDADES Conceptos: Resumen: Unidad, Librería, Unidad estándar, Interfaz, Implementación, Inicialización Una de las características más interesantes de las últimas versiones de TurboPascal es la posibilidad

Más detalles

UNIDAD 2 Configuración y operación de un sistema de cómputo Representación de datos Conceptos El concepto de bit (abreviatura de binary digit) es fundamental para el almacenamiento de datos Puede representarse

Más detalles

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Instituto 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 detalles

ALGORITMOS Y ESTRUCTURAS DE DATOS

ALGORITMOS Y ESTRUCTURAS DE DATOS ALGORITMOS Y ESTRUCTURAS DE DATOS APUNTE DE TEORIA AUTORA: Ing. ESTELA M. SORRIBAS ALGORITMOS Y ESTRUCTURAS DE DATOS INTRODUCCIÓN: El desarrollo de la tecnología de la información y de las comunicaciones,

Más detalles

Operaciones con vectores

Operaciones con vectores Fundamentos de Informática 2012-2013 Laboratorio 12: Vectores (2) Objetivos: Practicar con algoritmos típicos con vectores (arrays de una dimensión) Operaciones con vectores Interfaz Figura 12.1. Interfaz

Más detalles

www.fisicaeingenieria.es

www.fisicaeingenieria.es 21.- ESCRIBIR UN PROGRAMA QUE RECORRA UN FICHERO Y QUE DADO UN DÍA MES Y AÑO IMPRIMA EL LUGAR Y EL VALOR ASOCIADO A DICHA FECHA. program examen2; uses crt, math; type registro=record lugar:string; dia:integer;

Más detalles

Unidad 1: El Cuadro de control de Excel

Unidad 1: El Cuadro de control de Excel Unidad 1: El Cuadro de control de Excel 1,0 Introducción Excel nos ayuda a comprender los datos mejor al disponerlos en celdas (que forman filas y columnas) y usando fórmulas para realizar los cálculos

Más detalles

Notación algorítmica (seudocódigo en castellano) (fecha: 2013-10-30)

Notación algorítmica (seudocódigo en castellano) (fecha: 2013-10-30) Notación algorítmica (seudocódigo en castellano) (fecha: 2013-10-30) 1. Tipos de datos predeidos booleano carácter natural {incluímos el 0 en los naturales, comentarios entre llaves} entero real cadena

Más detalles

Introducción a la calidad de código

Introducció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 detalles

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.

Más detalles

Formato condicional... 3. Herramientas para el manejo de datos... 4. Tablas (Listas)... 4. Subtotales... 6. Filtros Avanzados... 7

Formato condicional... 3. Herramientas para el manejo de datos... 4. Tablas (Listas)... 4. Subtotales... 6. Filtros Avanzados... 7 Contenido Formato condicional... 3 Herramientas para el manejo de datos... 4 Tablas (Listas)... 4 Subtotales... 6 Filtros Avanzados... 7 Validación de datos... 9 Consolidar datos... 12 Análisis Y si...

Más detalles

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial FUNDAMENTOS DE INFORMÁTICA º PRÁCTICA 4: Funciones y vectores CURSO 5/6 Área de Ingeniería de Sistemas y Automática ISA-UMH R-2-FI4v. FUNDAMENTOS DE INFORMÁTICA PRÁCTICA 4: Funciones y vectores curso 25-26

Más detalles

1. Manejo de memoria estática 2. Manejo de memoria dinámica

1. Manejo de memoria estática 2. Manejo de memoria dinámica 1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo

Más detalles

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Tema 2 Conceptos básicos de programación. Fundamentos de Informática Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis

Más detalles

Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia

Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 3: El TAD Lista lineal Prof. Montserrat Serrano Montero ÍNDICE El TAD lista lineal Implementación con estructuras

Más detalles

www.pildorasinformaticas.com Página 1

www.pildorasinformaticas.com Página 1 Capítulo 1. CREACIÓN DE BBDD Y VALIDACIÓN DE DATOS... 4 1.1. Crear una BBDD... 4 1.2. Formulario de entrada de datos... 5 1.3. Importación de datos... 7 1.4. Ordenación de registros... 10 1.5. Autofiltros...

Más detalles

6. Estructuras básicas de control 1. Pseudocódigo

6. Estructuras básicas de control 1. Pseudocódigo 6. Estructuras básicas de control 1 Acciones Estructuras de control Secuencia Selección Pseudocódigo simple (si... entonces... ) doble (si... entonces... si no... ) múltiple (según el caso... ) Iteración

Más detalles

PESTAÑA DATOS - TABLAS EN EXCEL

PESTAÑA DATOS - TABLAS EN EXCEL PESTAÑA DATOS - TABLAS EN EXCEL Una tabla en Excel es un conjunto de datos organizados en filas o registros, en la que la primera fila contiene las cabeceras de las columnas (los nombres de los campos),

Más detalles

Este es un arreglo de números enteros, o sea que guarda una serie de variables de tipo INTEGER, todas agrupadas en una sola estructura.

Este es un arreglo de números enteros, o sea que guarda una serie de variables de tipo INTEGER, todas agrupadas en una sola estructura. Arreglos en Pascal 1.- Introducción a los Arreglos. Algunos de los tipos de datos que vimos eran los tipos INTEGER, CHAR, BOOLEAN, etc.. Un arreglo, mas que un tipo de dato es una estructura que nos permite

Más detalles

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8 TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 1.1 VECTORES O ARRAYS UNIDIMENSIONALES 2 1.2 ARRAYS MULTIDIMENSIONALES 3 1.3 INICIALIZACIÓN DE ARRAYS 4 1.3.1 INICIALIZACIÓN DE ARRAYS SIN

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

Estructura de Datos. Unidad I Tipos de Datos

Estructura de Datos. Unidad I Tipos de Datos Estructura de Datos Unidad I Tipos de Datos Conceptos Básicos Algoritmo: es una secuencia finita de pasos o instrucciones ordenadas crono-lógicamente que describen un método para resolver un problema específico.

Más detalles

Práctica 2: Simón dice

Práctica 2: Simón dice Práctica 2: Simón dice Fecha de entrega: 31 de enero de 2016 0.- Descripción del juego (Wikipedia.org) Simon dice es un juego electrónico, creado por Ralph Baer, que consiste en reproducir una secuencia

Más detalles

Instrumentación Virtual con LabVIEW

Instrumentación Virtual con LabVIEW Instrumentación Virtual con LabVIEW ESTRUCTURAS ESTRUCTURAS WHILE FOR.. CASE SEQUENCE Opciones de selección de CASE Controles Visibles Variables Locales y Globales Personalizar controles 1.- ENTORNO DE

Más detalles

Seminario de Actualización - Excel Avanzado y Macros. Visual Basic. Conceptos Básicos de Visual Basic para Aplicaciones

Seminario de Actualización - Excel Avanzado y Macros. Visual Basic. Conceptos Básicos de Visual Basic para Aplicaciones Conceptos Básicos de para Aplicaciones 1 Qué es la programación? Es la acción de escribir programas de computación con el fin de resolver un determinado problema. Datos Constantes π = 3.1416 (real) Variables

Más detalles

Estructura general de un programa

Estructura general de un programa Estructura general de un programa INTRODUCCION Un programa puede considerarse como una secuencia de acciones (instrucciones) que manipulan un conjunto de objetos (datos). Contendrá por tanto dos bloques

Más detalles

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Qué es PHP? PHP (Hypertext Preprocessor). Es un lenguaje de programación: De código

Más detalles

Algorítmica y Lenguajes de Programación. Ordenación (i)

Algorí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 detalles

10. GENERADOR DE INFORMES.

10. GENERADOR DE INFORMES. 10. GENERADOR DE INFORMES. El generador de informes es un módulo de la aplicación que nos permite elaborar listados de artículos y de clientes pero de forma personalizada, pues se definen los criterios

Más detalles

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. 1.) (HOLUB). Escribir un traductor que reconozca definiciones de C siguiendo el estilo antiguo, tal como: prueba(uno, dos, tres, cuatro,

Más detalles

GUÍA DE TRABAJO N 2 ARREGLOS EN C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8. Tema: ARREGLOS (ARRAYS) LENGUAJE C#

GUÍA DE TRABAJO N 2 ARREGLOS EN C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8. Tema: ARREGLOS (ARRAYS) LENGUAJE C# Página 1 de 8 Tema: ARREGLOS (ARRAYS) LENGUAJE C# Objetivo: Conocer el concepto, clasificación e implementación de los arreglos en el lenguaje de programación C# en un proyecto tipo consola. INTRODUCCIÓN

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 índice Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 Capítulo 1: Introducción a c/e++ Introducción a C/C++ 13 Introducción 14 Primeros Pasos en C/C++ 15 Mi Primer Programa 15 Bibliotecas 17 Archivos

Más detalles

Tipos de datos. Lección 1. Programación. Curso 2006-2007. J. A. Bañares, Pedro J. Álvarez, S. Velilla

Tipos de datos. Lección 1. Programación. Curso 2006-2007. J. A. Bañares, Pedro J. Álvarez, S. Velilla Lección 1. Programación. Curso 2006-2007 Tipos de datos J. A. Bañares, Pedro J. Álvarez, S. Velilla http://diis.unizar.es/ Departamento de Informática e Ingeniería de Sistemas 2 Tipos de datos, constantes

Más detalles

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin. PHPMYADMIN Y MYSQL Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin. PhpMyAdmin es una herramienta para la administración del servidor de base de datos MySQL que dispone

Más detalles

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03. INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados

Más detalles

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

TEMA 3: EL LENGUAJE C: PRESENTACIÓN TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de

Más detalles

2_trabajar con calc I

2_trabajar con calc I Al igual que en las Tablas vistas en el procesador de texto, la interseccción de una columna y una fila se denomina Celda. Dentro de una celda, podemos encontrar diferentes tipos de datos: textos, números,

Más detalles

Pseudolenguaje. (1 byte) 0.. 255 (valores códigos ASCII) [CHAR_MIN.. CHAR_MAX] (Definida en ) No hay. Dominio 0.. 2 n 1 [MIN(C)..

Pseudolenguaje. (1 byte) 0.. 255 (valores códigos ASCII) [CHAR_MIN.. CHAR_MAX] (Definida en <limits.h>) No hay. Dominio 0.. 2 n 1 [MIN(C).. Tipo C Dominio 0.. 2 n -1 [MIN(C).. MAX(C)] Operadores Aritméticos Otras funciones No hay CHR(...) CAP(...) ORD(...) E/S No Formateada: Leer (...) Escribir (...) char (1 byte) 0.. 255 (valores códigos

Más detalles

Estructuras de Almacenamiento RAID RAID. Nivel FísicoF. Índice. Requisitos Almacenamiento. Nivel Lógico Modelo Entidad-Relación y Modelo Relacional

Estructuras de Almacenamiento RAID RAID. Nivel FísicoF. Índice. Requisitos Almacenamiento. Nivel Lógico Modelo Entidad-Relación y Modelo Relacional Estructuras de Almacenamiento Nivel FísicoF Nivel Lógico Modelo Entidad-Relación y Modelo Relacional El nivel en el que se deben mover los usuario es el nivel lógico El objetivo de un sistema de bases

Más detalles

Contenidos. Archivos en C++ Archivos en C++ Introducción

Contenidos. Archivos en C++ Archivos en C++ Introducción Contenidos 1. Introducción. 2. Manipulación de ficheros. 3. Organización de archivos. 4. Tipo de almacenamiento. 5. Biblioteca de flujos. 6. Operaciones asociadas a archivos: Abrir fichero, Cerrar fichero,

Más detalles

Universidad Metropolitana Castro Carazo Prof. Ing. Patricia Vargas. Material de apoyo Semana #2 PROGRAMACIÓN II

Universidad Metropolitana Castro Carazo Prof. Ing. Patricia Vargas. Material de apoyo Semana #2 PROGRAMACIÓN II Prof. Ing. Patricia Vargas 1 Universidad Metropolitana Castro Carazo Prof. Ing. Patricia Vargas Material de apoyo Semana #2 PROGRAMACIÓN II Agenda 1. Definición de variables locales y públicas. 2. Declaraciones

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

Informática I. While & do While

Informática I. While & do While Asignatura: Informática I Trabajo práctico Nº5 While & do While Estructura repetitiva MIENTRAS o while En C la sentencia while (condición o expresión) instrucciones; es seguramente la más utilizada. La

Más detalles

Guía rápida de CX-Programmer

Guía rápida de CX-Programmer Guía rápida de CX-Programmer Esta guía pretende dar al lector los conocimientos más básicos para la programación de un controlador lógico secuencia en el autómata CQM1 de Omron, usando el software CX-Programmer

Más detalles

ESTRUCTURA DE DATOS (ARRAYS)

ESTRUCTURA DE DATOS (ARRAYS) 203 CAPITULO 6 ESTRUCTURA DE DATOS (ARRAYS) CONTENIDO 61 Introducción a la estructura de datos 62 Arrays unidimensional: los vectores 63 Operaciones con vectores 64 Arrays varias dimensiones 65 Arrays

Más detalles

Examen escrito de Programación 1

Examen 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 detalles

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas.

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas. Contenido Sistema de archivos Operaciones sobre archivos Métodos de acceso a archivos Directorio Sistema de archivos por capas Espacio libre Sistema de archivos Proporciona el mecanismo para el almacenamiento

Más detalles

Guía N 1: Fundamentos básicos(i)

Guía N 1: Fundamentos básicos(i) 1 Guía N 1: Fundamentos básicos(i) Objetivos Generales: Ver una breve descripción de las capacidades más comunes de Excel Objetivos específicos: Descripción de los elementos de un libro: Hojas, iconos,

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011 Módulo 2. Fundamentos de Programación Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2010/2011 1 CONTENIDO Tema 1. Conceptos generales de algorítmica Tema 2. Sentencias

Más detalles

3.2 Operaciones aritmético-lógicas en Pascal

3.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 detalles

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24 Contenido Prólogo... vii Capítulo 1. Algoritmos y estructuras de datos... 1 Introducción... 2 1.1. Tipos de datos... 2 1.1.1. Tipos primitivos de datos... 3 1.1.2. Tipos de datos compuestos y agregados...

Más detalles

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN 2.1.- EJEMPLO DE UN PROGRAMA FORTRAN Con el presente apartado comenzaremos a conocer cómo se escribe un programa en lenguaje FORTRAN bajo el entorno de programación FORTRAN. En primer lugar conozcamos

Más detalles

Comencemos a programar con. Entrega 10. Estructuras de Control II

Comencemos a programar con. Entrega 10. Estructuras de Control II Comencemos a programar con VBA - Access Entrega 10 Estructuras de Control II Eduardo Olaz 10-2 Estructuras de Control, segunda parte Las Instrucciones While - - - Wend La estructura de bucle For Contador

Más detalles

Operación de Microsoft Word

Operación de Microsoft Word Generalidades y conceptos Combinar correspondencia Word, a través de la herramienta combinar correspondencia, permite combinar un documento el que puede ser una carta con el texto que se pretende hacer

Más detalles