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 ()

{

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

}


 

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

16869. Эволюция, сотворение и термодинамика 47.5 KB
  PAGE 3 Эволюция сотворение и термодинамика Карл Виланд Введение Второй Закон Термодинамики гласит что изолированная система со временем станет более неупорядоченной. В первой части этой статьи мы установили что природное самопреобразование вселе...
16870. Как бы Вы ответили 95 KB
  Как бы Вы ответили Далеко не будучи €œслепой верой€ Христианство можно логически защищать. Кен Хэм Кажется что всё в нашей ежедневной жизни имеет своё начало. Законы науки показывают что даже некоторые вещи которые выглядят неизменными и одинаковыми каждый день
16871. Дизайн человеческого глаза 271 KB
  PAGE 1 Дизайн человеческого глаза Др. Курт Декерт Человек обладает одной из наиболее изумительных зрительных систем. Основные свойства человеческого глаза включают: безупречно скорректированный оптический дизайн точная геометрия материалов контрол...
16872. Молекулярные механизмы: экспериментальная поддержка вывода о Разумном Замысле 158 KB
  Молекулярные механизмы: экспериментальная поддержка вывода о Разумном Замысле Др. Майкл Бихи Для Дарвина клетка и каждая микробиологическая функция были непостижимым черным ящиком. Теперь когда мы можем изучить этот ящик можем ли мы применить теорию Дарвина к нем...
16873. Мутации и новые гены. Можно ли утверждать, что они служат материалом макроэволюции 224.62 KB
  Мутации и новые гены. Можно ли утверждать что они служат материалом макроэволюции Алекс Лунный 1. Макроэволюция основное положение эволюционной теории Понятие макроэволюция является одним из краеугольных камней эволюционной теории основы которой в обязательн...
16874. Дарвинизм как догма 126.18 KB
  Дарвинизм как догма The Morley Institute Inc. June 1998преподаватель биохимии в университете Лихай научный сотрудник Института €œДискавери€ Discovery Institute.Залы академии наук расположены довольно далеко от ковбойских салунов но и у профессоров временами пальцы неудержимо тян...
16875. Научные факты которые опровергают теорию эволюции Перемалыватель Эволюции от Evolution Facts, Inc 1.02 MB
  Научные факты которые опровергают теорию эволюции Перемалыватель Эволюции от Evolution Facts Inc Введение. Ученые говорят об эволюции Ведущие ученые могут коечто сказать Вам об эволюции. Такие утверждения никогда не будут найдены в популярных журналах рядом с вели
16876. Проблема возраста Земли 76 KB
  Проблема возраста Земли Данный краткий специальный обзор составлен канд. геол.минер. наук Л.В.Витте по материалам II Российской конференции по изотопной геохронологии 2527 ноября 2003г. Материалы конференции опубликованы в сборнике Изотопная геохронология в решении про
16877. Очерк естествознания 1.28 MB
  Сергей Вертьянов Очерк естествознания Очерк Сергея Вертьянова – долгожданное и очень серьезное согласование новейших достижений науки с православной точкой зрения. Он замечателен тем что написан с большой тщательностью и выверен на самом высоком научном уровне. Ав