Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР3 ЦВП.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
385 Кб
Скачать
☆

4.3 Цикл с постусловием – оператор цикла do-while

Если требуется выполнить тело цикла, хотя бы один раз до проверки условия выхода, используют оператор do-while:

do{

оператор;

}while(условие);

Цикл выполняется пока значение условия истинно. Например, считываем и выводим на экран число, пока не будет введено число большее или равное 100:

int i;

do{

scanf(“%d ”, &i);

printf(“%d”, i);

} while(i<100);

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

4.4 Организация вложенных циклов

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

for(int i=0; i < 10; i++)

for(int j=0; j<10; j++){

printf(“%d”, j+i*10);

printf(“\n”);

}

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

5. Методические указания

Лабораторная работа включает:

– общие задания для совместного выполнения под присмотром преподавателя;

– индивидуальные задания.

При выполнении общих заданий необходимо разработать, отладить и продемонстрировать программу.

При выполнении индивидуальных заданий необходимо выполнить все этапы решения задачи на ЭВМ:

  1. словесная постановка задачи;

  2. анализ задачи и формальная постановка задачи;

  3. проектирование (разработка алгоритма);

  4. реализация (кодирование, отладка);

  5. тестирование.

Результаты выполнения индивидуальных заданий оформить в виде отчета.

При организации итерационных циклов необходимо учитывать следующее:

  1. переменная цикла должна быть инициализирована до начала цикла;

  2. выражение условия цикла должно содержать переменную цикла;

  3. в теле цикла необходимо предусмотреть изменение переменной цикла.

Рассмотрим примеры решения и оформления задач.

Пример.

1. Словесная постановка задачи. Вычислить и вывести значение функции, заданной с помощью ряда Тейлора, в точке x с точностью : .

2. Формальная постановка задачи.

Входные данные: x – действительное число,  – заданная точность, положительное число.

Выходные данные: y – значение функции в точке x, вычисленное с заданной точностью .

Метод решения задачи. Значение функции рассчитывается как сумма членов ряда Тейлора, больших . Текущий член ряда an определяется по формуле . Если an >, то прибавляем его к общей сумме, иначе вычисление завершается.

3 . Алгоритм решения задачи

4. Листинг программы

#include <stdio.h>

#include <conio.h>

#include <locale.h>

int main(){

float x,e, y, a;

setlocale(LC_ALL, "rus");

printf("введите аргумент x и точность e: ");

scanf("%f %f", &x, &e);

y=1;

a=x;

while (1/a>=e)

{

y=y+1/a;

a=a*x;

}

printf("значение функции y = %f", y);

getch();

return 0;

}

5. Тестирование

Ниже представлены результаты, полученные вручную, для x=2 и =0.1. При таких входных данных функция задается рядом Тейлора вида y(2)=1+1/2+1/4+1/8=1.875.

  1. x=2 и =0,1

  2. y=1, a=2

  3. НЦ ½>0.1: y=y+a=1+1/2=1.5, a=a*x=2*2=4

¼>0.1: y=y+a=1.5+1/4=1.75, a=a*x=4*2=8

1/8>0.1: y=y+a=1.75+1/8=1.875, a=a*x=8*2=16

1/16=0.0625>0.1: ложь КЦ

  1. y=1.875

На рисунке представлена консоль с результатами работы программы.

С уменьшением значения точности  увеличивается количество суммируемых членов ряда. Так, например, для x=2 и =0.001 функция задается рядом Тейлора вида y(2)=1+1/2+1/4+1/8+1/16+1/32+1/64+1/128+1/256+1/512=0,998047

Из таблицы видно, что член ряда 1/210<0.001

n

xn

a=1/xn

1

2

0,5

2

4

0,25

3

8

0,125

4

16

0,0625

5

32

0,03125

6

64

0,015625

7

128

0,007813

8

256

0,003906

9

512

0,001953

10

1024

0,000977

Результат работы программы:

Обратите внимание!

В рассмотренном примере значение функции, заданной с помощью ряда Тейлора, вычисляется в одной точке x. В индивидуальном задании Вам нужно вычислить и вывести на экран значения функции, заданной с помощью ряда Тейлора, на интервале от xn до xk с шагом dx в виде таблицы.

x - значение аргумента

y(x) - значение функции в точке x

n- количество просуммированных членов ряда

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