Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
абораторна робота № 1
Хід роботи :
Дано дійсне число х і натуральне N. Обчислити
Тут приведені три фрагменти для обчислення зазначеної суми. Перший демонструє поганий (неефективний) спосіб запису алгоритму, коли задача вирішується " в лоб":
int n, i, k;
unsigned long fact;
float s, х;
printf("Введіть кількість доданків : ") ;
scanf (“%d", &n) ;
printf ("Введіть дійсне число х : ");
scanf (“%f”, &х) ;
for ( k=1, s=0; k<=n; k++)
{
for(i=l, fact=l; i<=2*k+l; i++) fact*=i;
s+=pow(-1.0, (float)k) * pow(x, (float)k / fact;
}
Недолік цієї програми полягає в тому, що в ній не враховуються рекурентні залежності, які можна використовувати при обчисленні факторіала і ступеня. Крім того, зовсім не обов'язково для обчислення (-l)k використовувати функцію pow().
Програму можна істотно поліпшити, якщо використовувати такі співвідношення:
xk= xk-1*x
(2k+1)! = (2(k-l)+l)! *2k*(2k+l)
\____/ обчислено на попередньому кроці
З врахуванням цього запишемо другий варіант програми:
int n, k, ed=l ;
unsigned long fact =l, stepX=l;
float s, х;
printf ("Введіть кількість доданків : ");
scanf ("%d" , &n) ;
printf ("Введіть дійсне число х : ");
scanf ("%f”, &х) ;
for ( k=l, s=0; k<=n; k++ )
{ ed=-ed; step*=x; fact*=4*k*k+2*k; s+=ed*step/fact; }
Необхідно по можливості уникати непотрібних викликів функцій, тому що це віднімає час рахунку і приводить до збільшення довжини коду програми.
Недоліком обох приведених фрагментів є те, що в них ступінь і факторіал числа рахуються окремо. Як відомо, функції факторіала і ступеня ростуть досить швидко, тому вже при досить невеликих значеннях N відбудеться переповнення, і програма не буде працювати. У даному випадку краще на черговому кроці циклу під час обчислення ступеня і факторіала відразу ділити їх один на одного, щоб вони взаємно "гасилися". З обліком цього запишемо останній варіант програми:
int n, k, еd=1;
float slag=l, х, s=0;
printf("Введіть кількість доданків : "); scanf (“%d", &n) ;
printf("Введіть дійсне число х : ") ; scanf (“%f", &x) ;
for( k=l; k<n; k++)
{ ed=-ed; slag*= x / (2*k*(2*k+l ) ) ; s+=ed* slag; }
Завдання для виконання лабораторної роботи.
Задача 1. Обчислити значення функції
для значень аргументу х від -0.4 до 1.3 із кроком 0.1.
Задача 2 Визначити k-ю цифру послідовності 182764125216343... ,
у який виписані підряд куби натуральних чисел.
Задача 3. Уведіть місяць і день свого народження. З'ясуйте, який найближчий рік буде для вас щасливим. Рік називається щасливим, якщо залишок від розподілу суми його цифр на 10 збігається з аналогічним залишком суми цифр чи місяця дня народження.
Задача 4. Обчислити, не використовуючи функцію pow( ), значення функції
z(x, m) = xm sinm ( xm) для значень аргументів:
х від -1.1 до 0.3 із кроком 0.2; т від 1 до 5 із кроком 1.
Задача 5. Обчислити значення функції
для значень аргументу х від -0,5 до 1,2 із кроком 0,1.
Задача 6. Обчислити значення функції
для значень аргументів х від 0,2 до 0,6 із кроком 0,1;
у від 0,0 до 0,4 із кроком 0,05.
Задача 7. Три друзі були свідками ДТП. Перший помітив, що номер порушника ділиться на 2, 7 і 11. Другий запам'ятав, що в записі номера беруть участь всего дві різні цифри, а третій що сума цифр дорівнює 30. Визначити чотиризначний номер порушника.
Задача 8. За заданим дійсним х (х<3) обчислити значенняÖx за формулою подвійної ітерації:
Yi+1 = Yi 0.5YiZi, Zi+1 = 0.25zi2(zi - 3),
Ітерації припинити при |уi+1 -- yi| < 10-6 .
Задача 9. Обчислити значення функції
для значень аргументу х від -0.8 до 0.6 із кроком 0.1.
Задача 10. Уведіть свій рік, місяць і день народження. Ваш день народження дуже щасливий, просто щасливий чи звичайний? Дуже щасливий якщо всі залишки від розподілу на 7 сум цифр року, місяця і дня збігаються. Просто щасливий якщо збігаються два будь-яких залишки. Звичайний якщо збігів немає.
Питання для самоконтроля
PAGE 2
EMBED Equation.3