Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ СИ. Лабораторный практикум доцента кафедры «Информационные системы и компьютерные технологии» Пановой Т.В. БГТУ «ВОЕНМЕХ».doc
Скачиваний:
146
Добавлен:
26.03.2015
Размер:
1.27 Mб
Скачать

2. Математическая модель и описательный алгоритм задачи:

  • значение переменной xизначально обнулить (x=0) перед входом в цикл с предусловиемxπ/3 илиx≥2π/3с тем, чтобы войти в цикл и вводить значение в переменнуюx до тех пор, пока оно не будет удовлетворять заданному условию:π/3<x<2π/3;

  • для формирования суммы использовать переменную S, изначально ее обнулить (S=0);

  • изначально коэффициент i=1 при переменнойx;

  • в цикле cпредусловием|sin(ix)/i| ≥ε(проверяется очередной член ряда по модулю) формировать сумму членов ряда –S=S+sin(ix)/i и коэффициентiувеличивать на 1 для следующей итерации;

  • после завершения цикла вывести значение переменной Sи количество итераций i-1(сколько раз повторился цикл, т.е. сколько членов ряда суммировалось, чтобы получить частичную сумму для заданных условий; количество итераций равно i-1, так как увеличениеi=i+1происходит для следующего прохода цикла, который, возможно, не выполнится).

3. Блок-схема алгоритма задачи:

4. Текст программы:

#include <stdio.h>

#include <conio.h>

#include <math.h>

int main()

{

const float p=3.14, e=.0001;

int i=1;

float S,x=0;

while (x<=p/3 || x>=2*p/3)

{

printf(“\nВвести x = ”);

scanf(“%f”,&x);

}

S=0;

while (fabs(sin(i*x)/i)>=e)

{

S=S+sin(i*x)/i;

i++;

}

printf(“\n S = %f, количество итераций = %d”,S,i-1);

getch();

return 0;

}

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

Теоретически рассчитанное выходное значение

Практически полученное выходное значение

Тест: входные данные: x=1,57 (≈π/2)

S=?; кол-во итер.=?

S=?; кол-во итер.=?

Задача 3.

1. Постановка задачи: разработать алгоритм вычисления значения частичной суммы членов ряда Фибоначчи + … для-3<x≤2 и оценить скорость сходимости, найдя число слагаемых, необходимое для достижения заданной погрешности ε=10-4. Вывести значения суммы и числа слагаемых. Написать программу, реализующую разработанный алгоритм.

2. Математическая модель и описательный алгоритм задачи:

  • в цикле с постусловием x-5 или x≥5 вводить значение в переменную x, пока не будет -3<x≤2;

  • для введенного значения переменной х сначала вычисляется левая часть равенства при использовании встроенной функции exp(x), затем вычисляется частичная сумма ряда правой части до тех пор, пока она не будет отличаться от левой части менее, чем на заданную погрешностьε (использовать константу e=10-4) или количество итераций будет больше некоторого заданного значения limit=30;

  • для формирования суммы использовать переменную S, изначальноS=1, так как первый член ряда=1;

  • для вычисления каждого слагаемого ряда требуется возведение в степень (достаточно трудоемкая операция) и вычисление факториала (дополнительный цикл), поэтому в случаях степенной функции и факториала для упрощения вычисления суммы ряда следует использоватьрекуррентную формулу, которая позволяет получить следующий член ряда через предыдущий, т.е. каждое очередное слагаемое можно рекуррентно вычислить через предыдущее:

;

  • изначально очередной член ряда – переменная a=1и количество итераций – переменнаяi=0;

  • для вычисления частичной суммы ряда организовать цикл с постусловием |y-S|≥e и ilimit, в котором увеличивать число итерацийi=i+1, вычислять следующий член рядаa=ax/iи формировать суммуS=S+a;

  • после выхода из цикла проверить, по невыполнению какого из двух условий завершился цикл: если i>limit, то вывести информацию «точность не достигнута»; иначе вывести значениеSи количество итераций i.

Соседние файлы в предмете Программирование