Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Пример 2. Декларации данных, объектно-ориентированные и атрибутные

Связь с хозяином (Host) - глобальные данные | Объекты допустимого образа | Процедуры в качестве параметров | Родовые подпрограммы | Вещественные - форма с фиксированной точкой | Ввод-вывод без продвижения | Оператор OPEN | Статус распределяемых массивов | Присваивание указателя | Array Pointers |


Читайте также:
  1. Boot (англ. загрузка. Пример: основной загрузочный сектор) -вирусы
  2. D.1. Примеры уязвимостей
  3. III. После этого раненую конечность лучше всего зафиксировать, например, подвесив на косынке или при помощи шин, что является третьим принципом оказания помощи при ранениях.
  4. Present Simple используется, когда речь идет о проверенных фактах и научных данных, либо о том, что говорящий таковыми считает.
  5. SWOT- анализ на примере ветеринарной аптечной сети.
  6. SWOT-анализ на примере ветеринарной аптечной сети.
  7. VII. Примерный перечень вопросов к зачету

В примере вызываются три подпрограммы exdata, entidec и attrdec. В подпрограмме exdata даются примеры с операторами DATA. В подпрограмме entidec демонстрируются объектно-ориентированные декларации, содержащие описание свойств данных, указатели и адресаты для них, операция связи указателя с адресатом. В подпрограмме attrdec демонстрируются описание интерфейса в качестве предварительного описания вызываемой подпрограммы, атрибутное описание данных и еще раз указатели и адресаты.

program example2 call exdata! пример с операторами DATA call entidec! пример с объектно-ориентированными объявлениями call attrdec! пример с aтрибутными объявлениями end
subroutine entidec ! Entity-oriented declaration: INTEGER, DIMENSION (:), POINTER:: days, hours ! Указатели на массив с неопределенными границами INTEGER (2), PARAMETER:: limit=12 INTEGER, TARGET:: A(4), B(8)! Aдресаты для указателей INTEGER, POINTER:: d, h! Указатели на целые INTEGER (2):: k = 4 INTEGER, TARGET:: p! Aдресат для указателя Logical ans days => A! Cвязь указателя с массивом DO I = 1, 4 A(I) = I B(2 * I - 1) = 2 B(2 * I) = 6 + I END DO Ans=associated(days)! Cведения о наличии связи указателя с массивом Write(*,'((a5),l1)') ' ans=',ans P = 5 d => p! Cвязь указателя с переменной write (*,'((a4),2i2)') ' p =', d, p end
subroutine attrdec interface! Начало описания интерфейса subroutine summaa(poa,n,s) integer, DIMENSION(:), POINTER:: poa integer n, s end subroutine summaa end interface !Attribute-oriented declaration: INTEGER days, hours, t INTEGER (2):: k=4,limit DIMENSION days(:), hours(:) POINTER days, hours PARAMETER (limit=12) INTEGER, TARGET:: A(4), B(8) DO I = 1, 4 A(I) = I B(2*I-1) = 2 B(2*I) = 6 + I END DO Days => A write (*, '((a3),i2)') ' k=', k call summaa(days, 4, t) write (*, '((a3), i5)') ' t =', t days => A hours => B DO i = 1, 4 Write (*, '((a3), i2, (a3), i3)') ' a(', i, ')=', days(i) END DO End
Subroutine summaa (poa, n, s) integer, DIMENSION(:), POINTER:: poa integer n, s s=0 do i = 1, n write (*, '((a13), i2, (a3), i3)') 'with poa a(', i, ')=', poa(i) s = s + poa (i) end do write (*, '((a3), i2)') 's=', s end
Subroutine exdata ! statement DATA integer n, order, alpha, list(100) real coef(4), eps(2), pi(5), x(5,5) character*12 help complex*8 cstuff DATA n /0/, order /3/ DATA alpha /'A'/ DATA coef /1.0, 2*3.0, 1.0/, eps(1) /.00001/ DATA cstuff /(-1.0, -1.0)/ ! The following example initializes diagonal and below in ! a 5x5 matrix: DATA ((x (j, i), i = 1, j), j = 1, 5) / 15 * 1.0 / DATA pi /5*3.14159/ DATA list / 100 * 0 / DATA help(1:4), help(5:8), help(9:12) /3*'HELP'/ Write (*, '((a3), i2)') ' n=', n Write (*, '((a7), i2)') ' order=', order End
Результат запуска получился такой n= 0 order= 3 ans=T p = 5 5 k= 4 with poa a(1)= 1 with poa a(2)= 2 with poa a(3)= 3 with poa a(4)= 4 s=10 t =10 a(1)= 1 a(2)= 2 a(3)= 3 a(4)= 4 Press any key to continue...

 


Дата добавления: 2015-11-14; просмотров: 47 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
В разделе приведены примеры и результаты их запуска на Alfa| Пример 4. Определение и использование модуля, родовые процедуры

mybiblioteka.su - 2015-2024 год. (0.007 сек.)