Управляющие операторы в языке СИ

Скачать презентацию Управляющие операторы  в языке СИ Скачать презентацию Управляющие операторы в языке СИ

Лекция 2 Управляющие операторы.ppt

  • Количество слайдов: 28

>Управляющие операторы  в языке СИ   Лекция 2 Управляющие операторы в языке СИ Лекция 2

>  Три категории: 1. Условные операторы if, if- else и switch. 2. Операторы Три категории: 1. Условные операторы if, if- else и switch. 2. Операторы цикла for, while и do… while. 3. Операторы передачи управления

>     Условные операторы if (условие) оператор1;  else оператор2; Условные операторы if (условие) оператор1; else оператор2; Если условие истинно, выполняется оператор 1, если ложно, то выполняется оператор2. Пример 1 Пример 2 if (х < 0) { if (х > У) max = х; х = -х; else cout<< "Изменить значение х на mаx = у; противоположное по знаку"; } abs = х; Пример 3 Пример 4 if (х < 0) х = -х; abs = х; if (х < 0) cout « "Отрицательная величина"; else if (x > 0) cout<< "Положительная величина"; else cout « "Ноль";

>  Схемы условных операторов: а — сокращенная форма; б — полная форма Схемы условных операторов: а — сокращенная форма; б — полная форма

> Даны действительные числа Х и У. Если Х и У отрицательны, то каждое Даны действительные числа Х и У. Если Х и У отрицательны, то каждое из значений заменить их модулем. Если отрицательно только одно из них, то оба значения увеличить на 0. 5. Если оба значения не отрицательны и ни одно из них не принадлежит отрезку [0. 5; 2. 0], то оба значения уменьшить в 10 раз; в остальных случаях оставить без изменения.

>#include <iostream. h> #include <math. h> void main() { double x, y; cout << #include #include void main() { double x, y; cout << "'Введите два действительных числа "; cin >> x >> y; if((x<0)&&(y<0)) { x = fabs(x); y = fabs(y); } else { if((x<0)||(y<0)) { x += 0. 5; y += 0. 5; } else { if(!(((x>=0. 5)&&(x<=2. 0))||((y>=0. 5)&&(y<=2. 0)))) { x /= 10. 0; y /= 10. 0; } } } cout << "Результат: "; cout << x << " " << y; }

>#include <iostream. h> void main() { int day, moth, year, last, ost; cout<< #include void main() { int day, moth, year, last, ost; cout<<" n Vvedite cherez probel Den Mecaz God"; cin>>day>>moth>>year; last =0; if (moth==2) { if (( year%4) !=0 && day==28) last=1; if (( year%4) ==0 && day==29) last=1; } else if ((moth==4 || moth==6 || moth==9 || moth==11) && (day==31)) last=1; else if (day==31) last =1; if (last==1) { cout<<"n Eto poslednii den mecaza"; day=1; if (moth ==12) {

>    moth=1;     year++;    moth=1; year++; cout<<"S Nov Godom!"; } else moth++; } else day++; cout<<" n Zavtra "<

>/* минимум из трех значений. Условный оператор. */ #include <iostream. h> int main () /* минимум из трех значений. Условный оператор. */ #include int main () { int x, y, z, res; cout<<“Введите x, y, z : ”<>x>>y>>z; res=x; if (res > y) res=y; if (res > z) res=z; cout << “res= “ << res; return 0; }

>является ли год високосным # include <stdio. h> # include <conio. h> void main() является ли год високосным # include # include void main() { int year; int ost; //остаток от деления года на 4 printf(“Введите год ”); scanf(“%i”, &year); ost= year%4; if ( ost==0 ) printf(“%i этот год является невисокосным n”, &year); else printf(“%i этот год является високосным n”, &year); printf(“n Для завершения нажмите ”); getch(); }

>  Переключатели и селекторы    формат:  switch (выражение)  Переключатели и селекторы формат: switch (выражение) Константы могут быть { case константа 1: операторы_1; целыми или символьными case константа 2: операторы_2; и все должны быть default: операторы; различными }

>     Пример #include <iostream. h> int main() {  int Пример #include int main() { int a, b, res; char op; cout << "n. Введите 1 й операнд : "; cin >> a; cout << "n. Введите знак операции : "; cin >> op; cout << "n. Введите 2 й операнд ; "; cin >> b; bool f = true; switch (op) { case '+': res = a + b; break; case '-': res = a – b; break; case '*': res = a * b; break; case '/‘: res = a / b; break; default : cout <<“n. Неизвестная операция"; f = false; } if (f) cout << "n. Результат : " << res; return 0; }

>Начало Конец Начало Конец

>     Циклы     Цикл с параметром Циклы Цикл с параметром Формат for (выражение 1; выражение_условие; выражение_3) { тело цикла } пояснение for (инициализация; пров_усл_оконч; изменение) { тело цикла } Если условие истинно (т. е. не равно 0), то выполняется тело цикла, а затем вычисляется выражение_З.

>Вычислить сумму первых n членов ряда 1+1/2 +1/3+1/4+….  #include <iostream. h> void main() Вычислить сумму первых n членов ряда 1+1/2 +1/3+1/4+…. #include void main() { int n; float i; float elem; float sum=0; cout<<“Введите количество членов последовательностиn"; cin>>n; for (i=1; i<=n; i++) { elem=1/i; sum+=elem; } cout<<"Сумма первых "<

