Ниже приведены первые восемь элементов из шести числовых последовательностей:
Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21 Lucas: 1# 3, 4, 7, 11, 18, 29, 47 Pell: 1, 2, 5, 12, 29, 70, 169, 408 Triangular: 1, 3, 6, 10, 15, 21, 28, 36 Square: 1, 4, 9, 16, 25, 36, 49, 64 Pentagonal: 1, 5, 12, 22, 35, 51, 70, 92
Наша программа должна выводить на дисплей пары элементов из последовательности и позволить пользователю угадать следующий элемент. Если пользователь угадывает и желает продолжить, программа должна вывести на дисплей следующую пару элементов, затем третью, и так далее. Как мы можем это сделать?
Если следующая пара берется из той же последовательности, пользователь, разгадавший одну пару, угадает их все. Это не интересно. Так что будем брать следующую пару из другой числовой последовательности при каждом проходе основного цикла программы.
Теперь будем выводить на дисплей максимум шесть пар элементов за сессию: по одной паре из каждой из шести последовательностей. Мы постараемся сделать это так, чтобы при выводе на дисплей пары
элементов не знать, из какой числовой последовательности будет взята пара при следующем проходе цикла. Каждый проход должен иметь доступ к трем значениям: паре элементов и элементу, следующему за ней в последовательности.
Решение, которое мы обсудим в этом разделе, использует контейнерный тип, способный поддержать смежную последовательность целых значений, которые могут быть доступны не по имени, а по позиции в контейнере. Мы запомнили 18 значений в контейнере как подборку шести групп: первые два в группе представляют пару для вывода на дисплей, третий - следующий элемент в последовательности. При каждом проходе цикла мы добавляем три индексных значения, про¬ходя по шести группам по очереди.