Programación I MC Beatriz Beltrán Martínez

Slides:



Advertisements
Presentaciones similares
Programación IMC José Andrés Vázquez Flores. Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un.
Advertisements


Arreglos Programación I MC Beatriz Beltrán Martínez.
Arreglos Otoño  Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La.
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Arreglos Bidimensionales Otoño FCC - BUAP Otoño 2015MC Beatriz Beltrán Martínez101  Hasta este momento se han visto arreglos unidimensionales.
Introducción al Lenguaje C (II) Cadenas de caracteres, archivos de cabecera, lectura y escritura Fundamentos de Programación Departamento de Lenguajes.
“Estructuras de datos”
ALGORITMOS, DIAGRAMAS DE FLUJO ING. DIANA CRUZ. QUÉ ES UN ALGORITMO ALGORITMO PARA UNA RECETA DE COCINA ETAPAS PARA SOLUCIONAR UN PROBLEMA PROPIEDADES.
Programación lógica funcional Árboles Binarios.  El siguiente trabajo trata sobre la estructura de datos no lineales llamada árbol. Esta estructura se.
1 Ordenación, Clasificación Introducción Algoritmos Complejidad.
Ingreso , proceso y salida de datos
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
Conceptos básicos de programación
SQL Prof. Martín Contreras.
Introducción a los algoritmos
Arreglos. en Lenguaje C n
Introducción a la Programación
Tema 4 Elementos para el Desarrollo de Algoritmos
Tema 3. Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación.
TUTORIAL PSeint.
Diccionarios y Mapeos Estructuras de Datos 2017.
Tipos de Datos abstractos
Vectores Unidad II A Z L D Comenzar.
Tema 7 Arreglos Parte 1.
LÓGICA DE PROGRAMACIÓN
LENGUAJE DE PROGRAMACION III Estructuras Estáticas de Datos
Métodos de muestreo.
Unidad 2. Algoritmos Unidad 4. Control de flujo
2da clase ofimatica.
Estructuras Estructuras En la creación de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos que.
ARRAYS Y COLECCIONES DE DATOS
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Métodos de búsqueda. Introdución Esta operación se utiliza basicamente para recuperar datos que se habian almacenado con anticipación. El resultado puede.
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Tipos de Datos abstractos
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Metodología de la Programación
INFORMATICA DEL CBU Clase 11 Año 2016 ARREGLOS.
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Introducción a los algoritmos
Árboles Binarios de Búsqueda (ABB)
Tipos de Datos abstractos
INTRODUCCION Hasta ahora solo hemos tenido que trabajar con algunas variables en cada uno de los programas que hemos realizado. Sin embargo, en más de.
Estructuras de Datos Dinámicas
TEMAS *Arboles Binarios *listas Abiertas y Cerradas - Inserción - Recorrido - Eliminación *Pilas - Concepto - Inserción - Recorrido -
Ordenamiento: Quick Sort
Metodología de la Programación
MC Beatriz Beltrán Martínez Otoño 2017
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
Tema 7 Arreglos Parte 3.
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
MC Beatriz Beltrán Martínez Verano 2018
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial
METODOS DE ORDENAMIENTO CHRISTIAN MICHAEL OBANDO GARCES JOAO ADRIAN BARIONUEVO.
MATRIZ DE CHEQUEO DE PARIDAD
Universidad Autónoma del Estado de México
METODOS DE ORDENAMIENTO
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
Metodología de la Programación
Departamento de Ingeniería de Sistemas e Industrial
Organización del caché
Arreglos Bidimensionales
ALGORITMO DE ORDENAMIENTO POR BURBUJA. El método de la burbuja es uno de los mas simples, es tan fácil como comparar todos los elementos de una lista.
UNIDAD VI ARREGLO UNIDIMENSIONAL
Ordenación Por Inserción
UNIVERSIDAD AÚTONOMA DE SINALOA “Facultad de Informática Culiacán”
Transcripción de la presentación:

Programación I MC Beatriz Beltrán Martínez Arreglos Programación I MC Beatriz Beltrán Martínez

Definición Un arreglo es un conjunto finito e indexado de elementos homogéneos, que se referencian por un identificador común (nombre). La propiedad indexado significa que el elemento primero, segundo, hasta el n-ésimo de un arreglo pueden ser identificados por su posición ordinal. Un arreglo es una colección finita, homogénea y ordenada de elementos del mismo tipo. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Definición De manera formal se define un arreglo de tamaño n de los elementos de tipo A, es un elemento del espacio n-dimensional del conjunto A, es decir, X es arreglo de tamaño n del tipo A si y solo si XAn. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Representación n-1 n elementos Los arreglos pueden contener un mínimo de cero elementos hasta un máximo de n elementos. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Clasificación Los arreglos se clasifican en: Unidimensionales (Vectores): un sólo índice Bidimensionales (Tablas o Matrices): dos índices Multidimensionales: más de dos índices MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Arreglos Unidimensionales Programación I MC Beatriz Beltrán Martínez

