How to find the smallest letter in a sorted array that is larger than a given letter in Pascal

1 Answer

0 votes
program FindNextLetter;

const
  size = 4;
  letters: array[1..size] of char = ('c', 'e', 'k', 'm'); // Sorted list of letters

function FindSmallestLetterGreaterThanTarget(given_letter: char): char;
var
  left, right, mid: integer;
  result: char;
begin
  left := 1;
  right := size;
  result := letters[1]; // Default to the first letter 

  while left <= right do
  begin
    mid := left + (right - left) div 2;

    if letters[mid] > given_letter then
    begin
      result := letters[mid];
      right := mid - 1; // Narrow down to the left half
    end
    else
      left := mid + 1; // Narrow down to the right half
  end;

  FindSmallestLetterGreaterThanTarget := result;
end;

var
  given_letter, result: char;

begin
  given_letter := 'd';

  result := FindSmallestLetterGreaterThanTarget(given_letter);

  writeln('The smallest letter greater than ''', given_letter, ''' is: ', result);
end.



(*
run:

The smallest letter greater than 'd' is: e

*)

 



answered Sep 20, 2025 by avibootz
edited Sep 21, 2025 by avibootz
...