Lenguaje de Diseño: Estructuración de Datos

Documentos relacionados
Lenguaje de Diseño: Estructuración de Datos

Lenguaje de Diseño: Estructuración de Datos

Unidad 4. Arreglos y Cadenas

Teoría 8: Segunda Parte. Estructuras de Datos y Funciones de Entrada en Lenguaje C

Lenguaje de Diseño. Primera Parte. Segundo Cuatrimestre 2017

Primer Cuatrimestre 2018 Resolución de Problemas y Algoritmos

Lenguaje de Diseño. Primera Parte. Resolución de Problemas y Algoritmos. Primer Cuatrimestre Ing. En Informática e Ing.

Teoría Nº 5. ü Datos. Segundo Cuatrimestre UNSL - F. de la Informática Resolución de Problemas y Algoritmos

ALGORITMOS II PSEUDOCODIGOS INTRODUCCION AL PSEINT CORPODICES VICTOR ANDRES OCHOA CORREA

DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS

Universidad Nacional de Misiones. Informática

Introducción al tipo Vector Cómo guardar una colección de datos conceptualmente relacionados? - almacenar los 100 primeros números primos, - al

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

Razón de ser Computadora Programa Programador Análisis y solución de problemas (Metodología) Algoritmo Diagrama de flujo

Métodos de ordenamiento y búsqueda en vectores

2. ESTRUCTURAS BÁSICAS

Lógica de programación 1

Lógica de programación

Arreglos (vectores y matrices)

PRÁCTICA #6 TIPOS DE DATOS ESTRUCTURADOS: Arreglos, Registros y Archivos

DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE

Arreglos. Juan Pablo Cobá Juárez Pegueros Algoritmos y Programación Básica Bioingeniería Médica Facultad de Medicina 2015

Al igual que las instrucciones alternativas, las instrucciones repetitivas también se pueden anidar, permitiendo las siguientes combinaciones de

Trabajo Práctico 5 Estructura Repetitiva

Porque usar Arreglos?

Entero Datos simples Estáticos Real Carácter Lógico. Arreglo (vector, matriz) Estáticos Cadena Datos estructurados Registro

Tema 02: Algoritmia y pseudocódigo

UNIDAD V: ARREGLOS. Ingeniería en Sistemas de Información / Ingeniería Telemática

5. ESTRUCTURAS DE REPETICIÓN

INSTITUCIÓN EDUCATIVA SAN VICENTE TALLER 3 DE DIAGRAMAS DE FLUJO ALGORITMOS CICLICOS CICLO: MIENTRAS QUE GRADOS DÉCIMOS

Diseño Estructurado de Algoritmos

Para cada problema realizar: Análisis Diseño Diagramas de Flujo

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

Introducción a la Algorítmica Transparencias correspondientes a las clases impartidas por los profesores: Lourdes Miró Amarante Ignacio García Vargas

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan

PROGRAMACIÓN ESTRUCTURADA

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

Unidad 5. Arreglos: Vectores y Matrices. Prof. Eliana Guzmán U.

Unidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h

TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR

Programación I! Clase de Teoría: Corte de Control. Prof. Mgter. Oscar Adolfo Vallejos

Cadenas de caracteres

Teoría 7. Lenguaje C. Int. a la Computación- Int. a la Programación Fund. De la Informática

6.1.- Introducción a las estructuras de datos Tipos de datos Arrays unidimensionales: los vectores Operaciones con vectores.

1. Detalle de los Comandos:

Modularización en lenguaje C. Funciones

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

Cadenas de Caracteres

SEGUNDA PARTE: TIPOS COMPLEJOS

Unidad 2: Estructuras de Datos estáticas y dinámicas.

Programación Estructurada

UA.- Estructura de Datos. Unidad de Competencia I Tema 1.2 Arreglos: Vectores, matrices, multidimensionales

7.1 Consideraciones. Considere la búsqueda de un libro en una biblioteca. Considere la búsqueda de un nombre en el directorio telefónico.

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

RESOLUCIÓN DE LA PRIMERA RECUPERACIÓN DEL SEGUNDO PARCIAL

ALGORITMOS Y PROGRAMACIÓN I Unidad 3

El diseño de un programa Jhon Jairo Padilla Aguilar, PhD.

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información 1º año

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS

