Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Telematico

Páginas: [1]
1
Buenas Noches

Gracias por tu respuesta, pero si es recursiva, y los datos son solo tres!...
pero no logro dar con la linea de código que me falta o que debo corregir...

Saludos

2
Buenas Noches, actualmente estoy intentando "autoaprender" lógica de programación y con ella lenguaje C, en este momento desarrollo una tarea de búsqueda binaria recursiva, pero por mas vueltas que le doy al algoritmo no doy con la respuesta que requiero....Alguien puede auxiliarme...

Saludos

Acá el código:..

Algoritmo recursivo de busqueda  binaria

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#define dimension 3
main( )
{
int indice,j,valor;
int pos_menor,alto,central,bajo;
float arreglo[dimension];
float menor,AUX;

/*Leer Vector*/
for(indice=0;indice<dimension;indice++)
{
printf("arreglo[%i]= ",indice);//Ingresa los valores para el arreglo//
scanf("%f",&arreglo[indice]);
}

//Orden por Selección//
for(indice=0;indice<dimension;indice++)
{
menor=arreglo[indice];//Asignamos el contenido del arreglo a la variable menor//
pos_menor=indice;//Asignamos el valor del indice del arreglo a la variable pos_menor/
for(j=indice+1;j<dimension;j++)//Ciclo iterativo para ordenar por selección//
 {
 if(menor>arreglo[j])// Sentencia if para evaluar que la variable menor sea mayor ha arreglo//
  {
   menor=arreglo[j];//Se asigna el contenido del arreglo en la posición j, a la variable menor//
   pos_menor=j;//Asignamos el contenido o valor de j a la variable pos_menor//
  }
}
//Intecambiar//
AUX=arreglo[indice];//Se usa para almacenar el contenido del arreglo, en la posicion indicada por el indice//
arreglo[indice]=arreglo[pos_menor];//Igualamos el contenido de los indices del arreglo con los de arreglo pos_menor//
arreglo[pos_menor]=AUX;//Se asignan a la variable auxiliar los valores anteriores//
}
//Imprimir o mostrar el Vector en orden ascendente//
for(indice=0;indice<dimension;indice++)
{
printf("arreglo[%i]=%f\n",indice,arreglo[indice]); //Muestra el vector ordenado, en orden ascendente, %i indica numeros enteros//
}
printf("\n Que valor desea buscar? ");//indicamos al usuario que diga cual valor desea buscar//
scanf("%f",&valor);//capturamos el valor anterior anterior en la variable valor//
bajo=0;//asignamos el valor 0  a la variable bajo//
alto=dimension-1;//restamos 1 a la variable dimension, el resultado lo asignamos a la variable alto//
central=(bajo+alto)/2;//sumanos los contenidos de alto y bajo lo dividimos entre 2, el resultado lo asignamos a la variable central//
//Busqueda Binaria//
while ((bajo<=alto)&&(arreglo[bajo]!=valor))//Evaluamos que el valor de la variable bajo sea menor o igual al de alto y que el valor del arreglo en central sea diferente al valor que le usuario esta buscando//
{
if(valor<arreglo[central])//Verificamos si el valor introducido por el usuario, es menor al de la variable en central//
{
}
else
{
bajo=central+1;
central=(bajo+alto)/2;
}
if(valor = arreglo[central])
{
printf("El valor se encuentra en la posicion:%i",arreglo[central],valor);
}
else
{
printf("El valor no se encuentra");
}
getch();
system("PAUSE");
return 0;
}
}

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".