Программирование циклических вычислительных процессов




Задание №2

Программирование ветвящихся вычислительных процессов

Цель работы

Получить навыки программирования ветвящихся вычислительных процессов. Изучить условные операторы, переменные логического типа, логические отношения и операции.

 

Задание

Пусть на плоскости x, y задана область D. Требуется определить «попадает» ли точка с координатами (x, y) в область D или нет. Если попадает, то необходимо вычислить функцию и переменной M, значение которой является признаком «попадания» или «непопадания», присвоить значение M=1. В противном случае вычислить и положить M=2.

 

Ход работы

Алгоритм решения поставленной задачи:

1. Выписать область D и выписать функции и

2. Записать уравнения, определяющие границы области

3. Подготовить 7 точек, чтобы часть точек находилась внутри D, а часть- вне ее.

4. Написать программу для выполнения поставленной задачи.

5. Для выбранных точек получить и записать результаты счета.

Задание:

f1=tg(x)/ey f2=

2.Если:

(x>0 и y>0 и X**2+Y**2<=9) или (x<0 и y>0 и y<=x+4) или (x<0 и y<0 и x>(-4) и y>(-2))

то точка принадлежит области D

1)(1;1)
2)(3;3)
3)(-1;2)
4)(-5;2)
5)(-2;-1)
6)(-5;-3)

7)(3;-3)

 

    Fortran MathCAD
x y z m c z m c
    0.1573E+01   T 1.573    
    0.0751E+01   F 0.751    
-1   -0.1211E+01   T -1.211    
-5   0.083E+01   F 0.83    
-2 -1 0. 394E+01   T 3.94    
-5 -3 0.0282E+01   F 0.282    
  -3 0. 0271E+01   F 0.271    

 

PROGRAM LAB2

LOGICAL C

REAL X,Y,Z

INTEGER I,M

DO I=1,8

PRINT *,'X=?,Y=?';READ *,X,Y

C=(x>0..and. y>0..and.X**2+Y**2<=9).or.(x<0..and.y>0..and.y<=x+4).or.(x<0..and.y<0..and.x>(-4).and.y>(-2))

IF(C)THEN

PRINT*,'YES'

Z=F1(X,Y);M=1

ELSE

PRINT *,'NO'

Z=F2(X,Y);M=2

END IF

PRINT 2,X,Y,Z,C,M

END DO

2 FORMAT ('X=',F7.3,3X,'Y=',F7.3,3X,'Z=',E11.4,3X,'C=',L2,3X,'M=',I2/)

END PROGRAM LAB2

FUNCTION F1(X,Y)

F1=tan(x)/exp(x)**y

END FUNCTION F1

FUNCTION F2(X,Y)

F2= (sqrt(sin(2*x+3*y)**2)**1./3.)

END FUNCTION F2

MATHCAD

 

 


 


program Lab2

real:: a,b,c

logical:: q,w,e

print*,'a,b,c=?';read '(2F7.3)',a,b,c

do i=1,8

q=a>b.and.a<c.or.&

a<b.and.a>c

w=b>a.and.b<c.or.&

b<a.and.b>c

e=c>a.and.c<b.or.&

c<a.and.c>b

if(q) then

print*,a

elseif(w) then

print*,b

elseif(e) then

print*,c

else

print*,'no'

end if

end do

end

 

28.,558.,345. 345.0000


Задание №3

Программирование циклических вычислительных процессов

Цель работы

Получить навыки программирования циклических вычислительных процессов. Изучить циклы с шагом и циклы с условием.

Задание

1. Записать расчетные формулы для вычисления слагаемого и конечной суммы

ряда

2. Составить алгоритм вычисления с заданной точностью суммы конечного числа членов ряда в указанном диапазоне изменения параметра x с заданным шагом. Для получения шага диапазон изменения x разделить на 10.

3. Составить программу решения задачи. В программе для каждого значения x предусмотреть вычисление как приближенной, так и точной суммы соответствующего ряда y по приведенной в таблице формуле.

4. Отладить и просчитать программу. Результат получить в виде таблицы, содержащей для каждого x из указанного диапазона приближенное и

точное значения суммы ряда, а также количество просуммированных членов.

 

Ход работы

1. Задать x0-начало цикла и xл-конец цикла

2. Задаем шаг h по формуле

3. Рассчитать формулы для вычисление слагаемого и конечной суммы ряда

4. Составить программу решения задач рекуррентным способом

5. Построить таблицу полученных данных

 

Задание:

Формула ряда:

Формула точного вычисления суммы: π/4

1. x0= π/10 xk=9 π/10

2. h=0,09

3.


Fortran

program Lab3

real:: a,b,c,eps,h,s,x,x0,xk,y,p

integer:: i,n

pi=3.1415926535

x0=pi/10

xk=9*pi/10

eps=0.0001

h=(xk-x0)/10

do i=0,10

x=x0+h*i

n=0;a=x;s=0.

do

b=(sin*(x)*(2*n)-1+sin*((2*n-1)*x))/4*n-2

s=s+a

a=a*b

n=n+1;

if(abs(a)<eps)exit

end do

y=pi/4

print 2,x,s,y,n; write(1,2)x,s,y,n

end do 2 format('x=',f6.3,3x,'s=',e10.3,3x,'y=',e10.3,3x,'n=',i5)

end program lab3


 

 

1.

 

x S(x) y
0.314 0.324 0.785
0.565 0.622 0.785
0.817 0.979 0.785
1.068 1.404 0.785
1.319 1.43 0.785
1.57 -19.257 0.785
1.821 -533.961 0.785
2.072 -8.624E+3 0.785
2.324 -9.986E+4 0.785
2.575 -8.928E+5 0.785
2.826 -6.477E+6 0.785


 

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-08-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: