- •31 Информатика (лек.) – гтк – 2 семестр (2012 г.) Введение Литература
- •Сокращения
- •Тема № 1. Основные понятия программирования
- •1.1. Состав программы на языке Pascal
- •1.2. Элементы программы в языке Pascal
- •1.3. Типы данных в языке Pascal
- •1.4. Операции в языке Pascal
- •1.7. Операторы языка Pascal
- •1.5. Выражения в языке Pascal
- •1.6. Стандартные функции в языке 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; |
