- •Введение Литература
- •Сокращения
- •Тема № 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. Матричное представление трёхмерных преобразований
Тема № 3. Программирование задач с массивами
3.1. Одномерные массивы
Одномерный массив (вектор) – массив, элементы которого имеют один неповторяющийся номер.
Индекс одномерного массива – порядковый номер элемента в одномерном массиве.
В одномерном массиве элементы упорядочены в порядке возрастания их индексов.
Описание одномерного массивав разделе описания переменных (Var) на языке Pascalимеет вид:
Mas : array [ IMin .. IMax ] of T ;
где array– массив,of– из, Mas– имя массива,IMin– минимальное значение индекса, IMax– максимальное значение индекса,T– тип элементов.
Это означает, что переменная Mas является массивом, который может иметь индексы от IMin до IMax у элементов типа T .
Пример.
Var A : array [1..100] of real;
Это означает, что переменная A– массив, который может содержать от 1 до 100 элементов вещественного типа.
Доступ к элементу одномерного массивана языкеPascalимеет вид:
Mas[Ind]
где Mas– имя массива,Ind– индекс.
Это означает доступ к элементу массива Mas с индексом Ind.
Пример.
A[1]
b[3]
c[i]
d[n]
f[k+1]
Это означает 1-й элемент массива Aи т.д.
Задача 1.
Условие задачи. Дан массив A, состоящий из n элементов (n 100). Найти сумму элементов массива:
.
Блок-схема.
|
Программа.
Program z1;
Var
A:array[1..100] of real;
i,n:integer;
s:real;
Begin
read(n);
s:=0;
for i:=1 to n do
begin
read(A[i]);
s:=s+A[i];
end;
writeln(s);
End.
Пусть A одномерный массив,nколичество элементов в массиве,iиндекс элементов массива.Рассмотрим следующие фрагменты программ.
Фрагменты вычисления характеристик одномерного массива
Рассмотрим фрагменты программ в таблице 1.
Таблица 1
Характеристика |
Для всех элементов |
Для части элементов |
s |
s:=0; for i:=1 to n do s:=s+A[i]; |
s:=0; for i:=1 to n do if A[i]>z then s:=s+A[i]; |
k |
k:=n; |
k:=0; for i:=1 to n do if A[i]>z then k:=k+1; |
p |
p:=1; for i:=1 to n do p:=p*A[i]; |
p:=1; for i:=1 to n do if A[i]>z then p:=p*A[i]; |
max |
max:=A[1]; for i:=2 to n do if A[i]>max then max:=A[i]; |
max:=-1E10; for i:=1 to n do if (A[i]>max) and (A[i]>z) then max:=A[i]; |
min |
min:=A[1]; for i:=2 to n do if A[i]<min then min:=A[i]; |
min:=1E10; for i:=1 to n do if (A[i]<min) and (A[i]>z) then min:=A[i]; |
sr |
s:=0; for i:=1 to n do s:=s+A[i]; sr:=s/n; |
s:=0; k:=0; for i:=1 to n do if A[i]>z then begin s:=s+A[i]; k:=k+1; end; sr:=s/k; |
Фрагменты операций с одномерными массивами
Рассмотрим фрагменты программ в таблице 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; |