- •31 Информатика (лек.) – гтк – 2 семестр (2012 г.) Введение Литература
- •Сокращения
- •Тема № 1. Основные понятия программирования
- •1.1. Состав программы на языке Pascal
- •1.2. Элементы программы в языке Pascal
- •1.3. Типы данных в языке Pascal
- •1.4. Операции в языке Pascal
- •1.5. Выражения в языке Pascal
- •1.6. Стандартные функции в языке Pascal
- •1.7. Операторы языка Pascal
- •Тема № 2. Программирование базовых алгоритмов
- •2.1. Программирование последовательных вычислений
- •2.2. Программирование разветвлений
- •2.3. Программирование циклов
- •Тема № 3. Программирование задач с массивами
- •3.1. Одномерные массивы
- •Фрагменты вычисления характеристик одномерного массива
- •Фрагменты операций с одномерными массивами
- •Особенности элементов одномерного массива
- •3.2. Двумерные массивы
- •Фрагменты вычисления характеристик двумерного массива
- •Фрагменты вычисления характеристик строк и столбцов двумерного массива
- •Фрагменты операций с двумерными массивами
- •Особенности элементов квадратных матриц
- •3.3. Перестановка и сортировка элементов массива
- •Тема № 4. Программирование подпрограмм и структурных типов данных
- •4.1. Подпрограммы
- •4.2. Программирование задач с функциями
- •4.3. Программирование задач с процедурами
- •4.4. Программирование задач с файлами
- •4.5. Программирование задач с символами и строками
- •4.6. Программирование задач с записями
- •4.7. Программирование задач со множествами
- •Тема № 5. Знакомство с численными методами
- •5.1. Приближённые вычисления
- •5.2. Методы решения нелинейных уравнений
- •5.3. Методы решения систем уравнений
- •5.4. Методы решения дифференциальных уравнений
- •5.5. Методы численного интегрирования
Фрагменты операций с двумерными массивами
Рассмотрим фрагменты программ в таблице 5.
Таблица 5
Операция |
Фрагмент программы |
|
for i:=1 to m do for j:=1 to n do read(A[i,j]); |
|
for i:=1 to m do begin for j:=1 to n do write(A[i,j]); writeln; end; |
|
for i:=1 to m do for j:=1 to n do A[i,j]:=z; |
(аналогично уменьшение, умножение, деление) |
for i:=1 to m do for j:=1 to n do A[i,j]:=A[i,j]+z; |
(аналогично вычитанием, умножением, делением) |
for i:=1 to m do for j:=1 to n do B[i,j]:=A[i,j]+z; |
(аналогично минимального) |
max:=A[1,1]; imax:=1; jmax:=1; for i:=1 to m do for j:=1 to n do if A[i,j]>max then begin max:=A[i,j]; imax:=i; jmax:=j; end; |
|
s:=0; for j:=1 to n do s:=s+A[1,j]; |
|
s:=0; for i:=1 to m do s:=s+A[i,1]; |
Особенности элементов квадратных матриц
Двумерный массив называется квадратной матрицей, если у него количество строк равно количеству столбцов ( ).
Рассмотрим квадратную матрицу:
.
Элементы aij этого массива имеют такие особенности:
Элементы находятся на главной диагонали, если .
Элементы находятся выше главной диагонали, если .
Элементы находятся ниже главной диагонали, если .
Элементы находятся вне главной диагонали, если .
Элементы находятся на побочной диагонали, если .
Элементы находятся выше побочной диагонали, если .
Элементы находятся ниже побочной диагонали, если .
Элементы находятся вне побочной диагонали, если .
3.3. Перестановка и сортировка элементов массива
Рассмотрим фрагменты программ в таблице 6.
Таблица 6
Операция |
Фрагмент программы |
|
for j:=1 to n do begin c:=A[1,j]; A[1,j]:=A[2,j]; A[2,j]:=c; end; |
|
for i:=1 to m do begin c:=A[i,1]; A[i,1]:=A[i,2]; A[i,2]:=c; end; |
(аналогично по убыванию) |
for k:=1 to n-1 do begin min:=A[k]; imin:=k; for i:=k+1 to n do if A[i]<min then begin min:=A[i]; imin:=i; end; c:=A[k]; A[k]:=A[imin]; A[imin]:=c; end; |
(аналогично по убыванию) |
for k:=1 to m-1 do begin min:=A[k,1]; imin:=k; for i:=k+1 to m do if A[i,1]<min then begin min:=A[i,1]; imin:=i; end; for j:=1 to n do begin c:=A[k,j]; A[k,j]:=A[imin,j]; A[imin,j]:=c; end; end; |
(аналогично по убыванию) |
for k:=1 to n-1 do begin min:=A[1,k]; jmin:=k; for j:=k+1 to n do if A[1,j]<min then begin min:=A[1,j]; jmin:=j; end; for i:=1 to m do begin c:=A[i,k]; A[i,k]:=A[i,jmin]; A[i,jmin]:=c; end; end; |