Массивы
Одномерный массив – конечная последовательность пронумерованных элементов. В описании одномерного массива задан только один индекс – номер элемента. При описании массива в паскале нужно указать три составляющих:
Имя массива.
Его структуру (одномерный, двумерный, трехмерный и т.д.).
Тип элементов массива (поскольку массив – это структурированное множество элементов одного типа).
Изобразить одномерный массив можно так
𝑎1 |
𝑎2 |
… |
|
𝑎i |
|
|
|
|
𝑎𝑛 |
Если такое множество называется А, то на первом месте стоит элемент массива А с номером 1 𝑎1 , на втором – элемент массива А с номером 2 𝑎2 , на i-ом месте 𝑎i и т.д.
Элементы массива 𝑎i называются индексированными переменными.
В паскале обращение к ним происходит так a[i].
Присваивание начальных значений (заполнение, ввод массива) заключается в присваивании каждому его элементу некоего значения заданного типа. Поскольку количество элементов массива (его размерность) должна быть известна из условия задачи, то процедура ввода массива, а также процедура вывода массива на внешний носитель наиболее эффективно будет реализована в цикле for.
Описывать массивы нужно, например, так: Var a:array [1..10] of integer;
Читается эта запись так:
Переменная а – это множество, одномерное, максимум из 10 элементов, все элементы целого типа.
На то, что описываемый массив а является одномерным, указывает один диапазон в квадратных скобках 1..10 (это диапазон изменения индекса элементов массива). При описании массива недопустимо использование переменных при задании этого диапазона.
Если в программе массив а будет описан следующим образом
Var a:array [1..10] of integer; то в качестве количества элементов массива может быть введено любое
целое число, не превосходящее 10, под большее не выделено памяти. Двумерный массив – это множество одномерных массивов.
|
𝑎11 |
𝑎12 |
… |
|
𝑎1j |
|
|
|
|
𝑎1𝑚 |
… |
|
|
|
|
|
|
|
|
|
|
|
𝑎i1 |
𝑎i2 |
|
|
𝑎ij |
|
|
|
|
𝑎i𝑚 |
… |
|
|
|
|
|
|
|
|
|
|
|
𝑎𝑛1 |
𝑎𝑛1 |
|
|
𝑎𝑛j |
|
|
|
|
𝑎𝑛𝑚 |
Опишем двумерный массив с именем а, состоящий максимум из 10 строк и 20 столбцов все элементы которого – вещественные числа.
Var a:array [1..10,1..20] of real;
В квадратных скобках указываем теперь два диапазона, для номеров строк и столбцов.
Пример 17. Вычислить сумму произведений соответствующих элементов двух одномерных массивов:
S 𝑖
Т.е. 𝑥1𝑦1 + 𝑥2𝑦2 + ⋯ + 𝑥𝑛+1𝑦𝑛+1.
Блок схема без пояснений на рис. 60.
Рис. 60. Блок-схема алгоритма решения задачи примера 17
Обозначения:
X, Y – одномерные массивы;
N – количество слагаемых в сумме, и размерность массивов; S – искомая сумма; I – номер элемента в массиве.
Программа:
program primer_17; var i,n:integer; s:real; x,y:array[1..50] of real; begin
writeln('введите количество элементов массивов x и y'); readln(n);
for i:=1 to n do begin
writeln('введите x[',i,'] и ',' y[',i,']'); readln(x[i],y[i]); end; s:=0; for i:=1 to n do s:=s+x[i]*y[i];
writeln('s=',s); end.
Пример 18. Вычислить количество положительных и отрицательных элементов в массиве А из N элементов
Рис. 61. Блок схема алгоритма решения задачи примера 18
Обозначения:
N – размерность массива; i – номер элемента в массиве;
A – одномерный массив;
KP – количество положительных элементов в массиве; KO – количество отрицательных элементов в массиве.
Программа:
program primer_18;
var i,n,ko,kp:integer; a:array[1..50] of real; begin
writeln('введите количество элементов массива'); readln(n); for i:=1 to n do begin
writeln('введите a[',i,']'); readln(a[i]); end; ko:=0;kp:=0; for i:=1 to n do
if a[i]>0 then kp:=kp+1 else if a[i]<0 then ko:=ko+1; writeln('ответ: ko=',ko,' kp=',kp); end.
Пример 19. Найти максимальный из положительных элементов одномерного массива. Обозначения:
А – массив;
N – количество элементов в массиве; i – номер элемента в массиве; MAX – максимальный из положительных элементов массива.
Блок схема без пояснения на рис. 62.
Программа:
program primer_19;
var i,n:integer; max:real;a:array[1..50] of real; begin
writeln('введите количество элементов массива'); readln(n); for i:=1 to n do begin
writeln('введите a[',i,']'); readln(a[i]); end; max:=a[1]; for i:=1 to n do if a[i]>0 then if a[i]>max then max:=a[i]; if max>0 then writeln('ответ: max=',max) else writeln('ответ: при таких исходных данных решения у задачи нет'); end.
Рис. 62. Блок-схема алгоритма решения задачи примера 19 Задания для самостоятельной работы
1. Вычислить сумму натуральных чётных чисел не больших заданного натурального числа N.
2. Вычислить факториал натурального числа N.
3. Дано натуральное число N. Определить K – количество делителей этого числа, меньших чем само заданное число N (например, для N=12 делители 1, 2, 3, 4, 6. Количество K=5).
4. Дано натуральное число N. Определить, является ли оно простым. Натуральное число N называется простым, если оно делится без остатка только на единицу и на само себя. Число 19 – простое, так как делится только на 1 и 19, а число 12 не является простым, так как делится на 1, 2, 3, 4, 6 и 12.
5. Из N заданных вещественных чисел определить наибольшее число.
6. Целые числа вводятся до тех пор, пока не ввели число 0. Найти наименьшее число среди положительных. Если найденный минимум – не единственный (есть повторы), определить, сколько их.
7. Вводятся числа до тех пор, пока не введет число 0. Определить среднее арифметическое всех введенных чисел.
8. Вводятся числа до тех пор, пока не введет число 0. Вычислить процент положительных и отрицательных чисел.
9. Вводится последовательность из N положительных целых чисел. Найти наименьшее число среди чётных элементов последовательности.
10. Определить, является ли последовательность из N произвольных чисел строго возрастающей (каждый следующий элемент больше предыдущего).
11. Вводятся числа до тех пор, пока не введет число 0. Определить, является ли эта последовательность строго убывающей (каждый следующий элемент меньше предыдущего).
12. Вводятся числа до тех пор, пока не введет число 0. Вычислить среднее значение чётных элементов последовательности.
13. Вводится одномерный массив из N произвольных чисел, найти среднее значение отрицательных элементов этого массива.
13. Вводится одномерный массив из N произвольных чисел, Определить, содержит ли массив хотя бы два соседних одинаковых числа.
14. Вводятся числа до тех пор, пока не введет число 0. Найти наибольшее число среди чисел больших, чем заданное число K
15. Вводятся числа до тех пор, пока не введет число 0. Вычислить сумму и количество отрицательных чисел среди введенных.
16. Задан массив из N действительных чисел. Найти сумму положительных и сумму отрицательных элементов этого массива.
17. Задан массив из N элементов. Вычислить, сколько раз элементы в массиве меняют знак.
18. Дано K массивов из N элементов, 𝑁 ≥ 2. Определить количество массивов, элементы которых возрастают.
19. В массиве из N вещественных чисел определить количество простых чисел.
20. Вывести на экран таблицу значений утроенных косинусов в интервале
от -B до B с шагом H.
21. Ввести целое положительное число K. Вычислить сумму натуральных нечётных чисел, не превышающих это число и произведение натуральных чётных чисел, не превышающих число K.
22. Ввести целое положительное число K. Вычислить количество натуральных чисел кратных двойке и не превышающих число K.
23. Вводится целое число N, (𝑁 > 1), Составить алгоритм вывода наименьшего целого числа K, при котором выполняется неравенство 5𝐾 > 𝑁.
24. Вводится целое число N, (𝑁 > 1). Составить алгоритм вывода наибольшего целого числа K, при котором выполняется неравенство 5𝐾 < 𝑁.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.