упражнение №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";

}

 

 

Text Box: да,Text Box: да,Text Box: да,Text Box: да,Text Box: да,Text Box: да,Text Box: да,Text Box: да
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


            à   Ä   Ç