Форум программистов, компьютерный форум, киберфорум
Fortran
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 1
Регистрация: 22.07.2017
Сообщений: 121
1

Задание константы с общим доступом к ней

22.07.2017, 14:11. Показов 1239. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Позволяет ли фортран задать данные, которые будут доступны во всех подпрограммах?
Конкретный пример. Есть n-e кол-во подпрограмм, каждая из которых будет использовать число Пи. Есть возможность задать эту константу в каком-то отдельном общедоступном модуле, вместо того, чтобы в каждой подпрограмме задавать его заново? Задать где-то отдельно константу PI и из каждого уголка программы спокойно использовать её не беспокоясь о том, что я её не задал в начале подпрограммы.
Также интересует ещё один момент. Есть одна программа, которая постоянно обращается к подпрограмме, которая в свою очередь считывает несколько массивов и проводит с ними операции. То есть кол-во таких обращений может исчисляться в тысячах или миллионах раз. В итоге мы постоянно открываем файл, считываем из него массив, закрываем файл, используем массив в вычислениях, а потом, при следующем обращении к данной подпрограмме, мы проделываем всю эту процедуру заново. Сначала я решил, что какая собственно разница сколько раз мы считываем одно и то же, компьютер же не устаёт. Но потом оказалось, что программа выводит какое-то ограниченное кол-во результатов операций, а дальше действовать отказывается. Причём это кол-во постоянно разное. Сначала было 27, потом 5906. Я подумал, может происходит какое-то переполнение оперативной памяти или что-то вроде этого. Не знаю. В любом случае, надеюсь, что вы поняли, что я имел в виду, несмотря на корявость повествования.

Заранее благодарю за ответ.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.07.2017, 14:11
Ответы с готовыми решениями:

Подскажите как программно отличить папку с открытым общим доступом от папки с закрытым общим доступом
Необходимо считать все папки общего доступа на устройстве, но не нашел метода через который можно...

БД с общим доступом
Всем привет, помогите, нужно создать БД в MS Access, что бы она лежала на сервере (т.е. на общим...

Проблема с общим доступом
Есть 2 ПК связанные по средствам коммутатора DES -1005D на обоих установлена Ubuntu 11.10. 1-й -...

Управление общим доступом
Хочу подключить принтер по локальной сети удаленного компьютера, но при попытке открыть по сети...

11
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
22.07.2017, 14:29 2
Цитата Сообщение от Insomnia4ever Посмотреть сообщение
задать данные, которые будут доступны во всех подпрограммах?
модули в фортране

Цитата Сообщение от Insomnia4ever Посмотреть сообщение
В итоге мы постоянно открываем файл, считываем из него массив, закрываем файл, используем массив в вычислениях, а потом, при следующем обращении к данной подпрограмме, мы проделываем всю эту процедуру заново.
также объявите ваш массив в модуле, считайте один раз.. далее он может использоваться неоднократно посредством объявления в модуле
1
1 / 1 / 1
Регистрация: 22.07.2017
Сообщений: 121
22.07.2017, 15:36  [ТС] 3
Цитата Сообщение от Krasme Посмотреть сообщение
модули в фортране



также объявите ваш массив в модуле, считайте один раз.. далее он может использоваться неоднократно посредством объявления в модуле
О, спасибо большое. А есть возможность именно считать файл с массивом в самом модуле или всё-таки придётся его задать в прямом виде? Если всё-таки считать нельзя, то можно ли записать модуль вне файла основной программы, что бы потом к нему обратиться? Не хочется нагромождать массивом код основной программы.
0
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
22.07.2017, 15:51 4
1. в модуле массив только объявляется
2.1 в нужной подпрограмме одноразовое чтение файла и запись данных в массив, нужен признак одноразовости, чтобы при повторном проходе подпрограммы обходить чтение файла
2.2 как вариант, чтение файла сделать на первом этапе основной программы
3. в других подпрограммах достаточно подключить модуль use modulename
1
1 / 1 / 1
Регистрация: 22.07.2017
Сообщений: 121
22.07.2017, 20:15  [ТС] 5
Цитата Сообщение от Krasme Посмотреть сообщение
1. в модуле массив только объявляется
2.1 в нужной подпрограмме одноразовое чтение файла и запись данных в массив, нужен признак одноразовости, чтобы при повторном проходе подпрограммы обходить чтение файла
2.2 как вариант, чтение файла сделать на первом этапе основной программы
3. в других подпрограммах достаточно подключить модуль use modulename
Krasme, не стал лишний раз изощряться и просто задал значения массивов в модули. Скажите, а есть ли вообще какой-то лимит на вывод данных в фортране? Или лимиты на вычислительные мощности, что ли. Чем всё это дело может ограничиваться?
0
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
22.07.2017, 20:41 6
Цитата Сообщение от Insomnia4ever Посмотреть сообщение
на вывод данных
вывод куда?
в файлы? в моей практике бывали случаи вывод по 500 файлов в 3500 строк и 20 столбцов в один запуск - никаких нареканий.

заполнение данных в оперативной памяти? очевидно, что ресурс ограничивается размером озу.
1
1 / 1 / 1
Регистрация: 22.07.2017
Сообщений: 121
22.07.2017, 20:46  [ТС] 7
Да, в файлы. К сожалению у меня случаются эти нарекания. С ОЗУ у меня не так всё плохо, чтобы возникали подобные проблемы, но эта ситуация меня напрягает. Я, например, вывожу 10000 строк по три значения в каждом. Но, если я, например, буду выводить этот же объём данных + эти же данные помноженные на два, то кол-во получаемой информации может резко сократиться не дойдя до 10000. Странно всё это.
0
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
22.07.2017, 21:00 8
может, дело не в выводе в файлы, а в самой программе..
1
1 / 1 / 1
Регистрация: 22.07.2017
Сообщений: 121
23.07.2017, 00:26  [ТС] 9
Ну, это пожалуй наиболее вероятный вариант
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,641
Записей в блоге: 13
25.07.2017, 15:15 10
Цитата Сообщение от Insomnia4ever Посмотреть сообщение
Позволяет ли фортран задать данные, которые будут доступны во всех подпрограммах?
- учитывая современные подходы к созданию информационных систем, можно дать такой ответ: "К сожалению, да". Для этого служит оператор COMMON
1
6830 / 4890 / 2065
Регистрация: 02.02.2014
Сообщений: 13,048
25.07.2017, 15:59 11
Catstail, зачем common, когда есть module?
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,641
Записей в блоге: 13
25.07.2017, 16:51 12
Вероятно, Вы правы.
0
25.07.2017, 16:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.07.2017, 16:51
Помогаю со студенческими работами здесь

Папка с общим доступом
Такая проблема. От имени администратора создал папку и в свойстве папки указал, чтобы был общий...

БД с общим доступом на сетевой папке
Добрый день! Хочу сделать Базу данных в Аксесе и поместить ее на сетевую папку для общего...

Проблема с общим доступом к файлам
Здравствуйте уважаемы коллеги. Проблема следующая: В локальной сети есть 2 компа - 1 на висте...

Попали принтеры с общим доступом
Здравствуйте. Есть два компьютера, к которым подключены принтеры, они имеют общий доступ. К этим...

Проблема с доступом к общим папкам!!!
Здравствуйте Уважаемые!!! Одноранговая сеть из 7 компов, везде WinXP, один из компов использую как...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru