tema 7 informática topografía

13
Estructuras de datos 1 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

Upload: naida

Post on 20-Jan-2016

48 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: Tema 7  Informática Topografía

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

Page 2: Tema 7  Informática Topografía

Definición de vectorOperaciones con vectores

BúsquedaOrdenación

Definición de vector de caracteresOperaciones carácter a carácterFunciones de cadenas de caracteres

Page 3: Tema 7  Informática Topografía

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)

Page 4: Tema 7  Informática Topografía

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

Page 5: Tema 7  Informática Topografía

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

Page 6: Tema 7  Informática Topografía

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]);

}

Page 7: Tema 7  Informática Topografía

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

Page 8: Tema 7  Informática Topografía

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;....}

Page 9: Tema 7  Informática Topografía

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

Page 10: Tema 7  Informática Topografía

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*/

Page 11: Tema 7  Informática Topografía

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

Page 12: Tema 7  Informática Topografía

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]);

Page 13: Tema 7  Informática Topografía

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);