Peliculas Favoritas:
Blog Ejercicios Estructura de Datos II
jueves, 21 de enero de 2016
Portada
UNIVERSIDAD FERMÍN TORO
FACULTAD DE INGENIERÍA
ESCUELA DE COMPUTACIÓN
CABUDARE, EDO. LARA
Ejercicios Estructura de Datos II
Alumno: Ricardo Richard
Asignatura: Estructura de Datos II
Seccion: SAIA
Ejercicio 2.
2.- A
continuación se muestra el código de implementación dev c++ ,de una búsqueda de
la cual usted debe de indicar que búsqueda es (secuencial, binaria o hast)
indicar que hace el código y que resultado arroja
Despues haber de limpiado el codigo lo mejor que pude remplazando los caracteres `` y ' ' por las comillas correctas " ademas de completar correctamente las lineas que estaba cortadas por saltos en linea no me fue posible correr el programa:
Codigo original copiado del PDF:
Codigo limpio:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include "ordena.h"
#include "hash.h"
int main(int argc,char *argv[])
{
int num_min,num_max,incr,tamano,hash_div,nveces;
char nombre[256];
short ret;
printf("Practica numero 3, apartado 2\n");
printf("Realizada por: Vuestros nombres\n");
printf("grupo: Vuestro grupo\n");
printf("introduce el numero ninimo de elementos a introducir en la tabla\n");
scanf("%d",&num_min);
printf("introduce el numero maximo de elementos a introducir en la tabla\n");
scanf("%d",&num_max);
printf("introduce el incremento\n");
scanf("%d",&incr);
printf("Introduce el tamano de la tabla hash \n");
scanf("%d",&tamano);
printf("Factor del retardo\n");
scanf("%d",&nveces);
printf("Introduce el nombre del fichero\n");
scanf("%s",nombre);
ret=time_Hash(nombre,num_min,num_max,incr,tamano,hash_div,nveces);
if(ret==ERR) {
printf("Error en la funcion time_Hash\n");
return ERR;
}
printf("Fichero generado correctamente\n");
return OK;
}
Sin embargo al leer el codigo y ententer el algoritmo puedo decir que el metodo de busqueda es tipo Hash. En ella se crea una tabla utilizando una funcion de dispersion para ingresar los elementos, lo que permite que estos no puedan ser recorridos de forma secuencial. Los resultados que arrojarian son 2 posibles: ERR en caso de que exista un error en la funcion y OK en caso de que se genere correctamente.
Despues haber de limpiado el codigo lo mejor que pude remplazando los caracteres `` y ' ' por las comillas correctas " ademas de completar correctamente las lineas que estaba cortadas por saltos en linea no me fue posible correr el programa:
Codigo original copiado del PDF:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include ``ordena.h''
#include ``hash.h''
int main(int argc,char *argv[])
{
int num_min,num_max,incr,tamano,nveces; char nombre[256];
short ret;
printf(``Practica numero 3, apartado 2\n''); printf(``Realizada
por: Vuestros nombres\n''); printf(``grupo: Vuestro grupo\n''); printf(``introduce el numero ninimo de elementos a introducir
en la tabla\n''); scanf(``%d'',&num_min);
printf(``introduce el numero maximo de elementos a introducir
en la tabla\n''); scanf(``%d'',&num_max);
printf(``introduce el incremento\n''); scanf(``%d'',&incr);
printf(''Introduce el tamano de la tabla hash \n''); scanf(``%d'',&tamano);
printf(``Factor del retardo\n''); scanf(``%d'',&nveces);
printf(``Introduce el nombre del fichero\n''); scanf(``%s'',nombre); ret=time_Hash(nombre,num_min,num_max,incr,tamano,hash_div,n veces);
if(ret==ERR) {
printf("Error en la funcion time_Hash\n"); return ERR;
}
printf(``Fichero generado correctamente\n''); return OK;
}
Codigo limpio:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include "ordena.h"
#include "hash.h"
int main(int argc,char *argv[])
{
int num_min,num_max,incr,tamano,hash_div,nveces;
char nombre[256];
short ret;
printf("Practica numero 3, apartado 2\n");
printf("Realizada por: Vuestros nombres\n");
printf("grupo: Vuestro grupo\n");
printf("introduce el numero ninimo de elementos a introducir en la tabla\n");
scanf("%d",&num_min);
printf("introduce el numero maximo de elementos a introducir en la tabla\n");
scanf("%d",&num_max);
printf("introduce el incremento\n");
scanf("%d",&incr);
printf("Introduce el tamano de la tabla hash \n");
scanf("%d",&tamano);
printf("Factor del retardo\n");
scanf("%d",&nveces);
printf("Introduce el nombre del fichero\n");
scanf("%s",nombre);
ret=time_Hash(nombre,num_min,num_max,incr,tamano,hash_div,nveces);
if(ret==ERR) {
printf("Error en la funcion time_Hash\n");
return ERR;
}
printf("Fichero generado correctamente\n");
return OK;
}
Sin embargo al leer el codigo y ententer el algoritmo puedo decir que el metodo de busqueda es tipo Hash. En ella se crea una tabla utilizando una funcion de dispersion para ingresar los elementos, lo que permite que estos no puedan ser recorridos de forma secuencial. Los resultados que arrojarian son 2 posibles: ERR en caso de que exista un error en la funcion y OK en caso de que se genere correctamente.
Ejercicio 1.
1.- A continuación se muestra el código de implementación dev c++ ,de una búsqueda de la cual usted debe de indicar que búsqueda es (secuencial, binaria o hast) indicar que hace el código y que resultado arroja
#include <cstdlib>
#include <iostream>
#define max 100
using namespace std;
void ingresarArreglo(float A[max],int n)
{
int i;
for(i=0;i<n;i++)
{
cout<<" A["<<i+1<<"]=";
cin>>A[i];
}
cout<<endl;
}
void reportarVector(float V[max],int n)
{
int i;
for(i=0;i<n;i++)
{
cout<< V[i]<<"\t";
}
cout<<endl<<endl;
}
void ordenarSeleccion(float V[max],int n)
{
int i,j,k;
float temp;
for(i=0;i<n-1;i++)
{
k=i;
temp=V[i];
for(j=i+1;j<n;j++)
{
if(V[j]<temp)
{
k=j; temp=V[j];
}
}
V[k]=V[i] ;
V[i]=temp;
}
}
int busquedaBinaria(float V[max],int n ,int dato)
{
int mitad,izq,der; izq=0;
der=n-1;
while(izq<=der)
{mitad=(izq+der)/2
if(dato>V[mitad izq=mitad+1
else if(dato<V[mitad
der=mitad-1;
else return mitad;
}
return -1;
}
int main(int argc, char *argv[])
{
float A[max];
int n,p=0,dato;
int pos;
cout<<"ingrese numero de elementos :"; cin>>n;
ingresarArreglo(A,n); cout<<"vector ingresado"<<endl; reportarVector(A,n); ordenarSeleccion(A,n);
cout<<"el vector ordenado:"<<endl; reportarVector(A,n);
cout<<"ingrese numero a buscar:"; cin>>dato; pos=busquedaBinaria(A,n,dato);
{ if(pos ==-1)
cout<<"el dato no esta en el arreglo"<<endl;
else
cout<<"el dato se encontro en la posicion:"<<pos
+1<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
El tipo de busqueda de este codigo es Binaria y esto lo podemos ver porque es una busqueda con un arreglo ordenado a la vez que tiene un arreglo por seleccion, el cual muestra en pantalla el mensaje "el dato se encontro en la posicion:" junto a la posicion en la cual se encuentra el elemento buscado en primer lugar. Si el elemento no se encuentra entonces aparece en pantalla el mensaje "el dato no esta en el arreglo" concluyendo asi el algoritmo.
Suscribirse a:
Entradas (Atom)