Características Los arreglos unidimensionales deben cumplir lo siguiente: Compuesto por un número de elementos finito. Tamaño fijo: el tamaño del arreglo debe ser conocido en tiempo de compilación. Homogéneo: todos los elementos son del mismo tipo. Son almacenados en posiciones contiguas de memoria, cada uno de los cuales se les puede acceder directamente. Cada elemento se puede procesar como si fuese una variable simple ocupando una posición de memoria. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Definición Para definir en lenguaje C un arreglo. Se tiene: Tipo nom_var[TAM]; El arreglo que se define inicia en 0, y termina en TAM-1, con un total de TAM elementos del tipo definido Ejemplo: int A[100]; float X[N]; MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

<NombreVector>[subíndice] = <Valor>; Operaciones Asignación La manera de asignar (insertar) un valor en cada elemento del arreglo unidimensional es mediante el subíndice que indica la posición, se puede utilizar la siguiente forma: <NombreVector>[subíndice] = <Valor>; Ejemplo: A[1] =10; pais[2] = 2.56; precio[3] = precio[2]+10.5; MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Operaciones Lectura Escritura La lectura se realiza de la siguiente manera: for (i=0; i<n; i++) scanf(“%d ”, &A[i]); Escritura Consiste en asignarle un valor a cada elemento del arreglo: printf (“\n %d ”, A[i]); MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Programación I MC Beatriz Beltrán Martínez Cadenas Programación I MC Beatriz Beltrán Martínez

Conceptos Básicos Una cadena es un conjunto de caracteres incluido el espacio en blanco. Por ejemplo: “Hola” “123vb” “v bg%.” Generalmente una cadena va encerrada entre comillas. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Conceptos Básicos La longitud de una cadena es el número de caracteres que contiene. La cadena vacía es la que no tiene ningún carácter y se representa como “”. El último carácter de la cadena marca el fin de la cadena, que corresponde al carácter ‘\0’. Este carácter ocupa un espacio en el arreglo. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Instrucciones Se hace uso de la biblioteca <string.h>. strcpy (cadena1, cadena2): Copia el contenido de la cadena2 en la cadena1, si las dos cadenas se superponen, el resultado es impredecible. La copia se realiza aún cuando las cadenas no sean de la misma longitud. strcat (cadena1, cadena2): Anexa la cadena2 al final de la cadena1. El terminador nulo de cadena1 se reemplaza por el primer carácter de cadena2. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Instrucciones compara strcmp (cadena1, cadena2): Compara la cadena1 con la cadena2, y devuelve: 0 si cadena1=cadena2 entero mayor a cero si cadena1>cadena2 entero menor a cero si cadena1<cadena2 tamaño strlen (cadena): Devuelve la longitud de la cadena sin contar el terminador nulo. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Programación I MC Beatriz Beltrán Martínez Ordenamiento Programación I MC Beatriz Beltrán Martínez

