Разработка программ, связанных
Цель работы.
Приобретение навыков написания программ, связанных с формированием массивов, удовлетворяющих данному условию.
Краткая теория.
Массив – упорядоченная последовательность однотипных данных, обозначенных одним именем. Каждое из этой совокупности данных называется элементом массива. Описание массива позволяет выделить в памяти компьютера однотипные ячейки (состоящие из одного и того же количества байтов) для последующего хранения в них значений элементов массива. Для обращения к соответствующему элементу массива (ячейке) в программе необходимо указать имя массива и в квадратных скобках его порядковый номер (индекс). Например, а[12], b[3]. В качестве индекса можно записывать также выражение целого типа. Например, с[2*к+1]. Описание (декларация) массива может быть выполнено двумя способами:
1. непосредственно в разделе описания переменных. Например, запись var a: array[1..15] of real; объявляет массив a (array – зарезервированное слово), состоящий из 15 элементов вещественного типа. Для каждого из элементов массива выделяется ячейка в 6 байтов.
2. ввести пользовательский тип данных типа массив, а затем в разделе описания переменных использовать имя введенного пользовательского типа
type mas=array[1..15] of real;
var a, b: mas;
Пример 1.
Задана последовательность X = (x1, x2, …, x10). Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию B £ xi £ A, где . Если таковых не окажется, напечатать фразу «Искомых элементов нет». Полученный массив вывести в столбик. Исходные данные: X = {2.2, 3.4, -4.9, 0.71, 2.0, -1.6, 0.35, 2.5, -0.1, -0.15}.
Текст программы решения задачи приведен ниже.
program primer1;
var A, B: real;
type mass = array[1.. 10] of real;
var y: mass; I, k: byte;
const x: mass = (2.2, 3.4, -4.9, 0.71, 2.0, -1.6, 0.35, 2.5, -0.1, -0.15);
begin
for i:=1 to 10 do begin A:=A + abs(x[i]); B:= B+x[i];
end;
A:= A-2.5; B:= B-2.5; k:= 0;
for i:=1 to 10 do
if (B <= x[i]) and (x[i]<=A) then
begin k:= k+1;
y[k]:= x[i];
end;
if k=0 then writeln(‘исходных элементов нет’)
else begin
writeln(‘сформированный массив’);
for i:=1 to k do writeln(y[i]:5:2);
end;
end.
Особенностью решения данной задачи является то, что количество элементов массива Y не совпадают с количеством элементов массива X, т.к. не все элементы массива Х включаются в массив Y, а только те, которые удовлетворяют условию B £ Xi £ A. Поэтому для обозначения индекса элементов массива Y нужно предусмотреть другую переменную, например k, значение которой необходимо изменять на единицу k=k+1 перед занесением в массив Y нового значения Y(k)=X(i). До входа в цикл по формированию массива Y нужно положить начальное значение k=0. Величину k можно рассматривать как количество элементов массива Y.
Контрольные вопросы.
1) Что такое массив?
2) Какие значения может принимать индекс одномерного массива?
3) Ввод элементов одномерного массива (оператор READ)
4) В чём особенность программирования задач, связанных с формированием массивов, удовлетворяющих заданному условию.
Содержание заданий.
Составить алгоритм и написать программу формирования и обработки одномерного массива. Выводимый результат идентифицировать.
Варианты заданий.
1. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, каждый элемент которого определяется по правилу , где i - индексы положительных элементов массива X. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в столбик.
X = {0.12, 0.2, 1, 9.3, 0.5, -4.8, -2.1, 0.5, 1.2, 0.3}.
2. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию X(i) £ A - X(5), где A - среднеарифметическое значение элементов массива X. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в строчку.
X = {0, -22.4, 5.2, -2.25, 7.92, 0.24, -0.21, 15.8, 9.1, 3.2}.
3. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию | Xi | < G - X(2), где A - среднегеометрическое значение элементов массива X. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в столбик.
X = {5.31, -0.2, 1, -2.2, 3.25, -1.74, 4.9, -2.1, 0.9, 1.15}.
4. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию | Xi | < | Z |, где Z=X(5) + 0.5. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в строчку.
X = {0.24, -2.2, 25.3, 0, -8.4, 7.21, -5.5, 4.9, -17.2, 5.5}.
5. Задана целочисленная последовательность X = (x1, x2, …, x10). Сформировать из неё одномерный массив Y, состоящий из чётных элементов массива Х. Если таковых не окажется, вывести фразу «Чётных элементов нет». Полученный массив напечатать в строчку.
X = {1, 33, 2, 84, 5, 71, 6, 52, 91, 28}.
6. Задана целочисленная последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из нечётных элементов массива Х. Если таковых не окажется, вывести фразу «Нечётных элементов нет». Полученный массив напечатать в строчку.
X = {1, 5, 23, 8, 15, 24, 28, 95, 100, 7}.
7. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: 1 £ xi £ 2. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в столбик.
X = {25.32, 1.5, -4.7, 9.5, -1.59, -12, 1.74, 0.1, 1.99, 1}.
8. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из ненулевых элементов Xi, имеющих чётные индексы. Полученный массив напечатать в строчку.
X = {92.34, 0.51, -7.53, 0.0, 0.58, 4.3, 7.0, 9.5, 0.34, 2}.
9. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из ненулевых элементов Xi, имеющих нечётные индексы. Полученный массив напечатать в столбик.
X = {7.9, 24.3, 5, 15.4, 0, 2.29, 9.5, -8.3, 0.5, -4}.
10. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: | Xi | £ r, где . Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в строчку.
X = {5.2, -4.7, 1, 9.22, -8.3, -9.52, 0.75, 8.9, -4.2, 1.3}.
11. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: | Xi | > r, где . Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в столбик.
X = {1.99, 1, 0.34, -4.2, 5.1, 6.34, 0.1, -7.53, -0.5, 0.2}.
12. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: Xi £ r, где r - сумма элементов массива X, имеющих нечётные индексы. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в строчку.
X = {0.34, 99.2, 52.3, 0.5, 1, 2.23, -15.9, 10.2, 0, -3.9}.
13. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: Xi ³ r, где r - произведение элементов массива X, имеющих чётные индексы. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в столбик.
X = {2.95, 7.34, -4.2, 0.5, -4.9, 0.22, 0.35, 1, 10.1, 12}.
14. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов массива Х, кратных 3. Если таковых не окажется, вывести фразу «Элементов, кратных 3, нет». Полученный массив напечатать в строчку.
X = {12.3, 7, 9.5, 27, 91.2, 9, 21.4, 111, 3.2, 51}.
15. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: | Xi | £ A, где A - среднеарифметическое значение элементов массива X. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в столбик.
X = {0.24, -5, 0.32, 7, -9.3, 12.4, 0, 2.8, -3.1, 1}.
16. Задана целочисленная последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из нечётных элементов массива Х, имеющих чётные индексы. Если таковых не окажется, вывести фразу «Нечётных элементов нет». Полученный массив напечатать в строчку.
X = {1, 23, 17, 2, 53, 101, 7, 126, 91, 25}.
17. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий только из целочисленных элементов, т.е. дробная часть которых равна нулю, массива Х. Если таковых не окажется, вывести фразу «Целочисленных элементов нет». Полученный массив напечатать в столбик.
X = {0.1, -4, 72, 23.1, 0.45, 3.8, -2.94, 3, 1.1, 12}.
18. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: Xi < R, где R - произведение отрицательных элементов массива X. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в столбик.
X = {-0.24, 5.7, -7.1, 2.9, 1, 0.15, -2.23, 9.3, 10, -0.2}.
19. Задана целочисленная последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из чётных элементов массива Х, имеющих нечётные индексы. Если таковых не окажется, вывести фразу «Нечётных элементов нет». Полученный массив напечатать в столбик.
X = {21, 35, 7, 82, 9, 22, 13, 24, 3, 12}.
20. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, элементы которого определяются по правилу , где i = 1, 2, …, 10. Полученный массив напечатать в столбик.
X = {0.34, -1.7, 2.31, 5.22, 0.71, 9.92, -0.01, 14, 0.2, 1}.
21. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, элементы которого определяются по правилу , где i = 1, 2, …, 10. Полученный массив напечатать в строчку.
X = {0.1, -4, 77.2, -23.1, 0.45, 3.8, -2.94, 3, 1.1, -12}.
22. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов, удовлетворяющих условию: Xi < R, где R - произведение отрицательных элементов массива X. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в столбик.
X = {-0.24, 5.7, -7.1, 2.9, 1, 0.15, -2.23, 9.3, 10, -0.2}.
23. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий только из вещественных элементов, т.е. дробная часть которых не равна нулю, массива Х. Если таковых не окажется, вывести фразу «Вещественных элементов нет». Полученный массив напечатать в строчку.
X={0.21, 5, -34.2, 7, 0, -1.72, 10, 2.4, 37, 0.2}.
24. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, каждый элемент которого определяется по правилу . Полученный массив напечатать в строчку.
X = {0.1, 1.3, 5.4, 0.24, 2.8, 8.7, -1.37, 2.25, -6.1, 2.1}.
25. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий только из отрицательных элементов массива Х, имеющих нечётные индексы. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в столбик.
X = {13.1, 9.7, 0.34, -5.21, -3.9, 19.1, -2.93, 0.2, -1.3, -0.7}.
26. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий только из неповторяющихся элементов массива Х. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в строчку.
X={0.9, 1.5, 2.4, 0, -15, 0.9 –7.8, 2.4, 1.1, 3.91}.
27. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, каждый элемент которого определяется по правилу , где i ¹ j, Xj ¹ 0. Полученный массив напечатать в строчку.
X = {29.3, 0, -1.1, 0.94, 0, 9.3, -1.2, 0, -7.93, 0}.
28. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, каждый элемент которого определяется по правилу , где i = 1, 2, …, 10. Полученный массив напечатать в строчку.
X = {0, -7.2, 10, 11.3, 3.1, -27.9, 3.4, 0.39, 2, 1.9}.
29. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, в который входят лишь равноотстоящие от концов элементы массива Х, имеющие различное абсолютное значение. Если таковых не окажется, вывести фразу «Искомых элементов нет». Полученный массив напечатать в столбик.
X = {4.9, -0.3, 22.1, 15, 1.15, -3.31, -15, 0.8, -7.1, -4.9}.
30. Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, каждый элемент которого определяется, как сумма равноотстоящих от концов элементов массива Х. Полученный массив напечатать в строчку.
X = {9.3, -5.2, 7.1, 0, 14.4, 21.3, 3.01, 1, 2.35, -16.2}.