La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arreglo Tipos de Arreglo

Presentaciones similares


Presentación del tema: "Arreglo Tipos de Arreglo"— Transcripción de la presentación:

1 Arreglo Tipos de Arreglo
Es una estructura de datos formada por una cantidad fija de datos de un mismo tipo, cada uno de los cuales tiene asociado uno o más índices que determinan de forma unívoca la posición del dato en el arreglo. Tipos de Arreglo Unidimensionales (Vectores) Multidimensionales (Matrices) Algoritmos y Estructuras de Datos I ( ) (Prieto y Otros;2002:39)

2 Arreglo Unidimensional (Declaración)
Nomb_Variab: Arreglo[Tamaño] de Tipo dato Ejemplo: Nota: Arreglo[3] de Real Declaración Constantes Tamaño = 3 Tipos TipNotas = Arreglo[Tamaño] de Real Variables Nota: TipNotas Nota Algoritmos y Estructuras de Datos I ( )

3 Arreglo Unidimensional (Representación)
Relación Memoria-Variables Edad: Entero Nota1 Sexo: Carácter Arreglo Unidimensional (Acceso) Nombre_Variable[Posición] Algoritmos y Estructuras de Datos I ( )

4 Operaciones Básicas Sobre Arreglos
Inicialización Lectura Escritura Búsqueda Algoritmos y Estructuras de Datos I ( ) (Joyanes, 1998:341)

5 Arreglo Unidimensional (Inicialización)
Ejemplo: Limpieza de un arreglo que guardará 6 nombres Para indice = 0 hasta tama-1 inc 1 ArreNombres[índice] ” ” Fin Para ArreNombres Algoritmos y Estructuras de Datos I ( )

6 Arreglo Unidimensional (Lectura)
Ejemplo: Llenado de un arreglo de 6 nombres de persona Para indice = 0 hasta tama-1 inc 1 Escribir “Introduzca el nombre de la persona #:”, índice Leer ArreNombres[índice] Fin Para ArreNombres Algoritmos y Estructuras de Datos I ( )

7 Arreglo Unidimensional (Escritura)
Ejemplo: Mostrar el contenido del arreglo de nombres Para indice = 0 hasta tama-1 inc 1 Escribir “Nombre de la persona # ”, indice, “:”, ArreNombres[indice] Fin Para Nombre de la persona # 1: Juan ArreNombres Nombre de la persona # 2: Pedro Nombre de la persona # 3: María Juan Pedro María Jesús José Clara Nombre de la persona # 4: Jesús Nombre de la persona # 5: José Nombre de la persona # 6: Clara Algoritmos y Estructuras de Datos I ( )

8 Arreglo Unidimensional (Búsqueda)
Ejemplo: Buscar un nombre en el arreglo de nombres Escribir “Introduzca el nombre a consultar:” Leer Buscado Encontro  Falso, indice  0 Mientras (indice < = tama-1 Y Encontro = Falso) Hacer Si ArreNombres[indice] = Buscado Entonces Encontro  Verdadero Escribir “El nombre buscado ocupa la posición # “, indice Fin Si indice  indice + 1 Fin Mientras Si Encontro = Falso Entonces Escribir “El nombre buscado no existe en el arreglo” Algoritmos y Estructuras de Datos I ( )

9 Arreglo Unidimensional (Codificación en Dev C++)
Declaración Limpieza Lectura Escritura Búsqueda * Algoritmos y Estructuras de Datos I ( )

10 Arreglo Unidimensional
Ejercicios propuestos: 1.- Se requieren almacenar las respuestas a 3 preguntas que dieron 100 personas encuestadas. ¿Qué estructuras utilizaría, dibújelas y declárelas? 2.- Se desea almacenar una serie de 50 números enteros, a fin de procesarlos para hallar la media y determinar cuántos pares e impares. Haga el pseudocódigo que contemple la declaración, limpieza, llenado y cálculos requeridos, utilice módulos. Algoritmos y Estructuras de Datos I ( )

11 Arreglo Unidimensional
RESPONDIENDO EJERCICIO PROPUESTO #1 1.- Se requieren almacenar las respuestas a 3 preguntas que dieron 100 personas encuestadas. ¿Qué estructuras utilizaría, dibújelas y declárelas? … 99 Pregunta1 Declaración Constantes tama = 100 Tipos Tipresp=Arreglo[tama] de Cadena Variables pregunta1, pregunta2,pregunta3:Tipresp … 99 Pregunta2 … 99 Pregunta3 Algoritmos y Estructuras de Datos I ( )

12 Arreglo Unidimensional
RESPONDIENDO EJERCICIO PROPUESTO #2 2.- Se desea almacenar una serie de 50 números enteros, a fin de procesarlos para hallar la media y determinar cuántos pares e impares. Haga el pseudocódigo que contemple la declaración, limpieza, llenado y cálculos requeridos, utilice módulos. Algoritmo Procesa Series Declaración Constantes tama= 50 Tipos tiposerie=arreglo [tama] de entero Variables serie:tiposerie i: entero Inicio escribir “Este algoritmo procesa una serie de “,tama, “ números enteros” llamar limpiar(serie) llamar llenar(serie) llamar calculos(serie) Fin … 49 Serie Algoritmos y Estructuras de Datos I ( )

