Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Глобальные и локальные переменные, параметры процедур и функций↑ ⇐ ПредыдущаяСтр 6 из 6 Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Технология программирования с использованием процедур и функций, организованных пользователем, дает ряд преимуществ. Именно благодаря ним обеспечивается возможность: - организовать работу нескольких программистов над одной программой с последующим объединением отдельно отлаженных и относительно независимых блоков в единое целое; - проводить отладку отдельных блоков и только после этого программы в целом; - значительно экономить память, так как многократно используемый участок (процедура или функция) заносится в память только один раз; - упростить внесение изменений в программу, так как исправление ошибки в одном блоке не вызывает корректировку других блоков. ПАСКАЛЬ допускает пять основных способов использования и размещения подпрограмм: · основная программа, процедуры и функции расположены в одном файле; · подпрограммы расположены в отдельных файлах и включаются в основной файл с помощью директивы компилятора $; · подпрограммы организуются как оверлейные структуры и поочередно загружаются в одно и то же место памяти; · подпрограммы пишутся на машинном коде и включаются в программу одним из вышеуказанных способов; · подпрограммы оформляются как "внешние" и вызываются из основной программы.
Параметры могут иметь любой тип, включая структурированный. ПАСКАЛЬ поддерживает два различных метода передачи параметров: по значению и по ссылкам. Когда параметры передаются по значениям, формальный параметр является переменной, локальной в блоке. Фактический параметр может быть любым выражением того же типа, что и соответствующий ему формальный параметр. Такие параметры называются параметрами-значениями. Их главная отличительная черта – изменение формальных параметров не влечет за собой изменения фактических параметров. Пример типичной записи параметров-значений в описании процедур и функций: Procedure Копе (А, В, С: integer; D: real); Function Docs (S1, S2: real; Flag: boolean): real; Тип параметров в секции формальных параметров должен быть указан в виде определенного ранее идентификатора типа. Так, запись Procedure Okl (Mas1: array [1..12] of real); Type Massiv = array [1..12] of real; Procedure Okl (Mas1: Massiv); Когда параметр передается посредством ссылки, фактический параметр является переменной. Формальный параметр обозначает эту фактическую переменную в течение всего времени активизации блока. Параметры, переданные посредством ссылки, называются параметрами-переменными. Их характерный признак – любое изменение формального параметра означает изменение фактического параметра. Для описания параметров-переменных в секции формальных параметров служит зарезервированное слово Var. При использовании параметров-переменных формальные и фактические параметры должны совпадать по количеству и типу. Однако возможны два исключения: Формальные параметры без типа несовместимы ни с каким типом. Допустимо сочетание параметров-значений и параметров-переменных в одной секции формальных параметров: Procedure Prots (Var А, В, С: real; S: boolean); Такая запись означает, что А, В, С – параметры-переменные, а S – параметр-значение. Напомним, что если процедура должна возвратить в программу определенные результаты, они должны быть специфицированы как параметры-переменные, т. е. в сочетании со словом Var, в противном случае результаты не будут возвращены. Процедуры пользователя Процедура пользователя представляет собой именованную группу операторов, реализующую определенную часть обшей задачи и вызываемую при необходимости для выполнения по имени из любой позиции раздела операторов. Описание процедуры включает заголовок и тело процедуры. Заголовок состоит из зарезервированного слова Procedure, идентификатора (имени) процедуры и необязательного заключенного в круглые скобки списка формальных параметров с указанием типа каждого параметра. Формат: Procedure <имя>[(формальные параметры)]; Пример. Procedure Sort (A: integer; В: real); Procedure Kvadr (Alpha, Beta: integer; var Gamma: boolean); Procedure SumVed; {алгоритм, реализованный процедурой, не требует формальных параметров} Имя процедуры – идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе: Procedure <имя> [(формальные параметры)]; <разделы описаний> begin <раздел операторов> end; Для обращения к процедуре используется оператор вызова процедуры. Он состоит из идентификатора (имени) процедуры и списка фактических параметров, отделенных друг от друга запятыми и заключенных в круглые скобки. Список параметров может отсутствовать, если процедуре не передается никаких значений. Формат: <идентификатор процедуры> <(параметр, … т, параметр)>; Пример. Sort (А1,В1); {параметры – значения переменных} Kvadr (14,25, True); {параметры – непосредственно значения} Sunf/ed; {фактические параметры не указаны, так как в вызываемой процедуре нет формальных параметров} Параметры обеспечивают механизм замены, который позволяет выполнять процедуру с различными начальными данными. Между фактическими параметрами в операторе вызова процедуры и формальными параметрами в заголовке описания процедуры устанавливается взаимно-однозначное соответствие в результате их перебора слева направо. Количество и тип формальных параметров равны количеству и типу фактических параметров. Ниже приведена программа, реализующая с помощью процедуры без параметров очищение экрана, установку курсора в его центр и вывод слова 'СПРАВОЧНИК'. Program DemoProcedure; Procedure Ekran; begin ClrScr; GoToXY(30,12); Write(‘ СПРАВОЧНИК’) end; Begin Ekran; {вызов процедуры Ekran} End. Если процедура возвращает в программу какие-то значения, соответствующие переменные должны быть описаны как параметры-переменные с использованием слова Var.
Функции пользователя Хотя набор встроенных функций языка ПАСКАЛЬ достаточно широк, он вряд ли может удовлетворить требованиям каждого программиста. Поэтому пользователю предоставлена возможность самому реализовать нужные ему алгоритмы в виде функций и обращаться к ним из программ по мере необходимости. Функция, определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово Function, идентификатор (имя) функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения. Формат. Function < имя> < (Формальные параметры)>:< тип результата > Пример. Function Prov (X, Y, T: integer): real; Function Zx: boolean; Имя функции – уникальный в пределах блока идентификатор. Возвращаемый результат может иметь любой скалярный тип, тип string и тип "указатель". Тело функции представляет собой локальный блок, по структуре аналогичный программе: Function <имя> {(Формальные параметры)>: <тип результата> <разделы описаний> begin <раздел операторов> end; В разделе операторов должен находиться, по крайней мере, один оператор, присваивающий идентификатору функции значение. Если таких присваиваний несколько, то результатом выполнения функции будет значение последнего оператора присваивания. Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип. Для иллюстрации использования функций рассмотрим подпрограмму, которая возводит в степень положительное или отрицательное число.
Program DewoFunction; Var Z: integer; К: real; Function Step (F: real; Exp: integer): real; Var С: integer; T: real; begin if Exp = 0 then Step:= 1 else begin T:= F; for С: = 2 to Abs(Exp) do T: - T * F; if Exp < О then Step:= 1 / T else Step: = T; end end; Begin wri teln (' Введите число:'); read (Z); writeln (Step(Z,3)); {вывод Z в 3-й степени} wri teln (Step(Z,4)); {вывод Z в 4-й степени} К: =1.4; wri teln (Step(K,4)) {вывод К в 4-й степени} End.
ТЕМА 12. Символьные массивы. Строки
Цель лабораторной работы: изучить средства системы программирования Pascal, предназначенные для обработки символов и фрагментов текста – строк. Применять на практике процедуры и функции, разработанные для строкового типа данных. Символьный тип Этот тип данных, обозначаемый ключевым словом char, служит для представления любого символа из набора допустимых символов. Под каждый символ отводится 1 байт. К символам можно применять операции отношения (<, <=, >,>=, =, <>), при этом сравниваются коды символов. Стандартные функции для работы с символами:
Символьные массивы Наиболее простым способом для работы с текстом является применение символьных переменных и линейных массивов, содержащих данные символьного типа (char). VAR ins: array[1..80] of CHAR; В этом случае необходимо использовать все правила, приёмы и методы обработки массивов. Но как показывает практика, такой подход не совсем удобен. Поэтому для работы с текстом в языке Pascal используется специальный тип данных, предназначенный для работы с фрагментами текста – строками (цепочками символов).
|
||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-19; просмотров: 546; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.12.122 (0.01 с.) |