Главная » Просмотр файлов » metod_15.03.04_atppp_oaip_ump_2016

metod_15.03.04_atppp_oaip_ump_2016 (1016599), страница 37

Файл №1016599 metod_15.03.04_atppp_oaip_ump_2016 (Методические документы) 37 страницаmetod_15.03.04_atppp_oaip_ump_2016 (1016599) страница 372017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 37)

Процедуры и функцииEof, Erase, ReName и loResult рассмотрены ранее.Процедура Seek смещает указатель файла к требуемому компоненту файла. Формаобращения к процедуре Seek:Seek ( файловая-переменная, номер-компонента ) ;где номер-компонента — выражение типа LONGINT, номер требуемогокомпонента; первый компонент файла имеет номер 0.Например: Seek (F, 0) ; - смещение указателя к началу файла F.Функция FileSize возвращает значение типа LONGINT, которое содержитколичество компонентов (записей) файла. Форма обращения:FileSize ( файловая-переменная );168Например: N := FileSize ( F ) ; – определение значения N − количества компонентовфайла F.Для перемещения указателя в конец файла, например, для его дополнения новымизаписями, можно использовать следующее обращение:Seek ( F, FileSize (F) ) ;где F – файловая-переменная.Функция FilePos возвращает значение типа LONGINT, порядковый номер тогокомпонента файла, который будет обрабатываться следующей операцией ввода-вывода.Форма обращения к функции:FilePos ( файловая-переменная ) ;Например: FilePos ( F );.Для перемещения указателя к предыдущему компоненту файла, например ккомпоненту, найденному с помощью программы, можно использовать обращение кфункции Seek в виде:Seek (F, FilePos (F) – 1 ) ;После этого можно, например, возвратить скорректированную запись, т.

е. записатьее на прежнее место процедурой Write ее обновленное значение.Процедура Truncate отсекает часть файла от текущего положения файловогоуказателя до конца файла. Процедура Truncate применима к любым типам файлов,кроме текстовых. Для усечения файла он должен быть открыт для записи или чтения.Формат обращения к процедуре Truncate:Truncate ( файловая-переменная );Например: Truncate ( F );.Пример схемы алгоритма процедуры, использующей усечение файла:169Пример соответствующего ей фрагмента программы:В примере производится поиск и удаление записи с требуемой фамилией. Еслипоиск неуспешен, выдается сообщение, что TFM ошибочна.

Если поиск успешен, то спомощью процедуры Р выводится содержимое удаляемой записи. Удаление записи,содержащей фамилию, заданную в TFM, производится путем сдвига всех записей,расположенных после записи с TFM, на одну запись к началу файла F и усечения(укорочения) файла.Сначала определяется количество записей файла F: KL = FileSize (F) ;.Для поиска удаляемой записи вводится требуемая фамилия из файла FI впеременную TFM.Вводится запись из файла F в переменнуюZ. Анализируется ее значение Z.FIO:1) если Z.FIO <> TFM, анализируется "конец файла F";2) если Z.FIO = TFM, т.

е. найдена удаляемая запись, выводится сообщение«Удаляем запись» и ее содержимое с помощью процедуры Р.8.8. МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ170«Принцип модульности» оказывает наиболее сильное влияние на дисциплинумышления при решении задач. Он состоит в декомпозиции первоначального задания всвязную систему подзадач: решение части полученных подзадач известно, а остальныеподзадачи необходимо решать самостоятельно.Модульное программирование включает методы разработки сложных программпутем их декомпозиции, в том числе выбор типов модулей и особенностифункционирования каждого из них.Модуль – это подпрограмма, относительно самостоятельный фрагмент программыдля функционально законченной обработки данных.

Разбиение программы наподпрограммы повышает надежность, наглядность и живучесть программы, облегчаетпонимание программы в процессе ее освоения и позволяет в5сти разработкуколлективом программистов.Используя модули, можно:1) разрабатывать типовые подпрограммы для использования одним или многимипрограммистами;2) разделять большие алгоритмы на части и разрабатывать их программы разнымипрограммистами невысокой квалификации;3) использрвать модули, разработанные для других языков программирования;4) использовать нисходящий метод разработки программ (смотри структурноепрограммирование).Последовательное выделение из исходной задачи все более простых подзадачобеспечивает представление алгоритма решения исходной задачи как композициюалгоритмов выделенных подпрограмм.

Алгоритм решения любой из выделенныхподзадач может быть реализован совокупностью процедур и функций. Однако напрактике, когда речь идет о больших программных разработках, возможностейпроцедур и функций оказывается недостаточно:- большой объем текста программы, даже хорошо структурированной, затрудняетее понимание;- всякий раз после внесения в программу изменений, даже самых минимальных,вся программа должна быть перекомпилирована;- архитектура многих современных ЭВМ предполагает, что программа привыполнении должна занимать непрерывный участок не более одного сегмента (64Кбайт), несмотря на наличие большого объема свободной памяти.Поэтому структурные элементы задачи, полученные в процессе проектирования,часто реализуются в виде программных модулей – дальнейшего развития понятияподпрограммы.Классификация и вызовы подпрограммАлгоритм решения любой из выделенных подзадач общей задачи (смотриструктурное программирование) реализуется программным модулем, иначеподпрограммой.

Фактически, еще не имея текста подпрограммы, уже можнозафиксировать ее назначение и заголовок (имя подпрограммы, число формальныхпараметров, их смысл и порядок). Подпрограммы на Паскале могут быть в виде171процедур и функций: внутренних, внешних и библиотечных относительно основнойпрограммы. Схематично вложенность подпрограмм выглядит так:ПрограммаПодпрограмма АПодпрограмма А1Подпрограмма А2Подпрограмма ВПодпрограмма В1Подпрограмма В2Подпрограмма В21Подпрограмма В22Библиотечные подпрограммы всегда внешние. Если текст подпрограммы включен(вложен) в текст другой программы или подпрограммы, то она внутренняя поотношению к своей внешней программе, в которую она вложена. Выполнение главнойпрограммы начинает ОС или среда Турбо Паскаля.

