Warning: mysqli_connect(): (HY000/1040): Too many connections in /home/c/co37471/eljob/public_html/core/main/Msql.php on line 49

Warning: mysqli_connect(): (HY000/1040): Too many connections in /home/c/co37471/eljob/public_html/core/main/Msql.php on line 53

Warning: mysqli_connect(): (HY000/1040): Too many connections in /home/c/co37471/eljob/public_html/core/main/Msql.php on line 53
Введение в программирование больших вычислительных задач на современном Фортране с использованием компиляторов Intel - тест 4
игра брюс 2048
Главная / Программирование / Введение в программирование больших вычислительных задач на современном Фортране с использованием компиляторов Intel / Тест 4

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

Упражнение 1:
Номер 1
Укажите верные варианты объявления массивов.

Ответ:

 (1) real :: A(4)=[3.9, 4.5, 6.7, 9.4] 

 (2) real :: B(6)=[0.0 0.0 2.0 4.0 5.0 3.0] 

 (3) integer :: M(-2, 4) = /3,5,4,4,4,1,1/ 

 (4) real(8), dimension(30) :: Q = 2.0d0 

 (5) integer, parameter :: red=100, blue=45, green=89 integer, parameter :: M(5)=red  


Номер 2
Укажите верные варианты объявления массивов.

Ответ:

 (1) real :: A(3)=[3.9, 4.5, 6.7, 9.4] 

 (2) real :: B(8)=[0.0,0.0,2.0,4.0,5.0,3.0] 

 (3) integer M(-2, 4) = [1,2,3,1,2,3,4] 

 (4) complex(16) :: S(90) = (1.0q0,2.0q0) 

 (5) real(8) :: S(8)= sin(2.0d0) 


Номер 3
Укажите верные варианты объявления массивов.

Ответ:

 (1) complex(16) : S = (1.0q0,2.0q0) 

 (2) real(8) :: S(120) = cosh(2.0d0) 

 (3) logical, parameter :: LOG(5)=[.TRUE. .FALSE. FALSE. .TRUE. .FALSE.] 

 (4) logical, parameter LOG(5)=.TRUE. 

 (5) character(16) :: CH(10,10,10)='Q' 


Номер 4
Укажите верные варианты объявления массивов.

Ответ:

 (1) character(16) :: CH(3,3,3)=['Q','R','W'] 

 (2) complex :: C(-1:3, -4:5, 3:5) = 0 

 (3) logical : D(-2:5,89:900)=.FALSE 

 (4) double precision :: R(100,100)=2.0/3.0 

 (5) integer(1) :: K(1)=100 


Номер 5
Укажите верные варианты объявления массивов.

Ответ:

 (1) integer :: B(100,1:80)=10 

 (2) logical D(-2:5,89:900) 

 (3) real(16) :: S(9000:10000:2)=1.0Q0 

 (4) character(8) :: A(100)="C:\" 

 (5) real :: A(100,100,100,100,100)=0.0 


Номер 6
Укажите верные варианты объявления массивов.

Ответ:

 (1) logical, parameter :: LOGO(5)=[.TRUE.,.FALSE.,.FALSE.,.TRUE.,.FALSE.] 

 (2) real(16) :: S(9000,10000:2)=1.0Q0 

 (3) complex(16) :: S = (1.0q0,2.0q0) 

 (4) character(16) :: CH(10:10:10)='Q' 

 (5) integer :: M(-2, 4) = /3,5,2,2,2,2/ 


Упражнение 2:
Номер 1
В результате выполнения операции C=A*B над двумерными массивами A и B произойдет.

Ответ:

 (1) умножение матриц по правилам математики (строка на столбец) 

 (2) умножение элементов на соответствующих позициях 

 (3) данная запись неправильная, следует использовать циклы и индексы массивов 

 (4) данная запись неправильная, так как размеры матриц могут быть несогласованными. 

 (5) данная запись неправильная, следует использовать сечения массивов 

 (6) данная запись неправильная, следует использовать оператор forall 


