ARREGLOS UNIDIMENSIONALES Y SUS APLICACIONES EN ESTADSTICA Ing

  • Slides: 16
Download presentation
ARREGLOS UNIDIMENSIONALES Y SUS APLICACIONES EN ESTADÍSTICA Ing. Betty Suárez Torres

ARREGLOS UNIDIMENSIONALES Y SUS APLICACIONES EN ESTADÍSTICA Ing. Betty Suárez Torres

DISEÑO DE SOFTWARE

DISEÑO DE SOFTWARE

ESTRUCTURA DE DATOS Y TAD’S Tipo de Datos Colección de valores Ejemplo: El tipo

ESTRUCTURA DE DATOS Y TAD’S Tipo de Datos Colección de valores Ejemplo: El tipo Booleano está formado por los dos valores True y False pero no. TDA es un tipo de dato abstracto ya que sobre él no se han definido las operaciones para manipularlo. Operaciones Implementación Sin embargo el tipo de dato booleano junto con los operadores boléanos (AND, OR, NOT) constituyen un tipo de datos abstracto. ESTRUCTURA DE DATOS

ARREGLOS UNIDIMENSIONALES Un arreglo es una serie de datos del mismo tipo y que

ARREGLOS UNIDIMENSIONALES Un arreglo es una serie de datos del mismo tipo y que tiene una vinculación lógica entre sí. Los datos están agrupados bajo el mismo nombre y diferenciado a través de subíndices. Declaración de un vector tipo_dato nombre_vector[rango]. Ejemplo: int array[20]; Inicialización de un vector int A[5] = {12, 4, 6, 7, 20} char v[10]; //vector de 10 caracteres (0 a 9)

