Одномерные массивы: ввод, вывод, генерация
Ввод элементов массива A, содержащего N элементов
Блок-схема
Программа
For i:=1 to N do
Begin
Write(‘A[‘, i, ‘]=’); readln(A[i]);
End;
Вывод элементов массива A, содержащего N элементов
Блок-схема
Программа
For i:=1 to N do
Write(A[i], ‘ ’); {Элементы выводятся в одну строку}
Writeln; { Переход на следующую строку }
Генерация элементов массива A, содержащего N элементов
Для генерации элементов массива в Pascal используется функция Random.
Для генерации целых чисел в диапазоне от X 1 до X 2 (X 1 < X 2) можно воспользоваться следующим выражением
A[i]:=X1+Random(X2-X1+1);
Например, для генерации целых чисел от -10 до 10 выражение будет следующим
A[i]:=-10+Random(21);
Для генерации вещественных чисел в диапазоне от X 1 до X 2 (X 1 < X 2, X 2 не входит в отрезок) можно воспользоваться следующим выражением
A[i]:=X1+(X2-X1)*Random;
Например, для генерации целых чисел от -10 до 10 выражение будет следующим
A[i]:=-10+20*Random;
Блок-схема
Программа
For i:=1 to N do
A[i]:=-10+Random(21);
После генерирования элементов массива они (элементы) обычно выводятся на экран, так они хранятся в оперативной памяти и пользователю программы не видны.
Одномерные массивы: поиск элемента
Поиск значения минимального элемента массива
Блок-схема
Программа
Min:=A[1];
For i:=1 to N do
If A[i]<Min Then Min:=A[i];
Поиск первого номера элемента массива, принимающего минимальное значение (kMin)
Блок-схема
Программа
Min:=A[1]; kMin:=1;
For i:=1 to N do
If A[i]<Min Then
Begin
Min:=A[i]; kMin:=i;
End;
Одномерные массивы: вычисление суммы, количества, произведения элементов массива
Поиск суммы элементов массива, удовлетворяющих некоторому условию
Блок-схема
Программа
S:=0;
For i:=1 to N do
If <Условие> Then S:=S+A[i];
Поиск количества элементов массива, удовлетворяющих некоторому условию
Блок-схема
Программа
K:=0;
For i:=1 to N do
If <Условие> Then K:=K+A[i];
Например, дан массив из N вещественных чисел, найти количество отрицательных элементов.
Блок-схема
Программа
K:=0;
For i:=1 to N do
If A[i]<0 Then K:=K+1;
Поиск произведения элементов массива, удовлетворяющих некоторому условию
Блок-схема
Программа
P:=1;
For i:=1 to N do
If <Условие> Then P:=P*A[i];
Например, дан целочисленный массив из N чисел, найти произведение положительных элементов, меньших 10.
Блок-схема
Программа
P:=1;
For i:=1 to N do
If (A[i]>0) and (A[i]<10) Then P:=P*A[i];
Одномерные массивы: обработка пар соседних элементов
В массиве A, состоящем из N элементов, парами соседних элементов будут
A[1] и A[2],
A[2] и A[3],
…
A[N-1] и A[N]
Параметр цикла в задачах такого типа будет изменяться от 1 до N-1. Номер «левого» элемента в паре будет совпадать с параметром цикла, а номер «правого» элемента будет на 1 больше значения параметра цикла.
Поиск номеров пары соседних элементов массива, сумма которых максимальна
Блок-схема
Программа
Max:=A[1]+A[2];
Num:=1;
For i:=1 to N-1 do
Begin
S:=A[i]+A[i+1];
If S>Max Then
Begin
Max:=S; Num:=i;
End;
End;
Writeln(Num,’ ‘,Num+1);
Одномерные массивы: обработка всевозможных пар
Всевозможные пары элементов массива
A[1] и A[2],
A[1] и A[3],
…
A[1] и A[N],
A[2] и A[3],
A[2] и A[4],
…
A[2] и A[N],
…
A[N-1] и A[N].
Номер (индекс) первого элемента в паре i изменяется от 1 до N-1, номер второго элемента j в паре для каждого i изменяется от i+1 до N. Обработка таких элементов производится в двойном цикле.
Блок-схема
Программа
For i:=1 to N-1 do
For j:=i+1 to N do
<Обработка A[i] и A[j]>
Поиск номеров среди всевозможных пар элементов массива, разность между которыми минимальна
Блок-схема
Программа
Min:=Abs(A[1]+A[2]);
K1:=1; K2:=2;
For i:=1 to N-1 do
For j:=i+1 to N do
Begin
S:=Abs(A[i]+A[j]);
If S<Min then
Begin
Min:=S; K1:=i; K2:=j;
End;
End;