Este algoritmo é uma simplificação do anterior, a ideia é garantir que o valor a procurar é sempre encontrado para, deste modo, não ser necessário estar sempre a testar o fim da tabela no ciclo enquanto. Para tal, é adicionado um elemento à tabela (a sentinela), e sempre que se pretende procurar um valor ele é colocado na sentinela. Temos, então,que redefinir o tipo Lista para:
= tab [MAX+1] de REAL;e o algoritmo para a lista de Reais é:
Suponha, agora, que se pretendem registar as classificações de um rally. Como à partida não se sabe quantos carros vão participar em cada prova, necessitamos de um estrutura de dados que nos permita registar um número variável de participantes. Vamos considerar a seguinte estrutura de dados:
em que CARROS é a tabela com as fichas dos carros (colocadas sequencialmente no início da tabela) e TOTAL indica quantos carros foram classificados (o números de elementos da tabela)
.
Para escrevermos um algoritmo que procure a ficha de um dado piloto, utilizando procura linear com sentinela, teremos que efectuar no algoritmo 4.3 as seguintes adaptações:
Rally - a procura vai ser efectuada no tipo Rally.
STR - vamos efectuar a procura pelo nome do piloto: tipo STR.
list.CARROS[i].PILOTO - list.CARROS é a tabela, o nome do piloto que está no índice i da tabela é list.CARROS[i].PILOTO.
list.TOTAL - neste caso o último elemento útil da tabela é dado por list.TOTAL.
list.CARROS[list.TOTAL+1].PILOTO
elem; - por aplicação das duas substituições anteriores.
O algoritmo será então: