Структура повторения while




Самостоятельная работа № 1 «Управляющие операторы»

Задание 1.Вычисление функций с использованием их разложения в степенной ряд.

 

Вычислить функцию S= f(x), используя ее разложение в степенной ряд для заданной точности e (0< e < 1). Вид функции приведен в таблице:

 

№ варианта Сумма
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.

Задание 2.

Затабулировать функцию Z=f(x,y) с шагами D x и D y внутри прямоугольника и области существования данной функции.

Составить универсальную программу для произвольных значений параметров a, b, c, d, D x и D y.

Значения функции Z округлить до двух знаков после десятичной точки.

Результаты вывести на экран в виде двумерной таблицы, вместо несуществующих значений вывести астериск (*).

Рекомендуется решать задачу с использованием вложенных циклов с параметром. Для горизонтальной табуляции рекомендуется использовать манипулятор setw(n) (подключить заголовочный файл iomanip.h директивой #include <iomanip>). « Лишние» знаки после запятой можно отбросить, используя функцию floor, а можно использовать манипулятор setprecision

Вид функции y = f(x) и рабочий набор исходных данных приведены в таблице

№ п\п Вид функции Z = f (x,y) Рабочий набор исходных данных
a b c d D x D y
-1   -1   0.2 0.2
-1   -1   0.2 0.2
        0.3 0.3
        0.2 0.2
-1       0.2 0.1
        0.1 0.2
-1   -1   0.2 0.2
        0.2 0.2
-2   -2   0.4 0.4
-1   -1   0.2 0.2
-3   -3   0.3 0.3
-1   -1   0.2 0.2
        0.2 0.2
-1   -1   0.2 0.2
-1   -1   0.2 0.2

Примерный вид результата:

Приложение Б

 

СПРАВОЧНЫЙ МАТЕРИАЛ

 

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

Циклы программируются с помощью операторов for, while и do/while.

Структура повторения while

Структура повторения while позволяет определить действие, которое должно повторяться, пока некоторое условие остается истинным. Предложение псевдокода

ПОКА число четное

число заменить на целую часть половины числа

описывает повторные действия замены числа на новое значение (под числом понимается значение переменной целого типа). Условие «число четное» может быть истинным или ложным. Если оно истинно, то осуществляется действие «число заменить на целую часть половины числа ». Это действие будет повторяться до тех пор, пока условие остается истинным.

Оператор, записанный в теле структуры повторения while (ПОКА) составляет тело while и может быть отдельным или составным.

Как только условие станет ложным, повторение прерывается и выполняется первое предложение псевдокода, следующее за структурой повторения. Блок-схема на рис. Б.1 иллюстрирует управляющую логику структуры повторения while.

 

Рис.Б.1-Блок-схема структуры повторения while

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

Оператор с предусловием (while) записывается так:

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

Слово while является зарезервированным словом С++. Если условие сразу ложно, оператор ни разу не выполнится. Для составления логических выражений можно использовать операции отношения (>, >=, <, <=, ==,!=) и логические операторы (табл. Б.1).

Таблица Б.1

Логические операторы

Оператор Название оператора Пример выражения Пояснение
&& логическое умножение (И) (i > j) && (k!= 1) Выражение истинно если i больше j И k не равно 1
|| логическое сложение (ИЛИ) (ch == ‘y’) || (ch == ‘Y’) Выражение истинно если значение переменной ch равно ‘y’ ИЛИ ‘Y’
! логическое отрицание (НЕ) !(i > 1) Выражение истинно если i не больше 1

На рис Б.2 приведен программный код описанной выше структуры. В примере используется переменная целого типа value, которой в результате выполнения очередной итерации цикла присваивается новое значение. Комбинированная операция /= уменьшает значение переменной value в два раза. Условие (value % 2 == 0) будет истинным если остаток от деления равен нулю, т.е. число четное. Результат деления хотя бы один раз станет нечетным, поэтому зацикливания не произойдет. При вводе нечетного числа цикл не выполняется ни разу.

 

intmain() { char s[100]; int value; cout << "Задайте числo: "; cin >> value;   while (value % 2 == 0) value /= 2; // value = value / 2;   cout << "Результат: " << value << endl; return 0; }  

 

Рис.Б.2-Пример оператора цикла с предусловием



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-30 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: