100
вывод (tv(k),s(k),m(k))
? tv$(k);s(k);m(k)
кцикл
next k
если k< Nmo N := k-1
if k < N then N = k-1
кон
return
Последний условный оператор изменяет верхнюю границу N массивов в том случае, если
фактическое число данных меньше числа мест в массивах, размещенных в памяти компьютера.
алг «данные остатков»
ostatok: 'данные остатков
нач
'
загрузка-остатков
restore osts
от k = 1 до N цикл
for k = 1 to N
чmeнue(tv(k),c(k),p(k))
read tv$(k),c(k),p(k)
при tv(k) = «» выход
if tv$(k) = «» then exit for
вывод (tv(k),c(k),p(k))
? tv$(k);c(k);p(k)
кцикл
next k
если k < N mo N := k-1
if k < N then N = k-1
кон
return
Подсчет выручки в соответствии с постановкой задачи по данным, введенным в эти масси-
вы, выполнят следующие вспомогательный алгоритм и подпрограмма:
алг «подсчет выручки»
vyruch: 'подсчет выручки
нач
'
S := 0
S = 0
от k = 1 до N цикл
for k = 1 to N
S := S+(c(k)-s(k)) *(m(k)-p(k))
S = S+(c(k)-s(k))*(m(k)-p(k))
кцикл
next k
кон
return
Лемма
3. Конечным результатом выполнения данного вспомогательного алгоритма будет
сумма
S
N
= (с(1) - s(l))
(m(l) - р(1)) + ... + (c(N) - s(N))
(m(N) - p(N)).
Доказательство проводится с помощью индуктивных рассуждений. Первое присваивание
S := 0 обеспечивает начальное значение суммы S
0
= 0.
О результатах k-го шага выполнения цикла можно сделать индуктивное утверждение
S
k
= S
k-1
+ (c(k)- s(k))-(m(k) - p(k)) = (с(1) - s(l))
(m(l) - p(l)) + ... + (c(k) - s(k))
(m(k) - p(k)).
Это утверждение доказывается с помощью математической индукции. На его основании
можно сделать заключение о том, что конечным результатом выполнения цикла и алгоритма в це-
лом будет сумма
S
N
= (с(1) - s(l))
(m(l) - р(1)) + ... + (c(N) - s(N))
(m(N) - p(N)).
Что и требовалось доказать.
Для сортировки данных воспользуемся алгоритмом упорядочения чисел по методу «пу-
зырька», предполагая, что исходная и упорядоченная последовательность чисел r1, r2, ..., r
N
будут
записаны в массиве x[l:N].
Для формирования результирующих упорядоченных данных используется массив индексов
L(1:N), в котором будут записаны номера элементов исходной последовательности так, что x(k) =
p(L(k)) для всех k = 1, ..., N.
алг «сортировка данных»
sortdan: 'сортировка данных
массив x[1:N]
dim x(N)
нач
'
от k = 1 до N цикл
for k = 1 to N
|