Navigation bar
  Print document Start Previous page
 99 of 144 
Next page End  

99
S = (c1-s1)
(m1-p1) +...+ (с
N
-s
N
)
(m
N
N
),
      
............      
р1'
р2'
...
р
N
',
р
k
'
= р
i 
для k = 1 ... N и i = 1 ... N. 
При: N > 0.
Для представления исходных данных в программе примем операторы data:
tovs: 'товары:                    
osts: 'остатки:
data «яблоки», 500, 200         
data «яблоки», 2500, 100 
data «огурцы», 400, 250         
data «огурцы», 2000, 150 
data «арбузы», 200, 600         
data «арбузы», 1200, 200 
data «персик», 800, 100         
data «персик», 2000, 0 
data «», 0, 0                    
data «», 0, 0
Приведем теперь алгоритм и программу решения поставленной задачи в соответствии с
выбранным сценарием и рассмотренным выше способом упорядочения массивов методом «пу-
зырька».
При составлении алгоритмов и программы решения этой задачи будем использовать прин-
цип нисходящей разработки «сверху-вниз»: от основного алгоритма и основной части програм-
мы к алгоритмам и подпрограммам решения вспомогательных подзадач.
При решении сложных задач существенным становится организация и представление дан-
ных: подбор массивов и переменных для размещения и обработки данных в памяти ЭВМ, а при
выделении подпрограмм - процедуры доступа к этим данным.
Для размещения исходных данных о товарах в поставленной задаче примем пять массивов:
tv(l:N), s(l:N), m(l:N), с (1:N), p(l:N). Общий размер этих массивов ограничим числом N = 200, ко-
торое явно выделено в описании массивов с тем, чтобы в дальнейшем его можно было увеличить
для большего количества данных без других изменений программы.
алг «выручка и остатки товаров» 
'выручка и остатки товаров 
N = 100                         
    N = 100 
массив tv[1:N],s[1:N],m1l:N]      
    dim tv$(N),s(N),m(N) 
массив L[1:N],c[1:N],p[1:N]       
    dim L(N),c(N),p(N)
нач                             
сls 
вывод («товары:»)                
    ? «товары:» 
данные-товаров                  
    gosub tovar 'товары 
вывод («остатки:»)              
    ? «остатки:» 
данные-остатков                
    gosub ostatok 'остатки 
вывод («-----»)              
    ? «-----»
подсчет-выручки                 
    gosub vyruch 'выручка 
вывод («выручка», S)             
    ? «выручка=»;S 
вывод («сортировка:»)            
    ? «сортировка:» 
сортировка-товаров              
    gosub sortdan 'сортировка
кон                              
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
Сайт создан в системе uCoz