Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
{3 - если A[i] не <0}
if not(A[i]<0) then
begin
Inc(k); {увеличиваем значение k на 1}
A[k]:=A[i]; {переписываем i-ый элемент в позицию k}
end;
{4 - в массиве оставляем k элементов}
n:=k;
Пример прогона алгоритма:
Исходный массив: -1 -2 2 -3 -4 3
Состояния массива после просмотра очередного элемента
массива:
0: k=0, i=1, n=6: -1 -2 2 -3 -4 3 {не переписываем}
1: k=0, i=2, n=6; -1 -2 2 -3 -4 3 {не переписываем}
2: k=1, i=3, n=6; 2 -2 2 -3 -4 3 {переписываем
a[1]:=a[3]}
3: k=1, i=4, n=6; 2 -2 2 -3 -4 3 {не переписываем}
4: k=1, i=5, n=6; 2 -2 2 -3 -4 3 {не переписываем}
5: k=2, i=6, n=6; 2 3 2 -3 -4 3 {переписываем
a[2]:=a[6]}
6: k=2, i=7, n=6: 2 3 2 -3 -4 3 {выход из цикла}
7: n=2: 2 3 {значение k переписываем в n}
Обработка нескольких массивов
Задача 14: Массивы А и В имеют одинаковую длину. Массив С
необходимо заполнить суммами соответствующих элементов
массивов А и В. n - длина массивов А и В (и С тоже).
Фрагмент программы:
…
{проходим по всем элементам массивов}
for i:=1 to n do
{сумму i-ых элементов массивов A и B заносим в i-ый элемент C}
C[i]:=A[i]+B[i];
…
Задача 15: В конец массива А[n] приписать все элементы массива
В[m].
Фрагмент программы:
…
{проходим в цикле по массиву B}
for i:=1 to m do
A[n+i]:=B[i]; {дописываем элементы в хвост A}
Inc(n, m); {увеличиваем значение n (длину массива A) на
m (длину массива B)}
…
Замечание: Необходимо следить, чтобы n не превысило значение
maxN.
Например, так:
…
if n+m>maxN
then writeln('В массив А все элементы массива В не поместятся')
else... {а вот здесь выполняем добавление элементов}
Задача 16: Сформировать массив В из отрицательных элементов
массива А. Массив А не изменять.
Фрагмент программы:
…
m:=0; {m - количество элементов в массиве В -
вначале массив B пустой}
{проходим по всем элементам массива A}
for i:=1 to n do
if A[i]<0 then {если i-ый элемент массива A отрицательный}
begin
{то копируем его в массив B}
Inc(m); {в B добавляется еще один элемент -
увеличиваем m на 1}
B[m]:=A[i]; {копируем i-ый элемент массива A
в m-ый элемент массива B}
end;
…
Задача 17: Подсчитать, сколько элементов массива А совпадают
с элементами массива В.
Алгоритм программы:
1. Ввести массив А[n].
2. Ввести массив В[m] .
3. Счетчик совпадений cnt обнулить.
4. Пройти по всем элементам массива A.
5. Сравнить i-ый элемент массива А со всеми элементами
массива В.
6. Если А[i] совпадает хотя бы с одним элементом массива B,
то счетчик повторений увеличить на 1.
7. Вывести количество совпадений.
Текст программы:
{Подсчитать, сколько элементов массива А совпадают с элементами
массива В}
Program TwoArrayExample;
Const
maxN = 20; {максимальное количество элементов массива}
Type
IndexEl = 1 .. maxN; {индексы массива лежат в интервале
от 1 до maxN}
arrInt = array[IndexEl] of integer; {массив целых чисел,
содержащий до maxN элементов}
Var
a, b:arrInt; {массивы A и B}
n:integer;{количество элементов массива A}
m:integer;{количество элементов массива B}
i, j:IndexEl; {переменные для сканирования массивов}
cnt: integer; {количество совпадений элементов A с элементами B}
k: integer; {количество совпадений элемента A[i] с элементами B}
Begin
{1 - ввод массива A}
{ ввод количества элементов}
repeat
write('Введите n:');
readln(n);
until (n>=1) and (n<=maxN); {выйдем из цикла лишь тогда, когда
n будет принадлежать интервалу [1..maxN]}
{ ввод элементов массива A поодиночке}
for i:=1 to n do
begin
write('a[',i,']');
readln(a[i]);
end;
{2 - ввод массива B}
{ ввод количества элементов}
repeat
write('Введите m:');
readln(m);
until (m>=1) and (m<=maxN);
{ ввод элементов массива B поодиночке}
for i:=1 to m do
begin
write('b[',i,']');
readln(b[i]);
end;
{3 - счетчик повторений обнуляем}
cnt:=0;
{4 - проходим по всем элементам массива A}
for i:=1 to n do
begin
{5 - сравниваем i-ый элемент массива А со всеми
элементами массива В}
k:=0; {k - количество совпадений i-го элемента массива A
с элементами массива В}
{считаем количество совпадений A[i] с элементами массива B}
for j=1 to m do
if A[i]=B[j] then Inc(k);
{6 - если А[i] совпадает хотя бы с одним элементом массива B,
счетчик повторений увеличить на 1}
if k>0 then Inc(cnt);
end;
{7 - выводим количество повторений}
writeln('Количество совпадений cnt=',cnt);
readln; {ждем нажатия клавиши Enter}
End.
Проверка соседних элементов массива
Задача 18: Подсчитать, сколько в массиве элементов, равных 0,
справа и слева от которых стоят отрицательные элементы.
Фрагмент программы:
…
k:=0; {количество таких элементов}
{проходим по всем элементам массива A}
{начинаем не с первого, а со второго, потому что у первого элемента
нет стоящего слева от него}
{заканчиваем на n-1 элементе, а не на n, потому что у последнего
n-го элемента нет элемента, стоящего от него справа}
for i:=2 to n-1 do
{если i-ый элемент равен 0 и элемент слева от него и
элемент справа от него отрицательные}
if (A[i]=0) and (A[i-1]<0) and (A[i+1]<0)
then Inc(k); {тогда увеличиваем счетчик}
…
Задача 19: Найти номер первого элемента массива, который
находится между двумя положительными элементами.
Фрагмент программы:
…
k:=0; {k - номер искомого элемента}
i:=2; {начинаем со второго элемента}
while (i<=n-1) and (k=0) do {пока не нашли искомый элемент
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


