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

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

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

• Инструкция за присвояване, празна иструкция, блок


Програмата представлява последователност от инструкции, реализиращи алгоритъма на решаване на задачата. Инструкциите са предписания за извършване на определени действия. Всяка инструкция завършва с точка и запетая /;/. Празна е инструкцията, при която не се извършва нищо. Такава инструкция се отбелязва само с точка и запетая /;/. Всяка последователност от инструкции, заградена в големите скоби { и } представлява блок:

// блок
{
инструкция1;
инструкция2;
...
}
След блока не се записва ; /точка и запетая/. Блокът има смисъл на една съставна инструкция.

Инструкцията за присвояване се записва като действие присвояване, следвано от знака ; /точка и запетая/:
променлива = операнд ;

Действието присвояване беше разгледано подробно в т.6.

• Инструкция if-else

Предназначение: Служи за избор и изпълнение на един от два взаимно изключващи се варианта.

Синтаксис:

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

if и else са ключови думи. Инструкциите 1 и 2 могат да бъдат произволни инструкции от езика, но само по една инструкция. При необходимост, всяка от двете инструкциите може да бъде оформена като блок:
if (израз)
{
// блок1
}
else
{
// блок2
}
Изразът задължително се загражда в кръгли скоби. Трябва да се отбележи, че при всички инструкции в езика С/С++, изпълнението на които зависи от стойността на израз, изразът се загражда в кръгли скоби.

Изпълнение: Изчислява се изразът. Ако стойността на израза е различна от нула се изпълнява инструкция1 /или блок1/, ако стойността на израза е равна на 0, се изпълнява инструкция2 /или блок2/.

Кратка форма на инструкцията:
if ( израз ) инструкция1;

if ( израз )
{
//блок1
}
При нея липсва частта else. Изпълнението е аналогично. Ако изразът е различен от нула се изпълнява инструкция1 /или блок1/ . Ако изразът е равен на нула направо се преминава към следващата след if инструкция.

• Вложени алтернативни структури

Ако някоя от инструкциите, включени в състава на if – else е отново инструкция if-else, се получава вложена алтернативна структура. Вложените алтернативни структури могат да имат произволна форма.
Пример:
if ( а !=0) if (b = = 0) c = 10; else c = 20;

От този запис не е ясно дали алтернативата след else / с = 20; / зависи от стойността на израза ( а !=0) или от стойността на израза (b = = 0) . Правилото при изпълнението на вложените алтернативни конструкции е следното: инструкцията след всеки else оператор се изпълнява в зависимост от стойността на израза след най-близкия до него предхождащ го if оператор. В този пример, при условие, че а е различно от 0, c приема стойност 10, ако b е равно на 0 и стойност 20, ако b е различно от 0.

• Инструкция switch

Предназначение: Служи за избор на един от няколко възможни варианта.
Синтаксис:

switch (израз)
{
case к1 : последователност1 от инструкции; break;
case к2 : последователност2 от инструкции; break;
...
case кN : последователностN от инструкции; break;
default : последователностN+1 от инструкции;
}

switch – ключова дума / ключ/;
(израз ) – израз от целочислен тип / int, char, изброяване, bool/;
к1, к2, ..., кN – константни изрази от типа на израз. Трябва да бъдат различни;
case - ключова дума / случай/;
default – ключова дума / по подразбиране/.

Изпълнение: Изчислява се стойността на израза. Последователно се проверява дали стойността на израза съвпада със стойността на константните изрази k1, k2, kN. В случай на съвпадение се изпълнява съответната последователност от инструкции. Инструкцията break предизвиква прекъсване изпълнението на инструкцията switch, при което се преминава към следващата в програмата инструкция. Вариантът default не е задължителен. Ако е включен, той се изпълнява при условие, че стойността на израза не съвпада с нито една от константите k1, k2, ..., kN. Възможно е също няколко варианта да изпълняват едни и същи действия.
 
 
 
 
преди план следва