Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
абораторна робота №9 Проектування ітераційних алгоритмів
Євтушенко Михайло, ТМ-21
Мета роботи: навчитися розробляти ітераційні алгоритми і програмувати їх засобами мови Turbo Pascal з використанням циклів.
Завдання: розробити алгоритм намалювати блок-схему і написати програму обчислення функції f(x), розкладеної в степеневий ряд. Призначення кожної змінної пояснити в коментарях обчислення суми членів ряду проводити доти доки абсолютна величина члена ряду не стане меншою від Е. при цьому порахувати кількість виконаних кроків ітерації. Крім тогоЮ для під страховки від за циклювання,яке може виникнути через неконкретні дані, встановити ліміт кількості кроків. Якщо вихід з циклу відбувся через вичерпання ліміту,то видати про це повідомлення. При обчисленні наступного члена ряду використовувати попередній член чи його частину, а не організовувати додатковий цикл для повного його обчислення. Порівняти (знайти абсолютне значення різниці) обчислене з використанням ряду наближене значення функції із значенням, обчисленим за формулою функції. В алгоритмі передбачити перевірку правильності введення даних. Програму виконувати доти, поки дані не будуть введенні правильно. За алгоритмом провести розрахунки не менш ніж з трьома різними наборами вхідних даних: при різних значеннях x,e і ліміту кількості кроків. Як результат роботи видати: обчислене наближене значення функції, кількість кроків ітерації,обчислене за формулою значення функції, абсолютну різницю наближеного і точного значень функції.
Варіант№8
Текст програми:
program laba_9;
{rakhuie nablyzhene znachennia za stepenevym riadom}
uses crt;
var x,eps,xn,an,s,f:real;
kk,n:integer;
begin
clrscr;
writeln('riad E(n=1..+00)(x^(2n+1))/((2n+1)!) pry x[-10,10]');
writeln('vvedit x');readln(x);
if(x<-10)or(x>10) then writeln('nevirne x')
else
begin
writeln('vvedit eps');readln(eps);
writeln('vvedit limit kilkosti iteratsii');readln(kk);
an:=1;
n:=1;
s:=x;
repeat
an:=an*((x*x)/(2*n*(2*n+1)));
s:=s+an;
n:=n+1;
until(abs(an)<eps) or(n>kk);
if(n>kk) then writeln('perevyshchenolimit kilkosti krokiv');
writeln('rezultat: ');
writeln(' kilkist krokiv iteratsii:' ,n);
writeln(' nablyzhene znachennia funktsii:' ,s);
f:=(exp(x)-exp(-x))/2;
writeln(' tochne znachennia funktsii:' ,f);
writeln(' |f-s|=' , abs(f-s);
end;
readln;
end.
Результат:
Висновок: : я навчився розробляти ітераційні алгоритми і програмувати їх засобами мови Turbo Pascal з використанням циклів.