Остальные подпрограммывыполняются под управлением главной, т.е. вызываются (активизируются) из главной.АВС01А1А2В1В2В21 В222172ВнутренниеВнешниеБиблиотечныеЛюбая подпрограмма имеет ту же структуру, как и основная программа, но с двумяотличиями:• заголовок процедуры и функции имеет другой синтаксис и включает служебноеслово PROCEDURE или FUNCTION;• описание процедуры или функции заканчивается точкой с запятой (а не точкой).Важно понять разницу между подпрограммой и основной программой:подпрограмма хоть и является самостоятельной программной единицей, ноисполняется только тогда, когда к ней обращаются другие программные единицы(основная программа или другие подпрограммы).При вызове подпрограммы выполнение основной программы приостанавливается иуправление передается в подпрограмму. По окончанию работы подпрограммыуправление возвращается основной программе. Подпрограмма, выполнение которойначато, но не закончено, называется активной.Правила вызова подпрограмм:1) из любой программы или подпрограммы можно вызвать любую подпрограмму,расположенную в библиотеке: системной (TPL – файл) или личной (TPU – файл);2) внутренняя подпрограмма может быть вызвана:a) из программы или подпрограммы – первой внешней по отношению к той, изкоторой происходит запрос;b) из подпрограммы одного с ней уровня вложенности:• если текст вызываемой подпрограммы расположен до текста вызывающейподпрограммы, без опережающего описания;• если текст вызываемой подпрограммы расположен после текста вызывающейподпрограммы, но имеет опережающее описание, расположенное до вызывающейподпрограммы;3) из программы и подпрограммы нельзя вызвать подпрограмму, вложенную вдругую подпрограмму.Связь между подпрограммами может быть по управлению и по данным.

Поуправлению она определяется вызовом подпрограммы, переходом к ее выполнению ивозвратом в вызвавшую программу по завершении ее выполнения. Связь по данным(обмен данными) может быть через систему формальных и фактических параметров ичерез глобальные (общие) переменные.Каждое имя (объект), используемое в подпрограмме, должно быть объявлено.Область действия объявленных имен – от точки объявления до конца программы илиподпрограммы, в которой они объявлены.Переменные, используемые в подпрограммах, могут быть:1) глобальные объекты (внешние): объявленные во внешней программе илиподпрограмме и не переобъявленнные в данной;2) локальные объекты (внутренние): определенные в данной подпрограмме,доступные и используемые только в ней и во всех вложенных в нее подпрограммах,в которых они не переобъявлены;1733) формальные параметры, определенные в списке формальных параметров –идентификаторы формальных параметров локальны в подпрограмме.Локальной переменной подпрограммы называется объект (константа, переменная,процедура, функция, массив, строка), объявленный в данной подпрограмме.

Так как иподпрограммы могут быть определены локально, то описания подпрограмм могут бытьвложенными. Описание локальных объектов позволяет ограничивать областьиспользования переменной той подпрограммой, в которой она имеет смысл.Подпрограмма, т.е. фрагмент текста программы, для которого действительноописание объекта, называется его областью видимости. Из вложенности описанийследует и вложенность друг в друга и областей видимости.Любой объект, упоминаемый в подпрограмме, но не описанный в ней, являетсянелокальным. Если его описание принадлежит внешней программе, то нелокальныйобъект называется глобальным.При определении области действия объектов программы необходимо учитывать, чтообъявленные имена и подпрограммы можно использовать только в объявлениях иподпрограммах, расположенных после них по тексту программы.

Все объекты,расположенные до текстов подпрограмм, являются глобальными по отношению к ним.При определении области действия подпрограмм действует правило: текстподпрограммы должен быть до ее вызова либо иметь опережающее описание.Опережающее описание – до вызывающей процедуры дается только заголовоквызываемой процедуры, а вместо тела вызываемой процедуры пишется ключевое словоFORWARD (вперед).Например.PROCEDURE B ( N : BYTE ) ; {опережающее описание В }FORWARD ;{ заголовок функции с параметрами, но нет текста процедуры В }PROCEDURE A (K : BYTE ) ;BEGIN ……..B(K);{вызов процедуры В }………END ;PROCEDURE B ; { нет формальных параметров В }BEGIN ….

{ текст – описание процедуры В }A(N);{ вызов процедуры А – косвенная рекурсия }END ;Процедуры и функцииПроцедура – это подпрограмма вычисления нескольких значений.Процедура имеет описание (текст) и вызов.Описание процедуры содержит заголовок процедуры и блок. Причем блок (телопроцедуры) имеет такое же строение, как и блок программы.Заголовок процедуры:PROCEDURE имя процедуры [ ( список формальных параметров ) ] ; Имяпроцедуры – идентификатор, по которому данная процедура вызывается.174Список формальных параметров в заголовке процедуры необязателен. Процедураможет не иметь результатов в виде возвращаемых в основную программу значений.Например, она может выводить результат в файл, на экран, на печать.Форма оператора вызова процедуры:Имя процедуры [(список фактических параметров)]; Если в описании процедуры нетсписка формальных параметров, то оператор вызовапроцедуры состоит из одного имени процедуры.

Характеристики

Тип файла
PDF-файл
Размер
4,37 Mb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7046
Авторов
на СтудИзбе
259
Средний доход
с одного платного файла
Обучение Подробнее