13 Arreglo Unidimensional
Procedimiento limpiar ( serie: tiposerie) Inicio para i = 0 hasta tama-1 inc 1 serie[i] 0 fin para Fin Procedimiento Procedimiento llenar ( serie: tiposerie) Inicio escribir “a continuación se solicitará cada número de la serie” escribir “se trata de “, tama, “ elementos” para i = 0 hasta tama-1 inc 1 escribir “Ingrese elemento # “, i+1 leer serie[i] fin para Fin Procedimiento Algoritmos y Estructuras de Datos I ( )

14 Arreglo Unidimensional
media  suma / tama escribir” La media calculada es “, media escribir “Total de Pares: “, contpar escribir “ total de impares “, contimpar Fin Procedimiento calculos( serie: tiposerie) Declaración Variables suma, contpar, contimpar: entero media: real Inicio suma0, contpar0, contimpar0 para i= 0 hasta tama-1 inc 1 suma  suma + serie[i] si ( (-1)^serie[i] >0) entonces contpar contpar +1 sino contimpar contimpar +1 fin si fin para Algoritmos y Estructuras de Datos I ( )

15 Arreglo Unidimensional
Ejemplo con varios vectores paralelos. Calculando promedio de notas y buscando la nota menor. arrenombres arrecedula arrenotas Pseudocódigo Programa Algoritmos y Estructuras de Datos I ( )

16 Arreglo Unidimensional
Ejemplo con varios vectores paralelos. Verificar si 2 vectores son iguales, similares o diferentes. Algoritmos y Estructuras de Datos I ( )

17 Son similares, dado que poseen los mismos elementos, sin importar su ubicación
Son iguales, dado que poseen los mismos elementos, en la misma ubicación Son diferentes, dado que no poseen exactamente los mismos elementos. Algoritmos y Estructuras de Datos I ( )

18 Arreglo Unidimensional
Ejemplo con varios vectores paralelos. Verificar si 2 vectores son iguales, similares o diferentes. Pseudocódigo Programa Algoritmos y Estructuras de Datos I ( )

19 Programa Arreglo Unidimensional
Ordenamiento de arreglos por el método de la burbuja Procedimiento burbuja (  vector: tipvector) Declaración Variables aux, i, j: entero Inicio para i = 0 hasta tama-2 inc 1 para j = 0 hasta tama – 1- i inc 1 si ( vector[ j ] > vector [ j+1] ) entonces aux  vector[ j +1] vector[ j +1]  vector[ j ] vector[ j ]  aux fin si fin para Fin procedimiento Programa Algoritmos y Estructuras de Datos I ( )

20 Demostración del Método de Ordenamiento Burbuja
Tama =5 Lista a ordenar I = I = 1 23 19 19 19 19 23 31 15 45 19 19 23 23 23 23 45 45 45 31 15 31 31 31 45 31 15 15 15 15 45 J= J= J= J=3 J= J= J=2 Algoritmos y Estructuras de Datos I ( )

21 Demostración del Método de Ordenamiento Burbuja
Lista Ordenada I = I = 3 19 19 19 19 15 19 23 31 45 23 23 23 15 15 15 15 23 31 31 31 31 45 45 45 45 J= J=1 J=0 Algoritmos y Estructuras de Datos I ( )

22 Demostración del Método de Ordenamiento Selección
Tama =5 Lista a ordenar i=4 i=3 i=2 23 23 23 23 23 15 19 19 19 3 19 19 19 2 45 15 15 15 15 23 31 31 J=4 31 31 31 31 15 45 45 45 45 45 Posición del mayor elemento Intercambio Algoritmos y Estructuras de Datos I ( )

23 Demostración del Método de Ordenamiento Selección
Lista Ordenada i=1 15 15 15 1 19 19 19 23 23 23 31 31 31 45 45 45 Posición del mayor elemento Intercambio Algoritmos y Estructuras de Datos I ( )

24 Arreglo Unidimensional
Asignación: Investigue los algoritmos de ordenamiento por selección y inserción. Haga una corrida en frío, a fin de comprenderlos. Algoritmos y Estructuras de Datos I ( )

25 Arreglo Bidimensional Matriz de 7 filas y 5 columnas
Es un arreglo con dos dimensiones (filas y columnas). Matriz de 7 filas y 5 columnas 1 2 3 4 5 6 23 14 10 51 13 18 7 Posición Elemento Matriz[1,0] Matriz[1,2] 14 Matriz[2,1] Matriz[2,4] Algoritmos y Estructuras de Datos I ( ) (Joyanes, 1998:352)

26 Arreglo Bidimensional (Acceso)
NombreVariable[Númerofila,Númerocolumna] Columnas 1 2 3 Filas Algoritmos y Estructuras de Datos I ( )

27 Arreglo Bidimensional
Se puede asociar cada dimensión con un elemento particular a representar. Ejemplo: Se requieren almacenar los puntajes obtenidos por cada uno de los cuatro participantes de un concurso, en dos evaluaciones realizadas. Evaluaciones 1 2 3 Participantes Algoritmos y Estructuras de Datos I ( ) (Joyanes, 1998:352)

