Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Общая характеристика языка Паскаль.Содержание книги
Поиск на нашем сайте
Язык Паскаль относится к процедурно-ориентированным языкам высокого уровня. Разработан американским ученым Никласом Виртом в 1971г. в качестве языка для обучения программированию. Базой при разработке явился язык Алгол. В настоящее время он получил широкое распространение по ряду объективных причин. Во-первых, по своей идеологии Паскаль наиболее близок к современной методике и технологии программирования. В частности, он достаточно полно отражает идеи структурного программирования, что довольно хорошо видно даже из основных управляющих структур языка. Во-вторых, Паскаль хорошо приспособлен для применения технологии разработки программ сверху-вниз (пошаговой детализации). В-третьих, Паскаль содержит большое разнообразие различных структур данных, что обеспечивает простоту алгоритмов, а следовательно снижение трудоемкости при разработке программ. Структура программы на языке Паскаль. Синтаксически программа на языке Паскаль делится на 2 части: заголовок и программный блок. Общий вид заголовка: PROGRAM <имя программы>[(<список файлов>)]; Заголовок программы может отсутствовать. Стандартные файлы INPUT (входной) и OUTPUT (выходной) также могут опускаться, т.к. принимаются по умолчанию. Блок программы состоит из описательной и исполнительной частей (описательная часть предшествует исполнительной части) и включает следующие разделы: LABEL <описание меток>; - раздел описания меток CONST <описание констант>; - раздел описания констант TYPE <описание типов>; - раздел описания типов VAR <описание переменных>; - раздел описания переменных PROCEDURE <описание процедуры>; - раздел описания FUNCTION <описание функции>; процедур и функций BEGIN <исполнительная часть программы> - раздел операторов END. Текст программы записывается в виде строк длиной не более 127 символов. В Турбо Паскале порядок следования разделов описаний произвольный и каждый из разделов может повторяться несколько раз или отсутствовать. Раздел операторов (начинается с BEGIN и заканчивается END) состоит из операторов, разделенных точкой с запятой. Исполнительная часть программы является обязательной, может быть единственной частью программы. Видом работы компилятора можно управлять директивами. Их включают в исходный текст в виде комментариев со специальным синтаксисом. Если процедура или функция хранятся в виде отдельного файла, то для включения их описания в исходный текст программы компилятору задается директива INCLUDE следующего вида: {$I <имя файла>}, которая должна быть помещена в разделе описаний процедур и функций Оператор присваивания. Наиболее простым и часто используемым оператором языка является оператор присваивания: <переменная>: = <выражение>; Выражение – это формула для вычисления значения. Она образуется из операндов, соединенных знаками операций и круглыми скобками. В качестве операндов могут выступать переменные, константы, указатели функций. Тип переменной в левой части оператора присваивания обычно должен совпадать с типом значения выражения в правой части. Возможны случаи несовпадения типов, например, когда слева переменная вещественного типа, а справа выражение целого типа. Выражения являются составной частью операторов. Составной оператор Важным инструментом в Турбо-Паскале является понятие составного оператора. Составной оператор представляет собой последовательность инструкций, заключенную в операторные скобки Begin...End. Перед ключевым словом End точку с запятой можно опускать. Благодаря этому понятию, можно в качестве одного действия в операторах ветвления и цикла записывать последовательность операторов. В нашем примере в операторе If для A[I] > Max выполняются два оператора присваивания в рамках одного составного оператора. begin Max:= A[I]; NMax:= I; End 4. Понятие процедуры и функции в Паскале. Их назначение, применение, варианты размещения в программе Для реализации многократно повторяющихся участков вычислений и для обеспечения модульности программ в языке Турбо Паскаль предусмотрена возможность использования процедур и функций. Процедура - это поименованное сложное действие, которое представляет собой совокупность операторов, вычисляющих некоторое число результатов в зависимости от некоторого числа аргументов. Процедура или функция (общее название - подпрограмма) определяется в разделе описаний основной программы или другой процедуры(функции). Процедура(функция) имеет ту же структуру, что и основная программа, т.е. состоит из заголовка, описательной части и выполняемой части. Синтаксис заголовка процедуры: PROCEDURE < имя процедуры > [(<список формальных параметров >)]; Например: PROCEDURE PR1 (A,B,C: INTEGER; VAR S: REAL); - Здесь PR1 – имя процедуры, а А,В,С,S – имена переменных, являющихся параметрами. В отличие от основной программы заголовок в процедуре обязателен, но завершается процедура не точкой, а точкой с запятой. Описание процедуры выполняется с формальными параметрами. Оператор процедуры служит для вызова процедуры из основной программы или из другой процедуры(функции). Вызов осуществляется в следующей форме: <имя процедуры > [(<список фактических параметров>)]; Таким образом, для приведенного заголовка процедуры можно написать такой оператор вызова: PR1 (A,B,C,S); Формат списка параметров в заголовке процедуры и при вызове процедуры отличаются. При вызове переменные, константы или выражения следуют через запятую, а в заголовке запись переменных напоминает объявление переменных в разделе описания переменных. Для всех элементов списка должен быть указан тип данных. Несколько переменных, отнесенных к одному типу, пишутся через запятую, а группы переменных различного типа отделяются точкой с запятой. После обращения к процедуре управление передается на выполнение следующего за вызовом процедуры оператора. Функция предназначена для вычисления какого-либо одного значения и используется в выражениях аналогично стандартным функциям. Синтаксис заголовка функции: FUNCTION < имя функции >[(<список формальных параметров>)]: <тип результата>; Например: FUNCTION PRF (A,B,C: INTEGER): REAL; Отличие описания функции от процедуры: • результатом обращения к функции может быть одно единственное значение; • идентификатор результата не указывается в списке формальных параметров; • в выполняемой части функции, хотя бы один раз, имени функции должно быть присвоено значение результата (чаще всего перед выходом из функции); • после списка формальных параметров задается тип результата; • после обращения к функции управление передается на выполнение следующей операции данного выражения (в соответствии с приоритетом). Для вызова функции используется указатель функции (имя функции со списком фактических параметров), который обязательно должен быть частью какого-либо выражения (входить в правую часть оператора присваивания, присутствовать в списке данных оператора вывода, в логическом выражении условного оператора и т.д.). Для приведенного заголовка функции вызов функции может быть осуществлен одним из следующих способов: S:=PRF (A,B,C); Writeln (PRF (A,B,C)); If PRF (A,B,C)>20 then K=K+1;
Правила построения процедуры, размещение ее в программе обращение к ней из вызывающей программы. Обмен информацией между процедурой и вызывающей программой: понятие формального и фактического параметра. Технологии передачи параметров – по ссылке и по значению. Применение этих технологий Процедура - это поименованное сложное действие, которое представляет собой совокупность операторов, вычисляющих некоторое число результатов в зависимости от некоторого числа аргументов. Синтаксис заголовка процедуры: PROCEDURE < имя процедуры > [(<список формальных параметров >)]; Например: PROCEDURE PR1 (A,B,C: INTEGER; VAR S: REAL); - Здесь PR1 – имя процедуры, а А,В,С,S – имена переменных, являющихся параметрами. В отличие от основной программы заголовок в процедуре обязателен, но завершается процедура не точкой, а точкой с запятой. Описание процедуры выполняется с формальными параметрами. Оператор процедуры служит для вызова процедуры из основной программы или из другой процедуры(функции). Вызов осуществляется в следующей форме: <имя процедуры > [(<список фактических параметров>)]; Таким образом, для приведенного заголовка процедуры можно написать такой оператор вызова: PR1 (A,B,C,S); Формат списка параметров в заголовке процедуры и при вызове процедуры отличаются. При вызове переменные, константы или выражения следуют через запятую, а в заголовке запись переменных напоминает объявление переменных в разделе описания переменных. Для всех элементов списка должен быть указан тип данных. Несколько переменных, отнесенных к одному типу, пишутся через запятую, а группы переменных различного типа отделяются точкой с запятой. После обращения к процедуре управление передается на выполнение следующего за вызовом процедуры оператора. При описании процедуры (функции) в ее заголовке могут быть указаны параметры следующих видов: - параметры-значения; - параметры-переменные; - параметры-константы; - параметры-процедуры; - параметры-функции. При записи параметров необходимо помнить: - число формальных и фактических параметров должно быть одинаково; - порядок следования и тип фактических параметров должен совпадать с порядком и типом соответствующих формальных параметров; - идентификаторы формальных и фактических параметров могут совпадать; - формальные параметры в языке Турбо Паскаль в заголовке находятся вместе с описаниями и объявлять их в разделе описаний процедуры(функции) не требуется; - формальные параметры должны иметь простые или ранее определенные типы. При передаче в подпрограмму массива его тип объявляют предварительно в разделе описания типов TYPE. Например. TYPE TV=ARRAY [1..30] OF INTEGER; TM=ARRAY [1..20,1..20] OF REAL; ... PROCEDURE TOP (A:TM; VAR B: TV; N: INTEGER); ... Здесь описаны два типа массивов. TV – для одномерного массива и TM для двумерного массива. Затем в списке формальных параметров для переменных А и В используются эти ранее определенные типы при описании соответственно матрицы и вектора. Формальные параметры – данные, с которыми работает подпрограмма (ПП). Это внутренние данные для ПП. Они перечисляются в заголовке ПП и связаны с фактическими параметрами. Фактические параметры – данные, передаваемые в ПП и возвращаемые из нее. Это внешние для ПП данные, с которыми имеет дело вызывающая часть программы. В ПП им соответствуют формальные параметры. Указываются в списке фактических параметров при обращении к ПП. Список параметров, задаваемых в заголовке процедуры или функции, обеспечивает связь подпрограммы с вызывающей программой. Через него в подпрограмму передаются исходные данные и возвращается результат (в процедуре). В языке Турбо Паскаль предусмотрены два принципиально отличающихся механизма передачи параметров: по значению и по ссылке. Параметры-значения. При передаче параметров по значению в стеке, в котором осуществляется выделение памяти под внутренние (локальные) переменные подпрограммы, выделяется дополнительная память, в которую копируются значения соответствующих фактических параметров. В вызывающей программе в качестве аргумента подпрограммы для параметра-значения может использоваться не только переменная, но и выражение. После завершения работы подпрограммы выделенная этим параметрам память становится недоступной, поэтому передача параметров по значению не может использоваться в подпрограммах для получения результатов. Параметры-переменные. При вызове по ссылке в подпрограмме память под передаваемые переменные не отводится. В подпрограмму передается не значение переменной, а ссылка на место в памяти соответствующего фактического параметра. Подпрограмма, выполняющая некоторые действия с этой переменной, в действительности производит действия с соответствующим фактическим параметром, поэтому после выполнения процедуры, изменения, выполненные над этой переменной, сохраняются. Перед записью параметров-переменных в списке формальных параметров указывается ключевое слово VAR (действует до "; "). Для вычисляемых результатов могут быть использованы только параметры-переменные. Формальным параметрам-переменным не могут соответствовать в качестве фактических значений константы или выражения,так как они не имеют адреса для передачи. В качестве параметров-переменных могут быть использованы массивы и строки открытого типа, у которых не задаются размеры. Открытый массив представляет собой формальный параметр подпрограммы, описывающий базовый тип элементов, но не определяющий его размерность и границы. Индексация элементов в этом случае начинается с нуля. Верхняя граница открытого массива возвращается функцией HIGH. Правила построения функции в Паскале, размещение ее в программе, обращение к ней из вызывающей программы. Обмен информацией между функцией и вызывающей программой: понятие формальных параметров, их описание, особенности технологии возврата результата Функция предназначена для вычисления какого-либо одного значения и используется в выражениях аналогично стандартным функциям. Синтаксис заголовка функции: FUNCTION < имя функции >[(<список формальных параметров>)]: <тип результата>; Например: FUNCTION PRF (A,B,C: INTEGER): REAL; Формальные параметры – данные, с которыми работает подпрограмма (ПП). Это внутренние данные для ПП. Они перечисляются в заголовке ПП и связаны с фактическими параметрами. Отличие описания функции от процедуры: • результатом обращения к функции может быть одно единственное значение; • идентификатор результата не указывается в списке формальных параметров; • в выполняемой части функции, хотя бы один раз, имени функции должно быть присвоено значение результата (чаще всего перед выходом из функции); • после списка формальных параметров задается тип результата; • после обращения к функции управление передается на выполнение следующей операции данного выражения (в соответствии с приоритетом). Для вызова функции используется указатель функции (имя функции со списком фактических параметров), который обязательно должен быть частью какого-либо выражения (входить в правую часть оператора присваивания, присутствовать в списке данных оператора вывода, в логическом выражении условного оператора и т.д.). Для приведенного заголовка функции вызов функции может быть осуществлен одним из следующих способов: S:=PRF (A,B,C); Writeln (PRF (A,B,C)); If PRF (A,B,C)>20 then K=K+1;
7. Сравнительный анализ возможностей процедуры и функции. Возможности преобразования процедуры в функцию и наоборот Процедура - это поименованное сложное действие, которое представляет собой совокупность операторов, вычисляющих некоторое число результатов в зависимости от некоторого числа аргументов. Синтаксис заголовка процедуры: PROCEDURE < имя процедуры > [( <список формальных параметров > )]; Функция предназначена для вычисления какого-либо одного значения и используется в выражениях аналогично стандартным функциям. Синтаксис заголовка функции: FUNCTION < имя функции >[(<список формальных параметров>)]: <тип результата>; Размещение: Процедура или функция (общее название - подпрограмма) определяется в разделе описаний основной программы или другой процедуры(функции). Процедура(функция) имеет ту же структуру, что и основная программа, т.е. состоит из заголовка, описательной части и выполняемой части. Отличие описания функции от процедуры: · результатом обращения к функции может быть одно единственное значение; · идентификатор результата не указывается в списке формальных параметров; · в выполняемой части функции, хотя бы один раз, имени функции должно быть присвоено значение результата (чаще всего перед выходом из функции); · после списка формальных параметров задается тип результата; · после обращения к функции управление передается на выполнение следующей операции данного выражения (в соответствии с приоритетом). Преобразование процедуры в функцию: Только если на выходе процедуры 1 результат PROCEDURE P1 (A,B,C: Integer; VAR Sum: Integer) Begin Sum:=A+B+C; End; Преобразование функции в процедуру: ВОЗМОЖНО ВСЕГДА
|
||||
Последнее изменение этой страницы: 2016-08-15; просмотров: 1850; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.10.200 (0.007 с.) |