Программа «зависнет»


Download 49.89 Kb.
bet1/11
Sana18.06.2023
Hajmi49.89 Kb.
#1593438
TuriПрограмма
  1   2   3   4   5   6   7   8   9   10   11
Bog'liq
osnova tozasi javobla1



1. Рекурсивные и перезагружаемые методы
Рекурсия – это разработка метода таким образом, чтобы он вызывал сам себя. Рекурсивные вызовы метода должны завершаться при достижении некоторого условия. В противном случае произойдет переполнение памяти и программа «зависнет» не достигнув вычисления необходимого результата. Рекурсивный метод – это метод, который вызывает сам себя. В рекурсивном методе помещается вызов этого же метода по его имени. Последовательный процесс рекурсивных вызовов метода подобен циклическому процессу. Если метод вызывает сам себя, то в памяти происходят следующие процессы: в системном стеке выделяется память для новых локальных переменных и параметров; программный код метода выполняется сначала с новыми локальными переменными и параметрами. Эти локальные переменные и параметры получают новые начальные значения. Сам программный код метода не копируется; при возврате из рекурсивного метода (оператор return) происходит восстановление старых локальных переменных и параметров а также их значений в точке вызова этого метода. В языке Си шарп вы можете использовать одно и то же имя двумя или более методами одного и того же класса. Необходимое условие — их параметры объявляются по-разному. Тогда говорят, что методы перегружаются, а сам процесс называется перегрузкой методов. Перегрузка методов относится к одному из способов реализации полиморфизма в C#. Для перегрузки метода достаточно объявить разные его варианты, а об остальном позаботится компилятор. Но при этом необходимо соблюсти следующее важное условие: тип или число параметров у каждого метода должны быть разными. Недостаточно, чтобы два метода отличались только типами возвращаемых значений. Они должны также отличаться типами или числом своих параметров. Разумеется, перегружаемые методы могут отличаться и типами возвращаемых значений. Когда вызывается перегружаемый метод, то выполняется тот его вариант, параметры которого соответствуют (по типу и числу) передаваемым аргументам.


2. Определение рекурсивных методов
Рекурсивные определения
Натуральные числа: 0 – натуральное число Если N – натуральное число, то число N+1 также натуральное Факториал числа: 0!=1 N!=(N-1)!*N, для любого N>0; Рекурсивное определение позволяет определить бесконечное множество объектов с помощью конечного высказывания С помощью конечной рекурсивной программы можно описать бесконечное вычисление, причем программа не будет содержать явных повторений

Download 49.89 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7   8   9   10   11




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