Томский государственный университет систем управления и радиоэлектроники
Опубликован: 01.11.2012 | Доступ: свободный | Студентов: 655 / 77 | Длительность: 06:01:00
Тема: Программирование
Специальности: Системный архитектор, Тестировщик
Лекция 4:
Массивы
Двумерные массивы
Объявление
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]

real :: A(2,4) = 0 ! обнуление массива
Операции над элементами массивов (массив как обычная переменная)
- Сложить две матрицы
real A(10,10), B(10,10), C(10,10)
C = A+B
- Перемножить элементы матриц C(i,j) = A(i,j)*B(i,j)
real A(10,10), B(10,10), C(10,10)
C = A*B
использование сечений
- Обнулить первый столбец матрицы
- Обнулить первую строку матрицы
- Присвоить подматрице значения
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



