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

Секция (вырезка) массива

Материал взят из проекта Lahey: http://www.lahey.com/index.html, http://www.lahey.com/other.htm). | Возможности расширения языка | Вид семейства | Управление программой | Более подробная информация | Спецификации или объявления | Тип Character | Логические выражения | Массивы и производные типы | Оператор и конструкция IF |


Читайте также:
  1. Ii) Указатели на элементы массива
  2. Кружок, секция, клуб юных вЕлотуристов
  3. Кружок, секция, клуб юных велотуристов...........................488
  4. Лабораторная работа по обработке массива, типизированного файла и динамического линейного списка.
  5. Найти сумму элементов массива х
  6. Работа с переменными, массивами, константами
  7. Сведения о моей занятости в кружках, секциях, клубах

Вы можете указать часть массива. Допустим, массив A специфицирован следующим образом

REAL, DIMENSION(-4:0, 7):: A

Тогда A(-3,:) указывает второй ряд матрицы, тогда как A(0:-4:-2, 1:7:2) указывает (в обратном порядке) каждый второй элемент в каждой второй колонке. Так же как переменные могут образовывать массивы, так и константы могут образовывать массивы.

Вырезки позволяют пользователю получить большее управление массивом путем использования тройки индексов и векторных индексов..

з

Конструкция WHERE

Конструкция позволяет задавать условия выполнения действий над массивами.

В следующем примере мы хотим защититься от отрицательных элементов X. Это задано следующей конструкцией

WHERE (x = 0.0) z = 4.0*y*sgrt(x) ELSEWHERE z = 0.0 END WHERE

Заметьте, что ELSEWHERE записано одним словом! Сравните с функцией SUM (конец следующей секции.

 

Сумма положительных значений членов массива записана и так

SUM (X, MASK = X.GT. 0.0)

Такой оператор не может быть использован для того, чтобы избежать деления на ноль в случае суммирования 1/X, что есть слово-маска для определения, какие номера включены в суммирование, и либо ни одно из двух определенное значение не может быть вычислено или нет. Но в последнем случае Вы можете использовать конструкцию WHERE.

Присваивание маскированного массива позволяет пользователю сделать присваивание, базирующееся на маске по всему массиву.

 

! Пример использования распределяемого массива и конструкции where.

program main

integer number_of_students, number_of_tests

! Объявление массива 'scores' и 'letter_grade' как распределяемых allocatable и 2 мерные.

integer, allocatable, dimension(:,:):: scores

character(len=1), allocatable, dimension(:,:):: letter_grade

open(unit=1,file='grades',form='formatted',access='sequential')

read(1,10) number_of_students, number_of_tests

! Распределение памяти для массивов.

allocate (scores(number_of_students,number_of_tests))

allocate (letter_grade(number_of_students,number_of_tests))

read(1,10) ((scores(i,j),i=1,number_of_students), j=1,number_of_tests)

close(1)

! Используется конструкция where для присваивания значений массиву 'letter_grade',

! основанному на значениях массива 'scores'.

where(scores >= 90) letter_grade = 'A'

where(scores >= 80.and. scores < 90) letter_grade = 'B'

where(scores >= 70.and. scores < 80) letter_grade = 'C'

where(scores >= 60.and. scores < 70) letter_grade = 'D'

where(scores < 60) letter_grade = 'F'

write(*,*) letter_grade

deallocate(scores,letter_grade)! Освобождение памяти, использованной массивами.

10 format(i3,t5,i3)

end program

з

Встроенные

 

В Fortran 90 включены 75 новых встроенных функций:

В другом руководстве сказано, что Fortran 90 включает около 100 встроенных функций и очень много встроенных подпрограмм. Ряд функций позволяет иметь определенными атрибуты и допустимые параметры среды программирования, такие как наибольшее положительное число целое и с плавающей запятой, как доступ к системным часам. Включен генератор случайных чисел.

Все встроенные функции и подпрограммы описываются в соответствующем разделе.


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


<== предыдущая страница | следующая страница ==>
Выражения для массивов| Модули и процедуры

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