Dpto. de ATC, Universidad de Sevilla - Página 1 de 16

Arreglos Estructura (struct)

Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan problemas de tipo numérico.

Método Simplex. Ing. Ricardo Fernando Otero, MSc

Formatos para prácticas de laboratorio

Lógica de programación

5.1 CONCEPTO DE ARREGLO

UNIDAD V: ARR R EGL G OS O BIDI D MENS N IONALE L S

Universidad Autónoma del Estado de México Facultad de Medicina

Universidad Nacional de Misiones. Informática

LENGUAJE DE PSEUDOCÓDIGO

Francisco J. Hernández López

INSTITUTO NACIONAL SUPERIOR DEL PROFESORADO TÉCNICO - TÉCNICO SUPERIOR EN INFORMÁTICA APLICADA - PROGRAMACIÓN I

INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION

Tema 1. ORDENACIÓN, BÚSQUEDA E INTERCALACIÓN INTERNA (Algoritmos)

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACION DE COMPUTACION

GUIA DOCENTE INFORMÁTICA. Facultat de Matemàtiques. Curso Departament d Informàtica (ETSE)

ETAPA Cómo se llaman los profesionales que escriben el código de los programas? Programadores.

TEMA 1: Algoritmos y programas

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Programación I (Plan 1999) Algoritmos y Estructuras de Datos II (Plan 2009) Mgter. Oscar Adolfo Vallejos FaCENA - UNNE

Así, Juan se halla en la posición cero (0), Carlos en la posición tres (3), etc.

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0

PRÁCTICO N o 7. Lenguaje de Diseño (Tercera Parte): Modularización. Ejercicio 1: Teniendo en cuenta la resolución del ejercicio 7 del Práctico 6:

Guía de Trabajos Prácticos Nº 4

Elabore un diagrama de flujo y la codificación de un programa para:

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACION DE COMPUTACION

ASECOMPU. PORTAL DE REFUERZO ACADEMICO EN PROGRAMACIÓN LISTA DE EJERCICIOS

Conceptos. Generales ALGORITMOS

Diseño Estructurado de Algoritmos

Transcripción:

Teoría Nº 6 Lenguaje de Diseño: Estructuración de Datos Primer Cuatrimestre

Un palíndromo es una palabra, o frase que se lee igual hacia adelante que hacia atrás. Si se trata de un número, se llama capicúa. Ej. neuquen, Afromorfa, Solos, Somos, No deseo yo ese don Cómo sería el algoritmo que permite reconocer si una palabra es palíndromo?.

La determinación de los objetos es una parte importante en el proceso de resolución Restricción: los objetos deben determinarse en función de los cuatro tipos de datos primitivos. Ejemplo: Una empresa recibe mensualmente información sobre las ventas de cada una de sus tres sucursales. Se desea obtener un listado de aquellas sucursales cuyas ventas superan el promedio de las mismas.

Versión 1: Versión 2: t 1 - Leer los datos de las sucursales. t 2 - Determinar el promedio. t 3 - Comprobar cual o cuáles de las sucursales tiene venta superior al promedio. t 11 - Para cada sucursal leer sus ventas y acumularlas. t 2 - Determinar el promedio. t 31 - Para cada sucursal leer sus ventas, comparar- las con el promedio. Si es mayor al promedio, informar.

Diagrama de Flujo de la solución en Lenguaje del Problema C De 1 a 3 Ingresar la venta de la sucursal. Acumular la venta. Calcular el promedio. De 1 a 3 Ingresar la venta de la sucursal F. venta > promedio F V informo Objetos?

Objetos? venta - guarda la venta de cada sucursal. acumulo - acumula las ventas promedio - almacena promedio. i - lleva la cuenta de la sucursal que trato.

Algoritmo en lenguaje de diseño: ALGORITMO Ventas COMENZAR VENTA, ACUMULO, PROMEDIO: real I: entero PROMEDIO 0 ACUMULO 0 PARA I DESDE 1 HASTA 3 CON PASO 1 HACER LEER VENTA ACUMULO FINPARA ACUMULO + VENTA PROMEDIO ACUMULO / 3 PARA I DESDE 1 HASTA 3 CON PASO 1 HACER LEER VENTA SI VENTA > PROMEDIO ENTONCES FINSI FINPARA FIN ESCRIBIR I, VENTA Desventajas?

