Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие_С++.doc
Скачиваний:
145
Добавлен:
11.04.2015
Размер:
1.76 Mб
Скачать

Контрольные задания

1)Записать на языке С++ логические выражения

а)

б)

в) переменная х находится вне интервала [а, b];

г) все точки на плоскости находятся выше оси абсцисс;

д) все точки на плоскости находятся либо в первом, либо в третьем квадрантах;

е) все точки на плоскости лежат выше прямой у = 1 +х.

2) Начертить на плоскости область, в которой логическое вы­ражение имеет значение TRUE

а) (х>= 0) && (у>= 0) && (у <= х) || (у <= -1);

б) (х*х +у*у <= 1) && (у>= 0) && !(y <x);

в) (у>= х) && (y>= -х);

г) (у <= 2) && (x <- 2) || (х*у <0);

д) (х*у>= 0) && (у <= х) && (x <1) && (y>-1);

е) (х*х + у*у <= 4) &&(y>= х*х).

3) Записать на языке С++ логические выражения, принимающие значение TRUE для точек, принадлежащих заштрихованной области (рисунок 1).

а) б)

в) г)

д) е)

Рисунок 1.

4) Записать на языке С++ логические выражения, расставить действия и вычислить при: i = 5, j = 2, к=2, а = TRUE, b = FALSE

а)

б)

в)

г)

д)

е)

2.8. Циклические вычислительные процессы

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

Операторы цикла с условием

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

  1. while (пока) – цикл с предусловием;

  2. do... while (повторять до тех пор, пока выполняется условие) – цикл с постусловием.

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

Оператор цикла while

Общий вид записи

while (логическое выражение) { <тело цикла>; }

<тело цикла> - единичный оператор или группа операторов, выполняемых в цикле.

Замечание. Если тело цикла состоит из нескольких операторов, то их обязательно заключают в операторные скобки {...}.

Работа оператора

Тело цикла выполняется до тех пор, пока логическое выражение, определяющее условие выхода из цикла, имеет значение TRUE. В противном случае оператор цикла while завершает свою работу.

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

Графическая интерпретация оператора

В схемах алгоритма оператору цикла while соответствует структура ЦИКЛ-ПОКА.

Оператор цикла do...While

Общий вид записи

do

<тело цикла>

while (логическое выражение);

Работа оператора

Выполняется тело цикла, после чего вычисляется логическое выражение, определяющее условие продолжения работы цикла. Если логическое выражение примет значение FALSE, то цикл do...while завершает свою работу, иначе тело цикла выполняется еще раз.

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

Графическая интерпретация оператора do-while

В схемах алгоритма оператору цикла do... while соответствует структура ЦИКЛ-ДО.

Пример 1. Алгоритм расчета значений функции с одной переменной.

Вычислить таблицу значений функции:

для всех х из интервале [-0.5 , 2.5] , изменяющегося с шагом Δх = 0.1,

а, b - заданные вещественные числа.

В данной задаче переменная х является управляющей пере­менной цикла.

Схема алгоритма Программа

#include "stdafx.h" #include<math.h>

int main()

{

float а, b, х, у;

printf("Bвeдитe а и b\n");

scanf("%f%f",&a,&b);

printf(" x y(x)\n");

х=-0.5; //нач. установка

while(х <= 2.5)

{

y= log(abs(x))/(a*a +b*b);

printf("%8.1f %8.1f",x,y);

x=x + 0.1;

}

return 0;

}

Пример 2. Решить предыдущую задачу табулирования функции с использованием оператора цикла do…while.

Схема алгоритма Программа

#include "stdafx.h"

#include<math.h>

int main()

{

float а, b, х, y;

printf("Bвeдитe a и b ");

scanf("%f%f",&a,&b);

printf(" x y(x)\n");

х=-0.5; //нач. установка

do

{

y=log(abs(x))/(a*a+b*b);

printf("%8.1f %8.1f\n",x,y);

x= x+ 0.1;

} while( x<= 2.5);

return 0;

}

Основное отличие оператора цикла while от оператора цикла do...while

1. В операторе while тело цикла может не выполниться ни разу, если логическое выражение в начальный момент уже окажется ложным.

В операторе do...while логическое выражение записывается после тела цикла, поэтому тело цикла обязательно выполнится хотя бы один раз.