Одномерный массив − это фиксированное количество элементов одного и того же типа, объединенных одним именем, где каждый элемент имеет свой номер.
Например, A(8) – одномерный массив, где А – имя массива, 8 – количество элементов.
Общий вид записи:
А1, А2 , А3……., Аn – это одномерный массив,
где Аi – элементы массива, i=1, 2, 3……n – индекс представляет собой переменную целого типа. Запись элемента массива на языке Паскаль А[i].
Общий вид записи описания одномерного массива:
Var «Имя массива»: Array[n1..n2] Of«Тип элементов»;
n1 − номер первого элемента;
n2 − номер последнего элемента.
Array, of –зарезервированные слова («массив», «из»).
Задача 1.В массиве X(15) вычислите максимальный элемент массива и его порядковый номер.
Обозначения:
MAX– максимальный элемент массива;
K – порядковый номер максимального элемента массива.
Program Massiv1;
Var
{Описание используемых переменных}
K, i, MAX: integer;
{Описание массива X}
X: array [1..15] of integer;
begin
{Организация цикла для ввода элементов массива с клавиатуры}
for i:=1 to 15 do
readln (X[i]);
{Присвоение начальных значений максимальному элементу и его порядковому номеру}
MAX:=X[1]; K:=1;
{Организация цикла для поиска максимального элемента массива и его порядкового номера}
for i:=2 to 15 do
if X[i]>MAX then begin MAX:=X[i]; K:=i; end;
{Вывод результатов вычисления на экран}
writeln ('MAX=', MAX:2, ';K=', K);
readln;
end.
Задача 2.В массиве R(8) найдите минимальный элемент и замените его на 5.
Обозначения:
MIN– минимальный элемент массива;
N – порядковый номер минимального элемента.
Program Massiv2;
Var
R: array[1..8] of integer;
i, n, MIN: integer;
begin
for i:=1 to 8 do
readln (R[i]);
{Присвоение начальных значений минимальному элементу и его порядковому номеру}
MIN:= R[1]; n:=1;
{Организация цикла для поиска минимального элемента массива и его порядкового номера}
for i:=2 to 9 do
if R[i]<MIN then begin
MIN:= R[i]; n:=i;
end;
{Вывод результатов вычисления на экран}
writeln ('MIN=',MIN);
{Замена минимального элемента массива на 5}
R[n]:=5;
{Вывод нового массива на экран}
for i:=1 to 8 do
write (R[i]:5);
readln;
end.
Задача 3.В массиве А(8) определите количество положительных и отрицательных элементов.
Обозначения:
p – количество положительных элементов;
ot – количество отрицательных элементов.
Program Massiv3;
Var
p, ot, i: integer;
a: array[1..8] of integer;
begin
writeln ('Введите элементы массива А');
for i:=1 to 8 do
readln (А[i]);
{Присвоение начальных значений количеству положительных и отрицательных элементов}
p:=0; ot:=0;
{Организация цикла для подсчёта количества положительных и отрицательных элементов массива}
for i:=1 to 8 do
if А[i]>0 then p:=p+1 else ot:=ot+1;
{Вывод результатов вычисления на экран}
writeln ('Количество положительных элементов=', p:2);
writeln ('Количество отрицательных элементов=', ot:2);
readln;
end.
Задача 4.В массиве X(15) вычислите сумму элементов массива меньших 10 и произведение элементов массива больших нуля.
Обозначения:
S – сумма элементов массива, меньших 10;
P – произведение элементов массива, больших нуля.
Program Massiv4;
Var
i, S, P: integer;
X: array [1..15] of integer;
begin
for i:=1 to 15 do
readln (X[i]);
{Присвоение начальных значений сумме и произведению}
S:=0; P:=1;
{Организация цикла для вычисления суммы и произведения элементов массива}
for i:=1 to 15 do begin
if X[i]<10 then S:=S+X[i];
if X[i]>0 then P:=P*X[i];
end;
{Вывод результатов вычисления на экран}
writeln ('S=', S);
writeln ('P=', P);
readln;
end.
Задача 5.В массиве D(15) найдите все положительные элементы и замените их на среднее арифметическое отрицательных элементов.
Обозначения:
S – сумма отрицательных элементов массива;
SA – среднее арифметическое отрицательных элементов массива;
K –количество отрицательных элементов массива.
Program Massiv5;
Var
K, I: integer;
S, SA: real;
D: array [1..15] of real;
Begin
write ('Введите элементы массива D');
for i:=1 to 15 do
readln (D[i]);
{Присвоение начальных значений сумме и количеству элементов}
S:=0; K:=0;
{Организация цикла для вычисления суммы и количества отрицательных элементов массива}
for i:=1 to 15 do
if D[i]<0 then begin S:=S+D[i]; K:=K+1;
end;
{Вычисление среднего арифметического элементов массива}
SA:=S/K;
{Вывод среднего арифметического элементов массива на экран}
writeln ('SA=',SA:7:2);
writeln ('Вывод нового массива D');
{Организация цикла для определения положительных элементов массива и замена их на среднее арифметическое и вывод нового массива на экран}
for i:=1 to 15 do begin
if D[i]>0 then D[i]:=SA;
writeln ('D(',i, ')= ', D[i]:5:2);
end;
readln;
end.
Задача 6.В массиве С(7) отсортируйте все элементы по возрастанию.
Обозначения:
m – вспомогательная переменная для перестановки элементов массива.
Данные массива задаются типизированной константой, значения элементов массива выбираются произвольно
Program Massiv6;
Var
k, i, M: integer;
{Описание массива С с помощью типизированной константы}
const c: array[1..7] of integer =
(5,-4,2,7,-1,88,9);
begin
{Сортировка массива}
for k:=1 to 7 do
for i:=k+1 to 7 do
if c[i]<=c[k] then begin M:=c[i]; c[i]:=c[k]; c[k]:=M;
end;
{Вывод нового массива на экран}
for i:=1 to 7 do
writeln ('c[',i,']=',c[i]:2);
readln;
end.
Алгоритм сортировки массива:
1. Сравним между собой первый и второй элементы массива и переставим их (если это необходимо) в порядке возрастания. Затем то же самое проделаем со вторым и третьим элементами и т.д. до конца массива. В результате этих сравнений и перестановок наименьшее число окажется первым.
2. Второй этап сравнений и перестановок будет проходить для (N−1) элементов (N − количество элементов массива), начиная со второго до N. В этом случае второй элемент окажется наименьшим. Уменьшая каждый раз количество элементов на 1, операции сравнения и перестановок закончим тогда, когда останется один элемент массива.
Переменная M является в качестве подсобной для перестановки элементов.
Задача 7.В массиве Х(8) подсчитайте сумму элементов, стоящих на чётных местах.
Обозначения:
S − сумма элементов, стоящих на чётных местах;
i − переменная цикла с предусловием.
Program Massiv7;
Var
i,s: integer;
X: array[1..8] of integer;
begin
for i:=1 to 8 do
readln (X[i]);
{Присвоение начальных значений сумме и переменной}
S:=0;
i:=2;
{Организация цикла с предусловием}
While i<=8 do begin
{Вычисление суммы и переход на следующее чётное место}
S:=S+X[i];
i:=i+2;
end;
{Вывод результатов вычисления на экран}
writeln ('S=',S);
readln;
end.