Solución 2: Objetos vent1 - guarda la venta de sucursal 1. vent2 - guarda la venta de sucursal 2. vent3 - guarda la venta de sucursal 3. promedio - acumula las ventas y saca promedio.

Algoritmo en Lenguaje de Diseño: ALGORITMO Ventas COMENZAR VENT1, VENT2, VENT3, PROMEDIO: real LEER VENT1, VENT2, VENT3 PROMEDIO (VENT1+ VENT2 + VENT3) / 3 SI VENT1 > PROMEDIO ENTONCES FINSI ESCRIBIR VENT1 SI VENT2 > PROMEDIO ENTONCES ESCRIBIR VENT2 FINSI SI VENT3 > PROMEDIO ENTONCES FINSI ESCRIBIR VENT3 FIN

100 Objetos? vent1 - guarda la venta de sucursal 1. vent2 - guarda la venta de sucursal 2.... vent100 - guarda la venta de sucursal 100.

ALGORITMO Ventas COMENZAR VENT1, VENT2,..., VENT100, PROMEDIO: real LEER VENT1, VENT2,..., VENT100 PROMEDIO (VENT1+ VENT2 +.. + VENT100) / 100 SI VENT1 > PROMEDIO ENTONCES FINSI ESCRIBIR VENT1 SI VENT2 > PROMEDIO ENTONCES ESCRIBIR VENT2 FINSI. SI VENT100 > PROMEDIO ENTONCES FINSI FIN ESCRIBIR VENT100

Todas las formas posibles en que nosotros relacionemos lógicamente datos primitivos para construir nuevos objetos se denomina: ESTRUCTURACIÓN DE DATOS Características: 4 toda estructura se construye a partir de objetos primitivos. 4 el conjunto de datos se identifica con un único nombre. 4una estructura se diferencia de otra por la forma en que sus componentes están relacionadas y el tipo de las mismas. 4se encuentran tanto en memoria principal como en memoria secundaria. Nos concentraremos en la estructuras de memoria principal

Tipos de Estructuras de Datos: Estructuras Enlazadas: los datos no se encuentran en posiciones adyacentes de memoria. Estructuras Contiguas o Físicas: los datos se encuentran en posiciones adyacentes de memoria. Existe una estructura en particular que nos interesa denominada: ARREGLO LINEAL DE DATOS

Arreglo Lineal Solución 3: Reunir los 100 objetos en un solo objeto estructurado. 120 578 625 1230 1 2 3 99 100 Arreglo Lineal VENTA VECTOR 120 578 625 1230 1 2 3 99 100 VENTA[3] 625

Donde: 4 Todos los elementos del arreglo son del mismo tipo primitivo por lo tanto es una estructura homogénea. 4Es una estructura estática, es decir su tamaño (cantidad y tipo de elementos del arreglo) se define en tiempo de compilación a partir de la declaración y no cambia durante la ejecución del programa. (Es posible definir arreglos cuya dimensión se modifique en tiempos de ejecución (estructuras dinámicas) pero este concepto no será abordado en este curso). 4Es una estructura lineal de acceso directo, es decir se accede a un dato en forma directa con sólo indicar la posición o subíndice. El número que indica la posición (subíndice) es un número natural. 4El número de elementos o dimensión, se define con la declaración junto con el límite mínimo y límite máximo o rango.

Declaración de un Arreglo: VENTA: arreglo[1..100] de real arreglo <Nombre> : [ Li.. Ls] de <tipo>

Usos y operaciones: VENTA[15] VENTA[I] VENTA[K+5] (valor almacenado en la posición 15 del arreglo) (valor almacenado en la posición indicada por el valor almacenado en I) I 20 VENTA[I] VENTA[20] (valor almacenado en la posición indicada por el valor resultante de la expresión K+5) K 20 VENTA[K+5] VENTA[20 +5] VENTA[25] Asignar un valor VENTA[10] 30 Operación J 13 * J + VENTA[I]

