 
        
        учебное пособие по лр_фортран
.pdf22
| № | Неравенство | Неравенство | Неравенство | Дополнительная | ||||||||||||||||||||||
| 
 | A | B | 
 | 
 | 
 | 
 | 
 | C | 
 | логическая формула | ||||||||||||||||
| 16 | x > 0 | y > 0 | 
 | y > x 2 – 2 | A + | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||
| B +C | ||||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 17 | x ≤ 0 | y ≤ 0 | y ≤ − | 
 | x2 | +3 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||
| 
 | A + B +C | |||||||||||||||||||||||||
| 3 | ||||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||
| 18 | x > 0 | y > 0 | y > – x 2 + 2 | A + | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||
| B +C | ||||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 19 | x > 0 | y ≤ 0 | 
 | y2 | 
 | −3 ≤ x | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||
| 
 | 
 | A + B +C | ||||||||||||||||||||||||
| 3 | 
 | |||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||
| 20 | x > 0 | y > 0 | 
 | x2 + y2 > 1 | A + | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||
| 
 | B +C | |||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||
| 21 | x > 0 | y ≤ 0 | 
 | y > x 2 – 2 | A + | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||
| 
 | B +C | |||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||
| 22 | x > 0 | y > 0 | 
 | y ≤ - x 2 + 2 | B | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||
| 
 | 
 | A +C | ||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||
| 23 | x > 0 | y > 0 | 
 | x2 | 
 | + y 2 | >1 | B | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||
| 
 | 
 | 
 | A +C | |||||||||||||||||||||||
| 4 | 
 | |||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||
| 24 | x ≤ 0 | y ≤ 0 | x2 + | y2 | 
 | ≤ 1 | B | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||
| 
 | 
 | A +C | ||||||||||||||||||||||||
| 
 | 
 | |||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 4 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 25 | x > 0 | y ≤ 0 | 
 | y2 | 
 | ≤ x +1 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||
| 
 | 
 | B A +C | ||||||||||||||||||||||||
| 2 | 
 | |||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||
| 26 | x > 0 | y ≤ 0 | 
 | y ≤ x 2 – 2 | B | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||
| 
 | 
 | A +C | ||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||
| 27 | x > 0 | y ≤ 0 | y > - x 2 + 2 | B | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||||
| 
 | A +C | |||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||||||
| 28 | x ≤ 0 | y ≤ 0 | 
 | x2 | 
 | + y 2 | >1 | B | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||
| 
 | 
 | A +C | ||||||||||||||||||||||||
| 4 | 
 | |||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||||||||||
| 29 | x ≤ 0 | y > 0 | x2 + | y2 | 
 | 
 | > 1 | A + | 
 | 
 | ||||||||||||||||
| 
 | CB | |||||||||||||||||||||||||
| 
 | ||||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 4 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 30 | x ≤ 0 | y ≤ 0 | 
 | y2 | 
 | > x +1 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||||||
| 
 | 
 | A +CB | ||||||||||||||||||||||||
| 2 | 
 | |||||||||||||||||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
Практикум по современному Фортрану
23
1.3. Построение графиков функций
Задание
1.Для каждого участка графика определить границы и составить уравнение y = fi(x).
2.Написать программу табуляции функции по участкам fi(x). Строки <аргумент><значение функции> записать в файлы Fi с расширением .txt. Для контроля и отчета создать файл Out.txt, в котором для каждого участка линии выведен заголовок и координаты не более чем 10 точек.
3.Используя приложение Advanced Grapher (далее AGrapher), вывес-
ти на экран разноцветные графики функций fi(x) из соответствующих файлов, подготовленных программой.
4.График, созданный в AGrapher, предъявить преподавателю.
Содержание отчета
1.Название работы и номер варианта индивидуального задания.
2.Фамилия, имя, отчество и номер группы студента.
3.Текст задания и график функции в том виде, как он приведен в варианте индивидуального задания.
4.Таблица участков графика (смотрите пример), в которой для каждого участка указаны границы, уравнения, шаг табуляции, количество выполнений цикла.
5.Блок – схема программы.
6.Распечатки программы и контрольного файла Out.txt.
При подготовке к защите ответить на контрольные вопросы.
Комментарии к заданию
1.Приложение Advanced GRAPHER распространяется бесплатно, ад-
рес сайта http://www.alentum.com/agrapher/. Рекомендации по работе с AGrapher смотрите в разделе 7.2.
2.Таблицу основных уравнений смотрите в разделе 7.3.
3.После разбиения графика на участки следует выбрать шаг табуляции каждого участка. Для прямолинейных участков шаг выбирается из расчета 2-5 точек на участок. На криволинейном участке с целью улучшения изображения в AGrapher шаг выбирается более мелкий, до 50 точек. Для прямой, параллельной оси Х выводятся две точки (без цикла).
4.Для табуляции каждого участка использовать оператор цикла
DO x=xn,xk,step
...
enddo
Практикум по современному Фортрану
 
24
Здесь х – переменная цикла; xn, xk – начальное и конечное значения x, step - шаг изменения х.
5. Количество повторений цикла рассчитывается по формуле:
| 
 | 
 | xk − xn + step | 
 | или | 
 | 
 | xk − xn | 
 | |
| M = Max | 0, Int | 
 | M = Max | 0, Int | +1 | ||||
| 
 | 
 | ||||||||
| 
 | 
 | step | 
 | 
 | 
 | 
 | step | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
