курсовые,контрольные,дипломы,рефераты
МОНУ НТУУ"КПІ"
Лабораторна робота № 6
По темі:
"Проектування ітераційних алгоритмів"
Виконала
студентка 1-го курсу ТЕФ
Групи ТР-01
Печененко В.О.
Перевірив:
Щербашин Ю.Д.
Київ
2010
Мета роботи: навчитися розробляти ітераційні алгоритми і програмувати їх засобами мови Turbo Pascal з використанням циклів.
Завдання: розробити алгоритм, намалювати блок-схему і написати програму обчислення значення функції , розкладеної в степеневий ряд.
Обчислення суми членів ряду проводити доти, доки абсолютна величина члена ряду не стане меншою від (наприклад, ). При цьому порахувати кількість виконаних кроків ітерації (скільки членів ряду ввійшло в суму). Крім того, для підстраховки від зациклювання, яке може виникнути через некоректні вхідні дані, встановити ліміт кількості кроків. Якщо вихід із циклу відбувся через вичерпання ліміту, то видати про це повідомлення.
При обчисленні наступного члена ряду використовувати попередній член чи його частину, а не організовувати додатковий цикл для повного його обчислення.
Порівняти (знайти абсолютне значення різниці) обчислене з використанням ряду наближене значення функції із значенням, обчисленим за формулою функції.
В алгоритмі передбачити перевірку правильності введення даних.
За алгоритмом провести розрахунки не менш ніж з трьома різними наборами вхідних даних: при різних значеннях х, і ліміту кількості кроків.
Як результат роботи видати: обчислене наближене значення функції, кількість кроків ітерації, обчислене за формулою значення функції, абсолютну різницю наближеного і "точного" значень функції.
Програма:
при
program nabl_znach;
{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)(n+1)^2*x^n pry x(-1,1)');
writeln('vvedit x'); readln(x);
if (x<-1) or (x>1) then writeln('nevirne x') {pereviryaem na virnist x}
else
begin
writeln('vvedit eps'); readln(eps);
writeln('vvedit limit kilkosti iteratsii'); readln(kk);
xn:=1; {prysvoyemo znachenia zminnyh}
n:=0;
s:=0;
repeat {r}
an:=xn*sqr(n+1); s:=s+an;
xn:=xn*x;
n:=n+1;
until (abs(an)<eps) or (n>kk); {r}
if (n>kk) then writeln('perevyscheno limit kilkosti krokiv'); {yaksho cykl zakin iteraciyamy}
writeln('resultat:');
writeln(' kilkist krokiv iteratsii:',n);
writeln(' nablyzhene znachennia funktsii:',s);
f:=(1+x)/((1-x)*(1-x)*(1-x)); {tochne znachenia}
writeln(' tochne znachennia funktsii:',f);
writeln(' |f|-|s|=',abs(f)-abs(s)); {pohybka mizh tochnym ta nabl}
end;
readkey;
end.
Приклади роботи програми:
Висновок
У цій роботі ми навчилися розробляти ітераційні алгоритми, будувати їх блок-схеми та програмувати засобами мови Turbo Pascal з використанням циклів. Ітерації корисні для обчислення приблизних значень деяких величин чи функцій.
МОНУ НТУУ"КПІ" Лабораторна робота № 6 По темі: "Проектування ітераційних алгоритмів" Виконала студентка 1-го курсу ТЕФ Групи ТР-01 Печененко В.О. Перевірив:
Проектування печатних плат в P-CAD для Windows
Составление расписаний выполнения работ в Microsoft Project
Табличный процессор Excel. Формат ячеек
Исследование устойчивости, решение задач линейного программирования графическим способом
Надежность, эргономика и качество АСОИУ
Охлаждение системных блоков
Создание и обработка баз данных в СУБД Access
Вычисление суммы бесконечного ряда с точностью епсилон
Исследование радиоэлектронных схем с использованием их виртуальных аналогов
MS Ассеss - создание простой базы данных
Copyright (c) 2024 Stud-Baza.ru Рефераты, контрольные, курсовые, дипломные работы.