25.07.2017 Views

Intro-CSharp-Book-v2015

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

366 Въведение в програмирането със C#<br />

}<br />

}<br />

}<br />

static void InitLoops()<br />

{<br />

for (int i = 0; i < numberOfLoops; i++)<br />

{<br />

loops[i] = 1;<br />

}<br />

}<br />

}<br />

static void PrintLoops()<br />

{<br />

for (int i = 0; i < numberOfLoops; i++)<br />

{<br />

Console.Write("{0} ", loops[i]);<br />

}<br />

Console.WriteLine();<br />

}<br />

Методите Main() и PrintLoops() са същите, както в реализацията на<br />

рекурсивното решение.<br />

Различен е методът NestedLoops(), който сега реализира алгоритъма за<br />

итеративно решаване на проблема и поради това не приема параметър,<br />

както в рекурсивния вариант.<br />

В самото начало на този метод извикваме метода InitLoops(), който обхожда<br />

елементите на масива и поставя на всички позиции единици.<br />

Стъпките на алгоритъма реализираме в безкраен цикъл, от който ще излезем<br />

в подходящ момент, прекратявайки изпълнението на метода чрез оператора<br />

return.<br />

Интересен е начинът, по който реализираме стъпка 3 от алгоритъма. Проверката<br />

за стойности по-големи от К, заменянето им с единица и увеличаването<br />

на стойността на предходна позиция (след което правим същата<br />

проверка и за нея), реализираме с помощта на един while цикъл, в който<br />

влизаме само, ако стойността е по-голяма от К.<br />

За целта първо заменяме стойността на текущата позиция с единица.<br />

След това текуща става позицията преди нея. После увеличаваме<br />

стойността на новата позиция с единица и се връщаме в началото на<br />

цикъла. Тези действия продължават, докато стойността на текуща позиция<br />

не се окаже по-малка или равна на К (променливата numberOfIterations<br />

съдържа стойността на К), при което излизаме от цикъла.<br />

В момента, когато на първа позиция стойността стане по-голяма от К<br />

(това е моментът, когато трябва да приключим изпълнението), на нейно

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!