ALGORITMO Ventas COMENZAR VENTA: arreglo [1..100] de real PROMEDIO: real I: entero PROMEDIO 0 Objetos: VENTA - arreglo de 100 elementos de tipo real. I - variable índice del arreglo. PARA I DESDE 1 HASTA 100 CON PASO 1 HACER FINPARA LEER VENTA[I] PROMEDIO PROMEDIO + VENTA[I] PROMEDIO PROMEDIO / 100 PARA I DESDE 1 HASTA 100 CON PASO 1 HACER FINPARA FIN SI VENTA[I] > PROMEDIO ENTONCES ESCRIBIR I, VENTA[I] FINSI PROMEDIO - para el cálculo del promedio.

Ejemplo: Suponga Ud. que se desea hacer un programa relacionado con los 250 empleados de una empresa. Los datos de cada empleado que el programa va a necesitar son: el año de ingreso de esa persona a la empresa, género ( F para Femenino y M para Masculino ) y si es profesional o no ( Verdadero o Falso ). Todos esos datos se almacenarán en un único arreglo. Es posible definir el siguiente arreglo?

Ejemplo: Diseñe y dibuje de que manera estructurar el almacenamiento de los siguientes datos en una única estructura. A y B son matrices de nxn valores enteros. Dimensión del arreglo? La selección de una estructura de datos y de la manera de relacionar dichos datos es una decisión importante, ya que ello influye decisivamente en el algoritmo que va a usarse para resolver un determinado problema. PROGRAMACION= ESTRUCTRAS DE DATOS + ALGORITMOS

Ejemplo: La selección de una estructura de datos y de la manera de relacionar dichos datos es una decisión importante, ya que ello influye decisivamente en el algoritmo que va a usarse para resolver un determinado problema. PROGRAMACION= ESTRUCTRAS DE DATOS + ALGORITMOS Arreglo M 2 0 1 3 0 0 5 1 1 1 2 3 4 5 6 7 8 9 1 0 1 1 2 1 1 1 0 10 11 12 13 14 15 16 17 18

Ejemplo: 2 0 1 3 0 0 5 1 1 1 2 3 4 5 6 7 8 9 1 0 1 1 2 1 1 1 0 10 11 12 13 14 15 16 17 18 Matrices[1] + Matrices[10] Matrices[2] + Matrices[11] Matrices[3] + Matrices[12] Matrices[4] + Matrices[13] Matrices[5] + Matrices[14] Matrices[6] + Matrices[15] Matrices[7] + Matrices[16] Matrices[8] + Matrices[17] Matrices[9] + Matrices[18]

Ejemplo: 2 0 1 3 0 0 5 1 1 1 2 3 4 5 6 7 8 9 1 0 1 1 2 1 1 1 0 10 11 12 13 14 15 16 17 18 PARA I DESDE?? HASTA?? CON PASO?? HACER M[?? ] M[?? ] + M[?? ] FINPARA PARA I DESDE 1 HASTA 9 CON PASO 1 HACER M[I+18 ] M[I ] + M[I+10] FINPARA

Ejemplo: 2 3 5 0 0 1 1 0 1 1 2 3 4 5 6 7 8 9 1 1 1 0 2 1 1 1 0 10 11 12 13 14 15 16 17 18 Matrices[1] + Matrices[10] Matrices[4] + Matrices[13] Matrices[7] + Matrices[16] Matrices[2] + Matrices[11] Matrices[5] + Matrices[14] Matrices[8] + Matrices[17] Matrices[3] + Matrices[12] Matrices[6] + Matrices[15] Matrices[9] + Matrices[18]

Ejemplo: 2 3 5 0 0 1 1 0 1 1 2 3 4 5 6 7 8 9 1 1 1 0 2 1 1 1 0 10 11 12 13 14 15 16 17 18 PARA I DESDE 1 HASTA 3 CON PASO 1 HACER M[I+18 ] M[I ] + M[(I+10-1)] M[I+18+3 ] M[I+3] + M[(I+10-1)+3] M[I+18+6 ] M[I+6 ] + M[(I+10-1)+6] FINPARA

Ejemplo: Escribir un algoritmo que dado un arreglo de 7 elementos enteros positivos menores a 5000, los muestre ordenados de menor a mayor. Solución: - Ingresar los elementos en el arreglo. - Encontrar el menor elemento del arreglo y mostrarlo. - Repetir la operación anterior para los restantes sin considerar el elemento ya encontrado.

