КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Товар цена кол-во
Приведем постановку задачи и описание способа ее решения.
Постановка задачиСпособ решения Определение суммарной и максимальной стоимости товаров. Дано: (D1, ..., DN) - данные о товарах, где D = [Tov, C, M] - состав данных, s0 = 0 Tov - товар, С - цена товара, от k = 1 до N цикл М - количество товара, sk = sk-1 + СkМk Треб: если k = 1 то Sum - суммарная стоимость товаров, mах1 = С11М11 TovMax - товар максимальной инеc СkМk > mахk-1 то стоимости. Где: mахk = СkМk Sum = C1M1 + С2М2 + ... + СNМN, все TovMax: C×M = Мах(С1М1, ... ,СNМN). кцикл При: N > 0. Прежде чем приступить к составлению алгоритмов и программ, убедимся в правильности выбранного способа решения. Для этого проверим результаты на первых шагах, в середине и в конце вычислений. На первом шаге при k = 1 результат s1 = s0 + С1М1 = С1M1, max1 = С1М1. На втором шаге вычислений будут получены следующие значения: s2 = s1 + С2М2 = C1M1 + С2М2, max2 = С2М2, при С2М2 > max1 = Мах(mах1, С2М2), max1, при С2М2 £ max1 = Мах(mах1, С2М2). На третьем и последующих шагах в общем случае будут получаться результаты: sk = sk-1 + CkMk = C1M1 + … + CkMk, maxk = Max(maxk-1, СkМk) = Мах(С1М1, ..., СkМk). Для доказательства этих утверждений необходимо предположить, что они выполняются для случая k-1: sk-1 =C1M1 +...+ Ck-1Mk-1, maxk-1 = Max (C1M1, …,Ck-1Mk-1), и подставить эти выражения в соотношения для sk и mахk: sk = sk-1 + CkMk = C1M1 + … Ck-1Mk-1 + CkMk, maxk = Max(maxk-1, СkМk) = Мах(С1М1, ..., СkМk). В силу математической индукции эти утверждения верны для всех k = 1, 2, ..., N. Поэтому на последнем шаге вычислений при k = N будут получены окончательные результаты: sN = sN-1 + CNMN = C1M1 + … + CNMN, maxN = Max(maxN-1, СNМN) = Max(C1M1, ... , СNМN). Что и требовалось в постановке задачи. Следовательно, выбранный способ решения поставленной задачи правилен и на его основе можно приступать к составлению соответствующих алгоритма и программы. Для систематичности разработки примем следующий сценарий диалога и представление исходных данных в операторахdata. СценарийПредставление данных
список товаров товар цена кол-во <тов1> <с1> <т1> * dan: 'сведения о товарах … .... ... data яблоки, 8000, 3 сумма = <Sum> data бананы, 4000, 2 Максимум data арбузы, 1000, 20 <товар> <стоим> data «», 0, 0
Приведем алгоритм и программу решения поставленной задачи в соответствии с выбранным сценарием и представлением данных. Алгоритм Программа алг «сумма и максимум» ' сумма и максимум нач сls вывод («список товаров») ? «список товаров» вывод («товар цена кол-во») ? «товар цена кол-во» s := 0; k = 0 s = 0: k = 0 цикл do чтение (тов, с, т) read tv$, с, m при тов = «» выход if tv$ = «» then exit do k := k + 1 k = k + 1 вывод (тов, с, т) ? fv$; с; m s :=s + cm s= s + c(m если k = 1 то if k = 1 then max := c×m max = c×m ToвMax := тов ТМ$ = tv$ инес c(m > max то elseif c(m > max then max := c×m max = c×m ToвMax := тов TM = tv$ кесли end if кцикл loop вывод («cyммa=»,s) ? «cyммa=»,s вывод («Максимум») ? «Максимум» вывод (ToвMax, max) ? TM$, max кон end Сравнение результатов выполнения представленных алгоритма и программы с описанием выбранного способа решения показывает их полное соответствие друг другу.
АлгоритмРезультаты выполнения алг «сумма и максимум» Нач вывод («список товаров») список товаров вывод («товар цена кол-во») товар цена кол-во s :=0; k = 0 s0 =0 [k = 0] Цикл
|