Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 5 лет назад пользователемRonnie Bonnie
1 Операторы языка с++
2 Операторы в языке C++ предназначены для описания действий. Любой оператор может быть помечен меткой. Операторы отделяются друг от друга точкой с запятой. В теории программирования доказано, что программу для решения задачи любой сложности можно составить только из трех структур [4]: 1.Линейная. 2.Разветвляющаяся. 3.Циклическая. Эти структуры называются базовыми конструкциями структурного программирования. Линейной называется конструкция, представляющая собой последовательное соединение двух или более операторов. Ветвление – задает выполнение одного из двух операторов, в зависимости от выполнения какого либо условия. Цикл – задает многократное выполнение оператора.
3 Отображение базовых конструкций на блок-схеме Следование ВетвлениеЦикл Целью использования базовых конструкций является получение программы простой структуры. Такую программу легко читать, отлаживать и при необходимости вносить в нее изменения. Структурное программирование также называют программированием без goto, т. к. частое использование операторов перехода затрудняет понимание логики работы программы. Но иногда встречаются ситуации, в которых применение операторов перехода, наоборот, упрощает структуру программы. Операторы управления работой программы называют управляющими конструкциями программы. К ним относят: 1)составные операторы; 2)операторы выбора; 3)операторы циклов; 4)операторы передачи управления.
4 Составные операторы К составным операторам относят: 1) собственно составные операторы; 2) блоки. В обоих случаях это последовательность операторов, заключенная В фигурные скобки. Блок отличается от составного оператора наличием определений в теле блока. Пример 1. Составной оператор: { n++; summa+=n; } Пример 2. Блок: { int n=0; n++; summa+=n; } Отличием примера 1 от примера 2 является наличие определения переменной n.
5 Операторы выбора К операторам выбора относятся: 1. Условный оператор; 2. Переключатель.
6
Условный оператор имеет полную и сокращенную форму. Сокращённая форма используется, если в задаче имеется более двух условий. Сокращенная форма для условного оператора имеет вид [1]: if (выражение-условие ) оператор; В качестве выражения-условия могут использоваться арифметическое выражение, отношение и логическое выражение. Если значение выражения-условия отлично от нуля (т.е. истинно), то выполняется оператор, следующий за условным. Полная форма используется, если в задаче необходимо выполнение задачи при наличие двух условий. Полная форма для условного оператора имеет вид: if ( выражение-условие ) оператор 1; else оператор 2; Если значение выражения-условия отлично от нуля, то выполняется оператор 1, при нулевом значении выражения- условия выполняется оператор 2. Пример 3 1) if (a<0) b = 1;// 1 2) if (a d || a==0)) b++; else {b* = a; a = 0;}// 2 3) if (a=0) { x1=(-b-sqrt(d))/(2*a);x2=(-b+sqrt(d))/(2*a); cout<< \nx1=<
7 Переключатель Переключатель определяет множественный выбор. Общая форма для записи переключателя имеет вид: switch (выражение) { case константа 1 : оператор 1 ; case константа 2 : оператор 2 ; [default: операторы;] } При выполнении оператора switch, вычисляется выражение, записанное после switch, оно должно быть целочисленным. Полученное значение последовательно сравнивается с константами, которые записаны следом заcase. При первом же совпадении выполняются операторы помеченные данной меткой. Если выполненные операторы не содержат оператора перехода, то далее выполняются операторы всех следующих вариантов, пока не появится оператор перехода или не закончится переключатель. Если значение выражения, записанного после switch не совпало ни с одной константой, то выполняются операторы, которые следуют за меткой default. Метка default может отсутствовать. Пример 5 #include void main() { int i; cout >i; switch(i) { case 1:cout<<"\nthe number is one"; case 2:cout<<"\n2*2="<
8 Операторы циклов Операторы цикла используются для организации многократно повторяющихся вычислений. Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, блока модификации параметра цикла и проверки условия выхода из цикла (рис. 12), которая может размещаться либо до тела цикла (тогда говорят о цикле с предусловием), либо после тела цикла (цикл с постусловием). В теории программирования различают два вида циклов: 1)арифметические; 2)итерационные; Арифметические или счетные циклы – циклы с управляющей переменной (счетчиком или параметром цикла). Выполняется известное число раз. Итерационные – циклы, которые выполняются в зависимости от истинности или ложности заданного условия. В итерационных циклах известно условие выполнения цикла. Итерационными циклами являются циклы «с предусловием» и циклы «с постусловием». Один проход цикла называется итерацией. Переменные, принудительно изменяющиеся в цикле и использующиеся при проверке условия выхода из него, называются параметрами цикла. Целочисленные параметры цикла, изменяющиеся на целое число на каждой итерации, называются счетчиками цикла. Нельзя передавать управление извне внутрь цикла. Выход из цикла возможен как при выполнении условия выхода, так и по операторам break, return или безусловного перехода.
9 Цикл с предусловием (while), цикл с постусловием (do while), цикл с параметром (for) Цикл с предусловием реализует структурную схему и имеет вид: while ( выражение ) оператор; Выражение определяет условие повторения тела цикла, представленного простым или составным оператором. Если выражение не равно 0 (истинно), выполняется оператор цикла, после чего опять вычисляется выражение. Если при первой проверке выражение равно 0, цикл не выполнится ни разу. Тип выражения должен быть арифметическим или приводимым к нему. Пример 6. Программа печатает таблицу значений функции y=x2+1 во введенном диапазоне). #include int main(){ float Xn, Xk, Dx; printf("Введите диапазон и шаг изменения аргумента: "); scanf("%f%f%f", &Xn, &Xk, &Dx); printf("| X | Y |\n");//шапка таблицы int X = Xn;//начальные установки цикла while (X<=Xk){//проверка условия выхода printf("| %5.2f | %5.2f |\n", X, X*X + 1);//тело X += Dx;//модификация } Цикл с постусловием реализует структурную схему и имеет вид: do оператор while (выражение); Сначала выполняется простой или составной оператор, составляющий тело цикла, а затем вычисляется выражение. Если оно не равно 0 (истинно), тело цикла выполняется еще раз, и так далее, пока выражение станет равным нулю или в теле цикла не будет выполнен какой-либо оператор передачи управления. Тип выражения должен быть арифметическим или приводимым к нему: Пример 7. Проверка ввода. #include int main() { char answer; do { cout > answer; }while (answer != 'y'); } Цикл с параметром (for) имеет следующий формат: for ( инициализация; выражение; модификации) оператор; Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько операторов, разделенных запятой. Выражение определяет условие выполнения цикла: если оно не равно 0 (истинно), цикл выполняется. Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификаций можно записать несколько операторов через запятую. Простой или составной оператор представляет собой тело цикла. Любая из частей оператора for может быть опущена (но точки с запятой надо оставить на своих местах!). Пример 8. Оператор, вычисляющий сумму чисел от 1 до 100:for (int i = 1, s = 0; i<=100; i++) s += i; Пример 9. Программа печатает таблицу значений функции y=x2+1 во введенном диапазоне: #include int main() { float Xn, Xk, Dx; printf("Введите диапазон и шаг изменения аргумента: "); scanf("%f%f%f", &Xn, &Xk, &Dx); printf("| X | Y |\n"); answer; }while (answer != 'y'); } Цикл с параметром (for) имеет следующий формат: for ( инициализация; выражение; модификации) оператор; Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько операторов, разделенных запятой. Выражение определяет условие выполнения цикла: если оно не равно 0 (истинно), цикл выполняется. Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификаций можно записать несколько операторов через запятую. Простой или составной оператор представляет собой тело цикла. Любая из частей оператора for может быть опущена (но точки с запятой надо оставить на своих местах!). Пример 8. Оператор, вычисляющий сумму чисел от 1 до 100:for (int i = 1, s = 0; i<=100; i++) s += i; Пример 9. Программа печатает таблицу значений функции y=x2+1 во введенном диапазоне: #include int main() { float Xn, Xk, Dx; printf("Введите диапазон и шаг изменения аргумента: "); scanf("%f%f%f", &Xn, &Xk, &Dx); printf("| X | Y |\n");">
10 Операторы передачи управления Оператор goto Оператор безусловного перехода goto имеет формат: goto метка; В теле той же функции должна присутствовать ровно одна конструкция вида: метка: оператор; Оператор goto передает управление на помеченный оператор. Метка – это обычный идентификатор, областью видимости которого является функция, в теле которой он встречается. Использование оператора безусловного перехода оправдано в двух случаях: принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей; переход из нескольких мест функции в одно (например, если перед выходом из функции необходимо всегда выполнять какие-либо действия). В остальных случаях для записи любого алгоритма существуют более подходящие средства. Оператор break Оператор выхода из цикла break обеспечивает переход на оператор, непосредственно следующий за оператором if,switch или цикла, внутри которых находится оператор break. Пример 30. Программа вычисляет значение гиперболического синуса вещественного аргументах с заданной точностью eps с помощью разложения в бесконечный ряд: sh x = 1 +x3/3! +x5/5! +x7/7! + … #include #include int main() { const int MaxIter = 500;/*ограничитель количества итераций*/ double x, eps; cout > x >> eps; bool flag = true; /*признак успешного вычисления */ double y = x, ch = x; /*сумма и первый член ряда*/ for (int n = 0; fabs(ch) > eps; n++) { ch *= x * x /(2 * n + 2)/(2 * n + 3); //очередной член ряда y += ch; if (n > MaxIter) { cout << "\n Ряд расходится!"; flag = false; break; } if (flag) cout << "\n Значение функции: " << y; } Вычисление заканчивается, когда абсолютная величина очередного члена ряда, прибавляемого к сумме, станет меньше заданной точности. Оператор continue Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации. Оператор return Оператор возврата из функции return завершает выполнение функции и передает управление в точку ее вызова. Вид оператора: return [ выражение ]; Выражение должно иметь скалярный тип. Если тип возвращаемого функцией значения описан как void, выражение должно отсутствовать.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.