Пример к лабораторной работе №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; просмотров: 233; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!