пок, зроблених у кожному з місць. Проходить по всьому стеку і записує для кожного з місць вартість у змінну, якщо вартість більше попередніх, потім виводить місце покупки, товар, ціну і дату покупки. Вхідний параметр - вершина стека. Код програми представлений у Додатку 1. Лістинг 9.Threep: TPElem (Вершина стека) Висновок кількості покупок за кожен квартал минулого року, проходить по стеку, визначає, якому кварталу належить запис, і збільшує лічильник для кожного кварталу. Виводить квартал і кількість придбаних товарів за кожний з них. Пропонує вивести товари, придбані за кожен квартал. При позитивній відповіді проходить по стеку і при приналежності потрібного кварталу (по порядку) виводить номер запису, товар, місце покупки, ціну і дату покупки. Код програми представлений у Додатку 1. Лістинг 10.Fourp: TPElem (Вершина стека) Висновок загальної вартості покупок, зроблених за заданий період в заданому місці, проходить по стеку, якщо дата входить у вказаний період і місце покупки співпадає з місцем, підсумовує ціни. Пропонує вивести товари, придбані за вказаний період в зазначеному місці покупки. Якщо відповідь позитивна, то проходить по стеку, і якщо дата покупки входить у вказаний період і місце покупки співпадає з місцем, то виводить номер запису, товар, місце покупки, ціну і дату покупки. Вхідний параметр - вершина стека. Код програми представлений у Додатку 1. Лістинг 11.ViborW: string (рядок для введення команди) p: TPElem (Вершина стека) b: Integer (Загальне у елементом тов) k: Integer (лічильник номери елементів) Процедура пропонує користувачеві ввести команду. Як тільки користувач вводить команду, програма шукає цю програму і переходить на потрібну процедуру. Код програми представлений у Додатку 1. Лістинг 12. br/>
3. Опис алгоритмів
. Додавання елемента в стек. p align="justify"> У процедурі Add реалізований алгоритм додавання елемента в стек згідно блок-схемі на малюнку 1. У цій процедурі виконуються наступні дії:
. Виділення пам'яті під елемент лінійного списку. p align="justify">. Введення даних користувачем. p align="justify">. Перевірка на вміст у стеці елементів. p align="justify">. Якщо стек містить елементи, то створюється посилання на попередній елемент, і вершиною стека стає поточний покажчик. Якщо ж стек не містить елементів, то вершиною стека стає поточний покажчик, але не створюється посилання на попередній елемент, тому що це єдиний елемент у стеці.
В
Рис.1. Додавання елемента в стек
Код програми представлений у Додатку 1 Лістинг 1
. Видалення з стека. p align="justify"> У процедурі Del реалізований алгоритм видалення елемента з стека згідно блок-схемі на малюнку 2. У цій процедурі виконуються наступні дії:
. Вказівником присвоюється вершина стека (тобто стек розглядається з його вершини). p align="justify">. ...