В конце концов, это была аппаратная проблема, эффект от хороших наушников отсутствует.
Если вы программист на фортране, вы, вероятно, видели подпрограмму, принимающую 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
массив похож на несколько переменных с одинаковыми именами, идентифицированными индексом. Очень полезно для выражения векторов или матриц. Конечно, вы можете сделать массив определенного вами агрегированного типа вместо предопределенного типа (например, целое число).
Массив - это упорядоченный список переменных , все одного типа, проиндексированы целыми числами. См. Array in Wikipedia . Обратите внимание, что индексирование массивов в Fortran более гибко, чем в большинстве других низкоуровневых языков, поскольку вместо одного индекса на измерение вы можете иметь триплет индекса, состоящий из нижней границы, верхней границы, и шагать В этом случае lvalue выражения представляет собой подмассив, а не отдельный элемент типа массива.
Производный тип - это составной тип, определенный пользователями, который состоит из нескольких компонентов, которые могут быть разных типов. В некоторых других языках они известны как структуры, типы структур или типы записей. См. Запись в Википедии
. Вы также можете создать массив производного типа или иметь производный тип, в котором один или несколько компонентов сами являются массивами, или, в этом отношении, другими производными типами. Это зависит от вас!
Самый простой способ проверить ваш код - это попробовать скомпилировать его. Преодоление компилятора, конечно, не гарантирует, что программа будет работать, как ожидалось, но это, безусловно, обязательный шаг.
Производный тип - это составной тип, определенный пользователями, который состоит из нескольких компонентов, которые могут быть разных типов. В некоторых других языках они известны как структуры, типы структур или типы записей. См. Запись в Википедии
. Вы также можете создать массив производного типа или иметь производный тип, в котором один или несколько компонентов сами являются массивами, или, в этом отношении, другими производными типами. Это зависит от вас!
Самый простой способ проверить ваш код - это попробовать скомпилировать его. Преодоление компилятора, конечно, не гарантирует, что программа будет работать, как ожидалось, но это, безусловно, обязательный шаг.
Производный тип - это составной тип, определенный пользователями, который состоит из нескольких компонентов, которые могут быть разных типов. В некоторых других языках они известны как структуры, типы структур или типы записей. См. Запись в Википедии
. Вы также можете создать массив производного типа или иметь производный тип, в котором один или несколько компонентов сами являются массивами, или, в этом отношении, другими производными типами. Это зависит от вас!
Самый простой способ проверить ваш код - это попробовать скомпилировать его. Преодоление компилятора, конечно, не гарантирует, что программа будет работать, как ожидалось, но это, безусловно, обязательный шаг.
См. Запись в Википедии. Вы также можете создать массив производного типа или иметь производный тип, в котором один или несколько компонентов сами являются массивами, или, в этом отношении, другими производными типами. Это зависит от вас!
Самый простой способ проверить ваш код - это попробовать скомпилировать его. Преодоление компилятора, конечно, не гарантирует, что программа будет работать, как ожидалось, но это, безусловно, обязательный шаг.
См. Запись в Википедии. Вы также можете создать массив производного типа или иметь производный тип, в котором один или несколько компонентов сами являются массивами, или, в этом отношении, другими производными типами. Это зависит от вас!
Самый простой способ проверить ваш код - это попробовать скомпилировать его. Преодоление компилятора, конечно, не гарантирует, что программа будет работать, как ожидалось, но это, безусловно, обязательный шаг.