Большинство задач на обработку массива сводятся к комбинированию следующих алгоритмов:
- Заполнение
- Заполнение случайными числами.
- Использование в формуле заполнения индекса элемента.
- Использование рекуррентного соотношения.
- Анализ
- Задачи подсчета — нахождение суммы или количества элементов таблицы, обладающих заданным свойством.
- Нахождение минимального или максимального среди элементов массива.
- Задачи, в которых требуется найти какие-то характеристики массива.
- Поиск
- Перестановка
- Задачи, в которых требуется поменять местами элементы массива.
- Задачи циклической перестановки.
- Задачи сортировки элементов массива.
Заполнение | Анализ | Поиск | Перестановка |
- Заполнение
Функции и процедуры, используемые для заполнения массива случайными числами:
Random - функция, возвращает случайное вещественное в диапазоне [0..1).
Random(x) -функция, возвращает случайное целое в диапазоне от 0 до x-1.
Randomize - процедура языка Pascal, которая инициализирует встроенный генератор случайных чисел с произвольным значением.
Random - функция, возвращает случайное вещественное в диапазоне [0..1).
Random(x) -функция, возвращает случайное целое в диапазоне от 0 до x-1.
Randomize - процедура языка Pascal, которая инициализирует встроенный генератор случайных чисел с произвольным значением.
Заполнение массива оператором случайных чисел Random на интервале [0;1):
randomize;
for i:=1 to n do
a[i]:=random;
Пример 1 (.pas) Заполните массив, состоящий из 10 вещественных чисел в диапазоне [0..1):
randomize;
for i:=1 to 10 do
a[i]:=random;
randomize;
for i:=1 to 10 do
a[i]:=random;
Заполнение массива оператором случайных чисел Random на интервале [ a ; b ]:
randomize;
for i:=1 to n do
a[ i ] := random (b-a+1)+a;
Пример 2 (.pas) Заполните массив, состоящий из 10 целых чисел на интервале [5..10]:
randomize;
for i:=1 to 10 do
a[ i ] := random (6)+5;
randomize;
for i:=1 to 10 do
a[ i ] := random (6)+5;
Заполнение массива оператором случайных чисел Random на интервале [a ; b):
randomize;
for i:=1 to n do
a[ i ] := random (b-a)+a;
Пример 3 (.pas) Заполните массив, состоящий из 10 целых чисел на интервале [5..10):
randomize;
for i:=1 to 10 do
a[ i ] := random (5)+5;
randomize;
for i:=1 to 10 do
a[ i ] := random (5)+5;
Пример 4 (.pas) Заполните массив на 25 элементов целыми значениями, лежащими в диапазоне от –12 до 7, и организуйте вывод первых 7 элементов.
program z;
const n=25;
type mas= array [1..n] of integer;
var a: mas;
i: integer;
begin
cls;
randomize;
for i:=1 to n do
a[ i ] := random (20)-12;
for i:=1 to 7 do write(a[i],' ');
end.
program z;
const n=25;
type mas= array [1..n] of integer;
var a: mas;
i: integer;
begin
cls;
randomize;
for i:=1 to n do
a[ i ] := random (20)-12;
for i:=1 to 7 do write(a[i],' ');
end.
Если элементы массива удовлетворяют некоторой закономерности, например, являются четными числами, то их ввод можно организовать с помощью формул, содержащих индекс элемента.
Например, заполним массив чисел, так чтобы:
Например, заполним массив чисел, так чтобы:
- Значения элементов массива совпадают с квадратами их индексов:
for i:=1 to N do a[i]:=i*i; - Значения элементов массива совпадают с их индексами:
for i:=1 to N do a[i]:=i; - Значения элементов массива - числа нечетные:
for i:=1 to N do a[i]:=2i - 1; - Значения элементов массива - числа четные:
for i:=1 to N do a[i]:=2i; - Значения элементов массива - числа обратные индексам:
for i:=1 to N do a[i]:=1/i.
Если значение элемента зависит от предыдущего элемента массива, то начальному элементу массива необходимо присвоить требуемое значение, а все остальные элементы вычислять используя рекурентное соотношение.
Например, заполним массив чисел, так чтобы:
- Значения элементов массива являлись числами Фибоначчи (каждый последующий элемент равен сумме двух предыдущих: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, …): (.pas)
F[0]:=0;
F[1]:=1;
for i:= 2 to n do F[i]:= F[i-1]+F[i-2]; - Элементы массива - последовательность чисел: 1, 4, 7, 10, ...
a[1]:=1;
for i:=2 to n do a[i]:=a[i-1]+3;
Комментариев нет:
Отправить комментарий