28 Arreglo Bidimensional (Declaración)
Nomb_Variab: Arreglo[Cantidad de filas, Cantidad de columnas] de Tipo dato Ejemplo: Tipo Tipunto = Arreglo[4, 2] de Real Variable Matpuntos: Tipunto Algoritmos y Estructuras de Datos I ( )

29 Arreglo Bidimensional
PLANTEAMIENTO: Dada una matriz cuadrada 4x4, haga el algoritmo que verifique si ésta es simétrica. Una matriz es simétrica si tiene por ejemplo la siguiente estructura: a b c d b e f g c f h i d g i j 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 RELACIÓN CONTENIDO vs. POSICIONES DE LA MATRIZ Algoritmos y Estructuras de Datos I ( )

30 Arreglo Bidimensional
Algoritmo estudia simetría Declaración Tipos tipmatriz = Arreglo[4,4,] de caracter Variables M: tipmatriz i, j: entero Inicio llamar limpiar(M) llamar llenar(M) si (Simétrica(M) = verdadero) entonces escribir “La matriz es Simétrica” sino escribir “La matriz no es simétrica” fin si Fin Procedimiento limpiar (M: tipmat) Inicio para i =0 hasta 3 hacer inc 1 para j =0 hasta 3 hacer inc 1 M[i,j] ´ ´ fin para Fin procedimiento Procedimiento llenar (M: tipmat) Inicio para i =0 hasta 3 hacer inc 1 para j =0 hasta 3 hacer inc 1 escribir “ingrese valor para la posición “ , i, j leer M[i,j] fin para Fin procedimiento Algoritmos y Estructuras de Datos I ( )

31 Arreglo Bidimensional
a b c d b e f g c f h i d g i j 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,2 3,0 3,1 3,2 3,3 Función Simétrica ( M: tipmatriz): Lógico Declaración Variables resultado: lógico i, j: entero Inicio resultado verdadero para i =0 hasta 3 hacer inc 1 para j =0 hasta 3 hacer inc 1 si M[i,j] <> M[j,i] entonces resultado falso fin si fin para Simétrica  resultado Fin función Algoritmos y Estructuras de Datos I ( )

32 Representación de Datos en Arreglos
PLANTEAMIENTO: Diseñe una estructura de datos para almacenar el nombre de cada estudiante de Introducción a la Informática (35 alumnos), y la nota obtenida en cada uno de los 3 parciales presentados. Igualmente señale cómo se realizan los procesos de: Carga de datos en la estructura. Cálculo del promedio de notas por parcial. Tarea Algoritmos y Estructuras de Datos I ( )

33 Representación de Datos en Arreglos
Diseño de las estructuras de datos requeridas. Parciales MatrizNotas VectorNombres 1 2 : 34 1 2 : 34 Estudiantes Algoritmos y Estructuras de Datos I ( )

34 Arreglo Bidimensional (Resolviendo el problema)
Algoritmo DatosEstudiantes Declaración Constantes numfil=35, numcol =3 Tipos Tipvec= Arreglo[numfil] de cadena Tipmat = Arreglo[numfil,numcol] de real Variables VectorNombres:Tipvec MatrizNotas: Tipmat Filas, Columnas: Entero Inicio Escribir “Algoritmo para el tratamiento de nombres y notas de alumnos” Llamar Limpiar(VectorNombres, MatrizNotas) Llamar Llenar(VectorNombres, MatrizNotas) Llamar Promparc(MarizNotas) Fin Algoritmos y Estructuras de Datos I ( )

35 Arreglo Bidimensional (Limpiar)
Procedimiento Limpiar( VectorNombres:Tipvec, MatrizNotas: Tipmat) Inicio Para Filas = 0 Hasta numfil-1 inc 1 VectorNombres[Filas] ”” Para Columnas = 0 Hasta numcol-1 inc 1 MatrizNotas[Filas, Columnas] 0 Fin Para Fin Procedimiento Algoritmos y Estructuras de Datos I ( )

36 Representación de Datos en Arreglos
Proceso para el llenado de las estructuras Parciales MatrizNotas VectorNombres Inés 9 7 4 1 2 : 34 1 2 : 34 Juan 9 3.3 1 Marcos 9.2 6 3 Pati 9 7.5 7 Estudiantes Ivón 10 5 2 Algoritmos y Estructuras de Datos I ( )

37 Arreglo Bidimensional (Recorrer por Filas)
Inicio 1 2 3 34 Fin Algoritmos y Estructuras de Datos I ( )

38 Arreglo Bidimensional (Llenar)
Procedimiento Llenar( VectorNombres:Tipvec, MatrizNotas: Tipmat) Inicio Escribir “Ingrese los siguientes datos:” Para Filas = 0 Hasta numfil-1 inc 1 Escribir “Nombre del estudiante # ”, Filas+1 Leer VectorNombres[Filas] Para Columnas = 0 Hasta numcol-1 inc 1 Escribir “Nota del Parcial # ”, Columnas+1 Leer MatrizNotas[Filas, Columnas] Fin Para Fin Procedimiento Algoritmos y Estructuras de Datos I ( )