Номер 2
Операция C=A**B над двумерными массивами A и B аналогична следующим строчкам программы

Ответ:

 (1) do i=1,Mi do j=1,Mj C(i,j)=A(i,j)**B(i,j) end do end do  

 (2) do i=1,Mi do j=1,Mj C(i,j)=A(i,j)**B(j,i) end do end do  

 (3) do i=1,Mi do j=1,Mj C(i,j)=A(i,j)^B(i,j) end do end do  

 (4) do i=1,Mi do j=1,Mj C(i,i)=A(i,i)**B(j,j) end do end do  


Номер 3
Операция C=A/B над двумерными массивами A и B аналогична следующим строчкам программы

Ответ:

 (1) do i=1,Mi C(i,:)=A(i,:)/B(i,:) end do  

 (2) do i=1,Mi do j=1,Mj C(i,i)=A(i,i)/B(j,j) end do end do  

 (3) do i=1,Mi do j=1,Mj C(i,j)=A(i,j)/B(j,i) end do end do  

 (4) do i=1,Mi C(i,:)=A(:,i)/B(i,i) end do  


Номер 4
Операция C=A+B над двумерными массивами A и B аналогична следующим строчкам программы

Ответ:

 (1) C(:,:)=A(:,:)+B(:,:) 

 (2) do i=1,Mi do j=1,Mj C(i,i)=A(i,i)+B(j,j) end do end do  

 (3) do i=1,Mi do j=1,Mj C(i,j)=A(i,j)+B(j,i) end do end do  

 (4) do i=1,Mi C(i,:)=A(:,i)+B(i,i) end do  


Номер 5
Операция C=A-B над двумерными массивами A и B аналогична следующим строчкам программы

Ответ:

 (1) C(1,:)=A(1,:)-B(:,1) 

 (2) do i=1,Mi do j=1,Mj C(i,j)=A(i,j)-B(j,i) end do end do  

 (3) do i=1,Mi do j=1,Mj C(i,j)=A(i,j)-B(i,j) end do end do  

 (4) do i=1,Mi C(i,:)=A(i,i)-B(i,i) end do  


Упражнение 3:
Номер 1
Дан массив integer B(10,20)
Запись B(:,:)=4 означает присвоить значение 4

Ответ:

 (1) всем элементам массива  

 (2) первой и последней строкам  

 (3) первому и последнему столбцам 

 (4) первой строке 

 (5) первому столбцу 


Номер 2
Дан массив integer C(10,20)
Запись С(1:10:2,:)=5 означает присвоить значение 5

Ответ:

 (1) каждой второй строке, начиная с 1-й 

 (2) Элементам, расположенным в шахматном порядке  

 (3) каждому второму столбцу, начиная с первого 

 (4) всем элементам массива с шагом 2 

 (5) всем элементам каждой строки с шагом 2 


Номер 3
Дан массив integer C(10,20)
Запись С(2,::3)=8 означает присвоить значение 8

Ответ:

 (1) во второй строке каждому третьему столбцу, начиная с первого 

 (2) элементу С(2,3)  

 (3) каждой третьей строке 

 (4) второй строке и третьему столбцу 

 (5) третьей строке и второму столбцу 


Номер 4
Дан массив integer A(20,20)
Запись A(:10:2,:)=5 означает присвоить значение 5

Ответ:

 (1) каждой строке от 1-го до 10-го элементов с шагом 2 

 (2) каждой второй строке, начиная от 1-й до 10-й 

 (3) каждой второй строке, начиная со 2-й 

 (4) каждому второму столбцу, до 10-го столбца 


Номер 5
Дан массив integer A(20,20)
Запись A(:2,:2)=5 означает присвоить значение 5

Ответ:

 (1) первой и второй строке, первому и второму столбцам 

 (2) элементам расположенным в шахматном порядке 

 (3) элементам расположенным на пересечении первых двух строк и первых двух столбцов  

 (4) каждому второму столбцу, каждой второй строке 


Упражнение 4:
Номер 1
Какой оператор используется для размещения в памяти динамического массива

