Рекурсивний виклик функції

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2021
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Алгоритмізація та програмування

Частина тексту файла (без зображень, графіків і формул):

Національний технічний університет України  «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 1: Базові концепції програмування ЗВІТ до лабораторної роботи № 5 «Рекурсивний виклик функції» Варіант 7 Дата «24» листопада 2021 Завдання: 1. Ознайомитись з рекурсивним викликом функції. 2. Розробити алгоритмом розрахунку значення функції за її розкладенням у ряд за умови отримання результату з заданою  точністю. Врахувати діапазон дозволених значень для змінної x. 3. У якості індивідуального завдання необхідно написати програмний код, що реалізує алгоритм розрахунку значень функцій за їх розкладенням в ряд із заданою користувачем точністю. / Короткий опис рішення На початку програми створено функцію для обчислення факторіалу. Далі у методі main реалізовано введення значень функції з клавіатури. Нижче градуси переводяться у радіани. Далі створюються змінні x1, y1 та q1, вони обчислюються за допомогою бібліотечних формул косинуса та синуса( косинуси та синуси вставляються в формули, що зазначені у завданні). Нижче створено цикл, який обраховує значення косинуса та синуса за допомогою їх формули розкладу в ряд. Точність обрахунку залежить від того, наскільки велике значення N. / Далі створюються змінні x2, y2 та q2, вони вже обраховуються використовуючи нові значення косинуса та синуса. Далі створено змінні, які обраховують різницю між двома значеннями x, y, q. Нижче реалізовано вивід результатів програми. У випадку, якщо введене значення градусів не відповідає необхідним умовам, програма видає відповідне повідомлення. Блок-схема / / Результати роботи / / Висновки: було створено програму, яка обчислює значення геометричної фігури кардіоїди. Це було реалізовано двома шляхами: завдяки бібліотечним значенням косинуса та синуса, а також обрахувавши значення цих тригонометричних функцій завдяки формулам розкладення в ряд. Код програми: https://replit.com/join/ajqisgqqch-vladsosiedskii #include <stdio.h> #include <math.h> #define M_PI 3.14159265358979323846 double factorial(double n){ if(n <= 1.0){ return 1.0; } else{ return (n*factorial(n-1)); } } int main(void) { double fi, a, N, x2 = 0, y2 = 0, q2 = 0, cosr=0, sinr=0; printf("Введіть значення градусів: "); scanf("%lf", &fi); if(fi<=360 && fi>=0){ printf("Введіть значення коефіцієнту a: "); scanf("%lf", &a); printf("Введіть значення N(від нього залежить точність обчислення функції): "); scanf("%lf", &N); double r = (fi/180)*M_PI; printf("У радіанах: %lf\n", r); double x1 = a*cos(r)*(1+cos(r)); double y1 = a*sin(r)*(1+cos(r)); double q1 = a*(1+cos(r)); for(int k = 0; k < N; k++){ cosr = cosr + (pow(-1,k) * (pow(r, 2 * k)/factorial(2 * k))); sinr = sinr + (pow(-1, k)*(pow(r, 2 * k + 1)/(factorial(2 * k + 1)))); } x2=a*cosr*(1+cosr); y2=a*sinr*(1+cosr); q2=a*(1+cosr); double ex = x2 - x1; double ey = y2 - y1; double eq = q2 - q1; printf("\n\nx1 = %.15lf\tx2 = %.15lf\ny1 = %.15lf\ty2 = %.15lf\nq1 = %.15lf\tq2 = %.15lf\n", x1,x2,y1,y2,q1,q2); printf("\nex = %.15lf\ney = %.15lf\neq = %.15lf", ex,ey,eq); } else{ printf("Значення градусів повинно бути більше 0 та менше 360"); } return 0; }
Антиботан аватар за замовчуванням

29.05.2023 19:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!