Массивы и производные типы

В конце концов, это была аппаратная проблема, эффект от хороших наушников отсутствует.

6
задан francescalus 22 November 2015 в 00:01
поделиться

2 ответа

Если вы программист на фортране, вы, вероятно, видели подпрограмму, принимающую 10/15 аргументов. Если вы думаете об этом, это безумие (их слишком много, вы рискуете их поменять), и вы быстро понимаете, что некоторые аргументы всегда идут вместе. Было бы целесообразно объединить их в единую сущность, которая несет в себе все как единое целое, а не как независимые сущности. Это значительно уменьшит количество аргументов, предоставляя вам только бремя для поиска правильной связи. Эта единая сущность является типом.

В своем коде вы говорите, что Банк представляет собой совокупность этой информации. Теперь вы можете объявить конкретную переменную этого типа, которая будет представлять и предоставлять доступ к отдельным переменным acNumber, acChecks и так далее. Для этого вы должны использовать символ%. так что если ваша банковская переменная называется b, вы можете сказать, например,

b%acNumber = 5

Вы можете представить b как шкаф, содержащий разные полки. Вы перемещаете закрытые, все полки и их содержимое перемещаются вместе.

Массив - это группа объектов одного типа (скажем, целое число или символ (len = 1024), или банк), и они расположены один за другим, поэтому вы можете получить доступ к каждому из них с помощью числового индекса. Помните, что, если не указано иное, индексы массивов в фортране начинаются с 1 (во всех других основных языках вместо этого первый индекс равен нулю)

Что касается вашего кода, я предлагаю вам:

  • написать

      INTEGER , DIMENSION (MaxRow: MaxColum) :: AccountData
    

    как

      INTEGER :: AccountData (MaxRow, MaxColum)
    

    То же самое, но ты пишешь меньше. Также обратите внимание, что есть разница между использованием: и,. Если вы хотите определить матрицу (ваш случай), которая является двумерным массивом, вы должны использовать запятую. То, что вы написали, неверно.

  • для строк лучше написать

      CHARACTER :: acType * 1, acLName * 15, acFName * 15
    

    как

      CHARACTER (LEN = 1) :: acType
     CHARACTER (LEN = 15) :: acLName
     CHARACTER (LEN = 15) :: acFName
    

    в этом случае вы пишете больше, но ваш синтаксис устарел (хотя я могу ошибаться) Кроме того, помните, что лучше, если вы пишете одну переменную-член на строку в типах. Это дело вкуса, но я предпочитаю видеть полный размер типа, имея одну строку для каждой переменной-члена.

  • Для MaxRows и MaxColumns я бы написал их как MAX_ROWS и MAX_COLUMNS. Параметры и прочее, которые в высокой степени постоянны по традиции, отождествляются с заглавными буквами и подчеркиванием в любом главном языке.


Редактировать : чтобы ответить на ваш комментарий, вот пример использования массива

$ more foo.f90 
program test
    integer :: myarray(10)

    myarray = 0   ! equivalent to zeroing the single elements one by one
    myarray(2) = 5
    myarray(7) = 10

    print *, myarray

end program
$ g95 foo.f90 -o foo
$ ./foo
 0 5 0 0 0 0 10 0 0 0

массив похож на несколько переменных с одинаковыми именами, идентифицированными индексом. Очень полезно для выражения векторов или матриц. Конечно, вы можете сделать массив определенного вами агрегированного типа вместо предопределенного типа (например, целое число).

6
ответ дан 17 December 2019 в 02:33
поделиться

Массив - это упорядоченный список переменных , все одного типа, проиндексированы целыми числами. См. Array in Wikipedia . Обратите внимание, что индексирование массивов в Fortran более гибко, чем в большинстве других низкоуровневых языков, поскольку вместо одного индекса на измерение вы можете иметь триплет индекса, состоящий из нижней границы, верхней границы, и шагать В этом случае lvalue выражения представляет собой подмассив, а не отдельный элемент типа массива.

Производный тип - это составной тип, определенный пользователями, который состоит из нескольких компонентов, которые могут быть разных типов. В некоторых других языках они известны как структуры, типы структур или типы записей. См. Запись в Википедии

. Вы также можете создать массив производного типа или иметь производный тип, в котором один или несколько компонентов сами являются массивами, или, в этом отношении, другими производными типами. Это зависит от вас!

Самый простой способ проверить ваш код - это попробовать скомпилировать его. Преодоление компилятора, конечно, не гарантирует, что программа будет работать, как ожидалось, но это, безусловно, обязательный шаг.

Производный тип - это составной тип, определенный пользователями, который состоит из нескольких компонентов, которые могут быть разных типов. В некоторых других языках они известны как структуры, типы структур или типы записей. См. Запись в Википедии

. Вы также можете создать массив производного типа или иметь производный тип, в котором один или несколько компонентов сами являются массивами, или, в этом отношении, другими производными типами. Это зависит от вас!

Самый простой способ проверить ваш код - это попробовать скомпилировать его. Преодоление компилятора, конечно, не гарантирует, что программа будет работать, как ожидалось, но это, безусловно, обязательный шаг.

Производный тип - это составной тип, определенный пользователями, который состоит из нескольких компонентов, которые могут быть разных типов. В некоторых других языках они известны как структуры, типы структур или типы записей. См. Запись в Википедии

. Вы также можете создать массив производного типа или иметь производный тип, в котором один или несколько компонентов сами являются массивами, или, в этом отношении, другими производными типами. Это зависит от вас!

Самый простой способ проверить ваш код - это попробовать скомпилировать его. Преодоление компилятора, конечно, не гарантирует, что программа будет работать, как ожидалось, но это, безусловно, обязательный шаг.

См. Запись в Википедии

. Вы также можете создать массив производного типа или иметь производный тип, в котором один или несколько компонентов сами являются массивами, или, в этом отношении, другими производными типами. Это зависит от вас!

Самый простой способ проверить ваш код - это попробовать скомпилировать его. Преодоление компилятора, конечно, не гарантирует, что программа будет работать, как ожидалось, но это, безусловно, обязательный шаг.

См. Запись в Википедии

. Вы также можете создать массив производного типа или иметь производный тип, в котором один или несколько компонентов сами являются массивами, или, в этом отношении, другими производными типами. Это зависит от вас!

Самый простой способ проверить ваш код - это попробовать скомпилировать его. Преодоление компилятора, конечно, не гарантирует, что программа будет работать, как ожидалось, но это, безусловно, обязательный шаг.

0
ответ дан 17 December 2019 в 02:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: