Navigation bar
  Print document Start Previous page
 135 of 179 
Next page End  

135
кон                              
end
По приведенному алгоритму и основной части программы видно, что последовательность ввода-
вывода данных о товарах и результатов обработки полностью соответствует выбранному сценарию.
Загрузку исходных данных в выбранные массивы в соответствии с принятым представлением выполнят
два следующих вспомогательных алгоритма
алг «данные товаров»          
tovar: 'данные товаров
нач                            
загрузка-товаров               
   restore tovs 
от k = 1 до N цикл            
   for k = 1 to N
чmeнue(tv(k),s(k),m(k))         
      read tv$(k),s(k),m(k) 
при tv(k) = «» то               
   if tv$(k) = «» then exit for
вывод (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)).
Сайт создан в системе uCoz