![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Var
A: array [1..10] of real;
chNO,chP,n,i:integer;
Begin
writeln('введите размер массива');
Readln(n);
for i:=1 to n do
readln(A[i]);
chNO:= 0;
chP:= 0;
for i:=1 to n do
Begin
if A[i]>0 then
chP:= chP + 1;
if A[i]<>0 then
chNO:= chNO + 1;
End;
writeln('процент положительных значений -', chP/chNO*100);
End.
Рассмотрим ещё один пример: необходимо найти все чётные элементы в массиве А и поместить их в массив В.
Алгоритм решения задачи представлен на рисунке 18.
В целом рассматриваемый алгоритм (рис. 18) схож с алгоритмом поиска определённых элементов. Разница состоит в том, что значения найденных элементов не накапливаются для последующей обработки, а перемещаются в новый массив.
Для индексов найденных элементов используется независимый счётчик j. В начале перебора ему присваивается значение 1 (блок 5). При нахождении в исходном массиве первого чётного элемента выполняется его запись в массив В под номером j (j = 1), и значение счётчика j увеличивается на единицу и становится равным 2 (блоки 7, 8). Соответственно, следующий найденный элемент будет помещён в массив В под номером 2.
Рисунок 18 – Блок-схема алгоритма поиска
чётных элементов
В таблице 9 приведена трассировка части алгоритма (рис. 18). Каждая строка трассировочной таблицы соответствует состоянию переменных после выполнения определённого алгоритмического блока. В колонках представлены значения определённых переменных, или выражений, необходимых для пояснения алгоритма. Для удобства восприятия жирным в таблице выделены значения, которые изменились во время выполнения соответствующего блока.
Таблица 9 – Трассировка алгоритма копирования чётных
элементов из массива А в массив В
№ блока | A[i] | i | A | j | B | ||||||||
... | |||||||||||||
- | - | ||||||||||||
... |
Реализация алгоритма в программу выглядит следующим образом:
Дата публикования: 2014-11-26; Прочитано: 257 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!