Ответ:

 (1) allocatable 

 (2) allocated 

 (3) deallocate 

 (4) allocate 

 (5) new 


Номер 2
Какой оператор используется для освобождения памяти занимаемой динамическим массивом

Ответ:

 (1) allocatable 

 (2) allocated 

 (3) deallocate 

 (4) delete 


Номер 3
Для того чтобы, создать динамический массив A с границами и формой как у массива B следует воспользоваться оператором

Ответ:

 (1) allocate(B, source=A, stat=A) 

 (2) allocate(A, source=B) 

 (3) allocate(A,size(B))  

 (4) allocate(A => B) 

 (5) allocate(A,B) 


Номер 4
Для того чтобы, создать динамический массив A с границами, формой и значениями как у массива B следует воспользоваться оператором

Ответ:

 (1) allocate(B, mold=A, STAT=A) 

 (2) allocate(A, source=B) 

 (3) allocate(A, mold=B) 

 (4) allocate(A => B) 

 (5) allocate(A,B) 


Номер 5
Укажите верные записи оператора allocate

Ответ:

 (1) allocate(B, mold=A, STAT=ist) 

 (2) allocate(A, source=B) 

 (3) allocate(A, 10) 

 (4) allocate(A(100)) 


Упражнение 5:
Номер 1
Элементам массива требуется присвоить значения, как показано на рисунке. Какую операцию присваивания следует выбрать?\begin{pmatrix}
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
\end{pmatrix}

Ответ:

 (1) B(1:8:2,:)=1 

 (2) B(2:8:2,:)=1 

 (3) B(:,::2)=1 

 (4) B(::2,:)=1 

 (5) B(1:7,2)=1 


Номер 2
Элементам массива требуется присвоить значения, как показано на рисунке. Какую операцию присваивания следует выбрать?\begin{pmatrix}
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 1 & 1 & 1 & 1 & 1 & 1 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 1 & 1 & 1 & 1 & 1 & 1 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 1 & 1 & 1 & 1 & 1 & 1 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
\end{pmatrix}

Ответ:

 (1) B(3:7:2,3:8)=1 

 (2) B(3:6:2,3:7)=1 

 (3) B(3::2,3:8)=1 

 (4) B(::2,:8)=1 

 (5) B(1:2,2:8)=1 


Номер 3
Элементам массива требуется присвоить значения, как показано на рисунке. Какую операцию присваивания следует выбрать?\begin{pmatrix}
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 0 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
\end{pmatrix}

Ответ:

 (1) B(::2,:8)=1 

 (2) B(1:8,2)=1 

 (3) B(5:8:2,1:8)=1 

 (4) B(1:7:2,::2)=1 

 (5) B(2:5,::2)=1 


Номер 4
Элементам массива требуется присвоить значения, как показано на рисунке. Какую операцию присваивания следует выбрать?\begin{pmatrix}
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 \\ 
 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 \\  
 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 \\ 
 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 \\ 
 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 \\ 
 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 \\ 
 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
\end{pmatrix}

Ответ:

 (1) B(3:9,3::3)=1 

 (2) B(4::3,2:8)=1 

 (3) B(2:10,2:9:2)=1 

 (4) B(2:10,3:9:3)=1 

 (5) B(3:9,3:8:3)=1 


Номер 5
Элементам массива требуется присвоить значения, как показано на рисунке. Какую операцию присваивания следует выбрать?\begin{pmatrix}
 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\  
 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 \\  
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0 & 1 \\  
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 
\end{pmatrix}

Ответ:

 (1) B(::4,2::2)=1 

 (2) B(::3,::2)=1 

 (3) B(::3,:10:2)=1 

 (4) B(5:4,:10:2)=1 

 (5) B(3:5,::2)=1 


