Томский государственный университет систем управления и радиоэлектроники
Опубликован: 01.11.2012 | Доступ: свободный | Студентов: 651 / 76 | Длительность: 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]
![A=\begin{pmatrix}
2 & 7 & 0 & 4 \\
5 & 9 & 1 & 8
\end{pmatrix}](/sites/default/files/tex_cache/dc1cfb62ecbe06eae3a0553d9370813e.png)
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