Комментарии к заданию
1. Приложение Advanced Grapher распространяется бесплатно, адрес сайта http://www.alentum.com/agrapher/.
2. Напишите уравнение и выберите шаг табуляции каждой линии контура, заполните таблицу. На криволинейном участке с целью улучшения изображения в AGrapher шаг выбирается более мелкий. Для прямой выводятся две точки (без цикла).
3. Если аргумент тригонометрической функции задан в градусах, следует в программе использовать функции Sind(x), Cosd(x), Tand(x).
4. Для табуляции линий использовать оператор цикла по переменной
DO x=xn,xk,step
. . .
enddo
Здесь х – переменная цикла, xn, xk – начальное и конечное значенияx, step - шаг изменения х.
5. Количество повторений цикла рассчитывается по формуле:
или
6. В системе неравенств показать объединение квадратной скобкой, пересечение – фигурной скобкой.
7. Пунктирная контурная линия на рисунке означает, что точки, лежащие на ней, не принадлежат области.
8. При составлении системы неравенств рекомендуется рассматривать область по отдельным фрагментам, что поможет в решении задачи. Система неравенств в этом случае представляется объединением групп неравенств, соответствующих этим фрагментам.
9. Рекомендуется воспользоваться симметрией заданной области, иногда это помогает уменьшить количество неравенств.
10. Генерируя точки – узлы сетки, воспользуйтесь вложенными циклами для задания их координат.
Пример
В Таблице 5 на рисунке показана область и ограничивающий ее прямоугольник. Область разбита на два фрагмента – А и В; точка находится в пределах заданной области, если она принадлежит хотя бы одному из них.
Таблица 5. Заданная область и ограничивающий ее прямоугольник
Система неравенств: | |
Границы прямоугольника, содержащего точки: x Î [– 4, + 4], y Î [– 4, + 5] . Шаг изменения координат x и y равен 0,4. |
Таблица 6. Графики контурных линий к рисунку из Табл. 5
№ | Границы участка | Уравнение | Шаг цикла | Количество точек | Примечание |
x = [-3, 3] | y = 4 y = 2 | цикла нет | Горизонтальные стороны прямоугольника – сплошные. | ||
y = [2, 4] | x = -3 x = 3 | цикла нет | Вертикальные стороны прямоугольника – пунктир. | ||
a [0, 360▫] | x = 3cos a y = 3sin a | Step=3 | Точек цикла 121 | Параметрические уравнения окружности радиуса R=3 с центром в начале координат. |
Рис.1. Блок-схема программы |
Программа.
Program Region ! Попадание точки в область плоскости
! студент (фамилия, имя) группа № работа № вариант №
Implicit none
Real x, y
Integeralpha !alpha-целый, Real(alpha)- вещественный
Integer,parameter::inside=1,outside=2 ! номера устройств
Logical A, B
!-------выполняемые операторы
Open(3,FILE=’3.txt’) ! координаты точек сторон прямоугольника
Open(4,FILE=’4.txt’)
Open(5,FILE=’5.txt’)
Open(6,FILE=’6.txt’)
Open(7,FILE=’7.txt’) ! координаты точек окружности
Open(inside,FILE=’in.txt’) ! координаты точек внутри области
Open(outside,FILE=’out.txt’) ! координаты точек вне области
!------табуляция сторон прямоугольника (файлы на устройствах 3 - 6)
Write(3,*)-3,4;Write(3,*)3,4 ! верхняя сторона прямоугольника
Write(4,*)-3,2;Write(4,*)3,2 ! нижняя сторона прямоугольника
Write(5,*)-3,4;Write(5,*)-3,2 ! левая сторона прямоугольника
Write(6,*)3,4;Write(6,*)3,2 ! правая сторона прямоугольника
!------окружность (файл на устройстве 7)
Do alpha=0,360,3 ! аргумент функций Sind, Cosd - в градусах, целый
x=3*Cosd(real(alpha)); y=3*Sind(real(alpha))!real()-вещ.
Write(7,*)x,y;
Enddo
! цикл по Y внутри цикла по X - перебор точек прямоугольника
Do x = -4, 4, 0.4
Do y = -4, 5, 0.4
A = y>=2 .and. y<=4 .and. abs(x)<3 ! фрагмент А
В = x*x + y*y <= 9 .and. x<=0 ! фрагмент В
If(A .or. B) then
Write(inside, *) x, y
Else
Write(outside, *) x, y
End If
End Do
End Do
End Program Region
Контрольные вопросы
1. Что называется логическим выражением, бывает ли оно смешанным? Могут ли в него входить числа?
2. Как в логическом выражении распределяются приоритеты между операциями арифметическими, логическими, отношения?
3. Пять логических операций (три основные и две дополнительные) с таблицами истинности и примерами.
4. Приоритеты выполнения логических операций в логическом выражении.
5. Шесть операций отношения с примерами.
6. Запись на Фортране логических констант. Как логическую константу “истина” задать с именем ON?
7. Integer::B=27, С=3
L1=В**1/3==С
Как объявить тип переменной L1 (оператор)? Вычислите ее значение.
8. Что такое цикл в программе, управляющее выражение, параметр цикла, тело цикла?
9. Приведите стандартную блок-схему и пример
- по переменной;
- бесконечного цикла;
- итеративного цикла.
10. Объясните формулу расчета числа повторений цикла по переменной.
11. Приведите подробную блок-схему цикла по переменной.
12. Приведите блок-схемы и примеры условных операторов
- с двумя блоками;
- с одним блоком;
- без блоков.
Дата добавления: 2016-02-13; просмотров: 779;