упражнение
№5
Оператори
за
прекъсване
на текущата
итерация и за
прекъсване
на цикъл
С++ предлага оператора continue за прекъсване на текущата итерация.
С++ предлага оператора break за прекъсване на цикъла. При достигане на оператора break изпълнението на цикъла се прекъсва и управлението се предава на първият оператор след цикъла.
Операторите continue и break могат да се използват с всички оператори за цикъл.
Задача: Да се
напише
програма,
която да
преброява колко
пъти се
срещат
цифрите от 1
до 5 във въвеждано
от
клавиатурата
произволно
дълго число.
За край на
въвеждането
се счита
натискане на
клавиша Enter.
Решение
Тази задача наподобява зад.4 от точка 2 на същата глава. Тук обаче се броят цифри. В тялото на цикъла са правят две проверки. В случай, че е натиснат клавиша Enter се изпълнява оператора break и се напуска цикъла. В случай, че избраният символ не принадлежи на преброяваните цифри се изпълнява оператора continue и се прекратява изпълнението на текущата итерация, проверява се дали е изпълнено условието за изпълнение на цикъла и се преминава към следващата итерация. Блоковата схема на алгоритъма е показана на фигурата
Интересното
в тази задача
е
дефинирането
на макроса Enter (#define Enter 13). #define е
директива на
предпроцесора.
При компилиране
програмата
първо се
подава на
предпроцесора,
който
включва
всички
изброени след
директивите #include заглавни
файлове към
ткущия файл и
замества
макросите с
техните
стойности
навсякъде,
където те се
срещат в
програмата.
След което
подава
разширения
файл на
компилатора,
за а го
преведе на машинен
език, т.н.
обектен код.
Свързващата
програма (Linker)
свързва
обектния код
с всички
външни
кодове и
създава
изпълнимия код
на
програмата (exe).
Другият
момент,
заслужаващ
внимание е
работата със
символи в
оператора if(Ch<'1' || Ch>'5') . Тук се
използва
факта, че в ASCII
таблицата
цифрите са
разположени
последователно
и
следователно
имат
последователни
кодове. Кодът
на цифрата 1 е 49,
на цифрата 2-50 ,
на цифрата 3-51,
на цифрата 4-52, на
цифрата 5-53.
#include <iostream.h>
#include <conio.h>
#define Enter 13
void main(void)
{
int
Br1,Br2,Br3,Br4,Br5;
char Ch;
Br1=Br2=Br3=Br4=Br5=0;
cout<<"
Въведете
число. За
край на
въвеждането
натиснете Enter. \n";
do{
Ch=getche();
if(Ch==Enter) break;
if(Ch<'1' ||
Ch>'5') continue;
switch(Ch)
{
case '1':
Br1++;
break;
case '2':
Br2++;
break;
case '3':
Br3++;
break;
case '4':
Br4++;
break;
case '5':
Br5++;
}
} while (Ch!=Enter);
cout<<"\n
Броят на
цифрите 1 е
"<<Br1<<"\n";
cout<<"
Броят на
цифрите 2 е
"<<Br2<<"\n";
cout<<"
Броят на
цифрите 3 е
"<<Br3<<"\n";
cout<<"
Броят на
цифрите 4 е
"<<Br4<<"\n";
cout<<"
Броят на
цифрите 5 е
"<<Br5<<"\n";
}

![]()