Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LPINF2204_1_2014.pdf
Скачиваний:
227
Добавлен:
22.03.2016
Размер:
1.28 Mб
Скачать

78

начало следующей итерации. В цикле for оператор continue вызывает проверку условия и приращение счетчика цикла. В циклах while и do-while оператор continue передает управление оператору, входящему в условие цикла.

Пример:

for(int x=0; x<100; x++) { if(x>10 && x<20) continue; printf("%d ", x);

}

Данный пример выводит на экран числа от 0 до 99, за исключением диапазона между 11 и 19.

8.2. Построение таблицы значений функции

8.2.1. Постановка задачи

Необходимо вычислить заданное количество значений функции

1

при

x >1

y(x)= x

при

1 <= x <=1

 

при

x < −1

1

на указанном интервале [a, b].

 

 

8.2.2. Алгоритм

1.Ввод исходных данных: количество вычисляемых значений функции N, границы интервала a и b.

2.Искомые N значений функции разбивают заданный интервал [a, b] на N-1 отрезков. Определяем шаг разбиения интервала: h=(b – a)/(N – 1).

3.Задание начального значения аргумента x=a;

4.Вычисление значения функции y(x) в точке x.

Если x>1, то y=1; в противном случае если x<-1, то y=-1; в противном случае y=x;

5.Вывод x и y на экран дисплея.

6.Увеличение значения аргумента x на величину шага h: x=x+h;

7.Проверка условия x b. Если оно выполняется, то переход к п.4 алгоритма, в противном случае – останов.

79

8.2.3. Блок схема алгоритма

N, a,b

 

 

 

 

 

 

 

 

x = a

 

 

h = (b-a)/(N-1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y = 1

да

x>1

 

 

 

 

 

 

 

нет

 

 

y = -1

да

x<-1

нет

y = x

 

 

 

 

x, y

 

x = x + h

нет

x b

да

 

 

8.2.4. Реализация алгоритма на языке C++

Реализация с использованием оператора while:

#include <stdio.h> #include <conio.h>

void main()

{

int N;

float a, b, h, x, y;

printf("Введите N "); scanf("%d", &N); printf("Введите a "); scanf("%g", &a); printf("Введите b "); scanf("%g", &b);

h=(b-a)/(N-1); x = a; while(x<=b) {

if(x>1) y=1;

else if(x<-1) y=-1; else y=x;

printf("x=%g y=%g\n", x,y); x=x+h;

}

getch();

}

80

С использованием оператора do - while:

#include <stdio.h> #include <conio.h>

void main()

{

int N;

float a, b, h, x, y;

printf("Введите N "); scanf("%d", &N); printf("Введите a "); scanf("%g", &a); printf("Введите b "); scanf("%g", &b);

h=(b-a)/(N-1); x = a;

do {

if(x>1) y=1;

else if(x<-1) y=-1; else y=x;

printf("x=%g y=%g\n", x,y); x=x+h;

} while(x<=b); getch();

}

С использованием оператора for:

#include <stdio.h> #include <conio.h>

void main()

{

int N;

float a, b, h, y;

printf("Введите N "); scanf("%d", &N); printf("Введите a "); scanf("%g", &a); printf("Введите b "); scanf("%g", &b);

h=(b-a)/(N-1);

for(float x=a; x<=b; x+=h) { if(x>1) y=1;

else if(x<-1) y=-1; else y=x;

printf("x=%g y=%g\n", x,y);

}

getch();

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]