Programming Taskbook 0


Download 1.62 Mb.
Pdf ko'rish
bet26/71
Sana21.06.2023
Hajmi1.62 Mb.
#1644761
TuriУчебное пособие
1   ...   22   23   24   25   26   27   28   29   ...   71
Bog'liq
Abramyan-Pascal2016-1

Замечание. Казалось бы, программа, которая печатает или находит 
сумму быстро растущих элементов последовательности скоро должна ава-
рийно завершиться из-за ошибки, связанной с переполнением. Однако в 
нашем случае переполнения не происходит, так как в языке 
PascalABC.NET и других языках платформы .NET тип вещественных чи-
сел реализован таким образом, что для него переполнение невозможно. 
Если в результате очередной операции с вещественными числами будет 
получено значение, превышающее максимально допустимое (это значение
равно 1.79769313486232E+308; его можно получить с помощью свойства
real.MaxValue), то в качестве результата будет возвращено особое значение 
real.PositiveInfinity, отображаемое на экране как «бесконечность». В этом лег-
ко убедиться, запустив для нашей последовательности цикл foreach, печа-
тающий ее элементы: очень скоро все выводимые элементы будут иметь 
значение «бесконечность». 
Итак, несмотря на то что бесконечную последовательность Фибоначчи 
можно создать, попытка перебора ее элементов приводит к зацикливанию. 
Однако это не означает, что созданная нами последовательность является 
бесполезной. Дело в том, что среди стандартных запросов, которые можно 
применять к последовательностям, есть группа запросов, позволяющих из-


Глава 3. Массивы и последовательности 
47 
влечь из последовательности часть ее элементов. Простейшим из таких 
запросов является запрос Take(n), который возвращает последовательность, 
состоящую из первых n элементов исходной последовательности. Наличие 
подобных запросов делает бесконечные последовательности не только 
возможным, но и удобным в ряде ситуаций средством. Например, мы мо-
жем «заранее» создать некоторую бесконечную последовательность, а за-
тем получать и обрабатывать ее различные начальные фрагменты. В част-
ности, после создания нашей последовательности Фибоначчи мы можем 
вывести ее первые 15 членов, выполнив следующий оператор: 
fib.Take(15).Print; 
В результате на экране будет выведен следующий набор чисел: 

Download 1.62 Mb.

Do'stlaringiz bilan baham:
1   ...   22   23   24   25   26   27   28   29   ...   71




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling