Анализ элементов массива
End.
Begin
Writeln('Введите строку');
readln(S);
nach:= Pos('-', S)+2;
kon:= Pos('$', S);
ZstrD:= copy(S, nach, kon-nach);
val(ZstrD, Znum,kod);
Znum:=Znum*2140;
Str(Znum:5:2,ZstrR);
delete(S, nach, kon-nach+1);
insert(concat(ZstrR,'руб.'),s,nach);
writeln(s);
Алгоритмы обработки одномерных
массивов
Одномерные массивы – одни из наиболее часто используемых структур хранения технических данных (например, значения какого-либо параметра, изменяющегося во времени).
Обычно алгоритмы данной группы осуществляют последовательный перебор и накопление сведений об элементах массива с последующим вычислением характеристик всей последовательности значений.
К задачам подобного рода можно отнести: вычисления суммы и среднеарифметического значений элементов, нахождение количества определённых элементов, вычисление статистических характеристик (отклонений, медиан, дисперсий) и т.п.
Некоторые из этих задач решаются с помощью нескольких последовательных переборов всех элементов массива.
Рассмотрим в качестве примера программу, которая вычисляет процент положительных значений среди ненулевых элементов массива.
Алгоритм решения задачи представлен на рисунке 17.
На рисунке 17 блоки 2, 3, 4 используются для ввода исходных данных. Блок 3 организует цикл с параметром i, который, изменяясь от 1 n (n – количество элементов в массиве), перебирает все индексы элементов массива. Блок 4 в каждом новом проходе цикла заполняет последовательно каждый из элементов массива.
Блок 5 инициализирует служебные переменные: chNO используется для подсчёта количества ненулевых элементов, chP используется для подсчёта количества положительных элементов.
Далее блок 6 организует перебор всех элементов массива, аналогично блоку 3. В этом цикле каждый элемент проверяется на положительность и отличность от 0. Если элемент положительный (блок 7), то увеличивается на 1 значение переменной chP (блок 8). Затем снова выполняется проверка: если элемент не равен нулю (блок 9), то увеличивается на 1 значение переменной chNO (блок 10).
Рисунок 17 – Блок-схема алгоритма вычисления процента положительных значений среди ненулевых элементов массива
После окончания цикла вычисляем требуемый процент (блок 11) и выводим полученное значение (блок 12).
В таблице 8 приведена трассировка части алгоритма (рис. 17). Каждая строка трассировочной таблицы соответствует выполнению определённого алгоритмического блока. В колонках представлены значения определённых переменных, или выражений, необходимых для пояснения алгоритма. Для удобства восприятия жирным в таблице выделены значения, которые изменились во время выполнения соответствующего блока.
Таблица 8 – Трассировка алгоритма подсчёта количества
положительных и ненулевых элементов
№ блока | i | chNO | chP | A[i] | A | ||||
... | |||||||||
-2 | -2 | -1 | |||||||
-2 | -2 | -1 | |||||||
-2 | -2 | -1 | |||||||
-2 | -2 | -1 | |||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-2 | -1 | ||||||||
-1 | -2 | -1 | |||||||
-1 | -2 | -1 | |||||||
-1 | -2 | -1 | |||||||
-1 | -2 | -1 | |||||||
-1 | -2 | -1 | |||||||
-1 | -2 | -1 | |||||||
... |
Реализация алгоритма в программу выглядит следующим образом:
program Proz;