39 Representación de Datos en Arreglos
Proceso para calcular promedio de notas por parcial 9 7 4 1 2 : 34 MatrizNotas 9 3.3 1 9.2 6 3 9 7.5 7 10 5 2 = 46.2 / 35 = / 35 = 0.82 = 1.32 = 17 / 35 = 0.48 Algoritmos y Estructuras de Datos I ( )

40 Arreglo Bidimensional (Recorrer por Columnas)
Inicio 1 2 3 4 Fin Algoritmos y Estructuras de Datos I ( )

41 Arreglo Bidimensional (Calcular por Columna)
Procedimiento PromParc( MatrizNotas: Tipmat) Declaración Variables SumaParcial,Prom: Real Inicio Para Columnas = 0 Hasta numcol -1 inc 1 SumaParcial  0 Para Filas = 0 Hasta numfil-1 inc 1 SumaParcial  SumaParcial + MatrizNotas[Filas, Columnas] Fin Para Prom  SumaParcial / numfil Escribir “Promedio de Notas en el Parcial # “, Columnas, “=“, Prom Fin Procedimiento Algoritmos y Estructuras de Datos I ( )

42 CODIFICACIÓN EN DEV C++
Algoritmos y Estructuras de Datos I ( )

43 Arreglo Unidimensional
Se desean almacenar por cada sucursal (Juan Griego, Porlamar y Tacarigua) de la empresa el TRio C.A., los montos de venta en cada uno de sus 3 departamentos, durante los días 24, 25 y 26 de mayo. Una vez almacenados estos datos, se debe presentar el nombre de la sucursal que obtuvo mayor monto de ventas durante los días mencionados; aparte, se debe indicar el número del día en el que se obtuvo el mayor monto de ventas, involucrando para ello a todas las sucursales. Los resultados de una prueba escrita se encuentran registrados en una matriz 4x10, donde las filas representan los alumnos que presentaron la evaluación, y las columnas, representan los ítems evaluados. Las respuestas constan de un valor numérico comprendido entre 0 y 10. Haga un módulo que reciba como parámetros de entrada, la matriz de resultados y el vector de respuestas oficiales, en el que se tiene por cada pregunta, el valor de la respuesta correcta. Algoritmos y Estructuras de Datos I ( )

44 Arreglos. Registros. Archivos. Contenido
Algoritmos y Estructuras de Datos I ( )

45 Ejemplo: Ficha Estudiantil Cédula: Nombre: Apellido: Edad: Sexo:
Registro Es una colección de elementos posiblemente heterogéneos que son tratados como una unidad. Ejemplo: Ficha Estudiantil Cédula: Nombre: Apellido: Edad: Sexo: Algoritmos y Estructuras de Datos I ( ) (Rose,1993:17)

46 Estructura de un Registro
Registro ”X” Campo1 Campo2 Campo Campo4 CampoN Un registro está constituido por uno o más campos. Un campo equivale a un valor o ítem que se desea representar. Cada campo se identifica con un nombre. Cada campo es de un tipo de dato simple o estructurado. Ejemplo: Ficha Estudiantil Nombre Apellido Edad Sexo Cédula Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:516)

47 Declaración de un Registro
Tipos Nombre_Tipo = Registro Campo1: Tipo de dato Campo2: Tipo de dato Campo3: Tipo de dato CampoN: Tipo de dato Fin Registro Variables NombreVariable: Nombre_Tipo En Pseudocódigo En DevC Declaración Tipos Nombre_Tipo = Registro Campo1: Tipo de dato Campo2: Tipo de dato Campo3: Tipo de dato CampoN: Tipo de dato Fin Registro Variables NombreVariable: Nombre_Tipo typedef struct Nombre_Tipo { tipo de dato Campo1; tipo de dato Campo2; tipo de dato Campon; }; Nombre_Tipo NombreVariable; Algoritmos y Estructuras de Datos I ( )

48 Ejemplo de Declaración de un Registro
Ficha Estudiantil Nombre Apellido Edad Sexo Cédula Tipos Regiestud = Registro Nombre, Apellido: Cadena Edad: Entero Sexo: Carácter Cedula: Cadena Fin Registro Variables Fichaestu: Regiestud typedef struct Regiestud{ string Nombre, Apellido; int Edad; char Sexo; string Cedula; }; Regiestud Fichaestu; Algoritmos y Estructuras de Datos I ( )

49 NombreVariable.NombreCampo
Acceso a un Registro Se puede acceder a cada campo de un registro directamente utilizando un selector de campo de la forma: NombreVariable.NombreCampo Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:518)

50 Registro Jerárquico Un registro con uno o más campos de tipo registro se llama registro jerárquico o anidado. Empleado Nombre Dirección Completa F_Nacim Día Mes Año Dirección Municipio Algoritmos y Estructuras de Datos I ( )

