- •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. Методы численного интегрирования
Фрагменты операций с одномерными массивами
Рассмотрим фрагменты программ в таблице 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 индекс столбца. Рассмотрим следующие фрагменты программ.