OPERACIONES BÁSICAS CON VECTORES ACCIONES RESULTADOS Declaración float v[50]; char vocal[5]={'a', 'e', 'i', 'o',

OPERACIONES BÁSICAS CON VECTORES ACCIONES RESULTADOS Declaración float v[50]; char vocal[5]={'a', 'e', 'i', 'o', 'u'}; Asignación for(int i=0; i<50; i++){ cout<<“Ingresar elemento: ”; cin>>v[i]; } Escritura for(int i=0; i<50; i++){ cout<<v[i]; } Suma for(int i=0; i<50; i++){ c[i] = a[i] + b[i] }

OPERACIONES BÁSICAS CON VECTORES … Recorrido o acceso secuencial a un vector Al realizar

OPERACIONES BÁSICAS CON VECTORES … Recorrido o acceso secuencial a un vector Al realizar un recorrido accedemos a cada elemento. Se emplea cuando deseamos realizar algún tipo de cálculo con la totalidad o con aquellos elementos que cumplan una cierta característica. int edades[10]= {20, 18, 19, 21, 23, 20, 17, 19, 21, 23}; El siguiente código nos mostrará las edades de los alumnos y el orden que ocupan: for (int i=0; i<10; i++){ printf("Alumno %d, edad: %dn", i+1, edades[i]); }

MÉTODOS DE BÚSQUEDA DE DATOS EN VECTORES: BÚSQUEDA SECUENCIAL Este método busca un elemento

MÉTODOS DE BÚSQUEDA DE DATOS EN VECTORES: BÚSQUEDA SECUENCIAL Este método busca un elemento en el vector, explorándolo secuencialmente desde el primer elemento al último. La búsqueda secuencial no requiere ningún requisito por parte del vector y, por consiguiente no necesita estar ordenado. El recorrido del vector se realizará normalmente con estructuras repetitivas. INCONVENIENTE Consumo excesivo de tiempo en la localización de elemento buscado

Variable centinela Ingreso de datos en el vector Comparaciones Estructura Repetitiva

Variable centinela Ingreso de datos en el vector Comparaciones Estructura Repetitiva

#include <iostream> #include <conio. h> using namespace std; void main (void) { int pos=0;

#include <iostream> #include <conio. h> using namespace std; void main (void) { int pos=0; bool existe=false; int a[50], n, i, x; cout<<"INGRESAR EL NUMERO DE ELEMENTOS DEL ARRAY: "; cin>>n; cout<<endl; for(i=0; i<n; i++) { cout<<"Ingresar elemento "<<i+1<<": "; cin>> a[i]; }

cout<<"INGRESAR ELEMENTO A BUSCAR EN EL ARRAY: "; cin>>x; cout<<endl; while(pos<=n&&existe==false){ if(a[pos]==x) existe=true; else

cout<<"INGRESAR ELEMENTO A BUSCAR EN EL ARRAY: "; cin>>x; cout<<endl; while(pos<=n&&existe==false){ if(a[pos]==x) existe=true; else pos=pos+1; } cout<<endl<<"La posición es: "<<pos+1<<endl; cout<<endl<<"El elemento buscado es: "<<x<<endl; getch(); }

Vector a buscar 20 15 1 0 50 Elemento a buscar: 0 20 15

Vector a buscar 20 15 1 0 50 Elemento a buscar: 0 20 15 1 0 50 20 15 0 == 1 1 0 50 0 == 15 0 == 20 20 15 1 0 50 20 15 1 0 == 0 ELEMENTO ENCONTRADO

MÉTODO DE BÚSQUEDA DE DATOS EN VECTORES: BÚSQUEDA BINARIA Utiliza la técnica divide y

MÉTODO DE BÚSQUEDA DE DATOS EN VECTORES: BÚSQUEDA BINARIA Utiliza la técnica divide y vencerás para localizar el valor deseado Se examina el elemento central de la lista, si éste es el elemento buscado entonces la búsqueda termina, sino, se determina si el elemento buscado está en la primera o la segunda mitad de la lista, se repite este proceso, utilizando el elemento central de esa sublista. La búsqueda binaria se utiliza en vectores ordenados y se basa en la constante división del espacio de búsqueda.

Búsqueda Ordenamiento burbuja Elemento central O pivote

Búsqueda Ordenamiento burbuja Elemento central O pivote

#include <stdio. h> #include <conio. h> #include <stdlib. h> #define TAM 15 void main(){

#include <stdio. h> #include <conio. h> #include <stdlib. h> #define TAM 15 void main(){ int a[TAM], busca, temp, bajo, alto, central, n, i, j; printf("Número de elementos del arreglo: "); scanf("%d", &n); for(i=0; i<n; i++){ printf("Elemento %d: ", i+1); scanf("%d", &a[i]); } for(j=1; j<=n; j++){ for(i=0; i<n-1; i++){ if (a[i] > a[i+1]){ temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; } } } printf ("nn. El arreglo ordenado erann"); for (i=0; i<n; i++){ printf("a[%d]=%dn", i, a[i]); } //Implementacion de busqueda binaria printf("n. Introduce un numero a buscar: "); scanf("%d", &busca); bajo=0; alto=n-1; central = (bajo+alto)/2; while (bajo < alto && busca != a[central]){ if(busca > a[central]) bajo = central+1; else alto = central-1; central=(bajo+alto)/2; } if (busca == a[central]) printf("n%d encontrado en posicion %d", busca, central); else printf("n%d no existe", busca); getch(); }

Vector a buscar 20 15 1 0 -10 18 3 13 50 Buscar: -10

Vector a buscar 20 15 1 0 -10 18 3 13 50 Buscar: -10 0 1 2 3 4 5 6 7 8 13 15 18 20 50 bajo -10 0 1 3 alto centro bajo -10 0 1 centro bajo -10 centro 0 alto 3 13 15 18 20 50 alto 1 3 Elemento -10 encontrado en la posición 0

Vector a buscar 20 15 1 0 -10 18 3 13 50 Buscar: 20

Vector a buscar 20 15 1 0 -10 18 3 13 50 Buscar: 20 0 1 2 3 4 5 6 7 8 13 15 18 20 50 bajo -10 0 1 3 Vector ordenado -10 0 centro 1 3 13 15 bajo -10 0 alto 1 3 13 Elemento 20 encontrado en la posición 7 15 alto centro 18 20 bajo 50 centro alto