51 Registro Jerárquico (Declaración)
Empleado = Registro de Nombre: Cadena DirCompleta: Tipdircomp F_Nacim: Tipfecha Fin Registro typedef struct Tipfecha { int Dia, Mes, Anio; }; typedef struct Tipdircomp{ string Dirección,Municipio; }; Tipdircomp = Registro de Dirección: Cadena Municipio: Cadena Fin Registro Declaración Reg: Empleado typedef struct Empleado{ string Nombre; Tipdircomp DirCompleta; Tipfecha F_Nacim; }; Acceso Reg.Nombre Reg.DirCompleta.Dirección Reg.DirCompleta.Municipio Reg.F_Nacim.Día Tipfecha = Registro de Día, Mes, Año: Entero Fin Registro Empleado Reg; Algoritmos y Estructuras de Datos I ( )

52 Uso de Registros en Otras Estructuras
Los registros raramente se usan solos. En general, se utilizan en conjunto con otras estructuras tales como: Arreglos y Archivos. Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:534)

53 Arreglos. Registros. Archivos. Contenido
Algoritmos y Estructuras de Datos I ( )

54 Archivos Un archivo es una colección de información que reside como una unidad en la memoria secundaria del computador. Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:565)

55 Tipos de Archivos Según la Estructura de su Información
Archivos de Texto. Archivos Tipificados o Binarios. Cédula Nombre Dirección Seguro 1 2 3 4 Juan Pérez Altagracia Pedro Azócar Juan Griego NO Luisa Maneiro Porlamar Karla Paz Guatamare Pedro Parra Manzanillo NO Por ejemplo este archivo tiene 5 registros cuyos campos son Cédula, Nombre, Dirección, Seguro Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:567)

56 Operaciones sobre Archivos (Declarar)
Algoritmo OperarArchivos Declaración Tipos Tipreg = Registro de Nombre, Cédula, Dirección, Seguro: Cadena Fin Registro Tiparch= Archivo de Tipreg Variables Miarchi: Tiparch Además de declarar la variable tipo archivo, se deben aplicar operaciones especiales para vincular la variable con el objeto que se almacenará en memoria secundaria (Conectar y Crear). Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:567)

57 Operaciones sobre Archivos (Conectar)
Algoritmo OperarArchivos Declaración Tipos Tipreg = Registro de Nombre, Cédula, Dirección, Seguro: Cadena Fin Registro Tiparch= Archivo de Tipreg Variables Miarchi: Tiparch Inicio Conectar Miarchi con Nombre.dat Es la variable, también se le llama archivo lógico Es el nombre del archivo almacenado, se le llama archivo físico Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:567)

58 Operaciones sobre Archivos (Crear)
Algoritmo OperarArchivos Declaración Tipos Tipreg = Registro de Nombre, Cédula, Dirección, Seguro: Cadena Fin Registro Tiparch= Archivo de Tipreg Variables Miarchi: Tiparch existe: Lógico Inicio Conectar Miarchi con Nombre.dat existe  BuscaArchivo(Miarchi) Si (existe = falso) entonces Crear Miarchi Fin si Función que verifica en memoria secundaria si el archivo físico existe Crea un objeto almacenado en memoria secundaria, tendrá como nombre el indicado en la conexión (.dat) Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:567)

59 Operaciones sobre Archivos (Manipular)
Algoritmo OperarArchivos Declaración Tipos Tipreg = Registro de Nombre, Cédula, Dirección, Seguro: Cadena Fin Registro Tiparch= Archivo de Tipreg Variables Miarchi: Tiparch existe: Lógico Inicio Conectar Miarchi con Nombre.dat existe  BuscaArchivo(Miarchi) Si (existe = falso) entonces Crear Miarchi Fin si Llamar InsertarRegistros(Miarchi) Llamar MostrarRegistros(Miarchi) Llamar BuscarRegistros(Miarchi) Fin Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:567)

60 Operaciones sobre Archivos (Manipular)
Procedimiento Limpiar( reg: Tipreg) Inicio reg.cedula”” reg.nombre”” reg.direccion”” reg.seguro”” Fin Procedimiento Procedimiento InsertarRegistros( Miarchi:Tiparch) Declaración Variables reg: Tipreg ultimapos: entero otroreg:caracter Inicio Abrir Miarchi ultimapos  tamaño(Miarchi) Llamar Encontrar(ultimapos, Miarchi) Repetir Llamar Limpiar(reg) Llamar Llenar(reg) Grabar reg en Miarchi Escribir “Quiere insertar otro registro s/n” Leer otroreg Hasta (otroreg =´n´) Cerrar MIarchi Fin Procedimiento Procedimiento InsertarRegistros( Miarchi:Tiparch) Declaración Variables reg: Tipreg ultimapos: entero otroreg:caracter Inicio Abrir Miarchi ultimapos  tamaño(Miarchi) Llamar Encontrar(ultimapos, Miarchi) Repetir Llamar Limpiar(reg) Llamar Llenar(reg) Grabar reg en Miarchi Escribir “Quiere insertar otro registro s/n” Leer otroreg Hasta (otroreg =´n´) Cerrar Miarchi Fin Procedimiento Algoritmo OperarArchivos Declaración Tipos Tipreg = Registro de Nombre, Cédula, Dirección, Seguro: Cadena Fin Registro Tiparch= Archivo de Tipreg Variables Miarchi: Tiparch existe: Lógico Inicio Conectar Miarchi con Nombre.dat existe  BuscaArchivo(Miarchi) Si (existe = falso) entonces Crear Miarchi Fin si Llamar InsertarRegistros(Miarchi) Llamar MostrarRegistros(Miarchi) Llamar BuscarRegistros(Miarchi) Fin Procedimiento Llenar( reg: Tipreg) Inicio escribir “INGRESE UN NUEVO REGISTRO DE PACIENTE” escribir “Indique número de cédula” leer reg.cedula escribir “Indique el nombre” leer reg.nombre escribir “Indique la dirección” leer reg.direccion escribir “Indique tiene seguro si o no” leer reg.seguro Fin Procedimiento Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:567)

