Томский государственный университет систем управления и радиоэлектроники
Опубликован: 01.11.2012 | Доступ: свободный | Студентов: 651 / 76 | Длительность: 06:01:00
Лекция 4:

Массивы

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >

Двумерные массивы


Объявление

real A(2,4)  ! 2 строки, 4 столбца

real A(1:2,1:4), B(-1:100,-1:200)

real, dimension(2,4) :: A

integer, parameter :: Mi = 2, Mj = 4
real, dimension :: A(Mi,Mj)
    

Двумерный массив хранится в памяти по столбцам

инициализация

real :: A(2,4) = [2,5,7,9,0,1,4,8]
    

A=\begin{pmatrix}
2 & 7 & 0 & 4 \\
5 & 9 & 1 & 8
\end{pmatrix}
real :: A(2,4) = 0   ! обнуление массива
    

Операции над элементами массивов (массив как обычная переменная)

  1. Сложить две матрицы
real A(10,10), B(10,10), C(10,10)

C = A+B
    
  1. Перемножить элементы матриц C(i,j) = A(i,j)*B(i,j)
real A(10,10), B(10,10), C(10,10)

C = A*B
    

использование сечений

  1. Обнулить первый столбец матрицы

  1. Обнулить первую строку матрицы

  1. Присвоить подматрице значения

Ввод / вывод (экран)

program read_array_2D
integer A(3,3)

! данные вводятся по столбцам (формат хранения в памяти)
read(*,*,ERR = 100) A  ! 1 1 1   2 2 2   3 3 3

! выведем данные по строкам
do i = 1,3
  write(*,*) (A(i,j),j = 1,3)
end do
stop

100 stop "Ошибка при чтении данных"
end
    

Ввод / вывод (файл)

program read_array_2D_file
integer A(5,5)

! данные вводятся по столбцам
open (1, file = "D:\DATA\ARR_2D.txt", ERR = 100)
read (1,*,ERR = 100) A  
close(1)

! запишем нижний треугольник в файл
open (1, file = "D:\DATA\RES_2D.txt", ERR = 100)
do i = 1,5
  write(1,*,ERR = 100) A(i,1:i)
end do
close(1)
stop
100 stop "Ошибка при работе с файлами"
end
    
< Лекция 3 || Лекция 4: 1234 || Лекция 5 >