
- •Обработка одномерных массивов на языке программирования turbo pascal Учебное пособие для студентов
- •Оглавление
- •Введение
- •Теоретический материал по массивам Понятие массива
- •Индексы массива
- •Представление массива в памяти
- •Пользовательский тип – массив
- •Одномерные и n-мерные массивы
- •Двумерные массивы
- •Основные алгоритмы обработки массивов Общие замечания
- •Ввод/вывод массива
- •Вычисление суммы и среднего арифметического элементов массива
- •Поиск максимального/минимального элемента массива
- •Подсчет количества элементов, удовлетворяющих заданному условию
- •Удаление элемента из массива
- •Вставка новых элементов в массив
- •Удаление нескольких элементов массива
- •Обработка нескольких массивов
- •Проверка соседних элементов массива
- •Методы сортировок массивов Сортировка массивов
- •Сортировка методом вставки
- •Сортировка методом выбора
- •"Пузырьковая" сортировка
- •Быстрая сортировка
- •Примеры решения задач на сортировку массивов
- •Задания для самостоятельного решения Вариант №1
- •Вариант №2
- •Вариант №3
- •Вариант №4
- •Вариант №5
- •Вариант №6
- •Вариант №7
- •Вариант №8
- •Вариант №9
- •Вариант №10
- •Вариант №11
- •Вариант №12
- •Вариант №13
- •Вариант №14
- •Вариант №15
- •Список используемой литературы
- •420012, Казань, ул. Чехова, 36
Вычисление суммы и среднего арифметического элементов массива
Пример 4: Подсчитать сумму элементов массива.
Алгоритм содержит два пункта:
1. Сумма S=0.
2. Проход по всем элементам массива и прибавление их значений к сумме S.
Приведем полный текст программы – решение этой задачи:
{Пример обработки одномерного массива}
{Задание: Ввести массив. Подсчитать сумму элементов массива.}
Program SumExample;
Const {определение констант}
maxN = 20; {максимально возможное количество элементов в массиве}
Type {определение типов}
IndexEl = 1 .. maxN; {индексы массива лежат в интервале от 1 до maxN}
masInt = array[interval] of integer; {массив целых чисел содержащий до maxN элементов}
Var
a:masInt; {массив}
n:interval; {размерность массива}
i:IndexEl; {переменная для сканирования массива}
S:integer; {сумма элементов массива}
Begin
{ ввод массива с клавиатуры }
write(‘Введите n=’);
read(n); {ввод количества элементов}
for i:=1 to n do
read(A[i]); {ввод самих элементов}
{Подсчет суммы элементов массива}
{1} s:=0;
{2} for i:=1 to n do
s:=s+A[i];
{Вывод полученного значения суммы}
writeln(‘сумма элементов массива S=’, S);
end. {конец программы}
Пример 5: Вычислить средне арифметическое элементов массива.
Алгоритм содержит три пункта. Первые два совпадают с предыдущей задачей:
1. Сумма s=0.
2. Проход по всем элементам массива и прибавление их значений к сумме s.
3. Сумму делим на количество элементов массива sa=s/n .
Фрагмент программы:
Var {дополнительные переменные}
s: integer; {сумма элементов массива}
sa:real; {среднее арифметическое элементов массива}
…………………………….
Begin
…………………………….
{1} s:=0;
{2} for i:=1 to n do
s:=s+A[i];
{3} s:=s/n;
…………………………….
Поиск максимального/минимального элемента массива
Пример 6: Найти значение максимального элемента массива.
Алгоритм содержит три пункта:
1. Максимальным элементом считаем первый элемент: max=A[1].
2. Начиная со второго элемента, сравниваем имеющийся максимальный элемент max с очередным элементом массива A[i].
3. Если очередной элемент массива больше имеющегося максимального элемента, то это и есть новый максимальный элемент max=A[i].
Фрагмент программы:
Var {дополнительные переменные}
max:integer; {значение максимального элемента массива}
…………………………….
Begin
…………………………….
{1} max:=A[1];
{2} for i:=2 to n do
{3} if A[i]>max then max:=A[i];
…………………………….
Пример 7: Найти min и max значения элементов массива.
Фрагмент программы:
Var {дополнительные переменные}
max,min:integer;{значение максимального и минимального элементов массива}
…………………………….
Begin
…………………………….
max:=A[1];
min:=A[1];
for i:=2 to n do
if A[i]>max then max:=A[i]
else if A[i]<min then min:=A[i];
…………………………….
Подсчет количества элементов, удовлетворяющих заданному условию
Пример 8: Подсчитать, сколько раз в массиве встречается элемент, равный 10.
Задача решается по следующему алгоритму:
1. Количество нужных элементов k=0.
2. Проходим по всем элементам массива,
3. И если очередной элемент массива равен 10,
4. Тогда увеличиваем k (количество элементов равных 10) на 1.
Фрагмент программы:
Var {дополнительные переменные}
k:integer; {количество элементов, равных 10}
…………………………….
Begin
…………………………….
{1} k:=0;
{2} for i:=1 to n do
{3} if A[i]=10
{4} then k:=k+1;
…………………………….