Упражнение 6:
Номер 1
Какие операторы выполняют преобразование массива B(Mi,Mj)
(см. рисунок)(Mi=7, Mj=10) ?
\underbrace{\begin{pmatrix}
 0 & 0 & 0 & 0 & 0 & 5 & 5 & 0 & 0 & 0 \\
 1 & 1 & 1 & 1 & 1 & 5 & 5 & 1 & 1 & 1 \\ 
 2 & 2 & 2 & 2 & 2 & 5 & 5 & 2 & 2 & 2 \\ 
 3 & 3 & 3 & 3 & 3 & 5 & 5 & 3 & 3 & 3 \\  
 5 & 5 & 5 & 5 & 5 & 5 & 5 & 5 & 5 & 5 \\  
 7 & 7 & 7 & 7 & 7 & 5 & 5 & 7 & 7 & 7 \\ 
 8 & 8 & 8 & 8 & 8 & 5 & 5 & 8 & 8 & 8 \\ 
 \end{pmatrix}}_\text{исходный B}\underbrace{\begin{pmatrix}
 0 & 0 & 0 & -2 & -2 & -2 & -2 & -2 & -2 & -2 \\
 1 & 1 & 1 & 1 & 1 & 5 & 5 & 1 & 1 & 1 \\ 
 2 & 2 & 2 & -2 & -2 & -2 & -2 & -2 & -2 & -2 \\
 3 & 3 & 3 & 3 & 3 & 5 & 5 & 3 & 3 & 3 \\  
 5 & 5 & 5 & -2 & -2 & -2 & -2 & -2 & -2 & -2 \\
 7 & 7 & 7 & 7 & 7 & 5 & 5 & 7 & 7 & 7 \\ 
 8 & 8 & 8 & 8 & 8 & -2 & -2 & 8 & 8 & 8 \\ 
 \end{pmatrix}}_\text{преобразованный B}

Ответ:

 (1) forall (i=1:Mi:2, j=4:Mj, B(i,j)<=5) B(i,j)=-2 end forall  

 (2) where (B<=5) B=-2 end where  

 (3) do j=4,Mj do i=1,Mi,2 if (B(i,j)==5) B(i,j)=-2 end do end do  

 (4) B(::2,4:)=-2; B(Mi,6:7)=-2 


Номер 2
Какие операторы выполняют преобразование массива A(Mi,Mj)
(см. рисунок)(Mi=7, Mj=7) ? \underbrace{\begin{pmatrix}
 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
 2 & 2 & 2 & 2 & 2 & 2 & 2 \\ 
 3 & 3 & 3 & 3 & 3 & 3 & 3 \\
 4 & 4 & 4 & 4 & 4 & 4 & 4 \\  
 5 & 5 & 5 & 5 & 5 & 5 & 5 \\  
 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ 
 2 & 2 & 2 & 2 & 2 & 2 & 2 \\ 
 \end{pmatrix}}_\text{исходный A}
 \underbrace{\begin{pmatrix}
 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
 2 & 2 & 2 & 2 & 2 & 2 & 2 \\ 
 0 & 0 & 0 & 3 & 3 & 0 & 0 \\
 4 & 4 & 4 & 4 & 8 & 4 & 4 \\  
 5 & 5 & 5 & 5 & 8 & 5 & 5 \\  
 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ 
 2 & 2 & 2 & 2 & 2 & 2 & 2 \\ 
 \end{pmatrix}}_\text{преобразованный A}

Ответ:

 (1) where (A(:,2)<4) A(3,:)=0 elsewhere A(:,5)=8 end where  

 (2) A(3,[1,2,3,6,7])=0 A([3,4],5)=8  

 (3) do j=1,Mj if ((j==4).OR.(j==5)) cycle A(3,j)=0 end do A(:,5)=8  

 (4) forall (j=1:Mj) A(3,j)=0 end forall A([4,5],5)=8  


