Одномерные массивы: обработка всевозможных пар




Одномерные массивы: ввод, вывод, генерация

 

Ввод элементов массива 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;

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: