Санкт-Петербургский

Государственный Университет

Информационных Технологий,

Механики и Оптики

Отчет

По информатике

Вариант № 23

Подготовил:

Преподаватель:

2004 г.

Задание

Функции графиков

- Для окружности во II четверти(r-радиус окружности, alpha – угол от 0 до 360 гр.)

x=r*Cosd(alpha)-r

y=r*Sind(alpha)+r

- Для окружности во IV четверти(r-радиус окружности, alpha – угол от 0 до 360 гр.)

x=r*Cosd(alpha)+r

y=r*Sind(alpha)-r

- Для квадрата:

x=a-2*r

x=a

y=b+2*r

y=b

где (a; b) – координаты нижней правой вершины квадрата, r - радиус окружностей

Неравенства

Для квадрата:

l1=x>=a-2*r .and. x<=a .and. y>=b .and. y<=b+2*r

Точки окружности в IV-четверти:

l2=(x-r)**2+(y+r)**2<=r*r

Точки окружности в II-четверти:

l3=(x+r)**2+(y-r)**2<=r*r

Для попадания точек в закрашенную область:

l=(l1 .and. l3) .or. ((.not.l1).and. l2)

Программа

Program lab5

Implicit none

Real x,y, a, b, r, alpha

integer :: inside=1, outside=2, square=3, circle1=4, circle2=5

Logical L1,L2,L3,L

Open(inside,file='inside.dat')

Open(outside,file='outside.dat')

Open(square,file='square.dat')

Open(circle1,file='circle1.dat')

Open(circle2,file='circle2.dat')

Write(*,*) "input R of circles and (x,y) of square right-bottom corner's top:"

Read(*,*) r, a, b

Do x=a,a-2*r,-0.025

Write(square,*) x,b

Write(square,*) x,b+2*r

enddo

Do y=b,b+2*r,0.25

Write(square,*) a,y

Write(square,*) a-2*r,y

enddo

Do alpha=0,360,2

x=r*Cosd(alpha)-r

y=r*Sind(alpha)+r

Write(circle1,*) x,y

Enddo

Do alpha=0,360,2

x=r*Cosd(alpha)+r

y=r*Sind(alpha)-r

Write(circle2,*) x,y

Enddo

do y=-3*r, 3*r, 6*r/68.

do x=-3*r, 3*r, 6*r/68.

l1=x>=a-2*r .and. x<=a .and. y>=b .and. y<=b+2*r

l2=(x-r)**2+(y+r)**2<=r*r

l3=(x+r)**2+(y-r)**2<=r*r

l=(l1 .and. l3) .or. ((.not.l1).and. l2)

if(l) then

Write(inside,*) x,y

else

Write(outside,*) x,y

end if

end do

end do

end

Блок-Схема

Результат