Номер 3
Какие операторы выполняют преобразование массива A(Mi,Mj)
(см. рисунок)(Mi=7, Mj=7)?
\underbrace{\begin{pmatrix}
 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
 2 & 2 & 2 & 2 & 2 & 2 & 2 \\ 
 3 & 3 & 3 & 3 & 3 & 3 & 3 \\
 4 & 4 & 4 & 4 & 4 & 4 & 4 \\  
 5 & 5 & 5 & 5 & 5 & 5 & 5 \\  
 4 & 4 & 4 & 4 & 4 & 4 & 4 \\  
 5 & 5 & 5 & 5 & 5 & 5 & 5 \\  
 \end{pmatrix}}_\text{исходный A}\underbrace{\begin{pmatrix}
 0 & 0 & 0 & 9 & 1 & 1 & 1 \\
 2 & 2 & 2 & 9 & 2 & 2 & 2 \\ 
 0 & 0 & 0 & 9 & 3 & 3 & 3 \\
 4 & 4 & 4 & 9 & 4 & 4 & 4 \\  
 0 & 0 & 0 & 9 & 5 & 5 & 5 \\  
 4 & 4 & 4 & 9 & 4 & 4 & 4 \\  
 0 & 0 & 0 & 9 & 5 & 5 & 5 \\  
 \end{pmatrix}}_\text{преобразованный A}

Ответ:

 (1) do i=1,Mi,2 do j=1,Mj/2 A(i,j)=0 end do end do A(:,4)=9  

 (2) forall(i=1:Mi:2,j=1:3) A(i,j)=0 end forall A(4,:)=9  

 (3) where (A(1,:)==1) A(:,4)=9 end where A(::2,4)=0  

 (4) A(::2,[1,2,3])=0 A(:,3)=9  


Номер 4
Какие операторы выполняют преобразование массива A(Mi,Mj)
(см. рисунок)(Mi=5, Mj=8)?
\underbrace{\begin{pmatrix}
 1 & 2 & 3 & 4 & 5 & 0 & 1 & 8 \\
 1 & 2 & 3 & 4 & 5 & 0 & 1 & 8 \\
 1 & 2 & 3 & 4 & 5 & 0 & 1 & 8 \\
 1 & 2 & 3 & 4 & 5 & 0 & 1 & 8 \\
 1 & 2 & 3 & 4 & 5 & 0 & 1 & 8 \\ 
 \end{pmatrix}}_\text{исходный A}\underbrace{\begin{pmatrix}
 -1 & -1 & -1 & 4 & 5 & -1 & -1 & 8 \\
 1 & 2 & 3 & 4 & 5 & 0 & 1 & 8 \\
 -1 & -1 & -1 & 4 & 5 & -1 & -1 & 8 \\
 1 & 2 & 3 & 4 & 5 & 0 & 1 & 8 \\
 -1 & -1 & -1 & 4 & 5 & -1 & -1 & 8 \\ 
 \end{pmatrix}}_\text{преобразованный A}

Ответ:

 (1) where (A([2,4,5],:)<4) A([1,3,5],:)=-1 end where  

 (2) forall (i=1:5:2, j=1:3) A([i,j],:)=-1 end forall  

 (3) A(::2,1:3)=-1 A(:,6:7)=-1  

 (4) A(:,::2)=-1 A(:,4)=4 A(:,5)=5 A(::2,:)=0  


Номер 5
Какие операторы выполняют преобразование массива A(Mi,Mj)
(см. рисунок)(Mi=5, Mj=8)?
\underbrace{\begin{pmatrix}
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 \\ 
 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 \\ 
 5 & 5 & 5 & 5 & 5 & 5 & 5 & 5 \\  
 \end{pmatrix}}_\text{исходный A}\underbrace{\begin{pmatrix}
 0 & 2 & 2 & 2 & 2 & 2 & 2 & 0 \\
 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
 2 & 4 & 4 & 4 & 4 & 4 & 4 & 2 \\ 
 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 \\ 
 5 & 7 & 7 & 7 & 7 & 7 & 7 & 5 \\  
 \end{pmatrix}}_\text{преобразованный A}

Ответ:

 (1) forall (i=1:Mi:2, j=2:Mj-1) A(i,j)=A(i,j)+2 end forall  

 (2) A(::2,2:Mj-1)=A(::2,2:Mj-1)*2 

 (3) A(2:Mi-1,:)=A(2:Mi-1,:)+2 

 (4) forall (j=1:Mj:2, i=1:5:2) A(i,j)=A(i,j)+2 end forall  


