Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_СРСП_Программирование РЭС.doc
Скачиваний:
0
Добавлен:
07.01.2020
Размер:
2.86 Mб
Скачать

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

Оператор цикла do while называется оператором цикла с постусловием.

Формат оператора имеет следующий вид:

do тело while (выражение);

Схема выполнения оператора do while :

1. Выполняется тело цикла (которое может быть составным оператором).

2. Вычисляется выражение.

3. Если выражение ложно, то выполнение оператора do while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполнение оператора продолжается с пункта 1.

Это важно:

    • т.к. do while – это цикл с постусловием, то инструкции (операторы) тела цикла будут выполнены хотя бы один раз;

    • чтобы прервать выполнение цикла до того, как условие станет ложным, можно использовать оператор break (см. п.7);

    • операторы do while может быть вложенным.

Сравнение циклов показано в таблице 15.

Таблица 15 – Циклы в С/С++

for

while

do while

for (выражение-1; выражение-2; выражение-3)

тело;

выражение-1;

while (выражение-2)

{

тело

выражение-3;

}

выражение-1;

do

{

тело

выражение-3;

}

while(выражение-2)

5.5 Табулирование функций

Наиболее наглядным примером цикла с известным числом повторений является задача табулирования функции.

Табулирование функции – вычисление таблицы значений функции для аргумента x, изменяющегося от начального значения х0 до конечного хn с постоянным шагом h. В таблице 16 приведен пример табулирования функции y(x)=x2 на отрезке [0; 10] с шагом 2.

Таблица 16 – Табулирование функции y(x)=x2

x

y(x)=x2

0

0

2

4

4

16

6

36

8

64

10

100

Пример 5.2 Табулирование непрерывной функции

Протабулируем функцию y(x)=x2 на отрезке [х0; хn] с шагом h с использованием операторов for, while, do while (таблицы 17,18).

Таблица 17 – Табулирование функции

Таблица 18 – Сравнение операторов цикла при табулировании функции

for

while

do while

for(x=x0;x<=xn;x+=h)

{

y=x*x;

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

}

x=x0;

while (x<=xn)

{

y=x*x;

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

x+=h;

}

x=x0;

do

{

y=x*x;

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

x+=h;

}

while (x<=xn);

Задание 5.2

На основе примера 5.2 составьте программу табулирования функции y(x)=x3 на отрезке [х0; хn] с шагом h.

Пример 5.3 Табулирование сложной функции

Напишем программу табулирования сложной функции

График функции приведен на рисунке 11.

Рисунок 11 - График функции

Реализация в С++:

#include "stdafx.h"

#include<stdio.h>

#include<conio.h>

using namespace System;

int main(array<System::String ^> ^args)

{

float x0,xn,h,x,y;

printf("xo="); scanf("%f",&x0);

printf("xn="); scanf("%f",&xn);

printf("h="); scanf("%f",&h);

for(x=x0;x<=xn;x+=h)

{

if (x<=0) y=0;

else

if (x>0 & x<1) y=x;

else y=1;

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

}

getch();

return 0;

}

Задание 5.3

Выполните программу примера 5.3 и на ее основе составьте программу табулирования функции. График функции приведен на рисунке 12.

Рисунок 12 – График функции