tema 7 informática topografía

Post on 20-Jan-2016

48 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

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

top related