Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Программы, как файловые процедуры

 

Традиционно, переменные в языках процедурного программирования связывают с понятием ячейки памяти, которая подразделяется на внутреннюю (оперативную) и внешнюю (файлы). Мы будем рассматривать такие хранилища информации как частный случай понятия источника и приемника потока данных, а программы – как преобразование таких потоков.

 

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

 

Файлы обеспечивают хранение больших объемов данных, предназначенных (как правило) для долговременного хранения, но обеспечивают относительно низкую скорость обмена с оперативной памятью.

 

Преобразование данных происходит в оперативной памяти. Перед преобразованием программы последовательно читают (копируют) входную информацию из внешнего источника, после него - записывают (копируют) результаты во внешний приемник с помощью операторов ввода-вывода – чтения и записи, соответственно.

 

Определим эти понятия формально, как тип данных.

 

Множеством значений потока является множество всех последовательностей неопределенной длины < a1,…, ai,…,an>, где ai элементы некоторого базового типа d. На каждый момент времени один из них считается текущим значением. Обозначим его через ai, а номер i назовем маркером (потока).

 

На входных потоках определена функция распознавания конца потока eof(f). Эта функция принимает значений true в случае, если i>n.

Оператор чтения из потока read(f,x) определяется следующим образом:

{f→<a1, …, an>, iàI, eof(f)→false}

read(f,x)

{f→<a1, …, an>, x→ai, iàI+1}

При eof(f)=true выполнение оператор read не определено.

 

Для файлов определен также оператор reset(f):

 

{} Reset(f) {ià1}

 

2. Иначе говоря, в любой момент времени можно возвратиться к началу файла (данные сохранятся и доступны для последующей обработки). Для потоков такой возможности может не быть (неизвестно, сохраняются ли данные); маркер принимает начальное значСоответствует определению функций разбором случаев.

 

Частный случай – структура укороченного условного оператора:

 

3. Структура цикла с предусловием

Множество трасс такой структуры описывается просто: S1(x), S1(S1(x)),… S1(S1(S1(x))),…

 

Результатом S(x) выполнения оператора является S1k(x), где i0 – наименьший номер такой, что условие B называют условием продолжения цикла, а оператор S – телом цикла.

 

<== предыдущая лекция | следующая лекция ==>
Структурное программирование. Трассировка программы | Итерационные и рекуррентные последовательности
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 291; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.