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

Поделиться с друзьями:






Мы поможем в написании ваших работ!