Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 595396)
Консорциум Контекстум Информационная технология сбора цифрового контента
Уважаемые СТУДЕНТЫ и СОТРУДНИКИ ВУЗов, использующие нашу ЭБС. Рекомендуем использовать новую версию сайта.

Современный Fortran на практике (3000,00 руб.)

0   0
Первый авторМаркус
ИздательствоМ.: ДМК Пресс
Страниц319
ID795333
АннотацияЯзык программирования Fortran изначально был предназначен для математических вычислений с максимальной производительностью. В последний стандарт Fortran 2008 включено множество современных функциональных возможностей: средства объектно-ориентированного программирования, специализированные операции с массивами, типы, определяемые пользователем и поддержка параллельных вычислений. Данное учебное руководство поможет программистам на языке Fortran научиться применять все вышеперечисленные функциональные возможности в соответствии с современными требованиями: модульность, лаконичность, объектно-ориентированный подход и рациональное использование ресурсов, а также организация работы с учётом наличия нескольких процессоров. В книге рассматриваются практические примеры взаимодействия с программами, написанными на языке C, управления памятью, применения графики и графических пользовательских интерфейсов, параллельные вычисления с использованием библиотек MPI, OpenMP и комассивов (coarrays). Кроме того, автор анализирует некоторые числовые алгоритмы и их реализации, а также показывает, как можно применить некоторые библиотеки с открытыми исходными кодами.
ISBN978-5-97060-302-4
УДК004.438Fortran
ББК32.973.22
Маркус, А. Современный Fortran на практике / А. Маркус .— Москва : ДМК Пресс, 2015 .— 319 с. — ISBN 978-5-97060-302-4 .— URL: https://rucont.ru/efd/795333 (дата обращения: 27.09.2022)

Предпросмотр (выдержки из произведения)

