Содержание
Постановка задания
Задание для всех вариантов звучит так (или, возможно, немного изменено, так как могут быть разные издания учебного пособия):
- Составьте программу приближенного вычисления функции с заданной точностью eps с помощью ряда. На экран выводить промежуточные значения (значения каждого слагаемого) и конечный результат.
- Войдите в систему и наберите текст программы.
- Откомпилируйте программу и запустите ее на выполнение.
- Объясните каждую строчку программы.
- Подготовьте ответы по следующим темам:
- Условные операторы.
- Операторы цикла.
- Вспомогательные управляющие операторы.
Варианты заданий
№ | Функция |
В-1 | $y=sin(x)=x-\frac{x^{3}}{3!}+\frac{x^{5}}{5!}-\frac{x^{7}}{7!}+\ldots$ |
В-2 | $y=cos(x)=1-\frac{x^{2}}{2!}+\frac{x^{4}}{4!}-\frac{x^{6}}{6!}+\ldots$ |
В-3 | $y=exp(x)=1+x+\frac{x^{2}}{2!}+\frac{x^{3}}{3!}+\ldots$ |
В-4 | $y=sh(x)=x+\frac{x^{3}}{3!}+\frac{x^{5}}{5!}+\frac{x^{7}}{7!}+\ldots$ |
В-5 | $y=ch(x)=1+\frac{x^{2}}{2!}+\frac{x^{4}}{4!}+\frac{x^{6}}{6!}+\ldots$ |
В-6 | $y=ln\left(x+1\right)=x-\frac{x^{2}}{2}+\frac{x^{3}}{3}-\frac{x^{4}}{4}+\ldots$ в интервале $\left(-1,1\right)$ |
В-7 | $y=(x+1)^{n}=1 + n · x + \frac{n·(n — 1)}{2!} · x^{2} + \frac{n · (n — 1) · (n — 2)}{3!} · x^{3}\ldots$ в интервале $(-1,1)$ |
В-8 | $y=arctg(x)=x-\frac{x^{3}}{3!}+\frac{x^{5}}{5!}-\frac{x^{7}}{7!}+\ldots$ |
В-9 | $y=exp(-x)=1 — x + \frac{x^{2}}{2!}-\frac{x^{3}}{3!}+\ldots$ |
В-10 | $y=(x+1)^{n}=1 + n · x + \frac{n·(n — 1)}{2!} · x^{2} + \frac{n · (n — 1) · (n — 2)}{3!} · x^{3}\ldots$ в интервале $(-1,1)$ |
В-11 | $y=sin(x)=x-\frac{x^{3}}{3!}+\frac{x^{5}}{5!}-\frac{x^{7}}{7!}+\ldots$ |
В-12 | $y=cos(x)=1-\frac{x^{2}}{2!}+\frac{x^{4}}{4!}-\frac{x^{6}}{6!}+\ldots$ |
Лабораторная работа №3 предполагает написание программы на языке Си в среде разработки Borland C. При заказе работы своего варианта вы получите качественно написанную и хорошо прокомментированную программу.
Образец выполнения (вариант №6)
Условие задания
$y=ln\left(x+1\right)=x-\frac{x^{2}}{2}+\frac{x^{3}}{3}-\frac{x^{4}}{4}+\ldots$ в интервале $\left(-1,1\right)$
Реализация задачи на языке Си
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | #include <stdio.h> // для ввода, вывода (scanf, printf) #include <conio.h> // для задержки программы (getch) #include <locale.h> // для руссификации (setlocale) #include <math.h> // для матем.функций (fabs, log) //--------------------------------------------------- // главная функция программы (точка входа) //--------------------------------------------------- int main(void) { float epsilon; // заданная точность расчетов int codeEpsilon; // код точности расчетов float x; // заданное значение аргумента функции float currentTerm; // значение текущего члена ряда float calcY; // расчетное значение функции float y; // значение функции по прямой формуле int znak; // знак текущего члена ряда float numerator; // числитель текущего члена ряда float denominator; // знаменатель текущего члена ряда setlocale(LC_ALL, "rus"); // руссификация диалогов // запрашиваем с клавиатуры входное значение х printf("Введите х из интервала (-1, 1): "); scanf("%f", &x); // предлагаем пользователю выбрать точность расчетов printf("\nВыберите точность расчетов: "); printf("\n\t1 - 0.01 (одна сотая)"); printf("\n\t2 - 0.001 (одна тысячная)"); printf("\n\t3 - 0.000001 (одна миллионная)"); printf("\nВыбор: "); scanf("%d", &codeEpsilon); switch(codeEpsilon) { case 1: { epsilon = 1E-2; // одна сотая break; } case 2: { epsilon = 1E-3; // одна тысячная break; } case 3: { epsilon = 1E-6; // одна миллионная break; } } // производим настройки 1-го члена ряда (он равен +х) znak = +1; numerator = x; denominator = 1; currentTerm = znak * numerator / denominator; calcY = 0; // выводим шапку таблицы результатов на экран printf("\n----------------------------------------\n"); printf("| № | Текущее слагаемое | Сумма ряда |\n"); printf("----------------------------------------\n"); // пока текущий член ряда БОЛЬШЕ заданной точности // это правило работает, т к ряд сходящийся и знакопеременный while(fabs(currentTerm) > epsilon) { calcY += currentTerm; // добавляем текущий член к общей сумме // выводим на экран №члена ряда, значение текущего члена ряда и накопленную сумму printf("| %3.0f | %17.6f | %10.6f |\n", denominator, currentTerm, calcY); // производим настройку текущего члена ряда znak *= -1; numerator *= x; denominator++; currentTerm = znak * numerator / denominator; } printf("----------------------------------------\n"); // выводим на экран значения заданной функции рассчитанной программно и по прямой формуле printf("\nРасчетное значение функции, полученное программно: %0.6f", calcY); printf("\nЗначение функции по прямой формуле (y = ln(1 + x)): %0.6f\n\n", log(x + 1)); printf("Для завершения работы программы нажмите любую клавишу..."); getch(); // задержка программы, чтобы можно было просмотреть результат return 0; // завершение работы программы и передача управления в ОС } //--------------------------------------------------- |
Результаты работы программы
Стоимость заказа работы
💡 Стоимость программы из любого варианта составляет $100$ рублей.
Для оформления заказа пишите на почту: proglabs@mail.ru.
Время нашего ответа обычно составляет не более 10 минут.
Добавить комментарий