//----------------------------------------------------------------------
//  IMPLEMENTATION FILE (linsrch.cpp)
//  This module exports a single Lookup function to search
//  an integer vector for a particular value.
//----------------------------------------------------------------------
#include "linsrch.h"

//  Algorithm: a linear search

void Lookup( /* in */  const int vec[],
             /* in */  int       vSize,
             /* in */  int       key,
             /* out */ Boolean&  found,
             /* out */ int&      loc   )

    // PRE:  vSize >= 0  &&  Assigned(vec[0..vSize-1])
    //    && Assigned(key)
    // POST: (found) --> vec[loc] == key
    //    && (NOT found) --> No vec[0..vSize-1] == key
    //                      && loc is undefined
{
    loc = 0;
    while (loc < vSize && vec[loc] != key)  // INV (prior to test):
                                            //     vec[0..loc-1] != key
                                            //  && loc <= vSize
        loc++;
    found = (loc < vSize);
}