ALGORITMO Ordenar COMENZAR V: arreglo [1..7] de entero I,J, MIN: entero PARA I DESDE 1 HASTA 7 CON PASO 1 HACER LEER V[I] FINPARA PARA I DESDE 1 HASTA 7 CON PASO 1 HACER MIN 1 PARA J DESDE 1 HASTA 7 CON PASO 1 HACER SI V[J] < V[MIN] ENTONCES MIN J FINSI FINPARA ESCRIBIR V[MIN] V[MIN] 100000 FINPARA FIN Se debería controlar que los números ingresados sean positivos y no mayor que 5000

Ejemplo: Escribir un algoritmo que ordene de menor a mayor los elementos de un arreglo de 7 elementos enteros positivos. Solución: - Encontrar el menor elemento del arreglo. - Intercambiarlo con el primero del arreglo. - Repetir la misma operación para los restantes sin considerar al elemento ya ordenado.

Ejemplo: estado inicial: 21 35 17 8 14 42 2 1º intercambio: 2 35 17 8 14 42 21 2º intercambio: 2 8 17 35 14 42 21 3º intercambio: 2 8 14 35 17 42 21 4º intercambio: 2 8 14 17 35 42 21 5º intercambio: 2 8 14 17 21 42 35 6º intercambio: 2 8 14 17 21 35 42

Objetos: V - arreglo de enteros a ordenar. I,J - variables índice del arreglo. MIN - variable auxiliar que indica el índice donde se encuentra el elemento mínimo. VAL_MI - variable auxiliar usada para el intercambio de valores.

Versión 1: t 1 - Ingresar los elementos del arreglo. t 2 - Repetidamente mientras el arreglo no esté ordenado, buscar el menor del arreglo, luego colocarlo en la posición correspondiente. t 3 - Mostrar el arreglo ordenado. Versión 2: t 1 - Ingresar los elementos del arreglo. t 20 - Repetidamente mientras el arreglo no esté ordenado t 21 - Buscar el menor del arreglo y guardarlo en MIN. t 22 - Intercambiar con el lugar que corresponda en el ordenamiento el valor de V[MIN]. t 3 - Mostrar el arreglo ordenado.

ALGORITMO Ordenar COMENZAR V: arreglo [1..7] de entero I,J, MIN, VAL_MI: entero PARA I DESDE 1 HASTA 7 CON PASO 1 HACER LEER V[I] FINPARA PARA I DESDE 1 HASTA 7-1 CON PASO 1 HACER MIN I PARA J DESDE I+1 HASTA 7 CON PASO 1 HACER SI V[J] < V[MIN] ENTONCES MIN J FINSI FINPARA VAL_MI V[MIN] V[MIN] V[I] V[I] VAL_MI FINPARA PARA I DESDE 1 HASTA 7 CON PASO 1 HACER ESCRIBIR V[I] FINPARA FIN

después de la lectura ingreso al para externo 1er iteración sobre I ingreso al para interno 1er iteración sobre J 2da iteración sobre J 3er iteración sobre J 4ta iteración sobre J 5ta iteración sobre J 6ta iteración sobre J salida del para interno 2da iteración sobre I ingreso al para interno 1er iteración sobre J 2da iteración sobre J 3er iteración sobre J 4ta iteración sobre J 5ta iteración sobre J salida del para interno V[1] V[2] V[3] V[4] V[5] V[6] V[7] I MIN J VAL_MI 21 35 17 8 14 42 2 1 6 1 1 2 3 3 4 4 5 6 7 7 2 35 17 8 14 42 21 2 2 2 3 3 4 4 5 6 7 2 8 17 35 14 42 21 8 2 7 3 7

Ejemplo: Escribir un algoritmo que le permita al usuario ingresar 10 valores enteros en un arreglo y hasta 25 caracteres en otro arreglo. Objetos? Versión 1: t0 Definir objetos y asignar valores. t1 - Ingresar 10 valores enteros en un arreglo A. t2 - Ingresar hasta 25 caracteres en un otro arreglo B.

Ejemplo: En el último año de una institución privada, se dictan 10 materias que completa el cursado del ciclo Secundario. Almacene en una estructura de datos apropiada el Nro. De documentos de cada alumno y las notas que obtuvo en cada asignatura. Cómo se debería hacer para calcular el promedio?