Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Описание подпрограммы-функции↑ Стр 1 из 5Следующая ⇒ Содержание книги Поиск на нашем сайте
где Procedure, Function – служебные слова; Имя – имя пользовательской процедуры/функции; Список формальных параметров – состоит из имен параметров с указанием типов параметров, которые перечисляются через «;».Если несколько параметров имеют один тип, то их можно сгруппировать, разделив имена запятой. Если в качестве параметра используется структурированный тип данных (массив, множество, запись или файл), то он должен быть описан в разделе описаний типов Type головной программы. Список формальных параметров может отсутствовать. Например: type ff=array[1..5,1..10] of real; Procedure Max(s:ff; k,n:integer); Тип результата функции – любой простой (вещественный, целочисленный, логический, символьный), строка символов или ранее определенный пользовательский. Тип результата не может быть: массивом, множеством, записью или файлом. Например: Function Factorial (x:byte):real; Результатом вычисления процедуры могут быть несколько величин, в том числе и структурированных типов (массив, множество, запись, файл или строка). Результат присваивается параметрам-переменным. Перед такими параметрами в списке формальных параметров ставится служебное слово Var, действие которого распространяется до ближайшей тоски с запятой. Например: Procedure Kol (st:string[100]; var k1,k2:integer; var L:Boolean); Выходные параметры Область действия переменной определяется местом ее объявления. Если переменная используется только в рамках одной процедуры/функции, то она называется локальной. Если действие распространяется на несколько вложенных процедур/функций, то такая переменная называется глобальной. Локальные данные во внешнем окружении не действуют. Выделение памяти под локальные данные происходит автоматически в начале выполнения подпрограммы, а освобождение – после выполнения последнего оператора подпрограммы. Если имена глобальных и локальных идентификаторов совпадают, то действует только внутренний локальный идентификатор. Различают формальные параметры – параметры, определенные в заголовке подпрограммы, и фактические – выражения, задающие конкретные значения при обращении к подпрограмме. В момент замены формальных параметров фактическими должны выполняться следующие условия: - количество формальных и фактических параметров должно быть одинаковым; - должен совпадать порядок следования параметров; - должны совпадать их типы.
Классификация способов передачи параметров (формальных): 1) по механизму передачи: a) передача по значению – value; b) передача по адресу (ссылке) – adr; 2) по взаимодействию вызываемой и вызывающей подпрограмм: a) только как входной параметр- in (input); b) только как выходной параметр – out (output); c) как входной и как выходной параметр – inout (input|output). Язык Pascal поддерживает 3 способа передачи параметров: value-in (параметры значения), adr-in (параметры-константы), adr-inout (параметры-переменные).
I. Перед параметрами- (value-in) в списке формальных параметров дополнительных служебных слов не ставится. В ячейки памяти формального параметра, выделенные при вызове подпрограммы, передается копия значения фактического параметра и обратно не возвращается. В качестве фактических параметров нельзя использовать файловый тип данных. II. Перед параметрами-константами (adr-in) в списке формальных параметров ставится служебное слово Const. В ячейки памяти формального параметра, выделенные при вызове подпрограммы, передается копия адреса фактического параметра. По имеющемуся адресу разрешено только считывать значение фактического параметра, а изменять запрещено. В качестве фактических параметров нельзя использовать файловый тип данных. III. Перед параметрами-переменными (adr-inout) в списке формальных параметров ставится служебное слово Var. В ячейки памяти формального параметра, выделенные при вызове подпрограммы, передается копия адреса фактического параметра. По имеющемуся адресу разрешено считывать значение фактического параметра и изменять их. Измерение значений в ячейках памяти фактических параметров происходит во время выполнения операторов подпрограммы. В качестве фактических параметров можно использовать любой тип данных. Например: Type ff=file of real; massiv= array[1..20,1..30] of char; ... Procedure poisk (Const a:massiv; n,k:integer; Var x:ff);
параметры- параметры- параметры- константы значения переменные
Процедура Exit() – используется для досрочного выхода из подпрограммы. Например: Описать функцию, определяющую первое отрицательное число в массиве.
Type mas=array[1..100] of real; Function minus (Const b:mas; n:integer): real; Va r i:integer; {описание локальных данных} Begin minus:=0; {функции присваивается значение} For i:=1 to n do If b[i]<0 then begin minus:=b[i]; {функции присваивается значение} Exit {досрочное завершение функции} end; end; Пример 1: Используя подпрограмму вычисления факториала вычислить биноминальный коэффициент для натуральных чисел n и m.
Тема 2.7 Строки символов Строка – это последовательность символов кодовой таблицы ASCII, заключенная в апострофы (одинарные кавычки), длинной от 0 до 255 символов. Тип STRING (строка символов) в языке Pascal широко используется для обработки текстовой информации. Он во многом похож на одномерный массив символов. Массив символов имеет фиксированную длину(количество элементов), которая определяется при описании (Var C:array [0..N] of char ).
Способы описания строк
где n- максимальное количество символов в строке (по умолчанию n =255). Может быть любой константой порядкового типа. Ввод строк осуществляется процедурой Readln. За одну процедуру можно ввести только одну строку. К символу строки можно обратиться как к элементу одномерного массива. Любой символ занимает в оперативной памяти 1 байт. Самый первый байт в строке имеет индекс 0 и содержит текущую длину строки.
Например: Var st: string[11]; x:byte; Begin Readln(st); {ввод строки st=’молоко’} if st[ 5 ]=’A’ then... x:= ord(st[0]); {x – текущая длина строки} ... End.
i = 0 1 2 3 4 5 6 7 8 9 10 11 (номер байта)
Операции над строками 1) Объединение строк (конкатененация) à + Например: Var s,s1,s2: string; S1:=’ком’; S2:=’пот’; S:=S1 + S2; {s=‘компот’} 2) Сравнение строк (>, <, <=, >=, = < >) Выполняется посимвольное сравнение строк по кодам таблицы ASCII. Символ с большим кодом дает большее значение всей величине (строке). Перед сравнением автоматически выравниваются длины сравниваемых строк. К более короткой строке справа добавляется недостающее количество пробелов. Например: ‘Сол о ма ‘ < ‘Сол ь ’ т.к. буква о в машинном алфавите стоит до буквы ь, а значит ее код меньше.
|
|||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-15; просмотров: 347; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.67.56 (0.01 с.) |