Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Что такое рекурсия?




Оператор continue.

Оператор цикла do — while (с предусловием | постусловием).

Конструкция оператора цикла while с предусловием:

Синтаксис:

while (условие){ //тело цикла }

Цикл while с предусловием, в принципе, действует, так: пока условие истинно (TRUE), то будет выполняться тело цикла.

Перейдем к следующему, хотя это тот же цикл, только тут условие будет выполняться после выполнения тела структуры. Поэтому будем его называть оператор цикла do - while с постусловием. Вот синтаксис:

do { //тело }

while (условие);

Тут не важно, будет ли условие истинно (TRUE) или ложно (FALSE), но тело оператора цикла хоть раз да выполнится. Это иногда очень важно.

Пример:

1) Введите с клавиатуры число, если оно меньше 5, то выведите его и с помощью инкрементации все числа, пока значение введенного числа не будет равно 5. Если же число будет сразу больше 5, то просто выведите его.

int chislo;

scanf("%d", &chislo);

do { printf ("%d",chislo++); }

while (chislo < 5);

Оператор continue просто прекращает текущую итерацию.

Пример:

1) Вводим числа с клавиатуры, если число больше нуля, то выводим на экран сообщение: Число положительное, если меньше, то - Число отрицательное. Если, вдруг, оказывается, что мы ввели 0, то продолжаем дальше вводить значения. Условием выхода из цикла будет значение -13.

#include <conio.h>

#include <stdio.h>

int main()

{ int chislo;

for (;;){ scanf ("%d", &chislo);

if (chislo == -13)

break;

if (chislo == 0)

continue;

if (chislo > 0)

printf ("Число положительное");

if (chislo < 0)

printf ("Число отрицательное");

}

getch();

return 0;

}

Обратите внимание, что оператор цикла for является бесконечным, так как ни содержит условия выхода. Для нашего задания это как раз и необходимо, так как нам надо вводить числа заранее неопределенное количество раз.

Во всех операторах if нет фигурных скобок, так как в их теле всего-навсего размещен один оператор.

Первым условием в теле оператора цикла for идет именно условие выхода, тело которого содержит оператор continue. Так как оно нужно для выхода из программы. Если мы его будем использовать в конце тела цикла, то сначала нам выведут сообщение, что это число отрицательное (но оно нам не надо, так как это служебное число для выхода).

Далее идет условие на проверку на равенство нулю. Если оно будет истинным, то сразу произойдет окончание итерации и это сэкономит ресурсы программы на проверку остальных ненужных условий.

Циклические алгоритмы можно реализовать еще одним способом- рекурсией.

Так что такое рекурсия? Рекурсия - это вид функции, которая вызывает саму себя.

Пример рекурсии:

#include <conio.h>

#include <stdio.h>

int sum (int temp){ int i=0;

if (temp == 0) return temp;

else return temp+sum(temp-1);

}

int main()

{ printf ("%d", sum(5));

getch();

return 0;

}

Этот пример рекурсивной функции (рекурсии) выводит сумму чисел до введенной в аргументе. Суть рекурсивной функции (рекурсии) тут состоит в том, что пока наше число не равно нулю, мы будем накапливать полученное число в аргументе и передавать в эту же функцию число, но на единицу меньшее. Т.е. на первом шаге мы в накоплении оставим 5, а передадим 4, далее мы к 5 прибавляем 4, а передаем 3. Вот как действует наша рекурсия.




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 278; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.