Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа № 4. Программирование задач с одномерными массивами

Поиск

Одномерные массивы

Массив – упорядоченный набор нумерованных величин одинакового типа. Массивы бывают одномерные (вектор-строка, вектор-столбец), двумерные (матрица) и многомерные (тензор).

Вектор-строка имеет вид: .

Пример 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 Lab4; 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.


Фрагменты вычисления характеристик одномерного массива

Характеристика Для всех элементов ai Для части элементов
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];
2. Количество k k:=n; k:=0; for i:=1 to n do if A[i]>z then k:=k+1;
3. Произведение 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];
4. Максимальное значение 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];
5. Минимальное значение 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];
6. Среднее значение 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;


Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 524; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.161.43 (0.005 с.)