![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 1864; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.124.247 (0.01 с.) |