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

134
Постановка задачи
Сценарий
Сортировка товаров по остатку.
Дано:
товары:
D = (d1, d2, .... d
N
)
- данные товара,
<товар1> <s1> < m 1> *
d = (товар, s, m),
      
...... ... ...      
s
- стоимость, m - кол-во,
остатки:
R = (r1, r2, ..., r
N
)
- данные об остатках,
<товap1> <c1> < р1>   *
г = (товар, с, р),
    
...... ... ...      
с - цена, р - остаток.
Треб.: S - сумма выручки,
выручка = <S>
R' = (r1', ..., r
N
') - упорядоченные данные,
сортировка:
Где:
<товар1'> <с1'> <р1'>  *
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],m[1: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 'сортировка
Сайт создан в системе uCoz