База ответов ИНТУИТ

Программирование больших вычислительных задач на современном Фортране с использованием компиляторов Intel

<<- Назад к вопросам

Выберите допустимые объявления модульных переменных для данного варианта программы
module mod_Aimplicit none! здесь следует объявить модульные переменные public init_solver contains   subroutine init_solver(x)     real x     A=A**2     B=x+A   end subroutine init_solverend module mod_APROGRAM prog use mod_A, Anew => A implicit none x=1.5 Anew=x+1 write(*,*) Anew+B call init_solver(1.6)end        

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
integer, protected :: A = 2
integer, public :: A = 2(Верный ответ)
real, public :: X = 2(Верный ответ)
integer, protected :: B = 3(Верный ответ)
real, private :: X = 2
Похожие вопросы
Выберите допустимые объявления модульных переменных для данного варианта программы
module mod_Aimplicit none! здесь следует объявить модульные переменные public init_solver contains   subroutine init_solver(val)     real val     x=val*1.0E-10   end subroutine init_solverend module mod_APROGRAM prog use mod_A, Anew => A, Bnew => B implicit none Anew = Anew + 1 write(*,*) Bnew+1 call init_solver(-1.0) Anew=Bnew+1end        
Выберите допустимые объявления модульных переменных для данного варианта программы
module mod_Aimplicit none! здесь следует объявить модульные переменные public init_solver contains   subroutine init_solver(val)     real val     x=val*sin(val)+A   end subroutine init_solverend module mod_APROGRAM prog use mod_A, Anew => A, Bnew => B implicit none Bnew=1+Anew write(*,*) Bnew+Anew+X call init_solver(-1.0)end        
Выберите допустимые объявления модульных переменных для данного варианта программы
module mod_Aimplicit none! здесь следует объявить модульные переменные public init_solver contains   subroutine init_solver(val)     real val     B=val*A   end subroutine init_solverend module mod_APROGRAM prog use mod_A, Anew => A, Xnew => X implicit none Xnew=2.0 write(*,*) B+Anew+Xnew call init_solver(0.0)end        
Выберите допустимые объявления модульных переменных для данного варианта программы
module mod_Aimplicit none! здесь следует объявить модульные переменные public init_solver contains   subroutine init_solver(x)     real x     A=A*0.001     B=x+A   end subroutine init_solverend module mod_APROGRAM prog use mod_A, Bnew => B implicit none Bnew=A*2 write(*,*) x+2 call init_solver(0.0)end        
Данная программа компилируется с ошибкой. Какие варианты изменений в программе можно выполнить, чтобы из головной программы вызвать процедуру init из модуля A
module mod_A contains   subroutine init     write(*,*) "Initializing A"   end subroutine initend module mod_Amodule mod_B contains   subroutine init     write(*,*) "Initializing B"   end subroutine initend module mod_BPROGRAM prog use mod_A use mod_B implicit none call init() ! вызываем процедуру из модуля Aend    
Данная программа компилируется с ошибкой. Какие варианты изменений в программе можно выполнить, чтобы из головной программы вызвать процедуру init из модуля B
module mod_A contains   subroutine init     write(*,*) "Initializing A"   end subroutine initend module mod_Amodule mod_B contains   subroutine init     write(*,*) "Initializing B"   end subroutine initend module mod_BPROGRAM prog use mod_A use mod_B implicit none call init() ! вызываем процедуру из модуля Bend        
Данная программа компилируется с ошибкой. Какие варианты изменений в программе можно выполнить, чтобы из головной программы вызвать процедуру init из модуля A
module mod_A contains   subroutine init     write(*,*) "Initializing A"   end subroutine initend module mod_Amodule mod_B contains   subroutine init     write(*,*) "Initializing B"   end subroutine initend module mod_BPROGRAM prog use mod_A use mod_B implicit none call init() ! вызываем процедуру из модуля Aend        
Данная программа компилируется с ошибкой. Какие варианты изменений в программе можно выполнить, чтобы из головной программы вызвать процедуру init из модуля A
module mod_A contains   subroutine init     write(*,*) "Initializing A"   end subroutine initend module mod_Amodule mod_B contains   subroutine init     write(*,*) "Initializing B"   end subroutine initend module mod_BPROGRAM prog use mod_A use mod_B implicit none call init() ! вызываем процедуру из модуля Aend        
Данная программа компилируется с ошибкой. Какие варианты изменений в программе можно выполнить, чтобы из головной программы вызвать процедуру init из модуля B
module mod_A contains   subroutine init     write(*,*) "Initializing A"   end subroutine initend module mod_Amodule mod_B contains   subroutine init     write(*,*) "Initializing B"   end subroutine initend module mod_BPROGRAM prog use mod_A use mod_B implicit none call init() ! вызываем процедуру из модуля Bend        
В головной программе используется модуль flow. Объявлена переменная PT типа point. Какие из процедур в типе point могут изменить приватную часть переменной PT ?
module flow  type point    integer x    integer y    real, private :: cp  contains    procedure, nopass :: proc1    procedure proc2    procedure, pass :: proc3    procedure, nopass :: proc4    procedure proc5    procedure show  end type point  contains    subroutine proc1(pt,val)      type(point) pt      real val      pt.cp = val    end subroutine proc1    subroutine proc2(pt)      class(point) pt      pt.cp=real(pt.x+pt.y)    end subroutine proc2    subroutine proc3(pt)      class(point) pt      integer tmp      tmp=pt.x; pt.x=pt.y; pt.y=tmp    end subroutine proc3    subroutine proc4(pt)      type(point) pt      if (pt.cp<=0) write(*,*) "ERROR"    end subroutine proc4    subroutine proc5(pt,M,N,S)      class(point) pt      integer M,N      real, optional :: S      pt.x=pt.x+N      pt.y=pt.y+M      if (present(S)) call random_number(pt.cp)    end subroutine proc5end module flow