Funcion que busca un valor en un vector

De Ejercicios

Contenido

Enunciado

Diseñar una función que tenga como entradas un vector, su tamaño y un valor que debe buscarse en ese vector. La función debe devolver verdadero si el valor se encuentra en el vector, y un falso si la búsqueda es infructuosa. Ni el vector ni el valor deben ser alterados.

Soluciones

Diseño en Pseudocódigo

 FUNCION  Buscar(v:ARRAY(1..1000) DE REAL; n:ENTERO; x:REAL): LÓGICO
 ENTRADAS:
    v: ARRAY(1..1000) DE REAL  ''(*Vector donde se realiza la búsqueda*)''
    n: ENTERO                  ''(*Número de elementos del vector*)''
    x: REAL                    ''(*Valor que queremos buscar dentro del vector*)''
 SALIDAS:
    enc: LOGICO    ''(*VERDADERO si el valor de x está en el array, y FALSO en caso contrario*)'' 
 VARIABLES:
    i:ENTERO
 INICIO
    ''(*Recorrer el array hasta encontrar el valor o llegar al final*)''
    i <-- 1
    MIENTRAS x<>v(i) Y i<=n   HACER
       i <-- i+1
    FIN_MIENTRAS
 
    ''(*Comprobar si se ha encontrado el valor*)''
    SI v(i)=x  ENTONCES
       enc <-- VERDADERO
    SI_NO
       enc <-- FALSO
    FIN_SI
 
    ''(*Devolver el resultado*)''
    DEVOLVER (enc)
 FIN

Programa en C

 #include <stdio.h>
 #include <stdlib.h>
 
 int Buscar(float v[1001], int n, float x){
    /*------
    ENTRADAS:
       v: Vector donde se realiza la búsqueda
       n: Números de elementos del vector
       x: Valor que queremos buscar dentro del vector
    --------*/
    //SALIDAS:
    bool enc;  //VERDADERO  si el valor x está en el array, y FALSO en caso contrario
    //VARIABLES: 
    int i;
 
    /*Recorrer el array hasta encontrar el valor o llegar al final.*/
    i=1;
    while (x!=v[i] && i<=n){
       i=i+1;
    }
 
    /*Comprobar si se ha encontrado el valor*/
    if (v[i]==x){
       enc=true;
    }else{
       enc=false;
    }
 
    /*Devolver el resultado*/
    return( enc );
}
Tipos de soluciones