Упражнение 7:
Номер 1
Какая процедура выполняет умножение матриц по правилу "строка на столбец"?

Ответ:

 (1) product 

 (2) merge 

 (3) matmul 

 (4) dot_product 

 (5) spread 


Номер 2
Процедура, вычисляющая размер массива вдоль заданного измерения называется

Ответ:

 (1) shape 

 (2) count 

 (3) lbound 

 (4) ubound 

 (5) size 


Номер 3
Процедура, выполняющая переформирования массива называется

Ответ:

 (1) shape 

 (2) merge 

 (3) reshape 

 (4) all 

 (5) unpack 


Номер 4
Процедура, выполняющая упаковку массива в одномерный массив

Ответ:

 (1) pack 

 (2) transpose 

 (3) spread 

 (4) shape 

 (5) merge 


Номер 5
Процедура, выполняющая циклический сдвиг массива

Ответ:

 (1) cshift 

 (2) eoshift 

 (3) spread 

 (4) reshape 


Упражнение 8:
Номер 1
Программа формирует и выводит на экран матрицу A
		  \underbrace{\begin{pmatrix}
 1 & 4 & 7 & 10 & 13 \\
 2 & 5 & 8 & 11 & 14 \\
 3 & 6 & 9 & 12 & 15 \\ 
 \end{pmatrix}}_\text{A}\underbrace{\begin{pmatrix}
 1 & 6 & 11 \\
 2 & 7 & 12 \\
 3 & 8 & 13 \\
 4 & 9 & 14 \\ 
 5 & 10 & 15 \\
 \end{pmatrix}}_\text{B}Чтобы преобразовать матрицу A в матрицу B достаточно добавить строки в программе

Ответ:

 (1) integer B(3,5) 

 (2) integer B(5,3) 

 (3) B=reshape(A,[5,3]) 

 (4) B=reshape(A,[3,5]) 

 (5) B=reshape(B,[5,3]) 

 (6) B=transpose(A) 


Номер 2
Чтобы преобразовать матрицу A достаточно добавить строку в программе
		\underbrace{\begin{pmatrix}
 1 & 2 & 3 & 4 & 5 \\
 6 & 7 & 8 & 9 & 10 \\
 11 & 12 & 13 & 14 & 15 \\
  \end{pmatrix}}_\text{исходная A}\underbrace{\begin{pmatrix}
 4 & 5 & 1 & 2 & 3 \\
 9 & 10 & 6 & 7 & 8 \\
 14 & 15 & 11 & 12 & 13 \\
  \end{pmatrix}}_\text{преобразованная A}

Ответ:

 (1) A = CSHIFT (A, SHIFT = -2, DIM = 2) 

 (2) A = CSHIFT (A, SHIFT = 2, DIM = 2) 

 (3) A = CSHIFT (A, SHIFT = -2, DIM = 1) 

 (4) A = CSHIFT (A, SHIFT = 1, DIM = 2) 

 (5) A = CSHIFT (A, SHIFT = 1, DIM = 1) 


Номер 3
Чтобы получить массив B из массива A достаточно добавить строку в программе.  
        \underbrace{\begin{pmatrix}
 1 & 2 & 3 & 4 & 5 \\
  \end{pmatrix}}_\text{A}\underbrace{\begin{pmatrix}
 1 & 2 & 3 & 4 & 5 \\
 1 & 2 & 3 & 4 & 5 \\
 1 & 2 & 3 & 4 & 5 \\
  \end{pmatrix}}_\text{B}

Ответ:

 (1) B = SPREAD (A, NCOPIES=3, DIM = 1) 

 (2) B = SPREAD (A, NCOPIES=3, DIM = 2) 

 (3) B = SPREAD (A, NCOPIES=2, DIM = 1) 

 (4) B = SPREAD (A, NCOPIES=3, DIM = 3) 

 (5) B = SPREAD (A, NCOPIES=1, DIM = 1) 


