Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Первые шаги в программировании: основы, Си, Objective-c


1.25 - Практикум.

Цикл с предусловием - while. Подробный разбор работы

 В разделе основы программирования мы рассматривали с вами занятие "1.25 Цикл с предусловием - while. Числа Фибоначчи", в частности на примере расчета чисел Фибоначчи была рассмотрена работа цикла while.

Данные числа представляют собой сумму двух предыдущих чисел...
Вот ряд этих чисел:
1 - 1 - 2 - 3 - 5 - 8 - 13 - 21 - 34... и т.д.

Напомню вам код для данного расчета:


fib_prev = 0
fib_cur = 1
while fib_cur < 100:
	print(fib_cur , end = ', ')
	fib_sum = fib_prev + fib_cur
	fib_prev = fib_cur
	fib_cur  = fib_sum


Если с пониманием логики его работы имеются проблемы - давайте подробным образом разберем его работу.
Сделаем мы это на примере нескольких циклов данного кода.


Пошаговый разбор работы цикла While

Давайте подробно посмотрим как происходит работа данного цикла виток за витком (пройдем несколько витков для понимания логики работы):

Начало цикла, ПЕРВЫЙ проход (на печать выводится 1)

Исходные данные:
fib_prev = 0
fib_cur = 1


3 строка
while fib_cur < 100:

Осуществляется проверка истинности условия, что значение переменной fib_cur < 100

4 строка
Команда вывести на печать значение переменной fib_cur в одну строку через запятую.

5 строка
fib_sum = fib_prev + fib_cur

После того, как на экран выведется значение переменной fib_cur, которое равно 1, осуществляем операцию сложения предыдущего числа fib_prev и текущего числа fib_cur и их результат присваиваем переменной fib_sum
fib_prev + fib_cur, т.е. 0 + 1 = 1
Эта переменная является промежуточным хранением значения суммы.

6 строка
fib_prev = fib_cur

Переменной fib_prev присвоить значение переменной fib_cur.

После этого шага в переменной fib_prev находится уже 1, а не 0 как в самом начале цикла.


7 строка
fib_cur = fib_sum
Переменной fib_cur присвоить значение переменной fib_sum после выполнения операции сложения. После этого шага в переменной fib_cur записывается 1, поскольку:
fib_prev + fib_cur, т.е. 0 + 1 = 1

Результат ПЕРВОГО витка цикла while для расчета числа Фибоначчи:
По окончании первого витка цикла:
В переменной fib_prev находится уже 1, а не 0 как в самом начале цикла.
В переменной fib_cur также находится 1
Эти значения становятся исходными данными для начала ВТОРОГО витка цикла


Продолжение на сайте www.tryobj.com

 


В избранное