>Пример Программа печатает таблицу     Начало значений функции у=х2+1 во введенном Пример Программа печатает таблицу Начало значений функции у=х2+1 во введенном диапазоне: #include int main(){ float Xn, Xk, Dx, X, Y; printf("Введите диапазон и шаг изменения аргумента: "); scanf(“%f%f%f", &Xn, &Xk, &Dx); printf("| X | Y |n"); for (X = Xn; X<=Xk; X += Dx) { Y=X*X+1; printf("| %5. 2 f |n", X, Y); } return 0; } Конец

>    Цикл while   Формат   while (условие) Цикл while Формат while (условие) { операторы } Тело цикла выполняется пока условие истинно (т. е. не равно 0) Цикл do while do { операторы } while ( условие); условие проверяется ПОСЛЕ выполнения цикла

>Пример (программа печатает таблицу значений функции у=х2+1 во введенном диапазоне):  #include <stdio. h> Пример (программа печатает таблицу значений функции у=х2+1 во введенном диапазоне): #include int main(){ float Xn, Xk, Dx; printf("Введите диапазон и шаг изменения аргумента: "); scanf("%f%f %f ". &Xn, &Xk, &Dx); printf("| X | Y |n"); // шапка таблицы float X = Xn; // установка параметра цикла while (X <= Xk){ // проверка условия продолжения // тело цикла Y=X*X+1; printf("| %5. 2 f |n". X, Y); X += Dx; // модификация параметра } return 0; }

>Начало   Конец Начало Конец

>Пример. Программа вычисляет квадратный корень вещественного аргумента X с заданной точностью Eps по итерационной Пример. Программа вычисляет квадратный корень вещественного аргумента X с заданной точностью Eps по итерационной формуле: yn = 1/2(yn-1 + x/yn-1) , где yn-1 — предыдущее приближение к корню уn — последующее приближение. Процесс вычислений прекращается, когда приближения станут отличаться друг от друга по абсолютной величине менее чем на величину заданной точности.

>#include <stdio. h> #include <math. h> int main() {  double X, Eps; // #include #include int main() { double X, Eps; // аргумент и точность double Yp, Y = 1; // предыдущее и последующее приближение cout<<"Введите аргумент и точность: "); cin>>X >>Eps; do { Yp = Y; Y = (Yp + X/Yp)/2; } while (fabs(Y - Yp) >= Eps); cout<<"n. Kopeнь из “<

>Начало   Конец Начало Конец

>#include<stdio. h> #include<conio. h> # define LB -2. 0 // # define HB 2. #include #include # define LB -2. 0 // # define HB 2. 0 # define DX 0. 5 void main() { float x, y; int n, i; //float h, lb, n=(HB-LB)/DX+1; x=LB; printf(" --------n"); printf(" X | Y n"); printf(" --------n"); for (i=1; i<=n; i++) { y=-2. 4*x*x+5*x-3; printf ("%6. 2 f | %6. 2 f n", x, y); x +=DX; } printf(" --------n"); getch(); }

>Пример. Сумма отрезка степенного ряда. Введя значения переменных n и g, вычислить сумму , Пример. Сумма отрезка степенного ряда. Введя значения переменных n и g, вычислить сумму , где n>0. 1 /* Сумма степенного ряда */ 2 #include 3 void main( ) 4 { 5 double g, c, p; /* с - сумма, р - член ряда */ 6 int i, n; 7 printf("n Введите Значение g=“) ; 8 scanf("%lf", &g); 9 while(1) 10 { 11 printf("n Введите значение n="); 12 scanf("%d", &n); 13 if( n > 0 ) break; 14 printf("Ошибка! n должно быть >0! n"); 15 }

>16 for( с=0. 0, р=1. 0, i=1; i <= n; i++ ) 17 { 16 for( с=0. 0, р=1. 0, i=1; i <= n; i++ ) 17 { 18 p*=g; 19 с+=р; 20 } 21 printf("n Сумма c=%f“, c); 22 }

> Операторы передачи управления  В C++ есть 4 оператора, изменяющих естественный порядок выполнения Операторы передачи управления В C++ есть 4 оператора, изменяющих естественный порядок выполнения вычислений: □ оператор безусловного перехода goto; □ оператор выхода из цикла break; □ оператор перехода к следующей итерации цикла continue; □ оператор возврата из функции return.

>  Конец Итоги Ваши вопросы… Конец Итоги Ваши вопросы…

>#include <stdio. h> #include <conio. h> float Xn, Xk, dx, t, x, y; int #include #include float Xn, Xk, dx, t, x, y; int main () { puts("n vvedite Xn, Xk, dx, t"); scanf("%f%f", &Xn, &Xk, &dx, &t); puts("n______________"); puts("n| X | Y |"); puts("n______________"); x=Xn; //Начальные установки while (x<=Xk) { //Заголовок цикла if (x<0) y=t; if ((x>=0) && (x<10)) y=t*x; if (x>=10) y=2*t; printf( "n|%6. 2 f |%10. 3 f |", x, y); x=x+dx; //Модификация параметра цикла } puts("n_____________"); getch(); return 0; }