Современный_Fortran_на_практике.pdf
Стр.5
Стр.7
Стр.8
Стр.9
Стр.10
Стр.11
Современный_Fortran_на_практике.pdf
УДК 004.438Fortran ББК 32.973.22 M27 V27 Арьен Маркус Современный Fortran на практике / пер. с англ. Снастин А. В. – М.: ДМК Пресс, 2015. – 308 с.: ил. ISBN 978-5-97060-302-4 Язык программирования Fortran изначально был предназначен для математических вычислений с максимальной производительностью. В последний стандарт Fortran 2008 включено множество современных функциональных возможностей: средства объектно-ориентированного программирования, специализированные операции с массивами, типы, определяемые пользователем и поддержка параллельных вычислений. Данное учебное руководство поможет программистам на языке Fortran научиться применять все вышеперечисленные функциональные возможности в соответствии с современными требованиями: модульность, лаконичность, объектно-ориентированный подход и рациональное использование ресурсов, а также организация работы с учётом наличия нескольких процессоров. В книге рассматриваются практические примеры взаимодействия с программами, написанными на языке C, управления памятью, применения графики и графических пользовательских интерфейсов, параллельные вычисления с использованием библиотек MPI, OpenMP и комассивов (coarrays). Кроме того, автор анализирует некоторые числовые алгоритмы и их реализации, а также показывает, как можно применить некоторые библиотеки с открытыми исходными кодами. Original English language edition published by Cambridge University Press, 32 Avenue of the Americas, New York, NY 10013-2473, USA. © Arjen Markus 2012. Russian-language edition copyright © 2015 by DMK Press. All rights reserved. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-1-107-01790-0 (англ.) ISBN 978-5-97060-302-4 (рус.) © Arjen Markus, 2012 © Оформление, перевод на русский язык ДМК Пресс, 2015
Стр.5
оглавление Предисловие Майкла Меткалфа.......................... 11 Предисловие автора ......................................... 15 Глава 1. Введение в современный Fortran ............. 17 1.1. особенности современного Fortran .................................. 17 1.2. Fortran 90 .......................................................................... 21 1.3. Fortran 95 .......................................................................... 25 1.4. Fortran 2003 ...................................................................... 26 1.5. Fortran 2008 ...................................................................... 28 1.6. Что осталось неизменным ................................................. 29 Глава 2. Функции для работы с массивами ............ 32 2.1. передача массивов в аргументах ...................................... 33 производительность при использовании функций обработки массивов ........................................................................................35 2.2. Элементные функции и автоматическое перераспределение памяти .................................................... 36 2.3. два более сложных примера ............................................. 38 дистанционирование иррациональных чисел .................................38 Быстрая сортировка Quicksort ........................................................40 2.4. компактный стиль ............................................................. 41 Глава 3. Математические абстракции .................. 44 3.1. Автоматическое дифференцирование .............................. 44 проблемы при вычислениях ...........................................................49 3.2. дискретное программирование ........................................ 50 управление памятью ......................................................................51 3.3. перечислимое множество решений диофантовых уравнений ............................................................................... 53 3.4. отложенные или ленивые вычисления .............................. 56
Стр.7
Оглавление 7 Глава 4. Управление памятью ............................. 60 4.1. динамически изменяемые массивы .................................. 60 4.2. утечки памяти при использовании указателей .................. 61 4.3. увеличение размера массива ........................................... 62 4.4. строки символов с изменяемой длиной ............................ 63 4.5. сочетание автоматических и динамических массивов ...... 66 4.6. производительность массивов разных типов .................... 67 4.7. параметризованные производные типы ........................... 69 4.8. Утечки памяти в производных типах ................................ 71 4.9. производительность и доступ к памяти ............................. 76 Глава 5. Проблема интерфейса ........................... 80 5.1. подстановка параметров .................................................. 82 5.2. использование пула данных .............................................. 84 данные в модулях ...........................................................................85 внутренние подпрограммы ............................................................88 5.3. передача дополнительных аргументов ............................. 89 Массив параметров ........................................................................89 использование функции transfer() ..................................................90 процедуры, связанные с типом ......................................................91 указатели на процедуры .................................................................93 5.4. управляющие конструкции ............................................... 95 Библиотека openMP .....................................................................100 5.5. работа с числовыми значениями различной точности ..... 102 5.6. резюме ........................................................................... 103 Глава 6. Взаимодействие с программами на языке C на примере работы с СУБД SQLite ...... 105 6.1. соответствие типов данных ............................................ 106 6.2. передача аргументов между подпрограммами, написанными на c и на Fortran ............................................... 109 6.3. соглашения об именовании и вызовах функций .............. 110 6.4. работа с производными типами ...................................... 113 6.5. создание интерфейса к суБд sQlite .............................. 116 Глава 7. Графика, GUI и Интернет ...................... 124 7.1. вывод результатов в графическом виде .......................... 125 7.2. Графические пользовательские интерфейсы (Gui) ......... 131
Стр.8
8 Оглавление 7.3. интернет ......................................................................... 139 7.4. работа с XMl-файлами ................................................... 143 Глава 8. Модульное тестирование ..................... 148 8.1. инструментальные средства тестирования ..................... 148 8.2. пример: обработка трёхдиагональной матрицы .............. 149 8.3. проектирование и реализация ........................................ 153 8.4. Заключительные замечания ............................................ 155 Глава 9. Просмотр и рецензирование исходного кода ............................................................. 157 9.1. соблюдать определённость и однозначность ................. 158 используйте явные объявления переменных и констант ...............158 используйте предусловия ............................................................160 переменные, сохраняющие свои значения между вызовами ........161 видимость интерфейса к подпрограмме или функции ..................161 доступность переменных и подпрограмм .....................................161 вариант default в блоке select и ветвь else в блоке if ......................162 информативные сообщения об ошибках ......................................162 9.2. избегать излишней сложности и запутанности ............... 164 9.3. избегать «ловушек» ........................................................ 169 правильная обработка ошибок .....................................................169 сравнение вещественных чисел ...................................................169 смешанная точность ....................................................................171 неожиданные результаты при работе с отрицательными числами ........................................................................................171 Автоматические массивы .............................................................172 ошибки могут возникать не только при работе с числами .............173 9.4. писать простой и понятный код ...................................... 173 Глава 10. Устойчивая к ошибкам реализация нескольких простых алгоритмов ....................... 178 10.1. обзор существующих подобных методик ...................... 179 10.2. линейная интерполяция ................................................ 181 10.3. простые статистические методы и характеристики ....... 187 10.4. поиск корней уравнения ............................................... 195 Глава 11. Объектно-ориентированное программирование ......................................... 209 11.1. расширение типов и процедуры, связанные с типами ... 209 передача объекта в другом аргументе ..........................................211
Стр.9
Оглавление 9 расширение до трёх измерений ...................................................212 пример: случайные перемещения в двух и в трёх измерениях ......215 определение динамического типа ................................................217 наблюдение за частицами ............................................................217 11.2. интерфейсы как контракты ........................................... 221 Аппроксимация множественного наследования ...........................225 11.3. использование прототипирования ................................ 226 пример: моделирование поведения рыб ......................................229 11.4. Абстрактные типы данных и обобщённое программирование ............................................................... 232 11.5. изменение поведения типа данных ............................... 235 11.6. Шаблоны проектирования ............................................. 237 Шаблон проектирования Factory...................................................238 Шаблон проектирования наблюдатель .........................................241 Глава 12. Параллельное программирование ....... 245 12.1. простые числа .............................................................. 246 Библиотека openMP .....................................................................248 интерфейс MPi .............................................................................251 комассивы ...................................................................................255 12.2. декомпозиция по доменам ........................................... 259 openMP ........................................................................................261 MPi ...............................................................................................265 комассивы ...................................................................................266 12.3. другие методики параллельного программирования .... 268 12.4. резюме ......................................................................... 270 Приложение А. Инструментальные средства для разработки и сопровождения ........................... 271 А.1. компиляторы .................................................................. 271 А.2. средства сборки программ ............................................ 272 А.3. интегрированные среды разработки .............................. 275 А.4. средства проверки во время выполнения ....................... 276 А.5. системы управления версиями ...................................... 278 А.6. документирование исходного кода ................................. 279 А.7. охват кода тестированием и статический анализ ............ 281 Приложение Б. Некоторые нюансы использования Fortran ..................................... 285
Стр.10
10 Оглавление Б.1. особенности стандарта .................................................. 285 вычисление логических выражений по короткой схеме ................285 сохранение значений локальных переменных ..............................286 ещё об инициализации .................................................................287 двойная точность и вычисление правой части выражений ............287 передача одного и того же аргумента дважды ..............................288 reAl(4) .........................................................................................290 признак конца файла (eoF), вывод на экран и т. п. ........................290 внешние и внутренние (встроенные) подпрограммы ....................291 несовпадения в интерфейсах: предполагаемая форма и явная форма массивов ...........................................................................292 инициализация генератора случайных чисел ...............................293 открытие одного и того же файла дважды ....................................294 Б.2. Массивы ......................................................................... 294 использование автоматических и временных массивов может привести к переполнению стека ...................................................294 Границы массивов с начальным индексом меньше 1 ....................296 объявления массивов: dimension(:) и dimension(*) .......................296 Б.3. динамические библиотеки ............................................. 297 открытие файла в программе и использование его в dll и наоборот ....................................................................................297 выделение памяти в dll и освобождение этой памяти в программе и наоборот ...............................................................298 Аргументы командной строки недоступны в dll ...........................298 подпрограммы или данные из основной программы, используемые в dll .....................................................................298 Приложение В. Зарегистрированные товарные знаки, упоминаемые в данной книге ..................... 300 Список литературы ......................................... 302 Предметный указатель .................................... 309
Стр.11

Облако ключевых слов *


* - вычисляется автоматически