Инструкция по работе в Plato IDE Studio
Среда разработки программ Plato IDE Studio для обучения Fortran. Студия Plato IDE снабжена текстовым редактором, компиляторами, сборщиком, отладчиком. Работа начинается с создания проекта:
- создайте папку d:/PROJ для хранения проектов;
- в папке проектов d:/PROJ создайте папку myProj под новый проект;
- в одной папке может быть лишь один проект.
Создайте новый проект в каталоге с именем myProj
File|New Project|Fortran Application:
- задайте снизу имяпроекта в поле Name;
- через <Browse> выберите место Location для размещения проекта myProj в папке d:/PROJ и нажмите кнопку <Open>, чтобы создать проект.
Варианты включения программы в состав проекта:
1) создать новый текст программы Lab.f90 в Plato IDE Studio и включить в проект по правой кнопке мыши;
2) включить в проект ранее написанную программу labac.f90 через меню Source Files | Add existing item ==> выбрать labac.f90.
Создание нового текста программы Lab.f90 по правой кнопкой мыши в
Project Explorer пункт Source Files | New Item:
- задайте снизу имяпрограммы в поле Name;
- через <Browse> выберите место Location для размещения программы lab.f90 в папке d:/PROJ/myProj и нажмите кнопку Open, чтобы создать программу;
- набрать новый текст программы;
- щелкнуть по правой кнопке мыши – и по кнопке Compile выполнить компиляцию.
Удобно помимо программы включать в проект следующие тексты:
- исходные данные через меню Source Files|Add existing item
==> выбрать myProject/in.txt, тогда при выполнении программы данные будут читаться из файла в текущем каталоге проекта с именем, указанным в операторе open;
- текст результатов – под именем, указанным в операторе open.
Все тексты, кроме программы, именуйте, используя расширение txt, чтобы они были доступны в любом текстовом редакторе. Тексты программы и результатов составят распечатку для отчета.
Вызов – ярлычок Plato IDE. Чтобы закончить работу с программой и сохранить всю информацию, достаточно закрыть приложение, щелкнув по крестику в верхнем правом углу окна приложения. При повторном входе надо загрузить последний проект.
Варианты создания приложения – переключатель Debug|Release:
- Debug – отладочный вариант приложения, выполнение <F7>;
- Release – чистовой вариант приложения, выполнение <Ctrl>+<F5>.
Варианты запуска программы на выполнение:
- Step Info, отладка в пошаговом режиме, после коррекции программы щелкните по клавише <F7>, чтобы скомпилировать, скомпоновать и выполнить программу в отладочном режиме, в отдельном окне;
- Start run, или, что то же самое <Ctrl>+<F5>, чтобы запустить программу без отладки, в чистовом варианте;
Дополнительные возможности по отладке программы:
- <F6> – Continue, продолжить программу;
- <F7> – Step Info, пошаговая отладка,
- <F8> – Step Over, пошагово, не «ныряя» в процедуры,
- <Ctrl>+<F10> – Goto Cursor, идти в отладке до места, указанного курсором,
- чередуя <F7> , <F8>, <Ctrl>+<F10> при «хитрой» отладке,
- отладочный вариант приложения (Debug) работает под Windows-Vista и Windows-7.
Лабораторные работы
Вычисления по формулам
Задание
Составить программу, которая:
1. вычисляет значения двух эквивалентных пар числовых формул
y1 ~ y2 и z1 ~ z2, с указанными в варианте индивидуального задания значениями исходных данных.
2. выводит в файл out.txt исходные данные и результаты вычислений.
Примечания:
a) математически две числовые формулы эквивалентны, если для всех возможных значений переменных их значения равны;
b) эквивалентными на компьютере будем считать значения, совпадающие до 6-7 десятичного знака с одинарной точностью real;
c) функции в формулах задания нельзя заменять другими, кроме тех, которых нет среди встроенных функций, как sec x;
d) формулы задания нельзя упрощать, но рекомендуется вводить вспомогательные (промежуточные) переменные.
Содержание отчета
1. Название работы и номер варианта индивидуального задания.
2. Фамилия, имя, отчество и номер группы студента.
3. Текст задания, формулы в том виде, как они приведены в варианте индивидуального задания.
4. Области допустимых значений (ОДЗ) переменных для y1, y2.
5. Математические формулы для промежуточных переменных (если они используются в программе).
6. Распечатки текста программы и результатов работы программы с тремя комплектами исходных данных.
При подготовке к защите ответить на контрольные вопросы.
Справочная информация
1. Порядок выполнения операций в соответствии их старшинством (приоритетом) показан в Табл.1.
Таблица 1.
Порядок выполнения операций в соответствии их старшинством
Операции | Знаки операций | Старшинство |
Вычисление функций | Ссылки на функции | |
Возведение в степень | ** | |
Умножение, деление | *, / | |
Сложение, вычитание | +, – |
Примечание: порядок выполнения операций изменяют скобки (круглые).
2. Реализация некоторых математических выражений средствами Фортрана показана в Табл. 2; х - вещественный аргумент Sqrt(x) и тригонометрических функций.
Таблица 2.
Реализация некоторых математических выражений средствами Фортрана
В формуле | В Фортране | В формуле | В Фортране | В формуле | В Фортране | ||
sin х | Sin(x) | Tg х | Tan(x) | Sqrt(2.) | |||
cos х | Cos(x) | Ctg х | Cotan(x) | при х>0 Sqrt(x) | |||
при х<0Sqrt(cmplx(x)) | |||||||
sec х | 1/Сos(х) | arcsin x | Аsin(x) | при х>0 x**(1./n) | |||
│b│ | Abs(b) | π | 2*Аsin(1.) | при х<0 и n нечетн. -(-x)**(1./n) | |||
при х<0 и n четном cmplx(x)**(1./n) |
3. Тип результата числовой операции (целочисленный или вещественный) выбирается автоматически по типу операндов, особо важно понимание этого механизма для операции деления:
a) если операнды целые, в результате взятия целой части частного получается целое число (для 7/4 => 1);
b) если операнды вещественные, в результате получается вещественное число (для 7./4. => 1.75);
c) если операнды разных типов, например, целого и вещественного, перед выполнением операции они приводятся к типу, который соответствует наиболее широкому классу (диапазону) чисел (для 7./4 => 7./4. – к вещественным числам); затем выполняется операция для этого типа с соответствующим результатом:
(7./4 => 7./4. => 1.75).
4. Выполнение операции a**b – возведения в степень ab зависит от типа показателя b:
a) для integer b выполняется b-кратное умножение основания a;
b) для вещественного значения b при a>0 .
Внимание! Отрицательное основание не возводят в вещественную степень.
Комментарии к заданию
1. Имена переменных предпочтительно выбирать со смыслом (например, длина окружности С=2pR : Circle=2*Pi*Radius).
2. Громоздкие формулы рекомендуется упрощать, вводя промежуточные переменные для частей формулы: повторяющиеся части формулы, числители и знаменатели дробей и так далее.
3. Восстановив формулу по выражению в программе, найдете ошибки.
4. Типичные ошибки в арифметических выражениях – см. раздел 8.3.
Пример
Исходное значение аргумента из ОДЗ: x=3.3
Область допустимых значений (ОДЗ)
x > 3
Промежуточные переменные
Повторяющаяся часть формулы:
Знаменатель формулы y1:
Программа
ProgramFormula ! тема: вычисления по формулам
! студент (фамилия, имя) группа № работа № вариант №
Implicit None !переменные должны быть объявлены без умолчаний
Real::x=3.3,y1,y2,yd,s1 ! [pro1] инициализация переменной x (из задания)
! <== потом z1, z2 - объявить здесь же
Open(6,file=’result.txt’) ! закомментировать «open» - вывод на экран
![pro2] диалог по консоли: пригласить Write(*,*)’х=?’ читать Read(*,*)x
![pro3] Open(1,file=’input.txt’) – для чтения x из файла №1 Read(1,*) x
Write(6,*) ’at х=’,x
s1 = Sqrt(x**2-9)! повторяющаяся часть формулы
yd = x**2 - 2*x - 3 + (x-1)*s1! знаменатель y1
y1 = (x**2 + 2*x - 3 + (x+1)*s1) / yd
Write(6,*) ’y1=’, y1
y2 = Sqrt(x+3) / Sqrt(x-3)
Write(6,*)’y2=’, y2
! OK: в y1 и y2совпали 6 – 7 значащих цифр
End ProgramFormula ! <== далее – добавить вычисление z1,z2
Последовательность работы над программой
Проект [pro1] с Real:: x=3.3 приведен в программе, а [pro2], [pro3], показаны комментариями.
Составить три проекта:
- [pro1] - предъявить на ПК;
- [pro2] - предъявить на ПК с данными, введенными в диалоге;
- [pro3] - распечатать проект с данными из файла (3 комплекта чисел);
Определить область допустимых значений (ОДЗ) исходных данных. Отладить программу с данными, указанными в задании [pro1].
[pro1] Отладка завершена, если в y1 и y2 совпали 6 - 7 цифр.
[pro2] Организовать диалог по вводу исходных данных:
a) пригласить к вводу данных Write(*,*) ’x>3 x=?’
b) добавить в программу ввод данных с консоли Read(*,*) x
c) вычислить и вывести результирующие значения y1 и y2.
[pro3] Взять данные из ОДЗ, подготовив файл in.txt :
a) открыть файл in.txt для чтения данных Open(1,file=’in.txt’);
b) используя цикл, ввести данные и получить 3 комплекта ответов
dok=1,3
- ввести один комплект данных из файла in.txt;
- вычислить y1 и y2, z1 и z2;
- вывести результаты с указанием имен переменных;
Enddo
Контрольные вопросы к защите работы
1. Что называется программой на алгоритмическом языке?
а) файл на диске; б) файл, внутри которого есть слово program;
в) дайте свой развернутый вариант ответа.
Примечание. Вы просматриваете на экране текстовый файл. Можете ли Вы утверждать, что это файл с программой?
2. Вы работаете с компилятором, опишите что должно обязательно присутствовать в имени файла с программой на Фортране 90:
а) хотя бы одна буква; б) слово fortran; в) свой вариант ответа – приведите примеры имен файлов с программами на Фортране 90.
3. Как записать комментарий в программе?
а) начать его с красной строки; б) начать его с «//» ; в) дайте свой вариант ответа. Приведите примеры комментариев.
4. Какие числовые типы данных используют в Фортране? Приведите примеры числовых констант.
5. Можно ли вещественную константу 6420 записать на Фортране без десятичной точки? Если можно, то как это сделать?
6. Как записать на Фортране комплексное число 19+4i ?
7. Какие имена переменных в программе записаны верно, а какие нет?
а) F1 б) Y(X) в) X_1 г) Б5 д) Z.8 е) 3J ж) β4
8. Как правильно вызвать функцию sinx ?
а) sinX б) sinx в) sin(x)
9. Определите значение переменной M в результате вычисления:
Integer:: N=1, M; M = 1/((2*N+1)*(2*N+2))
10. В каком порядке выполняются операции в числовом выражении?
а) со скобками; б) без скобок. Разъясните оба случая.
11. Определите значение переменной В в результате вычисления:
real:: А=2.0, B; B = -A**2
12. Исправьте ошибки:
a) записан как sqrt(4);
b) вещественный корень записан как sqrt (4,0) ;
c) комплексный корень записан какsqrt (-4);
d) комплексный корень записан какsqrt (-4.0);
e) комплексный корень записан какsqrt (-4,0) .
13. Отрицательное число не возводят в вещественную степень, почему?
14. Записать в Фортране известные величины – дюжина, число π, число e, скорость света c = 3.108:
а) в виде констант; б) как значения, точные для компьютера.
15. Определите значения переменных ВиC в результате вычисления:
real:: А=2.0, B,C; B = 1/2*A; C = 1/(2*A)
16. Как формулу записать в Фортране?
Указание. Правильность ответов на вопросы: (9), (11), (15), (16) проверьте на компьютере.
Пример контрольного задания
1. Расположите константы в порядке возрастания (представить в одинаковой форме): 24.0; 2.4Е+2; 0.24Е-3
2. b=4.0 – вещественная переменная. Что получим в результате вычисления: 1/2*b; 1/(2*b); b**(1/2); 1/b*2 .
3. Формула была записана как x**1/5 –исправьте ошибки.
4. Запишите на Фортране формулу
5. Чему будут равны значения переменных m, n, k, c, c1 после выполнения программы? В ответах учесть тип переменных.
integer:: m, n, k; real:: a=7.2, b=1.8, c, c1
m=a; n=b; k=a/b+b; c = a/b+b; c1 = m/n+b
Таблица 3.
Варианты индивидуальных заданий «Формулы»
№ | Данные | Формулы |
a=8.6 b=1.3 c=3.3 a=0.75 | ; ; ; | |
a=3.5 b=-2.1 a=0.1 | ; ; ; | |
a=3.5 b=0.72 a=0.62 | ; ; ; | |
a=4.3 a=0.43 | ; ; ; | |
m=0.4 n=2.1 a=0.43 | ; ; ; | |
a=15.1 a=1.23 | ; ; ; | |
a=12.3 a=0.43 | ; ; ; | |
x=3.2, y=0.8 a=0.81 | ; ; ; | |
x=1.4 y=2.8 a=0.66 b=0.82 | ; ; ; | |
a=2.3 a=0.75 | ; ; ; | |
a=0.7 x=0.44 y=0.82 | ; ; ; | |
a=5.1 a=0.1 | ; ; ; | |
a=5.3 b=2.1 a=0.75 | ; ; ; | |
a=1.7 b=2.8 a=0.22 | ; ; ; | |
m=1.8 a=0.43 b=0.58 | ; ; ; | |
x=5.3 a=0.3 b=0.1 | ; ; ; | |
b=4.8 a=0.23 | ; ; ; | |
x1=2.8 x2=4.8 a=0.97 | ; при x £4 y1 ~ y2 ; при x>4 y1 ~ y3 ; ; | |
x=1.4 y=2.8 a=0.5 b=0.34 | ; ; ; | |
a=5.1 a=0.3 | ; ; ; | |
x=0.3 a=0.77 | ; ; ; | |
a=12.3 a=0.24 | ; ; ; | |
a=2.3 b=1.89 a=0.23 | ; ; ; | |
b=3.8 a=0.28 | ; ; ; | |
p=0.7 a=0.54 | ; ; ; | |
m1=0.47 m2=2.47 a=0.1 | ; при m £ 1.5 y1 ~ y2 ; при m > 1.5 y1 ~ y3 ; ; | |
x=4.3 a=1.23 | ; ; ; | |
m=2.3 a=0.23 b=1.2 | ; ; ; | |
a=6.3 a=0.1 b=0.7 | ; ; ; | |
m1=0.65 m2=1.65 a=1.43 | при m>1 y1 ~ y2 ; при m £1 y1 ~ y3 ; |
Ветвления If и циклы Do
Задание
Заштрихованная часть рисунка в дальнейшем называется областью. Задача состоит в проверке попадания точек (x,y) в заданную область.
Задание содержит рисунок, состоящий из геометрических фигур.
1. Написать программу, которая:
a) для точек каждой контурной линии рисунка составляет таблицу соответствия координат в файлах с расширением .txt;
b) генерирует точки в прямоугольнике, перекрывающем рисунок на 10-20% с каждой стороны, и записывает координаты этих точек в один из двух файлов в зависимости от их нахождения в области.
2. Для графической интерпретации результатов использовать программу Agrapher.