Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР7-С++-05 апреля-2012.doc
Скачиваний:
19
Добавлен:
15.09.2019
Размер:
2.45 Mб
Скачать

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

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

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

Таблица 3

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

x

y(x)=x2

0

0

2

4

4

16

6

36

8

64

10

100

Пример 7.43

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

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

Таблица 4

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

for

while

do while

Таблица 5

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

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);

Тестирование: при х0=0, хn=10, h=2 получаем

Первый столбец содержит значения переменной x, второй столбец – значения функции y(x)=x2.

Задание 2

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

Пример 7.44.

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

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

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

Рис. 7.41

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

#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;

}

Тестирование:

Задание 3

Выполните программу примера 3 и на ее основе составьте программу табулирования функции:

1.10. Вычисление конечных сумм и произведений

Другим наглядным примером цикла с известным числом повторений (циклом с параметром) о вычислении сумм и произведений.

Пример 7.45

Вычисление суммы

Напишем программу вычисления суммы

,

где х изменяется с шагом 1.

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

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

using namespace System;

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

{

float x,s;

int i;

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

s=0;

for (i=1; i<=10; i++) s=s+(x+i);

printf("s=%f\n",s);

getch();

return 0;

}

Тестирование:

Задание 4

Выполните программу примера 4 и на ее основе напишите программу вычисления суммы:

#include "stdafx.h"

#include <stdio.h>

#include<conio.h>

using namespace System;

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

{

float x,p;

int i;

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

p=1;

for (i=1; i<=10; i++) p=p*(x+i);

printf("p=%f\n",p);

getch();

return 0;

}

Задание 5

Выполните программу примера 4 и на ее основе напишите программы вычисления факториала числа (факториал числа n – это произведение n!=1*2*…*n)и произведения p=2*4*8*…*(2n).