Задание
Уравнения для графиков Для дуги окружности: x=r*cos(a) y=r*sin(a) Для горизонтальных линий: y=r y=-r Для наклонных линий: y=-x y=x |
Условие для точек внутри заштрихованной области:
Внутри дуги окружности:
l1=x*x+y*y<=r*r .and. x>=0
Внутри треугольника во 2-ой четверти:
l2=y>=-x .and. y<=r .and. y>=0 .and. x>=-r .and. x<=0
Внутри треугольника в 3-ей четверти:
l3=y<=x .and. y<=0 .and. y>=-r .and. x>=-r .and. x<=0
Полученный график:
Текст программы
program lab4
implicit none
real r, alpha, x, y
logical l,l1,l2,l3
open(1, file='duga.txt')
open(2, file='line1.txt')
open(3, file='line2.txt')
open(4, file='inside.txt')
open(5, file='outside.txt')
open(6, file='line3.txt')
open(7, file='line4.txt')
write(*,*) 'R=?'
read(*,*) r
do alpha=90,-90,-2
x=r*cosd(alpha)
y=r*sind(alpha)
write(1,*) x,y
enddo
do x=-r,0,0.5
write(2,*) x,-x
write(3,*) x, x
write(6,*) x, r
write(7,*) x, -r
enddo
do x=-2.*r,2.*r,0.25
do y=-2.*r,2.*r,0.25
l1=x*x+y*y<=r*r .and. x>=0
l2=y>=-x .and. y<=r .and. y>=0 .and. x>=-r .and. x<=0
l3=y<=x .and. y<=0 .and. y>=-r .and. x>=-r .and. x<=0
l=l1 .or. l2 .or. l3
if(l) then
write(4,*) x,y
else
write(5,*) x,y
endif
enddo
enddo
end
Блок схема
Санкт-Петербургский Государственный Университет
Информационных технологий,
Механики и оптики
Отчет
К лабораторной работе по информатике
Вариант № 8
Студент:
Преподаватель:
2004 г.