
** vcp1 ** 1.03.2004
Лекция 6 Цикл при вычислении суммы.
Условные операторы. Файлы.
6.1 Вычисление суммы
Пусть нужно вычислить сумму
S=sin(n/2) или в общем случаеS=f(n) ,( 6.1)
n n
где n= 1,2 . . 20 .
Для вычисления сумм обычно используют цикл. Рассмотрим алгоритм
для общего случая.
1. Обнуление суммы S ( S=0. ).
2. Начало цикла по n.
3. Вычисление текущего слагаемого f(n), где f(n)- это формула для слагаемого.
4. S = S + f(n).
5. Конец цикла по n.
Приводим фрагмент программы, реализующей этот алгоритм.
. . . .
int n ; double t, S = 0. ;
for ( n = 1; n < 21 ; n++ ) ( 6.2)
{ t = sin (n / 2.) ; S + = t ; }
. . . .
Пункты 3 и 4 алгоритма можно объединить в один, т.е. не использовать
переменную t, а записать формулу для слагаемого f(n) в пункт 4:
S = S + sin ( n/2. ) ; или S + = sin ( n/2. ) ;
Следует обратить внимание на операцию деления в программе. Если
записать n/2 вместо n/2. , то будет ошибка в вычислениях всех слагаемых
с нечетными номерами n из-за отбрасывания дробной части при
делении целых чисел. Напомним, что в операциях с целыми числами
целое на целое дает целое.
Вместо n/2. лучше записать 0.5*n
Произведение вычисляется аналогичным образом, но в пункте 1 алгоритма
вместо обнуления суммы нужно начальному значению произведения присвоить
значение 1. вместо нуля. При этом имеем в (6.2) S = 1.; S * = t; .
6.2 Операции отношения и логические операции.
Для определения различных условий обычно используются шесть операций
отношения ( иначе сравнения):
< меньше,
<= меньше или равно,
= = равно,
>= больше или равно,
> больше,
!= не равно.
Как и в MathCAD, результатом является 1, т.е. "истина",
или "ложь", соответствующая нулевому значению. При этом единица и ноль
являются целыми. Операции отношения используются в условных операторах.
Кроме операций отношения, есть еще логические операции, и
рассмотрим только три из них:
&& "и" - логическое умножение,
| | "или" - логическое сложение,
! отрицание (здесь восклицательный знак ! ).
Пример: ( a>=2 && a<=5) .
Это соответствует условию 2 a 5 . Логические операции позволяют
составлять сложные логические выражения. Логическое выражение
принимает логическое значение "истина" или "ложь", т.е. 1 или 0. Операций
отношения и логических операций в выражениях может быть много.
Любое ненулевое число в логических операциях соответствует истине,
а ложному результату соответствует ноль. Например, !(-5) = 0, !0 = 1.
Условный оператор if
В теории программирования доказано, что программу для решения задачи
можно составить из трех конструкций, называемых следованием, циклом и
ветвлением. Следование и цикл в С++ рассмотрены выше, а теперь
переходим к ветвлению. Ветвление позволяет выбрать оператор для
дальнейшего выполнения в зависимости от значения какого-либо условия.
Ветвление в программе можно представить следующим образом.
?
Условие
нет
да
Рис. 6.1
Здесь прямоугольники означают две разные группы операторов.
Если условие выполняется, то работает левая группа, а если условие не
выполняется, то работает правая ветвь. Обе ветви алгоритма должны
сливаться и обеспечивать продолжение программы. В программе ветвление
реализуется с помощью условного оператора if , который имеет
следующую форму :