Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операторы повторения




Оператор ветвления

Позволяет изменять ход вычислительного процесса в зависимости от выполнения определенных, заранее заданных условий.

В языке С++ используется оператор ветвления if в двух формах и оператор выбора switch.

Оператор if имеет следующий синтаксис:

if (<условие>) <оператор-1>;

[ else <оператор-2>];

 

При выполнении оператора вначале вычисляется выражение условия. Если результат равен значению "Истина (true)", т.е. любое, отличное от нуля значение, то выполняется оператор-1. Если же результат равен значению "Ложь (false), т.е. равен 0, то выполняется оператор-2. В качестве условия может быть использовано арифметическое, логическое выражение, сравнение, целое число и т.д.

Другой оператор, switch, позволяет выбрать один из нескольких вариантов. Пример реализации простейшего калькулятора:

// Easy Calculator - Простой калькулятор

#include <stdio.h>

#include <conio.h>

#include <iostream.h>

#include <math.h>

void main()

{ clrscr();

int f; float x,y,res; char op;

cout<<"\nInput x, operator, y: ";

cin>>x>>op>>y;

f=1;

switch (op)

{ case '+': res=x+y; break;

case '-': res=x-y; break;

case '*': res=x*y; break;

default: cout<<"operator unknown!\n";f=0;break;

}

if (f==1)

printf("%.3f %c %.3f = %.3f.\n",x,op,y,res);

getch();

}

Многократно повторяющийся участок вычислительного процесса называется циклом. Каждый проход по телу цикла называется итерацией. Цикл, не содержащий других циклов, называется простым, иначе его называют кратным.

Переменную, управляющую циклическим процессом, называют параметром цикла. Если априори известно количество повторений, то организуют циклы со счетчиками. Итерационным называют циклический процесс, в котором количество повторений неизвестно и условие продолжения цикла базируется на результатах текущих вычислений.

Если результаты вычислений очередной итерации используются при вычислении значений в следующей итерации, то это говорит об использовании рекуррентных соотношений. Как показывает Дональд Кнут, рекуррентность, или возвратность, это свойство решения задачи, когда ее решение зависит от решения той же задачи, но меньших размеров.

В языке С++ представлено три формы операторов цикла:

 

a) Цикл со счетчиком:

for ( <инициализация параметра>; <условие>; <закон изменения> )

<оператор>;

for (int i=0; i<n; i++) sum+=i*i;

 

b) Цикл с предусловием:

while ( <условие> ) <оператор>;

while (a!=0) { k++; a/=10;};

 

c) Цикл с послеусловием:

do <оператор> while ( <условие> );

do {sum+=a%2; a/=10;} while (a!=0);

 

В цикле for можно использовать любые ординарные переменные, например, символьного типа:

char let;

for (let=’z’; let>=’a’; let--)

printf(“Код - %i, символ - %c\n”,let,let);

 




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 471; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.