Пример к лабораторной работе №5
Условие задания:
Доработать алгоритм и программу лабораторной работы № 4, введя вычисление суммы всех S>0(
),а также произведения всех F, вычисленных для M>L (
), и их количества k
Фрагмент блок-схемы алгоритма представлен на рисунке.

Фрагменты листинга программы:
void main ()
{……………
float SUM =0, PR =1;/*объявление дополнительных
переменных и их начальных значений*/
unsigned int k=0;
…………………
S=…………;
if(S>0) SUM+=S;
printf(“S=%7.3f ! SUM=10.3f !”,S,SUM);
…………………
if((N>0) ||(M!=0))
{ F=…………;
if(M>L)
{ PR*=F;
k++;
}
printf(“F=%10.3f ! PR=%12e! k=%4d!\n”,F,PR, k);
}
………………
}
13. Лабораторная работа N 10
Организация итерационных циклов.
Цель. Освоить методы программирования итерационных вычислительных процессов.
Методические указания. Итерационным называется такой вычислительный процесс, в котором для определения последующего значения переменной используется ее предыдущее значение. Типичными задачами этого типа являются задачи вычисления суммы членов бесконечного ряда значений функций и корней уравнения по рекуррентным формулам с требуемой точностью. Выход из цикла организуется по условию достижения заданной точности.
Требования к программе: Составить блок-схему алгоритма и паскаль-программу. Организовать по экранный вывод результатов. Найти количество потребовавшихся итераций.
Выводимые величины:
- текущая оценка точности, y – текущее приближенное значение, n – номер итерации, исходные данные.
Порядок выполнения лабораторной работы.
1. Ознакомление с заданием. Разработка алгоритма.
2. Написание программы. Вод программы. Устранение синтаксических ошибок.
3. Отладка программы. Получение и оценка результатов. Оформление отчета.
4. Защита лабораторной работы.
Варианты.
| № | Задание (Вычислить значение функции) | Рекуррентная формула | Вычисления прекратить при | Исходные данные для контрольного просчета |
| 1 |
y =
|
k = 0, 1, 2...
|
| y(0) = 0.125; x = 5; E = 0.00001 |
| 2 |
|
k = 0, 1, 2...
|
| y (0) = 0.25; x = 11; E = 0.000001 |
| 3 |
|
k = 0, 1, 2...
|
| x(0) = 0.5; E = 0.000001 |
| 4 |
|
k = 0, 1, 2...
|
| x(0) = 1.5; E = 0.0001 |
| 5 |
| k = 0, 1, 2...
|
|
|
| 6 | y = sin(x) = S U(k) |
k = 1, 2, 3...
|
|
U(1) = x;
E = 0.0001;
|
| 7 |
|
k = 0, 1, 2...
|
| q = 4.78; y = 7; x = 16234; E = 0.000001 |
| 8 |
| k = 0, 1, 2...
|
| p = 7; Y(0) = 6; x = 277234; E = 0.000001; |
| 9 |
|
k = 0, 1, 2...
|
| x(0) = 0.5; E = 0.000001 |
| 10 |
|
k = 0, 1, 2...
|
| y(0) = 2; x = 15; E = 0.000001; |
| 11 | y = ch(x) = сумма(U(k)) |
k = 1, 2, 3...
|
| u(1) = 1; x = 5.5; E = 0.001 |
| 12 |
|
k = 0, 1, 2...
|
| y(0) = 3; x = 7; E = 0.00001 |
| 13 |
|
k = 0, 1, 2...
|
| x(0) = 1.2; E = 0.0001 |
| 14 |
|
k = 0, 1, 2...
|
| x(0) = 10; E = 0.0001 |
| 15 |
|
k = 0, 1, 2...
|
| x(0) = 1.5; E = 0.001; |
| 16 |
|
k = 0, 1, 2...
|
| x(0) = 0.6; E = 0.001; |
| 17 |
|
k = 0, 1, 2...
|
| x(0) = 0.5; E = 0.001 |
| 18 | Отрицательный корень уравн
|
k = 0, 1, 2...
|
| x(0) = - 1.3; E = 0.0001 |
| 19 |
|
|
| x = 2.417, E = 0.00001 U(0)=1 |
| 20 |
|
|
| x = 0.437; E = 0.0001; u(1)=x |
| 21 |
|
|
| x = 0.476; E= 0.0001 U(0)=1 |
| 22 |
|
|
| x(0) = 0, E= 0.0001 |
| 23 |
|
|
| x(0) = 0, E= 0.0001 |
| 24 |
|
|
|
|
| 25 |
|
|
|
|
| 26 |
|
|
| x = 1,5, u(0)=x; E= 0.001 |
| 27 |
|
|
| u0=x
x = 0.8,
|
| 28 |
|
|
| u0=x x = 0.7; E= 0.001 |
| 29 |
|
|
| U0=x; x=0.8; E= 0.001 |
| 30 |
|
|
|
x=5; E= 0.001
|
Пример выполнения лабораторной работы №6.
Задание.
Вычислить значение функции e-t по рекуррентной формуле:

Вычисления прекратить при ∆=|X(k)-X(k-1)|<E, Вывести: ∆, X, n, E.
Решение.
|
Из рекуррентной формулы видно, что
. Разделив i-е слагаемое суммы на (i-1)-е находим, что они отличаются множителем
, а первое слагаемое при i=0 равно 1. Предыдущее и новое значение X будут отличаться только на очередное слагаемое, которое необходимо вычислить. Поэтому, необходимо применить цикл с постусловием. Алгоритм решения задачи представлен на рис. 11.
Алгоритм необходимо дополнить поэкранным выводом. Текст программы, реализующей этот алгоритм приведен ниже.
void main ()
{ int i=1;
float Xt=1, p=1, E, t;
printf (“Введите аргумент и точность вычисления-“);
scanf(“%f%f”,&t,&E);
do{ p*= -1*t/i;
Xt+=p;
printf(“i=%3d Xt=%7.4f p=%7.4f\n”, i, Xt, fabs(p));
if ( i %24==0){ printf (“ Для продолжения нажмите любую клавишу”)
getch(); }
i++;
}while(fabs(p)>=E);
printf(“\n Результат - %7.4 .”,Xt);
getch();
}
Приложение 1
Основные обозначения элементов на блок-схемах.
|
|
Примеры правильного соединения блоков.
|
Примеры неправильного соединения блоков.
|
Использование соединителей.
|
На одной странице.
Межстраничный.
Приложение 2
Пример оформления отчета по лабораторным работам по курсу
«Алгоритмические языки и программирование»
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ДОНЕЦКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра АТ
Лабораторная работа №1
по инфориатике
Выполнил:
ст. гр.
Принял:
г. Донецк
2016г.
Дата добавления: 2019-09-13; просмотров: 236; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!

k = 0, 1, 2...
k = 0, 1, 2...
k = 0, 1, 2...
k = 0, 1, 2...
k = 0, 1, 2...
k = 1, 2, 3...
k = 0, 1, 2...
k = 0, 1, 2...
k = 0, 1, 2...
k = 0, 1, 2...
k = 1, 2, 3...
k = 0, 1, 2...
k = 0, 1, 2...
k = 0, 1, 2...
k = 0, 1, 2...
k = 0, 1, 2...
k = 0, 1, 2...
k = 0, 1, 2...
x=5; E= 0.001