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

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

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

В следующем фрагменте программы, какие имена являются процедурами привязанными к типу по имени ?
  use algebra  type (matrix) MTR, MTR1, MTR2  real det  ...  call MTR.Create(10,10)  call MTR.Random()  call MTR1.Transpose()  det=MTR1.determinant  ...  MTR=MTR1.CONVERT.MTR2  write(*,*) MTR.value(10,2:10,10)  ...        

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

Варианты ответа
Transpose(Верный ответ)
Random(Верный ответ)
determinant
CONVERT
value
Create(Верный ответ)
Похожие вопросы
В приведенном фрагменте программы перечислите имена пользовательских операций.
  use math  type (matrix) MTR, MTR1, MTR2  type (set) S1, S2, S3  ...  call MTR.Create(Mi,Mj)  MTR = MTR1 + MTR2 * (MTR.Inverse())  S2 = S1.CROSS.S3  call MTR1.Transpose()  det = MTR1.determinant  ...  S1 = S2.UNION.S3  write(*,*) S1.value(1:100:2)  ...        
В следующем фрагменте программы, какие имена не являются и могут не являться процедурами, привязанными к типу по имени?
  use grids  type (grid_MKE) GR  type (point) pt  call GR.Init()  call GR.PrintInfo()  write(*,*) GR.coordinates(10,20)  write(*,*) GR.next()  write(*,*) GR.values(2,2)  if (.NOT.GR.err) then  ...  pt = GR.points + pt  ...        
Какие имена являются процедуры привязанными к типу по имени в следующем фрагменте программы ?
  use graph  type(plot) PLT, PLTA, PLTB  ...  call PLT.Create(10,10,200,200)  PLT=.INVERSE.PLT  write(*,*) PLTA.xcenter  write(*,*) PLT.Radius()  call VerifyPlot(PLTB.coords)  write(*,*) finish(PLTA.start())  PLT=PLTA.UNION.PLTB  ...  
В следующем фрагменте программы, укажите имена перегруженных процедур и операций.
  use flow  type (grid) GRD  type (velocity) VX, VY, VZ  ...  GRID.Init()  call GRD.Add(VX)  call GRD.Add(VY,VZ)  call GRD.Build(X1=0.0,Y1=0.0,X2=2.0,Y2=1.0)  write(1,*) VX + VY, VX - VZ  ...  call GRD.Draw()  ...  call VX.VectorField(GRD)        
В головной программе используется модуль 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        
Выберите допустимые объявления модульных переменных для данного варианта программы
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        
Выберите допустимые объявления модульных переменных для данного варианта программы
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        
Выберите допустимые объявления модульных переменных для данного варианта программы
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(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     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