Скачать 320.07 Kb.
|
Основные приемы работ в среде MSDEV. Константы, переменные, выражения, функции в языке Fortran. Линейные алгоритмы. Управляющие конструкции языка Fortran. Простые циклы (с применением Do – цикла и While – цикла), циклы с условием (с применением бесконечного цикла Do) в языке Fortran. Работа с массивами в языке Fortran. 1. Основные приемы работ в среде MS-DEV Запускается MSDEF через главное меню или с помощью ярлыка. После загрузки системы на экране появляется примерно такое изображение (см. рис. 2). В поле редактирования вводится и редактируется текст программы. Для присваивания имени файлу программы, запуска транслятора и построителя задач нужно установить курсор на строку меню и выбрать в списке нужную функцию. Результаты работы системных функций выводятся в окне отладчика (сообщения об ошибках) и в окнах диалога, в которых предлагается выбрать какое-либо действие из предлагаемого списка. Вызывать функции из строки меню можно при помощи левой кнопки мыши или с помощью нажатия клавиши Инструменты предоставляют удобный доступ к наиболее часто требующимся функциям меню, функции выбираются при помощи мыши. Правила оформления текста программы на языке Фортран При редактировании программ на языке Фортран нужно соблюдать следующие правила:
Последовательность действий по вводу, трансляции, построению и исполнению программы Программы в FPS создаются как проекты. Проект в простейшем случае может состоять из одного файла с исходным текстом программы. Более сложные проекты включают в себя множество файлов программ (подпрограмм, функций), библиотеки, модули и т.д. По типу проекты подразделяются на:
При выполнении лабораторных работ используются первые три типа проектов. Процедура разработки и отладки простого однозадачного проекта может выглядеть следующим образом:
При отладке многозадачного проекта возможна такая последовательность шагов:
2. Организация данных в языке Фортран К организации данных в языке Фортран можно отнести: рассмотрение типов данных, способы объявления типов данных и способы инициализации (задание начальных значений) данных. Объектами данных являются переменные, константы и функции. Термины константы и переменные распространяются на скаляры, массивы, а также на элементы массивов, сечения массивов, подстроки, компоненты структур. Диапазон рассмотрения в данной лабораторной работе ограничен скалярами. Типы данных разделяются на встроенные и производные (создаваемые пользователем). Производные типы данных будут рассматриваться в дальнейших работах. Каждый встроенный тип данных характеризуется параметром разновидности KIND. Для числовых типов данных этот параметр описывает точность и диапазон изменения. Для символьного типа данных в FPS (Fortran Power Station) существует только одна разновидность (KIND=1). Параметр KIND указывается в скобках после имени типа. Каждый встроенный тип имеет стандартную, задаваемую по умолчанию разновидность. Стандартная разновидность, как правило, в скобках не указывается. Каждой разновидности соответствует число байт памяти, отводимое под объект. Встроенные типы данных:
Число байт памяти под объекты целого типа для перечисленных разновидностей соответственно равны 4, 1, 1, 2, 4.
Число байт памяти под объекты вещественного типа для перечисленных разновидностей соответствуют значениям - 4, 4, 8, 8. При KIND=8 вещественные данные имеют двойную точность.
Число байт памяти, отводимое под комплексные объекты, для перечисленных разновидностей соответственно равны – 8, 8, 16. При этом одна половина памяти отводится под реальную часть, а другая под мнимую.
Число байт памяти, отводимое под логические объекты, для перечисленных разновидностей соответственно равны – 4, 1, 2, 4. Первый байт содержит значение либо 0 (.FALSE), либо 1 (.TRUE). Остальные байты имеют значение – null.
Разновидность KIND для символьного типа всегда равна 1. Число байт, отводимое под символьный объект, равно соответственно 1 или n. При этом n принимает значения 1 n 32767. Тип данных задается с помощью операторов объявления типов данных. В самом общем виде оператор объявления типа данных может быть представлен как: имя типа [[[(KIND=значение)][, attrs]::] list Имя типа – один из перечисленных выше типов данных: INTEGER, REAL, REAL(8), COMPLEX, LOGICAL, CHARACTER. KIND задает значение разновидностей для каждого типа. Слово KIND может быть опущено, при этом в скобках указывается только значение разновидности. Если используется стандартный тип разновидности, то значение разновидности совсем отсутствует. attrs – один или более атрибут, описывающий представленные в list объекты данных. Если хотя бы один атрибут указан, то должен быть использован разделитель::. Атрибуты определяют дополнительные свойства данных. Возможные атрибуты: ALLOCATABLE, PARAMETR, POINTER, TARGET, DIMENSION, PRIVATE, PUBLIC и др. list – разделенный запятыми список имен объектов данных (переменных, констант, а также внешних, внутренних, операторных и встроенных функций). В Фортране допускается не объявлять данные целого и вещественного типа. При этом действует правило по умолчанию: данные, которые начинаются с букв I, J, K, L, M, N, имеют встроенных или производных типов данных letters – список одиночных букв или диапазонов букв. В Фортране различают буквальные и именованные константы. Возможно задание арифметических (целых, вещественных, комплексных), логических и символьных буквальных констант. Целые константы – целые числа со знаком или без знака. +10, 10, -10_2 (после знака подчеркивания “_“ указано значение разновидности KIND = 2 для константы -10). Вещественные константы могут быть заданы в F-форме, E-форме и D-форме. F-форма задает числа с фиксированной точкой. E-форма и D-форма задают числа с плавающей точкой. Например число –51.234 можно представить в десятичной системе счисления как . Мантисса задает точность представления, а показатель степени задает порядок числа. (F - форма: -51.234, E - форма: -0.51234Е+2, D - форма: -0.51234D+2). F и E – формы могут задавать числа одинарной и двойной точности (4 и 8 байт памяти), например: 3.3_4; 3.3_8; 0.125E-4_8; 0.125E-4. D - форма задает числа только двойной точности. Комплексные константы – две целые или вещественные константы (реальная и мнимая часть), заключенные в скобки и разделенные запятой. Реальная и мнимая части могут быть заданы в F-форме, E-форме, D-форме: (2.33, 0.044), (0.233E1, 0.44E-1), (0.233D+1, 0.44D-1) Логические константы – их всего две: .TRUE. и .FALSE. Наличие обрамляющих точек обязательно. Символьные константы – последовательность одного или более символов 8-битового кода, заключенная в апострофы. Символьная строка + латинский символ С образуют СИ-строку. Существующие в СИ эскейп - последовательности можно использовать в FPS, представив их как СИ-строку (пример см. ниже) Именованные константы применяются для защиты данных от изменения в процессе вычислений, т.е. их нельзя изменить в операторах присваивания и READ. Задаются именованные константы с помощью оператора или атрибута PARAMETER (пример см. ниже). Инициализация статических данных в Фортране осуществляется на этапе компиляции программы, а динамических - в процессе выполнения программы. К динамическим данным относятся переменные, объявленные с атрибутом POINTER (ссылки) и атрибутом ALLOCATABLE. Выделение памяти под динамические данные осуществляется либо после его прикрепления к размещенному адресату, либо с помощью оператора ALLOCATE. Освобождение динамической памяти происходит после выполнения оператора DEALLOCATE. (примеры см. ниже). Возможны два способа инициализации данных: а) в операторах объявления типа б) с помощью оператора DATA, общий формат которого: DATA список имен /список значений/ Объекты в списке имен и в списке значений перечисляются через запятые и находятся в строгом соответствии слева направо. 3. Примеры объявления и инициализации данных 3.1 Объявление данных целого типа: а) integer d1, d2 data d1, d2 /34, 100/ ! объявлены переменные d1 и d2 целого типа стандартной разновидности и инициированы оператором data; б) integer(2) d1/4/, d2/5/ ! объявлены переменные d1, d2 целого типа (KIND=2), при таком инициировании наличие разделителя :: необязательно; в) integer(1):: d1=4, d2=5 ! при такой форме инициирования разделитель :: обязателен; г) integer, parameter:: m = 4, n = 5 ! объявлены две именованные константы m и n; д) integer, pointer:: p ! объявлена динамическая переменная - ссылка p; integer, target:: k = 5 ! объявлен адресат k (с атрибутом target); p =>k ! ссылка прикрепленная к адресату. 3.2 Объявление данных вещественного типа а) real d/123.5/, c/1.E-6/ ! объявлены и инициированы две переменные d и c вещественного типа стандартной разновидности; б) real(8):: a = 2D0, b = 0.35D4, c ! объявлены переменные a, b, c двойной точности; в) integer, parameter:: c = 4; real(c) a, b ! значение разновидности задано как именованная константа c; г) real, pointer:: c, d ! объявление ссылок c и d; real, target:: e=10 ! объявление и инициирование адресата e; allocate(c) ! выделение памяти переменной-ссылке c; d =>e ! прикрепление ссылки d к адресату e. 3.3 Объявление данных комплексного типа. а) complex:: C1, C2 = (10.5, 11.3) ! объявлены комплексные переменные C1, C2 стандартной разновидности KIND = 4; б) complex (8):: C1=(10.5D0, -1.13D1), C2 ! объявлены комплексные переменные C1, C2 с KIND = 8. 3.4 Объявление логических данных а) logical g1, g2 data g1,g2 /.true., .false./ ! объявлены логические переменные g1, g2 и инициированы в операторе data; б) logical:: g1 = .true., g2 = .false. 3.5 Объявление символьных данных а) character(15):: st1=’example’, st2*20/’example_2’/ ! объявлены и инициированы две символьные переменные st1 длиной 15 символов и st2 длиной 20 символов; б) character(*), parameter:: st = ’example’ ! для задания длины используется символ * при определении именованной константы; в этом случае длина равна числу символов константы; в) character:: bell = ’\a’c – объявлена символьная переменная bell, которой присвоена СИ-константа, использующая эскейп – последовательность, соответствующую звуковому сигналу; г) character(20):: tx1 = ’computer Pentium3’, tx2*8 ! объявлена tx2 = tx1(10:17), строковая переменная tx1 длиной 20 символов и строковая переменная tx2 длиной 8 символов. Переменной tx2 присвоена подстрока переменной tx1. Подобно элементам в массиве, символы строки расположены в памяти компьютера последовательно один за другим. Обращение tx1(10:17) соответствует подстроке ‘Pentium3’. Запись tx1(i:i) обеспечивает доступ к i - му символу строки. 3.6 Объявление данных по правилу умолчания и с помощью оператора Implicit а) i = 10.5 ! по умолчанию это целая переменная, результат присвоения =10; y = 15 по умолчанию это вещественная переменная результат присвоения =15.000000; б) Implicit integer(2) (p, c-e), real (k-m) ! переменные, которые будут начинаться с букв p или ce, будут иметь целый тип KIND=2, переменные, которые начинаются с букв km, будут иметь вещественный тип KIND=4. 3. Выражения, операции, встроенные функции Арифметические выражения Операндами арифметических выражений могут быть:
Арифметические операции по приоритету в порядке возрастания: ** - возведение в степень; *, / - умножение, деление; унарные + и - ; +, - - сложение, вычитание. Операции выполняются слева направо в соответствии с приоритетом, кроме операции возведения в степень, которая выполняется справа налево . Целочисленное деление. Результатом деления целых чисел в Фортране является целое число без дробной части, например, 3/2=1, 1/2 = 0. Чтобы результат был вещественным, надо целое число представлять как вещественное либо с помощью точки, либо через встроенную функцию: 3./2. или real(3)/real(2). Возведение в целую отрицательную степень. (целочисленное деление). Чтобы этого избежать, надо 5.**(-3), тогда (результат вещественный). Возведение в целую степень осуществляется как Возведение в вещественную степень. вычисляется как , поэтому А не может быть отрицательным числом, т.е. (-3)**1.5 неверная запись в арифметическом выражении. Типы арифметических выражений . Определяются по следующим правилам:
Ранг типов операндов в порядке убывания: complex(8) или double complex complex(4) real(8) или double precision real(4) или real integer(4) или integer integer(2) integer(1) или byte Пример: Пусть: complex:: z1=(0.5,3.), z2=(3.4,0.3) !описаны две комплексные переменные real:: a=100.3, b !описаны две вещественные переменные integer(2):: c=5 !описана целая переменная b=a**2 + a*c - z1*z2 ! имеем арифметическое выражение тогда: a*a тип результата – real(4); a*c целое с преобразуется к типу real(4), тип результата - real(4); z1*z2 тип результата – complex(4); a**2+a*c тип результата - real(4); a**2+a*c-z1*z2 тип результата - complex(4); b=a**2+a*c-z1*z2 тип результата присвоения - real(4). |
Курс посвящен изучению языка гипертекстовой разметки html. Рассматриваются основные конструкции языка, приемы разметки и связь с... | Назовите основные разделы науки о языке и единицы языка, изучаемые в этих разделах | ||
Данное пособие по английской разговорной речи содержит фразы, необходимые для общения в большинстве повседневных ситуаций. Предлагаемый... | Как связаны язык и общество? Как связаны язык и речь? Каковы основные уровни языка?Как отражаются в русском языке материальная и... | ||
Программа рассчитана на изучение французского языка по 2 часа в неделю 68 часов в учебном году | Художник учится смешивать краски и наносит мазок на холст. Музыкант учится этюдам. Журналист и писатель осваивают приемы письменной... | ||
Освоить основные приемы массажа, научиться использовать вспомогательные приемы массажа, освоить методику проведения массажа различных... | В результате освоения дисциплины студенты должны уметь осуществлять коммуникации на иностранном языке в профессиональной среде и... | ||
Цель работы: приобретение практических навыков работы в интегрированной среде C, изучение структуры программы на языке С | С обучением на венгерском языке. Данный вариант возможен даже для тех кто не знает венгерского языка, в данном случае наши специалисты... |
Поиск Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |