tema 7 informática topografía
DESCRIPTION
Tema 7 Informática Topografía. Estructuras de datos compuestas Objetivos: Conocer el concepto de vector Conocer las operaciones que pueden realizarse con ellos Aplicar ambos conceptos a la resolución de problemas Conocer el concepto de matriz bidimensional y multidimensional. - PowerPoint PPT PresentationTRANSCRIPT
Estructuras de datos 1
Tema 7 Informática Topografía
Estructuras de datos compuestasObjetivos:
Conocer el concepto de vector Conocer las operaciones que pueden
realizarse con ellos Aplicar ambos conceptos a la resolución
de problemas Conocer el concepto de matriz
bidimensional y multidimensional
Definición de vectorOperaciones con vectores
BúsquedaOrdenación
Definición de vector de caracteresOperaciones carácter a carácterFunciones de cadenas de caracteres
Estructuras de datos 3
Tipos de datos
simples char, int, long int, float, double
compuestos vector
los datos almacenados son todos del mismo tipo
pueden numerarsepermiten tratamiento homogéneo e
implícito (uso de bucles)
Estructuras de datos 4
Definición de vector
Conjunto de datos homogéneosTipificación: Elemento: Cada uno de las unidades que forman el
vector Rango: Cantidad de elementos que contiene Índice: Número identificativo del elemento
Rango = 10
0 1 2 3 4 5 6 7 8 912 01 22 56 32 09 4 3
Estructuras de datos 5
Definición de vectorDeclaración tipo vector[RANGO];
Inicialización int datos[3] = {1,4,8};
Acceso a los elementos datos[0] = a;a = datos[2];b = a * datos[N-1] - 5;
Entrada : scanf (“%d”, &datos[0]);
Salida : printf (“%d”, datos[0]);
Elemento
Índice
Estructuras de datos 6
Programa que genera un vector para almacenar 10 números enteros leídos desde teclado y lo visualiza una vez creado.
#include <stdio.h>
#define RANGO 10
main () {
int numeros[RANGO], i;
for (i=0;i< RANGO;i++) {
printf ("\n Introduce un numero ");
scanf ("%d",&numeros[i]);
}
for (i=0;i<RANGO;i++)
printf("\nEl valor del elemento %d es %d", i+1, numeros[i]);
}
Estructuras de datos 7
Búsqueda en vectores
Consiste en determinar: Qué elemento cumple una determinada condición:
Igual a un valor dado Si supera un umbral (positivo o negativo) Otras más sofisticadas
Su posición. Recordar el elemento
Métodos de búsqueda Secuencial. Se recorren todos los elementos desde el
primero hasta el último o hasta el localizado. Cuesta N pasos Binaria o dicotómica. Partiendo de un vector ordenado
mediante algún criterio, se localiza el elemento en log2(N) pasos
N es el rango del vector
Estructuras de datos 8
Búsqueda en vectoresMétodos de búsqueda secuencial
Programa que sustituya los ceros por unos
#define RANGO 100....main(){ int i, V[RANGO];....for (i=0;i<RANGO;i++)if (V[i] == 0)
V[i] = 1;....}
Estructuras de datos 9
Métodos de búsqueda binaria
La búsqueda binaria requiere menos comparaciones (iteraciones) que la secuencial pero para realizar la búsqueda se requiere que el vector este previamente ordenado.
x[0] x[1] x
[2]x[n-1]
Elemento central
Posibles nuevos tramos debúsqueda
Tramo inicial de búsqueda
Nuevo tramo si el elementoa buscar es < que el
elemento central
Nuevo tramo si el elementoa buscar es > que el
elemento central
Si el elemento central coincide con el valor abuscar, se acaba la búsqueda
Estructuras de datos 10
Búsqueda Binaria
Programa que averigüe si existe una persona con un DNI dado#define TOTAL_PERSONAS 100main(){ long i, DNI, Personas[TOTAL_PERSONAS];
printf(“Indique por favor el DNI a liocalizar ”);scanf(“%d”, &DNI);/*comienzo de bloque de búsqueda*/i = Salto = TOTAL_PERSONAS / 2; while (Salto != 0){
if (V[i] < DNI) i += Salto; /*Hay que buscar valores mayores*/
else if (V[i] > DNI) i -= Salto; /*Buscar valores menores*/
else break; /*se ha encontrado a la persona*/Salto = Salto / 2;
} /*Del while*/
if (Salto != 0)printf(“\nLa persona cuyo DNI = %d, se encuentra en la posición %d\n”, DNI, i);
else printf(“\nLa persona solicitada no se encuentra registrada\n”);} /*Del main*/
Estructuras de datos 14
Vector de caracteres
String o cadena de caracteres
Declaraciónchar nombre_vector[RANGO+1]
Inicializaciónchar ciudad[9] = “Valencia”;
char ciudad[] = “Valencia”;
char ciudad[30]= “Valencia”;
‘h’ ‘o’ ‘l’ ‘a’ ‘\0’
‘V’ ‘a’ ‘l’ ‘e’ ‘n’ ‘c’ ‘i’ ‘a’ \0 21 char
Estructuras de datos 15
Operaciones carácter a carácter
Asignaciónchar ciudad[5];…ciudad[0] = ‘L’;ciudad[1] = ‘u’;ciudad[2] = ‘g’;ciudad[3] = ‘o’;ciudad[4] = ‘\0’;
Lectura/Escriturascanf (“%c”, &ciudad[3]);printf (“%c”, ciudad[2]);
Estructuras de datos 16
Funciones de cadenas de caracteres
Lectura/Escritura
char ciudad[RANGO];
/*solo una palabra*/scanf (“%s”, ciudad);printf (“%s”, ciudad);
/*una o varias palabras*/ gets (ciudad); puts (ciudad);