- •Введение Литература
- •Сокращения
- •Тема № 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. Виды численных методов
- •Тема № 6. Введение в компьютерную графику
- •6.1. Предмет компьютерной графики
- •6.2. Виды компьютерной графики
- •6.3. Направления компьютерной графики
- •Тема № 7. Модели компьютерной графики
- •7.1. Геометрические модели
- •7.2. Цветовые и оптические модели
- •Тема № 8. Аффинные преобразования
- •8.1. Общий вид двумерных преобразований
- •8.2. Элементарные двумерные преобразования
- •8.3. Однородные координаты на плоскости
- •8.4. Композиции двумерных преобразований
- •8.5. Преобразования систем координат
- •8.6. Двумерные преобразования на экране монитора
- •8.7. Матричное представление трёхмерных преобразований
Особенности элементов одномерного массива
Рассмотрим одномерный массив . Элементыaiэтого массива имеют такиеособенности:
Элементы положительные, если .
Элементы отрицательные, если .
Элементы нулевые, если .
Элементы ненулевые, если .
Элементы находятся в диапазоне от xдоy, еслии.
Элементы не находятся в диапазоне от xдоy, еслиили.
Элементы чётные, если .
Элементы нечётные, если или.
Элементы на чётных местах, если или.
Элементы на нечётных местах, если или.
Элементы кратны x, если.
Элементы на местах, кратных x, если.
3.2. Двумерные массивы
Двумерный массив(матрица) – массив, элементы которого имеют два номера(номер строки номер столбца).
Индекс двумерного массива – порядковый номер строки или столбца в двумерном массиве.
Описание двумерного массивав разделе описания переменных (Var) на языке Pascalимеет вид:
Mas : array [ IMin .. IMax , JMin .. JMax ]ofT ;
где 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индекс столбца.Рассмотрим следующие фрагменты программ.
Фрагменты вычисления характеристик двумерного массива
Рассмотрим фрагменты программ в таблице 3.
Таблица 3
Характеристика |
Для всех элементов |
Для части элементов |
s |
s:=0; for i:=1 to m do for j:=1 to n do s:=s+A[i,j]; |
s:=0; for i:=1 to m do for j:=1 to n do if A[i,j]>z then s:=s+A[i,j]; |
k |
k:=m*n; |
k:=0; for i:=1 to m do for j:=1 to n do if A[i,j]>z then k:=k+1; |
p |
p:=1; for i:=1 to m do for j:=1 to n do p:=p*A[i,j]; |
p:=1; for i:=1 to m do for j:=1 to n do if A[i,j]>z then p:=p*A[i,j]; |
max |
max:=A[1,1]; for i:=1 to m do for j:=1 to n do if A[i,j]>max then max:=A[i,j]; |
max:=-1E10; for i:=1 to m do for j:=1 to n do if (A[i,j]>max) and (A[i,j]>z) then max:=A[i,j]; |
min |
min:=A[1,1]; for i:=1 to m do for j:=1 to n do if A[i,j]<min then min:=A[i,j]; |
min:=1E10; for i:=1 to m do for j:=1 to n do if (A[i,j]<min) and (A[i,j]>z) then min:=A[i,j]; |
sr |
s:=0; for i:=1 to m do for j:=1 to n do s:=s+A[i,j]; sr:=s/(m*n); |
s:=0; k:=0; for i:=1 to m do for j:=1 to n do if A[i,j]>z then begin s:=s+A[i,j]; k:=k+1; end; sr:=s/k; |