Номер 4
Чтобы получить массив B из массива A достаточно добавить строки в программе. 
		\underbrace{\begin{pmatrix}
 1 & 4 & 7 & 10 & 13 \\
 2 & 5 & 8 & 11 & 14 \\
 3 & 6 & 9 & 12 & 15 \\
  \end{pmatrix}}_\text{A}\underbrace{\begin{pmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
10 & 11 & 12 \\
13 & 14 & 15 \\
  \end{pmatrix}}_\text{B}

Ответ:

 (1) integer B(3,5) 

 (2) integer B(5,3) 

 (3) B=reshape(A,[5,3]) 

 (4) B=reshape(A,[3,5]) 

 (5) B=reshape(B,[5,3]) 

 (6) B=transpose(A) 


Номер 5
Чтобы получить массив B из массива A достаточно добавить строки в программе. 
		\underbrace{\begin{pmatrix}
1 & 4 & 0 & 10 & 13 \\
0 & 5 & 8 & 11 & 14 \\
0 & 6 & 0 & 12 & 15 \\
  \end{pmatrix}}_\text{A} math

Ответ:

 (1) integer B(11) 

 (2) integer B(10) 

 (3) B=pack(A,mask=A/=0) 

 (4) B=pack(A,mask=A==0) 

 (5) B=reshape(A,[11],mask=A==0) 

 (6) B=reshape(A,[11]) 


Упражнение 9:
Номер 1
Присваивание нижнему треугольнику (включая диагональ) квадратной матрицы выполняют операторы:

Ответ:

 (1) do i=1,10 do j=1,i A(i,j)=1 end do end do  

 (2) do i=1,10 do j=i,1 A(i,j)=1 end do end do  

 (3) do i=1,10 A(:,i:i)=1 end do  

 (4) do i=1,10 A(:,1:i)=1 end do  

 (5) do i=1,10 A(i,1:i)=1 end do  


Номер 2
Присваивание верхнему треугольнику (включая диагональ) квадратной матрицы выполняют операторы

Ответ:

 (1) do i=1,10 A(1:i,i)=1 end do  

 (2) do i=1,10 A(1:i,1:i)=1 end do  

 (3) do i=1,10 A(i,1:i)=1 end do  

 (4) do i=1,10 A(1:i,i:1)=1 end do  

 (5) do i=1,10 A(1:i,i::1)=1 end do  


Номер 3
Элементам главной диагонали

Ответ:

 (1) A(:,:)=1 

 (2) do i=1,10 A(i,i)=1 end do  

 (3) V(10)=[1,2,3,4,5,6,7,8,9,10] A(V,V)=1  

 (4) do i=1,10 A(1:i,i:1)=1 end do  

 (5) do i=1,10 A(i,:)=1 end do  


Номер 4
Элементам побочной диагонали

Ответ:

 (1) do i=1,10 A(i,11-i)=1 end do  

 (2) do i=1,10 A(i,10-i)=1 end do  

 (3) do i=1,10 A(i,-i)=1 end do  

 (4) do i=10,1 A(i,i)=1 end do  

 (5) do i=1,10 A(i,i)=1 end do  


Номер 5
Присваивание нижнему треугольнику (исключая диагональ) квадратной матрицы выполняют операторы:	

Ответ:

 (1) do i=2,10 do j=1,i-1 A(i,j)=1 end do end do  

 (2) do i=1,10 do j=2,i-1 A(i,j)=1 end do end do  

 (3) do i=1,10 A(::2,i:i)=1 end do  

 (4) do i=1,10 A(:,1:i)=1 end do  

 (5) do i=1,10 A(i,1:i)=1 end do  


Упражнение 10:
Номер 1
За создание массива отвечают строки программы \begin{pmatrix}
 4 & 4 & 0 & 0 & 4 & 4 & 0 & 0 & 4 & 4 \\
 4 & 4 & 0 & 0 & 4 & 4 & 0 & 0 & 4 & 4 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 4 & 4 & 0 & 0 & 4 & 4 & 0 & 0 & 4 & 4 \\
 4 & 4 & 0 & 0 & 4 & 4 & 0 & 0 & 4 & 4 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 4 & 4 & 0 & 0 & 4 & 4 & 0 & 0 & 4 & 4 \\
 4 & 4 & 0 & 0 & 4 & 4 & 0 & 0 & 4 & 4 \\
 \end{pmatrix}

Ответ:

 (1) integer :: A(10,10)=0, V(6)=[1,2,5,6,9,10] 

 (2) integer :: A(10,10)=0, V(6)=[1,2,3,4,5,6] 

 (3) A(V,V)=4 

 (4) A(V,2)=4 

 (5) A(V,[2,3,5])=4 

 (6) A([2,3,5],[2,3,5])=4 


Номер 2
За формирование массива отвечают строки программы \begin{pmatrix}
 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 \\
4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 \\
4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 \\
4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 \\
 \end{pmatrix}

Ответ:

 (1) integer :: A(10,10)=0 

 (2) integer :: V(5)=[1,2,3,9,10] 

 (3) integer :: V(5)=[1,2,3,4,5] 

 (4) integer :: V(5)=[1,2,8,9,10] 

 (5) A(V,:)=4 

 (6) A(:,V)=4 

 (7) A(V,V)=4 


Номер 3
За формирование массива отвечают строки программы \begin{pmatrix}
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 0 & 0 & 5 & 0 & 5 & 0 & 5 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 0 & 0 & 5 & 0 & 5 & 0 & 5 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 0 & 0 & 5 & 0 & 5 & 0 & 5 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
  \end{pmatrix}

Ответ:

 (1) integer :: A(10,10)=0, V(3)=[3,5,7] 

 (2) integer :: A(3,3)=5, V(3)=[1,2,3] 

 (3) integer :: A(10,10)=0, V(3)=[1,2,3] 

 (4) A(V,V+1)=5 

 (5) A(V,V)=5 

 (6) A(V,2*V)=5 


Номер 4
За формирование массива отвечают строки программы \begin{pmatrix}
 0 & 2 & 0 & 0 & 0 & 2 & 0 & 2 & 0 & 0 \\
 0 & 2 & 0 & 0 & 0 & 2 & 0 & 2 & 0 & 0 \\
 0 & 2 & 0 & 0 & 0 & 2 & 0 & 2 & 0 & 0 \\
 0 & 2 & 0 & 0 & 0 & 2 & 0 & 2 & 0 & 0 \\
 0 & 2 & 0 & 0 & 0 & 2 & 0 & 2 & 0 & 0 \\
 0 & 2 & 0 & 0 & 0 & 2 & 0 & 2 & 0 & 0 \\
 0 & 2 & 0 & 0 & 0 & 2 & 0 & 2 & 0 & 0 \\
 0 & 2 & 0 & 0 & 0 & 2 & 0 & 2 & 0 & 0 \\
 0 & 2 & 0 & 0 & 0 & 2 & 0 & 2 & 0 & 0 \\
 0 & 2 & 0 & 0 & 0 & 2 & 0 & 2 & 0 & 0 \\
  \end{pmatrix}

Ответ:

 (1) integer :: A(10,10)=0 

 (2) integer :: V(3)=[1,4,3] 

 (3) integer :: V(3)=[1,2,3] 

 (4) integer :: V(3)=[2,6,8] 

 (5) A(:,2*V)=2 

 (6) A(V,:)=2 

 (7) A([1,2,3],:)=2 


Номер 5
За формирование массива отвечают строки программы \begin{pmatrix}
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
2 & 0 & 2 & 0 & 2 & 0 & 2 & 0 & 2 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
2 & 0 & 2 & 0 & 2 & 0 & 2 & 0 & 2 & 0 \\
2 & 0 & 2 & 0 & 2 & 0 & 2 & 0 & 2 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\

  \end{pmatrix}

Ответ:

 (1) integer :: A(10,10)=0 

 (2) integer :: V(5)=[1,3,5,7,9] 

 (3) A(V,V)=2 

 (4) A([2,5,6],::2)=2 

 (5) A(V,:)=2 

 (6) A(:,V)=2 




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