Инструкция по работе в Visual Studio Новая среда для разработки программ MS Visual Studio (600 Мб-1000 Мб) используется для обучения Fortran, Cи++ и C#. Это MS Visual Studio, C++, C# плюс Intel Fortran compiler (500 Мб).
Среда Visual Studio снабжена текстовым редактором, компиляторами, сборщиком, отладчиком. Работа начинается с создания проекта:
- создайте новый проект в каталоге с именем File|New|New Project|Intel Visual Fortran|Console Application;
- задайте внизуимяпроекта в поле Name;
- внизу через <Browse> выберите место Location для размещения проекта myProj;
- нажмите кнопку <Ok> – создать проект.
Варианты включения программы в состав проекта по правой кнопке мыши:
1. включить в проект ранее написанную программу lab.f90 через меню Source|File project ==> выбрать lab.f90;
2. создать текст программы lab.f90 в Visual Studio и включить в проект.
Создание текста программы lab.f90 в Visual Studio:
- выбрать правой кнопкой мыши в меню Source|New|Text;
- набрать текст программы;
- задать имя программы lab1.f90 и выбрать место для размещения программы myProj;
- щелкнув правой кнопкой мыши, выбрать в контекстном меню Compile для компиляции.
Удобно помимо программы включать в проект следующие тексты:
- исходные данные, которые можно создать, как новый текст через меню Insert|File into project, чтобы myProj/in.txt при выполнении программы читались, как данные из файла в папке проекта с именем, указанным в операторе open;
- текст результатов под именем, указанным в операторе open.
Всем текстам, кроме программы, давайте имена, используя расширение txt, чтобы они были доступны в любом текстовом редакторе.
Тексты программы и результатов составят распечатку для отчета.
Вызов среды проектирования - это ярлычок MSVisual Studio. Чтобы закончить работу с программой и сохранить всю информацию, достаточно закрыть приложение, щелкнув по крестику в верхнем правом углу окна приложения.
При повторном входе надо открыть последний проект.
Варианты создания приложения – переключатель Debug|Release:
- Debug – отладочный вариант приложения (выполнение <F5>) ;
- Release – чистовой вариант приложения (выполнение <Ctrl>+<F5>).
Варианты запуска программы на выполнение:
- после коррекции щелкните на панели инструментов по “стрелке вправо” – компилируется, компонуется и выполняется программа в отладочном режиме;
- то же самое, что “стрелка вправо”, <F5> на панели инструментов.
Дополнительные возможности по отладке программы:
- Start Debug – продолжить программу (выполнение <F5>) ;
- <F10> – пошаговая отладка, без «входа» в процедуры;
- <F11> – вместо <F10>, чтобы не «нырять» в процедуры;
- по правой кнопке мыши Run to Cursor – идти в отладке до места, указанного курсором;
- чередуя <F10> , Run to Cursor, <F11>, <F5> при «хитрой» отладке;
- мышку навести на переменную – появится её значение;
Отладочный вариант приложения (Debug) работает под Windows-Vista и Windows-7.
Дополнительные возможности без отладки: - выполнение <Ctrl>+<F5>;
- либо через меню Build|execute lab1.exe с паузой для просмотра консоли.
Инструкция по работе в 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.
|