- •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. Методы численного интегрирования
Фрагменты операций с одномерными массивами
Рассмотрим фрагменты программ в таблице 2.
Таблица 2
Операция |
Фрагмент программы |
|
for i:=1 to n do read(A[i]); |
|
for i:=1 to n do writeln(A[i]); |
|
for i:=1 to n do A[i]:=z; |
(аналогично уменьшение, умножение, деление) |
for i:=1 to n do A[i]:=A[i]+z; |
(аналогично вычитанием, умножением, делением) |
for i:=1 to n do B[i]:=A[i]+z; |
(аналогично минимального) |
max:=A[1]; imax:=1; for i:=2 to n do if A[i]>max then begin max:=A[i]; imax:=i; end; |
|
for i:=1 to n do if A[i]>z then writeln(i); |
|
c:=A[1]; A[1]:=A[2]; A[2]:=c; |
Особенности элементов одномерного массива
Рассмотрим одномерный массив . Элементы ai этого массива имеют такие особенности:
Элементы положительные, если .
Элементы отрицательные, если .
Элементы нулевые, если .
Элементы ненулевые, если .
Элементы находятся в диапазоне от x до y, если и .
Элементы не находятся в диапазоне от x до y, если или .
Элементы чётные, если .
Элементы нечётные, если или .
Элементы на чётных местах, если или .
Элементы на нечётных местах, если или .
Элементы кратны x, если .
Элементы на местах, кратных x, если .
3.2. Двумерные массивы
Двумерный массив (матрица) – массив, элементы которого имеют два номера (номер строки номер столбца).
Индекс двумерного массива – порядковый номер строки или столбца в двумерном массиве.
Описание двумерного массива в разделе описания переменных (Var) на языке Pascal имеет вид:
Mas : array [ IMin .. IMax , JMin .. JMax ] of T ;
где array – массив, of – из, Mas – имя массива, IMin – минимальное значение индекса строки, IMax – максимальное значение индекса строки, JMin – минимальное значение индекса столбца, JMax – максимальное значение индекса столбца, T – тип элементов.
Это означает, что переменная Mas является массивом, который может иметь индексы строк от IMin до IMax , индексы столбцов от JMin до JMax у элементов типа T .
Пример.
Var A : array [1..10,1..15] of real;
Это означает, что переменная A – массив, который может содержать от 1 до 10 строк, от 1 до 15 столбцов из элементов вещественного типа.
Доступ к элементу двумерного массива на языке Pascal имеет вид:
Mas [ Ind1 , Ind2 ]
где Mas – имя массива, Ind1 – индекс строки, Ind2 – индекс столбца.
Это означает доступ к элементу массива Mas , находящемуся в строке с индексом Ind1 и в столбце с индексом Ind2 .
Пример.
A[1,1]
b[i,j]
Это означает элемент массива A в 1-й строке и 1-м столбце, и т.д.
Задача 2.
Условие задачи. Дан двумерный массив A из m строк и n столбцов (m 10; n 15). Найти сумму положительных элементов в массиве A.
Б лок-схема.
Программа.
Program z2;
Var
A:array[1..10,1..15] of real;
i,j,m,n:integer;
s:real;
Begin
read(m,n);
s:=0;
for i:=1 to m do
for j:=1 to n do
begin
read(A[i,j]);
if A[i,j]>0 then s:=s+A[i,j];
end;
writeln(s);
End.
Пусть A двумерный массив, m количество строк, n количество столбцов, i индекс строки, j индекс столбца. Рассмотрим следующие фрагменты программ.