61 Operaciones sobre Archivos (Manipular)
Procedimiento MostrarRegistros( Miarchi:Tiparch) Declaración Variables reg: Tipreg i: entero Inicio Abrir Miarchi i 1 Mientras (fda(Miarchi) = falso) hacer leer reg de Miarchi escribir “Registro de paciente # ” i escribir “Nombre: “, reg.nombre escribir “´Cédula: “, reg.cedula escribir “Dirección: “, reg.dirección escribir “Tiene Seguro “, reg.seguro ii +1 Fin Mientras Cerrar Miarchi Fin Procedimiento Algoritmo OperarArchivos Declaración Tipos Tipreg = Registro de Nombre, Cédula, Dirección, Seguro: Cadena Fin Registro Tiparch= Archivo de Tipreg Variables Miarchi: Tiparch existe: Lógico Inicio Conectar Miarchi con Nombre.dat existe  BuscaArchivo(Miarchi) Si (existe = falso) entonces Crear Miarchi Fin si Llamar InsertarRegistros(Miarchi) Llamar MostrarRegistros(Miarchi) Llamar BuscarRegistros(Miarchi) Fin Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:567)

62 Operaciones sobre Archivos (Manipular)
Procedimiento BuscarRegistros( Miarchi:Tiparch) Declaración Variables reg: Tipreg buscado: cadena fin: lógico Inicio Abrir Miarchi escribir “Ingrese número de cédula del paciente a buscar” leer buscado fin falso Mientras ( (fda(Miarchi) = falso) Y (fin = falso) ) hacer leer reg de Miarchi si ( reg.cedula = buscado ) entonces escribir “Registro de paciente encontrado” escribir “Nombre: “, reg.nombre escribir “Dirección: “, reg.dirección escribir “Tiene Seguro “, reg.seguro fin verdadero fin si Fin Mientras Cerrar Miarchi Fin Procedimiento Algoritmo OperarArchivos Declaración Tipos Tipreg = Registro de Nombre, Cédula, Dirección, Seguro: Cadena Fin Registro Tiparch= Archivo de Tipreg Variables Miarchi: Tiparch existe: Lógico Inicio Conectar Miarchi con Nombre.dat existe  BuscaArchivo(Miarchi) Si (existe = falso) entonces Crear Miarchi Fin si Llamar InsertarRegistros(Miarchi) Llamar MostrarRegistros(Miarchi) Llamar BuscarRegistros(Miarchi) Fin Algoritmos y Estructuras de Datos I ( ) (Joyanes,1998:567)

63 Funciones y Procedimientos Básicos para el Tratamiento de Archivos con Organización Secuencial y Acceso Directo Cédula Nombre Dirección Seguro 1 2 3 4 Juan Pérez Altagracia Pedro Azócar Juan Griego NO Luisa Maneiro Porlamar Karla Paz Guatamare Pedro Parra Manzanillo NO Total_Regis  Tamaño(Miarchi) Llamar Encontrar (2, Miarchi) Llamar Encontrar(Total_Regis - 1, Miarchi) Llamar Encontrar(Total_Regis, Miarchi) Algoritmos y Estructuras de Datos I ( )

