Лабораторная работа 4 - Учить. Выучить наизусть общие сведения
Скачать 84.5 Kb.
|
ВЫУЧИТЬ НАИЗУСТЬ 5.2. Общие сведения Для реализации циклических вычислительных процессов в языках программирования предусмотрены операторы цикла, которые позволяют многократно выполнить необходимые действия, предусмотренные алгоритмом решаемой задачи. В любом операторе цикла можно выделить две части: заголовок цикла и тело цикла. Операторы, которые задают повторяющиеся действия, располагаются обычно в теле цикла. Заголовок цикла обычно содержит выражение-условие, вычисление и проверка которого на каждой итерации цикла позволяет управлять количеством повторений (итераций) цикла. Телом цикла может быть либо отдельный (в том числе пустой) оператор, либо составной оператор или блок (заключаются в фигурные скобки). Выражение-условие – это скалярное выражение (чаще всего отношение или арифметическое выражение), определяющее условие продолжения выполнения операций (если его значение не равно нулю). Прекращение выполнения цикла возможно в следующих двух случаях:
Поэтому, чтобы не произошло зацикливания (бесконечного повторения цикла), необходимо либо изменять в процессе вычислений значения переменных, входящих в состав выражения-условия, либо поместить в теле цикла проверку условия выхода из цикла совместно с каким-либо оператором передачи управления. В языке С++ определены три вида оператора цикла:
Все эти три вида цикла взаимозаменяемы, и выбор решения, какой из них предпочесть при программной реализации конкретного алгоритма, определяется характером решаемой задачи. 5.2.1. Цикл с предусловием Синтаксис цикла с предусловием: while (выражение-условие) тело_цикла Данный оператор работает следующим образом. При входе в цикл вычисляется выражение-условие. Если его значение отлично от нуля, то выполняется тело_цикла. Затем вычисление выражения-условия и выполнение операторов тела_цикла повторяются последовательно, пока значение выражения-условия не станет равным 0. Так как выражение-условие проверяется перед исполнением цикла, то такой оператор называют оператором цикла с предусловием. Если еще до первого исполнения тела_цикла выражение-условие окажется ложным, то тело_цикла не будет выполнено ни разу. С помощью оператора while можно организовать бесконечный цикл. Выход из такого цикла следует выполнить с помощью оператора break. В общем случае бесконечный цикл имеет вид: while (1) { // анализ некоторого условия break; } Пример 5.1. //Применение цикла while для вывода 10 случайных чисел //из диапазона от 0 до 100 #include #include #include #include using namespace std; void main() { int i; srand((unsigned)time(0)); // инициализация датчика случайных чисел cout<<"\n 10 случайных чисел от 0 до 100 \n"; i=1; // переменная, управляющая циклом,получает начальное значение. while(i <= 10) // проверка условия исполнения цикла { cout< i++; // изменение переменной, управляющей циклом, на 1 } getch(); } Цикл завершится, когда значение переменной i станет равным 11. 5.2.2. Цикл с постусловием Синтаксис цикла с постусловием: do тело_цикла while (выражение-условие); Цикл с постусловием работает так. Сначала выполняется тело_цикла, а затем вычисляется выражение-условие, если оно истинно, то тело_цикла выполняется вновь. Выход из цикла происходит, когда выражение-условие станет ложным. Поскольку выражение проверяется уже после исполнения тела_цикла, то такой цикл называют оператором цикла с постусловием. Тело цикла будет выполнено хотя бы один раз даже при заведомо ложном значении выражения-условия. Пример 5.2. // Программа, выполняющая вывод всех цифр числа в обратном порядке #include #include using namespace std; void main (void) { int chislo ,ost,res; cout<<"Введите число"; cin>>chislo; cout<<"Цифры числа в обратном порядке:\n"; do { ost=chislo%10; //выделяем последнюю цифру числа res= chislo/10; // получаем число без последней цифры cout< chislo=res; }while (res >0); // выполнять цикл, пока результат деления больше нуля getch(); } Пример 5.3. //Программа выбирает случайное число то 1 до 100 //и предлагает его угадать #include #include #include #include using namespace std; void main() {int s,x; int n=0; //счетчик числа попыток srand((unsigned)time(0)); // инициализация датчика случайных чисел s=rand()%11; //переменная s получает значение случайного числа // в диапазоне от 1 до 10 do{ cout<<"\nВведите число от 1 до 10: "; cin>>x; n++; //увеличение счетчика попыток на 1 if(s else if(s>x) cout<<" >Загаданное число больше\n"; }while(s-x); // выполнять, пока разность между числом программы // и числом, введенным пользователем, не равна нулю cout<<"Вы угадали число!.\n Вы затратили "< getch(); } |