Лабораторная работа № 11. Программирование задач с одномерными массивами
Одномерные массивы
Массив – упорядоченный набор нумерованных величин одинакового типа. Массивы бывают одномерные (вектор-строка, вектор-столбец), двумерные (матрица) и многомерные (тензор).
Вектор-строка имеет вид: .
Пример 1. .
Вектор-столбец имеет вид:
. Пример 2. .
Элемент массива – величина, входящая в состав массива. Индекс – порядковый номер элемента в одномерном массиве (целое число типа integer). Размерность массива – количество элементов в массиве.
Одномерные массивы обычно обозначаются так: ; , где A – массив; n – размерность массива; i – индекс элемента; – i‑тый элемент массива .
Описание одномерного массива в разделе описания переменных (Var) на языке Pascal имеет вид:
Mas : array [ IMin .. IMax ] of T
где array – массив, of – из, Mas – имя массива, IMin – минимальное значение индекса, IMax – максимальное значение индекса, T – тип элементов.
Это означает, что переменная Mas является массивом, который может иметь индексы от IMin до IMax у элементов типа T .
Пример 3. Var A:array[1..100] of real;
Это означает, что переменнаяA – массив, который может содержать от 1 до 100 элементов вещественного типа.
Доступ к элементу массива на языке Pascal имеет вид:
Mas [ Ind ]
где Mas – имя массива, Ind – индекс.
Это означает доступ к элементу массива Mas с индексом Ind .
Пример 4. a[1]; b[3]; c[i]; d[n]; f[k+1].
Это означает 1-й элемент массива A и т.д.
Порядок выполнения
1. Зайти в Borland Pascal.
2. Набрать текст программы для решения задачи № 1 и получить ответ для контрольного примера.
3. Исправить программу так, чтобы она находила сумму и количество положительных элементов.
4. Исправить программу так, чтобы она находила произведение и среднее значение всех элементов.
5. Исправить программу так, чтобы она находила максимальное и минимальное значение в массиве.
Пример задачи
Задача 1.
Дан одномерный массив A из n элементов. Найти сумму элементов массива:
.
| Program Lab11;
Var
A:array[1..100] of real;
i,n:integer;
s:real;
Begin
writeln('Введи n');
read(n);
s:=0;
writeln('Введи массив A');
for i:=1 to n do
begin
read(A[i]);
s:=s+A[i];
end;
writeln('s=',s:10:3);
End.
| Контрольный пример.
Исходные данные: ; .
Ручной счёт: .
Результат: .
| Экран пользователя.
Введи n
Введи массив A
1 2 3 5 -1
s= 10.000
| Дополнительное задание
1. Дан массив L(n). Найти количество элементов, больших корня из суммы положительных элементов.
2. Дан массив G(q). Найти произведение неотрицательных элементов и сумму элементов в диапазоне от 10 до 20.
3. Дан массив A(n). Найти сумму и количество элементов, равных среднему значению.
4. Дан массив C(m). Найти отношение максимального к минимальному элементу.
5. Дан массив D(n). Найти минимальный среди элементов, больших суммы, и найти количество элементов, не равных максимальному.
6. Дан массив A(n). Сформировать новый массив B умножением элементов массива A на 100. В новом массиве переставить местами третий и предпоследний элементы.
7. Дан массив A(n). Положительные элементы массива заменить на их сумму, а отрицательные элементы уменьшить на минимальный.
8. Дан массив A(n). Найти сумму элементов на чётных местах и произведение элементов, кратных 3.
9. Дан массив A(n). У нечётных элементов отбросить дробную часть числа, а у элементов с индексами, дающими остаток 1 при делении на 3, отбросить целую часть числа.
10. Сформировать массив случайных чисел в диапазоне от -10 до 20 и округлить значения элементов, по модулю меньших 1.
Фрагменты вычисления характеристик одномерного массива
|