Из-за применения в расчетах функции Int (преобразование в целый тип) при вещественных значениях xn, xk, step можно потерять конечное значение переменной цикла. Возможные варианты предотвращения этой ошибки:
a)при вещественных значениях xn, xk или step конечное значение в операторе цикла всегда записывать в виде xk + step/2.0;
b)построить цикл не по вещественной переменной x, а по целой I (do I=1,M). Здесь М – количество повторений цикла, рассчитанное вручную при написании программы. При этом в цикле придется пересчитывать целочисленную переменную I в вещественную переменную x оператором х=xn+step*(I-1). В этом случае ошибка вычислений не накапливается;
c)выражать угол alpha в целых градусах, а не в радианах, и при этом использовать функции sind, cosd;
d)координаты последней точки участка вывести после цикла.
Пример
Функция задана графически на интервале [-2, 3]
Уравнения участков графика
| № | Границы | Уравне- | Шаг | Количество | Примечание | |
| участка | ние | цикла | точек | |||
| 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | y =x/2 +1 | 
 | 
 | Прямая пересекает оси в точках | |
| 1 | [-2, 0] | 1 | 3 | (-2,0) и (0,1). Уравнение прямой | ||
| 
 | 
 | 
 | 
 | 
 | в отрезках. | |
| 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | [0, 1] | x = cos α | 
 | 
 | Параметрические уравнения ок- | |
| 2 | 3 | 31 | ружности радиуса R=1 с центром | |||
| α [0, 90▫] | y = sin α | |||||
| 
 | 
 | 
 | 
 | 
 | в начале координат. | |
| 3 | [1, 3] | y = -1 | нет | 2 | Горизонтальная прямая (парал- | |
| лельна оси Х) | ||||||
| 
 | 
 | 
 | 
 | 
 | 
Практикум по современному Фортрану
25
Программа
Program Function_graph ! Табуляция функции
!студент (фамилия, имя) группа № работа № вариант №
Implicit None
Real x, y, alpha
Integer,parameter :: tabl=6 ! имени tabl присвоен номер устройства 6 Integer k ! номер точки криволинейного участка
! участки для AGrapher
Open(1,File=’L3_F1.txt’)! 1 – координаты точек прямой
Open(2,File=’L3_F2.txt’)! 2 – координаты точек дуги окружности Open(3,File=’L3_F3.txt’)! 3 – горизонталь (координаты граничных точек) Open(tabl,File=’Out.txt’)! контрольный текстовый файл
Write(tabl,*)’прямая’ Do x= -2, 0, 1
y = 0.5*x+1
Write(1,*)x,y; Write(tabl,*)’(x,y)=’,x,y
Enddo
Write(tabl,*)’дуга окружности’
k=0 ! начальная установка счетчика точек на дуге окружности
Do alpha=0,90,3 ! аргумент функций Sind, Cosd - в градусах, шаг цикла - целый x=Cosd(alpha)
y=Sind(alpha) Write(2,*)x,y k=k+1
! в tabl печатается каждая 5-я точка, Mod(k,5) – остаток от деления k на 5 if(Mod(k,5)==1) Write(tabl,*)’(x,y)=’, x,y
Enddo
Write(tabl,*)’Горизонталь - две точки без цикла’
Write(tabl,*) ’(1,-1) ==> (3,-1,)’ Write(3,*) 1,-1; Write(3,*) 3,-1
End Program Function_graph
Контрольные вопросы к защите работы
1.Что такое цикл?
2.Назовите три вида циклов.
3.Приведите блок-схему и пример бесконечного цикла.
4.Приведите блок-схему и пример итеративного цикла.
5.Приведите блок-схему и пример цикла по переменной.
6.Объясните формулу для числа повторений цикла по переменной.
7.Приведите подробную блок-схему цикла по переменной.
8.Как предотвратить возможную потерю последнего выполнения тела цикла по вещественной переменной? Варианты решения с объяснениями.
Практикум по современному Фортрану
26
9.Подсчитайте количество повторений циклов:
a)do alpha=0,90,2 ;
b)do alpha=90,0,2 ;
c)do alpha=90,0,-2 ;
d)do alpha=0,9 ;
e)do alpha=9,0 ;
f)do alpha=1.57, 3.14, 0.3 .
10.Поясните на блок-схемах роль оператора Enddo в каждом из трех видов циклов.
11.Поясните на блок-схемах роль оператора Exit в каждом из трех видов циклов.
12.Поясните на блок-схемах роль оператора Сycle в каждом из трех видов циклов.
Пример контрольного задания
1. Рассчитайте количество повторений цикла do x=3.15, 2.12, 1.3
2.Напишите оператор цикла по переменной для вывода на экран значений x и tg x, если x изменяется от –100о до –200о, шаг выберите сами. Приведите блок-схему этого оператора.
3.Для фрагмента программы
x = 0.0
Do k = 2, 8, 2 x = x + 0.8
if (x<2 .or. x>3) then y = x*2 + 1.0/k
else exit
endif
write(1, *) x, y
enddo ! выполните следующее:
a)приведите блок-схему;
b)опишите типы всех переменных;
c)напишите, какие и сколько значений x и y будут выведены на устройство 1 в результате работы цикла.
4.Напишите оператор цикла Do while для вывода на экран значений x и y = sin2x + cos2x, если x изменяется от –π/4 до 1,5π с шагом π/10. Приведите блок-схему этого оператора.
Практикум по современному Фортрану
 
27
Варианты индивидуальных заданий
| № | Графики | 
1
2
3
4
5
Практикум по современному Фортрану
 
28
| № | Графики | 
6
7
8
9
10
11
Практикум по современному Фортрану
 
29
| № | Графики | 
12
13
14
15
16
17
Практикум по современному Фортрану
 
30
| № | Графики | 
18
19
20
21
22
23
Практикум по современному Фортрану
 
31
| № | Графики | 
24
25
26
27
28
29
Практикум по современному Фортрану
