7. Основни структури за управление на изчислителния процес

• Инструкция за присвояване, празна иструкция, блок
• Инструкция if-else
• Вложени алтернативни структури
• Инструкция switch
• Примери и задачи с инструкциите if- else и switch
• Цикъл, елементи на цикъла
• Инструкция while. Примери и задачи с инструкция while
• Инструкция do-while. Примери и задачи с инструкция do-while
• Инструкция for. Примери и задачи инструкция for
• Вложени циклични структури. Примери и задачи

преди план следва
 
 

• Инструкция за цикъл for


Предназначение: Реализира цикъл с предусловие.

Синтаксис:

for (израз1 ; израз2 ; израз3 )
инструкция1;

for – ключовa думa /за/.

Израз1 задава началната стойност на параметъра на цикъла.

Примери за инициализация на параметъра i:
- чрез присвояване: i = 0
- чрез дефиниране и присвояване int i =1
- чрез дефиниране и присвояване на няколко променливи, например int i = 0, S = 0
- чрез въвеждане на стойност на променлива, например cin>>i.

Израз2 задава прекъсващото условие, например: i < = 10.

Израз3 задава актуализацията на параметъра на цикъла, например: i = i+1 или i++.

Трите израза се отделят с точка и запетая и се заграждат в кръгли скоби.
Инструкция1 задава тялото на цикъла. Тя може да се замени с блок.

Изпълнение:
1. Извършва се инициализацията /израз1/;
2. Изчислява се прекъсващото условие / израз2/. Ако израз2 е равен на 0 , се излиза от цикъла. Ако израз2 е различен от 0, се изпълнява тялото на цикъла /инструкция1 или блока /;
3. Извършва се актуализацията на параметъра на цикъла /израз3/;
4. Преминава се към т. 2.

Пример: Да се изчисли сумата на числата от 1 до 10:



Възможно е инструкцията for да не съдържа нито една инструкция в тялото си. Тогава се записва задължително празна инструкция:
// намира сумата на числата от 1 до 10
for( int i = 1, Sum = 0; i<= 10; Sum+=i, i++)
; // празна инструкция

Възможно е също и трите израза в заглавието на for да липсват. Точките и запетайките се записват задължително:
for( ; ; ) инструкция1;

Инициализацията може да се изнесе преди for:
int i = 0, Sum = 0;
for( ; i< =5; i++)
Sum +=i;

В случай, че липсва прекъсващото условие, се приема, че то е различно от 0. Излизането от цикъла в този случай става принудително:
for(int i = 0, Sum = 0; ; i++)
{
Sum += i;
if(i= =5) break;
}

Актуализацията може да се зададе и в тялото на цикъла:
for(int i = 0, Sum = 0; i < = 5 ; )
{
Sum += i;
i = i+1; // актуализация
}

Параметърът на цикъла при инструкцията for трябва да бъде променлива от скаларен тип /int, float, double, char, bool, изброяване/. Следващият код извежда кодовете ASCII на символите ‘A’ до ‘Z’:

for( char letter = 'A'; letter < = 'Z'; letter++)
cout << " код ASCII на " << letter << " : " << (int)letter << endl;
 
 
 
 
преди план следва