46221

Стек

Доклад

Информатика, кибернетика и программирование

Типичный пример модуля определение стека. Здесь необходимо решить такие задачи: Предоставить пользователю интерфейс для стека например функции push и pop. Гарантировать что представление стека например в виде массива элементов будет доступно лишь через интерфейс пользователя. Обеспечивать инициализацию стека перед первым его использованием.

Русский

2013-11-20

14.63 KB

0 чел.

Вопрос7. Стек

Со временем при в проектировании программ акцент сместился с организации процедур на

организацию структур данных.  Помимо всего прочего это вызвано и ростом размеров программ.

Модулем обычно называют совокупность связанных процедур и тех данных, которыми они управляют.

Парадигма программирования приобрела вид:

Определите, какие модули нужны; поделите программу так, чтобы данные были скрыты в этих модулях

Эта парадигма известна также как  "принцип сокрытия данных".  Если в языке нет возможности

сгруппировать связанные процедуры вместе с данными,  то он плохо поддерживает модульный стиль

программирования. Теперь метод написания "хороших" процедур применяется для отдельных процедур

модуля. Типичный пример модуля - определение стека. Здесь необходимо решить такие задачи:

[1]  Предоставить пользователю интерфейс для стека (например, функции push () и pop ()).

[2]  Гарантировать, что представление стека (например, в виде массива элементов) будет доступно

лишь через интерфейс пользователя.

[3]  Обеспечивать инициализацию стека перед первым его использованием.

Использовать стек можно так:

#include "stack.h"  // используем интерфейс стека

void some_function ()

{

push ( 'c' );

char c = pop ();

if ( c != 'c' )  error ( "невозможно" );

}

Допустим,  что описание интерфейса находится в файле stack.h,  тогда реализацию стека можно

определить следующим образом:

#include "stack.h"  // используем интерфейс стека

static char v [ stack_size ];     // ``static'' означает локальный

                                                   // в данном файле/модуле

static char * p = v;  // стек вначале пуст

void push ( char c )

{

//проверить на переполнение и поместить в стек

}

char pop ()

{

//проверить, не пуст ли стек, и считать из него

}


 

А также другие работы, которые могут Вас заинтересовать

42127. Коефіцієнт впевненості. Ймовірність в експертних системах 39.5 KB
  Методичні вказівки до виконання лабораторної роботи Коефіцієнт впевненості – це число яке означає ймовірність або ступінь впевненості з якою можна вважати даний факт або правило достовірним. Коефіцієнт впевненості може бути розрахований наприклад так: КВ[H E]=MD[H E] – MND[H E] 1 КВ[H E] – коефіцієнт впевненості в гіпотезі H з врахуванням факту E MD[H E] – міра довіри H при заданому E MND[H E] – міра недовіри H при заданому E. Обчислити коефіцієнт впевненості для логічного висновку E який виводиться у двох наступних правилах.
42128. Ймовірність та нечітка логіка в експертних системах 50 KB
  Методичні рекомендації до завдань частини 1 Дотепер використовувалися такі поняття як “росте†або “падаєâ€. Наприклад поняття “росте†відносилося до змінних STOCK і DOLLR. У такому контексті слово “росте†називається лінгвістичною змінною. Для оцінки підвищення рівня цін на біржі користуватимемося двома правилами: 40 ЯКЩО ВАЛЮТНИЙ КУРС ДОЛАРА = РОСТЕ ТО ПРОЦЕНТНІ СТАВКИ = ПАДАЮТЬ 10 ЯКЩО ПРОЦЕНТНІ СТАВКИ INT = ПАДАЮТЬ ТО РІВЕНЬ ЦІН STOCK = РОСТЕ і відповідними їм рівняннями ймовірністі: Ця таблиця міститиме уточнюючі...
42130. Експертна система в області кооперації 43.5 KB
  Володіє гнучкістю 5 Рівень продажів для різних типів покупців та продавців можна оцінити за таблицею: ПР 1 и ПК 1 Результат продажів середній; висока взаємоповага та суперництво ПР 1 и ПК 2 Результат продажів нижче середнього; продавець з презирством ставиться до покупця и той відмовляється від покупки ПР 1 и ПК 3 Результат продажів вище середнього продавець домінує над покупцем покупець приймає пропозиції продавця ПР 1 и ПК 4 Результат продажів середній; продавець ставиться до покупця з повагою але той йому не довіряє ПР 2 и ПК 1...
42131. Типы паралеллилизма 80.5 KB
  Особенности построения вычислительных систем Конвейерные вычислительные системы Основной принцип построения заключается в том что ускорение вычислений в них достигается за счет разделения всей работы на последовательность более мелких узкоспециализированных операций. Необходимо наличие достаточно сложной операционной системы. Мультипроцессорные вычислительные системы В отличии от матричной системы в мультипроцессорной системы каждый из процессоров имеет свое устройство управления. Память может быть как общей так и не общей...
42132. Программа ввода-вывода для КР 580 ВВ 55 макет М1 71 KB
  Формирование управляющего слова Оно формируется в виде восьмиразрядного управляющего слова. Управляющее слово 92 Разряды порта С индицируются Программа 1 0800 3Е92 MVI92 запись в регистр А цифра 92 управляющее слово 0802 D383 OUT 83 Запись управляющего слова в регистр управляющего слова параллельного адаптера К580 ВВ55 0804 DB80 IN 80 Принять в А байт из порта А 0806 32000B ST0B00 Записать из А в ячейку памяти 0B00 0809 3E55 MVI55 Записать в А число 55 080B D382 OUT 82 Вывести число 55 в порт С 080D C30000 JMP0000 Возврат в монитор В...