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

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

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

Объявлены следующие типы и переменные.
  type grid    integer adr    real alfa    real beta  end type grid  type, extends (grid) :: flow    integer coord    real    dist    real    param  end type flow  type, extends (flow) :: regime    real, allocatable :: ux(:,:,:), uy(:,:,:), uz(:,:,:)    real  R1, R2, R3  end type regime  class(*), pointer :: polym  class(grid), pointer :: pol_grd  type(flow), target   :: flw        
Какие справедливы прикрепления ссылок ?

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

Варианты ответа
polym => flw.grid.beta(Верный ответ)
pol_grd=>flw(Верный ответ)
polym => flw.dist(Верный ответ)
pol_grd => flw.grid(Верный ответ)
pol_grd => flw.param
Похожие вопросы
Объявлены следующие типы и переменные.
  type grid    integer adr    real alfa    real beta  end type grid  type, extends (grid) :: flow    integer coord    real    dist    real    param  end type flow  type regime    type (flow) flw    real, allocatable :: ux(:,:,:), uy(:,:,:), uz(:,:,:)    real  R1, R2, R3  end type regime  class(*), pointer :: polym  class(regime), pointer :: pol_reg  type(flow), target   :: pol_flw        
Какие справедливы прикрепления ссылок ?
Объявлены следующие типы и переменные.
  type cell    real next    real prev    logical stat  end type cell  type, extends (cell) :: object    integer code    real    dist    real    radius  end type object  type grid    type (object) object    integer n    integer xa,xb,ya,yb  end type grid  class (*), pointer :: polym  class (cell),  pointer  :: ptc  type  (grid),  target   :: ptg        
Какие справедливы прикрепления ссылок ?
Объявлены следующие типы и переменные.
  type cell    real next    real prev    logical stat  end type cell  type object    integer code    real    dist    real    radius  end type object  type grid    type (object) object    type (cell)   cell    integer xa,xb,ya,yb  end type grid  class (*), pointer :: polym  class (cell),  pointer  :: ptc  type  (grid),  target   :: ptg        
Какие справедливы прикрепления ссылок ?
Объявлены следующие типы и переменные.
  type sma    real p(100)    real mid(100)    logical res  end type sma  type, extends (sma) :: ssma    real middle  end type ssma  type uma    type (sma) sm(100)    complex p(100)    logical ret    character bis  end type uma  class (sma), pointer :: polym  type (uma),  target  :: um1  type (ssma), target  :: ssm1        
Какие справедливы прикрепления ссылки polym?
Какое значение будет присвоено переменной k в результате выполнения оператора select type в следующем фрагменте программы ?
type point  integer x, yend type pointtype, extends(point) :: point_ex  integer z  integer color  logical errorend type point_extype, extends(point_ex) :: point_phys  real vx  real vy  real vz  real tmend type point_phystype, extends(point_phys) :: point_mech  character(32) name  character(8)  codeend type point_mechinteger kclass (*), pointer :: ptrtype  (point_ex), target :: pt_exclass (point_phys), allocatable, target :: pt_phclass (point_mech), allocatable, target :: pt_mhallocate(pt_ph,source=point_phys(1,2,3,4,.true.,0.0,0.0,0.0,0.0))allocate(pt_mh,source=point_mech(5,6,7,8,.true.,0.0,0.0,0.0,0.0,"A","B"))ptr=>pt_ph  select type (ptr)    type is (point_ex);    k=ptr.x    class is (point);      k=ptr.y    class is (point_mech); k=ptr.color    class default;         k=0  end select ...
Даны два типа описанных в модуле gas_dynamics
module gas_dynamics  type grid    real(8), allocatable :: dat(:,:,:)    real(8), allocatable :: xcoord(:)    real(8), allocatable :: ycoord(:)    real(8), allocatable :: zcoord(:)  end type grid  type particle    real(8), allocatable, private :: ux(:,:,:)    real(8), allocatable, private :: uy(:,:,:)    real(8), allocatable, private :: uz(:,:,:)    real(8), allocatable, private :: tm(:,:,:)  end type particle...end module gas_dynamics
Создайте тип plot, который:
  • наследует поля типа grid
  • содержит поле типа particle, в виде одномерного динамического массива
  • содержит два поля типа complex(8), в виде одномерных динамических массивов
  • В ответ введите размер в байтах переменной типа plot
    В головной программе используется модуль 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        
    Какое значение будет присвоено переменной k в результате выполнения оператора select type в следующем фрагменте программы ?
    type point  integer x, yend type pointtype, extends(point) :: point_ex  integer zend type point_extype, extends(point_ex) :: point_phys  real vx  real tmend type point_phystype, extends(point_phys) :: point_mech  character(32) nameend type point_mechclass (point_ex), pointer :: polyclass (point), target, allocatable :: ptclass (point_ex), target, allocatable  :: pt_exclass (point_phys), target, allocatable  :: pt_phclass (point_mech), target, allocatable  :: pt_mhinteger kallocate (pt, source=point(1,2))allocate (pt_ex, source=point_ex(3,4,5))allocate (pt_ph, source=point_phys(6,7,8,0.0,9.0))allocate (pt_mh, source=point_mech(9,10,11,0.0,0.0,"ABC"))poly=>pt_mh  select type (poly)    class is (point_ex);   k=poly.x    class is (point_phys); k=poly.z    class default;         k=0  end select ...
    Даны два типа
      type grid    real(8) x1,y1,x2,y2    integer(8) adr  end type grid  type point    real(8) x    real(8) y  end type point
    Создайте тип region, который содержит поля:
  • типа point, в виде одномерного динамического массива
  • типа real(8), в виде трехмерного динамического массива
  • В ответ введите размер в байтах переменной типа region
    Модуль
    module mod_1  type region    integer x(4)    real R  end type region  type blk    logical st(3)    character(5), public :: name(2)  end type blk  type NewType    type (region) reg(20)    type (blk)    bee(30)  end type NewTypeend module mod_1        

    используется в головной программе.

    Объявлена переменная

    type(NewType) NTУкажите верные варианты доступа к полям производного типа.