64 Archivos Pseudocódigo Dev C archi=fopen("promoto.dat",“w");
CONECTAR archi Con cd.dat archi=fopen(“cd.dat",“modo”); CREAR archi archi=fopen("promoto.dat",“w"); ABRIR archi archi=fopen("promoto.dat",“r"); archi=fopen("promoto.dat",“a+"); Algoritmos y Estructuras de Datos I ( )

65 Encontrar (posi, archi)
Archivos Pseudocódigo Dev C LEER reg de archi fread(&reg,sizeof(reg),1,archi); Grabar reg en archi fwrite(&reg,sizeof(reg),1,archi); Cerrar archi fclose(archi) POSICIÓN(archi) fgetpos(archi,&posi); posi  tamaño(archi) fsetpos(archi,&posi); Encontrar (posi, archi) fseek(archi,0l, SEEK_END); FDA(Archi) feof(archi) Algoritmos y Estructuras de Datos I ( )

66 Archivos Codificación en DevC
Algoritmos y Estructuras de Datos I ( )

67 Problema Elabore un algoritmo en pseudocódigo que realice la creación del archivo (Promotor.Dat) para mantener información de los promotores de ventas de la empresa Cicle C.A.. En éste se almacenará: número de cédula, monto de ventas, sexo y comisión ganada por cada promotor. Para ello, siga los pasos expuestos en el tratamiento de archivos, ofreciendo módulos para ingresar y mostrar registros, así como un módulo que permita obtener en un archivo temporal Género.dat, los registros correspondientes a vendedoras. Algoritmos y Estructuras de Datos I ( )

68 Problema Algoritmo ProcesaPromotor Declaración Tipos
TipArchi = Archivo de RegPromotor RegPromotor = Registro cédula: Entero ventas, comisión: Real sexo: Caracter Fin Registro Variables ArchiPromo: TipArchi Inicio Conectar ArchiPromo con Promotor.dat Si (BuscaArchivo(ArchiPromo) = Falso) Entonces Escribir “El archivo no existe, se procederá a su creación” Crear ArchiPromo Fin Si Llamar Insertar(ArchiPromo) Llamar Mostrar(ArchiPromo) Llamar Vendedoras(ArchiPromo) Fin Algoritmos y Estructuras de Datos I ( )

69 Problema Procedimiento Insertar ( Archi: TipArchi) Declaración
Variables Reg: RegPromotor final: Entero Inicio Abrir Archi final  Tamaño(Archi) Llamar Encontrar (final, Archi) Escribir “Ingrese los Datos para el Nuevo Registro de Promotor: “ Escribir “Cédula de Identidad:” Leer Reg.cédula Escribir “Sexo:” Leer Reg.sexo Escribir “Monto de Ventas:” Leer Reg.ventas Escribir “Monto por Comisiones:” Leer Reg.comisión Grabar Reg en Archi Cerrar Archi Fin Algoritmos y Estructuras de Datos I ( )

70 Problema Procedimiento Mostrar ( Archi: TipArchi) Declaración
Variables Reg: RegPromotor Inicio Abrir Archi Mientras ( FDA(Archi) = Falso ) Hacer Leer Reg de Archi Escribir “Registro de Promotor: “ Escribir “Cédula de Identidad:”, Reg.cédula Escribir “Sexo:” , Reg.sexo Escribir “Monto de Ventas:”, Reg.ventas Escribir “Monto por Comisiones:”, Reg.comisión Fin Mientras Cerrar Archi Fin Algoritmos y Estructuras de Datos I ( )

71 Problema Procedimiento Vendedoras( Archi: TipArchi) Declaración
Variables Reg: RegPromotor Femi: TipArch Inicio Conectar Femi con Feminas.dat Crear Femi Abrir Archi Abrir Femi Mientras ( FDA(Archi) = Falso ) Hacer Leer Reg de Archi Si (reg.sexo = ‘f’) Entonces Grabar Reg en Femi Fin Si Fin Mientras Cerrar Archi Cerrar Femi Fin Procedimiento Algoritmos y Estructuras de Datos I ( )

72 Operaciones sobre Archivos (Modificar)
Para modificar registros se debe, en términos generales, aplicar la siguiente lógica: 1.- Abrir archivo 2.- Localizar el registro a modificar (búsqueda) 3.- Obtener la posición del registro actual, a fin de calcular la posición anterior. 4.- Devolver el apuntador hacia la posición que ocupa el registro a modificar 5.- Pedir al usuario que ingrese los datos nuevos del registro 6.- Grabar el registro en el archivo Algoritmos y Estructuras de Datos I ( )

73 Problema Elabore un algoritmo en pseudocódigo que realice la creación del archivo (Promotor.Dat) para mantener información de los promotores de ventas de la empresa Cicle C.A.. En éste se almacenará: número de cédula, monto de ventas, sexo y comisión ganada por cada promotor. Para ello, siga los pasos expuestos en el tratamiento de archivos, ofreciendo módulos para ingresar y mostrar registros, así como un módulo que permita obtener en un archivo temporal Género.dat, los registros correspondientes a vendedoras. Amplíe el algoritmo para que permita modificar el registro de un promotor cuando su monto de venta exceda Bs , incrementando en ese caso, su comisión en un 10%. Algoritmos y Estructuras de Datos I ( )

74 Operaciones sobre Archivos
Procedimiento Modificar ( Archi: TipArchi) Declaración Variables Reg, nuevo: RegPromotor buscado, posi, sw: Entero Inicio Escribir “Ingrese el numero de cédula del registro a buscar para modificar” Leer buscado Abrir Archi sw 0 Mientras ( FDA(Archi) = Falso Y sw= 0) Hacer Leer Reg de Archi Si (Reg.cedula = buscado) entonces sw 1 Escribir “El registro a modificar es:” Escribir “Sexo:” , Reg.sexo Escribir “Monto de Ventas:”, Reg.ventas Escribir “Monto por Comisiones:”, Reg.comisión Escribir”Introduzca el nuevo contenido del registro” Escribir “Sexo:” Leer Reg.sexo Escribir “Monto de Ventas:” Leer Reg.ventas Escribir “Monto por Comisiones:” Leer Reg.comisión * * posi posicion(Archi) Llamar Encontrar(posi-1, Archi) Grabar Reg en Archi Escribir”Modificación OK” Fin Si Fin Mientras Si (sw = 0) entonces Escribir “No se encontro el registro buscado” Fin si Cerrar Archi Fin Procedimiento Algoritmos y Estructuras de Datos I ( )

75 Arreglos. Registros. Archivos. Arreglo de Registros Contenido
Algoritmos y Estructuras de Datos I ( )

76 Diferencias entre Arreglos y Registros
Los arreglos son estructuras homogéneas, Los registros son estructuras heterogéneas. Para Acceder a cada posición de un Arreglo se utiliza: Nombre_Variable[Posición] Nombre_Variable[fila,columna] Para Acceder a cada campo de un registro se utiliza: Nombre_Variable.Campo Algoritmos y Estructuras de Datos I ( )

77 En cada posición tiene un registro
Arreglo de Registros Arreglo de Registros En cada posición tiene un registro Campoa | Campob | CampoN Acceso Nombre_Variable[Indice].NombreCampo Algoritmos y Estructuras de Datos I ( )

78 Arreglo de Registros VectorEstudiantes 1 2 3 : 35
Diseñe una estructura para almacenar el nombre de cada estudiante de Introducción a la Informática (35 alumnos), y la nota obtenida en cada uno de los 3 parciales presentados. VectorEstudiantes Registro Estudiante 1 2 3 : 35 Nombre Notas Algoritmos y Estructuras de Datos I ( )

79 Arreglo de Registros (Declaración)
Tipos Tipvecreg = Arreglo[35] de Regestudi Regestudi = Registro de Nombre: Cadena Notas: Tipnota Fin Registro Tipnota = Arreglo[3] de Real Variables VectEstudi: Tipvecreg Algoritmos y Estructuras de Datos I ( )

80 Arreglo de Registros VectorEstudiantes 1 2 3 : 35
Proceso para cargar los datos en la estructura. VectorEstudiantes 1 2 3 : 35 Juan Ivón Rey Gina Luís Algoritmos y Estructuras de Datos I ( )

81 Arreglo de Registros (Llenar)
Procedimiento Llenar( VecEstudi:Tipvecreg) Declaración Variables indiestud, inota: Entero Inicio Escribir “Ingrese los siguientes datos para cada estudiante:” Para indiestud = 1 Hasta 35 inc 1 Escribir “Nombre del estudiante # ”, indiestud Leer VecEstudi[indestud].Nombre Para inota = 1 Hasta 3 inc 1 Escribir “Nota obtenida en el Parcial # ”, inota Leer VecEstudi[indiestud].Notas[inota] Fin Para Algoritmos y Estructuras de Datos I ( )

82 Arreglo de Registros (Llenar)
Procedimiento Mostrar( VecEstudi:Tipvecreg) Declaración Variables indiestud, inota: Entero Inicio Escribir “Datos de cada estudiante:” Para indiestud = 1 Hasta 35 inc 1 Escribir “Estudiante # ”, indiestud Escribir “NOMBRE: “, VecEstudi[indestud].Nombre Para inota = 1 Hasta 3 inc 1 Escribir “Parcial # ”, inota, “Puntaje= “, VecEstudi[indiestud].Notas[inota] Fin Para Algoritmos y Estructuras de Datos I ( )

83 Arreglo de Registros (Llenar)
Procedimiento CalculaProm( VecEstudi:Tipvecreg) Declaración Variables indiestud, inota: Entero acum,prom: Real Inicio Escribir “Cálculo de Promedio de cada estudiante:” Para indiestud = 1 Hasta 35 inc 1 Escribir “Estudiante # ”, indiestud Escribir “NOMBRE: “, VecEstudi[indestud].Nombre acum0, prom0 Para inota = 1 Hasta 3 inc 1 acum acum + VecEsctudi[indiestud].Notas[inota] Fin Para prom acum/3 Escribir “El promedio de notas es:”, prom, “ptos.” Fin Procedimiento Algoritmos y Estructuras de Datos I ( )

84 Arreglo de Registros (Llenar)
Procedimiento PromParcial( VecEstudi:Tipvecreg) Declaración Variables indiestud, inota: Entero acum,prom: Real Inicio Escribir “Cálculo de Promedio de cada Parcial:” Para indiestud = 1 Hasta 35 inc 1 acum0, prom0 Para inota = 1 Hasta 3 inc 1 acum acum + VecEsctudi[indiestud].Notas[inota] Fin Para Fin Procedimiento Algoritmos y Estructuras de Datos I ( )

85 Arreglo de Registros VectorEstudiantes Suma 1 2 3 : 35
Proceso para cargar los datos en la estructura VectorEstudiantes 1 2 3 : 35 Juan Suma Ivón Rey Gina Luís Algoritmos y Estructuras de Datos I ( )

86 Arreglos y Registros Se requieren almacenar los datos de las facturas realizadas por una empresa durante 3 días, a sabiendas que la facturación se hace por sucursal. La empresa tiene 3 sucursales, de cada sucursal se requiere Almacenar su nombre, dirección, teléfono y facturación en los días señalados. Por factura se requiere guardar: el número de la factura, el código, cantidad y precio en Bs. de cada artículo. Considere que una factura contiene espacio solo para 40 productos y que al día solo pueden hacer máximo 100 facturas. Haga el dibujo de la estructura de datos que permita almacenar lo señalado. Algoritmos y Estructuras de Datos I ( )


Descargar ppt "Arreglo Tipos de Arreglo"

Presentaciones similares


Anuncios Google