Clasificación por intercambio directo Uno de los métodos de clasificación más simples que puede haber es el llamado “clasificación de burbuja” (bubblesort). La idea básica de este algoritmo es imaginar que los elementos están como burbujas en un tanque de agua con pesos correspondientes a sus claves, cada pase sobre el arreglo produce el ascenso de una burbuja hasta su nivel adecuado de peso. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Clasificación por intercambio directo Procedimiento burbuja Inicio Para i 1 a n-1 paso 1 hacer Para j  n a i+1 con paso -1 hacer Si A[j] < A[j-1] entonces temp  A[j] A[j]  A[j-1] A[j-1]  temp Fin_si Fin_para Fin MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Clasificación por intercambio directo Este algoritmo admite un poco de mejoramiento. El algoritmo por vibración es una variante del algoritmo burbuja pero mejorado. Este algoritmo consiste en “recordar” cuál fue el último intercambio realizado y en qué momento. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Clasificación por intercambio directo Procedimiento shakeSort Inicio l2 r  n k n Repetir Para jr a l con paso -1 hacer Si A[j-1] > A[j] entonces temp  A[j] A[j]  A[j-1] A[j-1]  temp k  j Fin_si Fin_para l  k+1 Para j l a r con paso 1 hacer Si A[j-1] > A[j] entonces temp  A[j] A[j]  A[j-1] A[j-1]  temp k  j Fin_si Fin_para r  k-1 Hasta l > r Fin MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Clasificación por inserción Este método consiste en reubicar en el lugar correcto cada uno de los elementos a ordenar, es decir, en el i-ésimo recorrido se “inserta” el i-ésimo elemento A[i] en el lugar correcto, entre A[1], A[2], ..., A[i-1], los cuales fueron ordenados previamente. Existen dos condiciones distintas que podrían dar terminado el proceso de clasificación: Se encuentra un elemento A[j] que tiene una llave menor que la de A[i]. El extremo izquierdo de la secuencia destino es alcanzado. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Clasificación por inserción Procedimiento insercionDirecta Inicio Para i 2 a n hacer A[0]A[i] j i Mientras A[j] < A[j-1] hacer temp  A[j] A[j]  A[j-1] A[j-1]  temp j  j-1 Fin_mientras Fin_para Fin MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Clasificación por inserción Si notamos que la secuencia destino A[2]...A[i-1] donde se debe insertar el elemento, ya está ordenada. Este algoritmo puede ser mejorado determinando rápidamente el punto de inserción. La elección es una búsqueda binaria que prueba la secuencia destino en la mitad y continúa buscando hasta encontrar el punto de inserción. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Clasificación por inserción Procedimiento insercionBinaria Inicio Para i 2 a n hacer x A[i] L1 Ri Mientras L < R hacer m  (L+R) div 2 Si A[m] <= x entonces L  m+1 Sino R  m Fin_si Fin_mientras Para ji a R+1 (decremento en 1) hacer A[j]  A[j-1] Fin_para A[R]  x Fin MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Clasificación por selección directa Este método se basa en los siguientes principios: Seleccionar el elemento que tenga la llave menor. Intercambiarlo con el primer elemento 1. Repetir después estas operaciones con los n-1 elementos restantes, luego con n-2 elementos hasta que no quede más que un elemento (el más grande). MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Clasificación por selección directa Procedimiento seleccionDirecta Inicio Para i1 a n-1 hacer k i xA[i] Para j  i+1 a n hacer Si A[j] < x entonces k j x A[k] fin_si fin_para A[k]  A[i] A[i]  x Fin MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Métodos de clasificación avanzados Inserción por decremento decreciente Un refinamiento de la inserción directa fue propuesto por D.L. Shell en 1959. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Métodos de clasificación avanzados Procedimiento shellSort Inicio h[1]9 h[2]5 h[3] 3 h[4] 1 Para m 1 a t hacer // t es el tamaño del arreglo h k h[m] s-k Para i  k+1 a n hacer xA[i] ji-k Si s=0 entonces s-k fin_si ss+1 A[s]x Mientras x<A[j] hacer A[j+k]A[j] jj-k fin_mientras A[j+k]x fin_para Fin MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Programación I MC Beatriz Beltrán Martínez Búsqueda Programación I MC Beatriz Beltrán Martínez

Búsqueda Lineal La tarea de búsqueda es una de las más frecuentes en programación. Para los siguientes algoritmos vamos a suponer que la colección de los datos en donde vamos a buscar, es fija, y que es de tamaño n. La tarea consiste en hallar un elemento cuya clave sea igual al argumento de búsqueda. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Búsqueda Lineal Cuando los elementos no llevan un orden y no existe información sobre ellos se utiliza la búsqueda lineal, es decir, comparar uno a uno los elementos hasta encontrar el deseado. Existen dos condiciones que ponen fin a la búsqueda.  Se encuentra el elemento. Se ha rastreado toda la colección y no se encuentra el elemento. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Búsqueda Lineal Procedimiento busquedaLineal (elemento) Inicio i0 Mientras (i < N) y (A[i] <> elemento) hacer ii+1 Fin_mientras Fin Si i al final es N entonces el elemento no fue encontrado, pero sino entonces quiere decir que el elemento esta en la posición i-ésima del arreglo. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Búsqueda Binaria Para utilizar este algoritmo es necesario que la colección este ordenada. La idea clave consiste en inspeccionar el elemento medio y compararlo con el elemento de búsqueda x. Si es igual a x, la búsqueda termina; si es menor que x, inferimos que todos los elementos con índices menores que o iguales a m pueden ser eliminados, y nuestra búsqueda ahora se centra en los demás elementos. Esto se repite mientras el índice inicial sea menor o igual que el final y el elemento no sea encontrado. MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017

Búsqueda Binaria Procedimiento busquedaBinaria(x) Inicio L 0 RN found  false Mientras L< R y not (found) hacer m(L+R) div 2 Si A[m]=x entonces foundtrue Sino Si A[m] < x entonces L  m+1 Sino R m fin_si fin_mientras Fin MC Beatriz Beltrán Martínez FCC - BUAP Primavera 2017