КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Понятие процедуры и функции
Процедуры и функции Вопросы для самопроверки Множества как типизированная константы Пример использования множеств Задача №1. Пользователь вводит 20 строк (маленькими буквами). Напечатать на экране в алфавитном порядке набор первых символов вводимых строк. Если в разных строках на первой позиции находится один и тот же символ, напечатать его один раз. Пример: program primer1; type tchars = set of char; var s: string; ch: tchars; i: integer; c: char; begin ch:=[]; for i:=1 to 20 do begin readln(s); ch:=ch + [ s[1] ]; end; for c:=’a’ to ‘z’ do if c in ch then writeln(c); end. Задача №2. Пользователь вводит текст из 20 строк. Напечатать на экране все цифры (по одному разу), которые входят в текст. Пример: program primer2; type tdigits = set of ‘0’..’9’; var s: string; dig: tdigits; i, j: integer; c: char; begin dig:=[]; for i:=1 to 20 do begin readln(s); for j:=1 to length(s) do if s[j] in [‘0’..’9’] then dig:=dig + [ s[j] ]; end; for c:=’0’ to ‘9’ do if c in dig then writeln(c); end. Задать множество как типизированную константу можно следующим образом: <имя_константы>: SET OF <тип_эл-тов> = [<список_эл-тов>]; Пример: type digits = set of '0'..'9'; const odds: digits = ['1', '3', '5', '7', '9']; vowels: set of 'a'..'z' = ['a', 'o', 'e', 'u', 'i']; Отметим, что множество нельзя задать в виде нетипизированной константы. 1. Что такое множество? 2. Чем множества отличаются от массивов? От записей? 3. Какое максимальное количество элементов может включать в себя множество? 4. Какие операции допустимы над множествами? 5. Учитывает ли множество количество вхождений в него элементов? Порядок следования элементов? Нередко случаются ситуации, когда одни и те же действия или вычисления необходимо выполнять многократно, но над разными данными. Пример: в программе нужно сначала найти максимум из чисел a и b, затем – из x и y, и т.д. При написании исходного кода программы в такой ситуации, конечно, можно несколько раз записать одни и те же операторы в разных местах. Однако можно поступить и по-другому. Алгоритм решения задачи может быть спроектирован путем декомпозиции всей задачи на отдельные подзадачи. Такие подзадачи обычно реализуются в виде подпрограмм. Подпрограмма – это последовательность операторов и описаний, которые определены и записаны только в одном месте программы, однако могут быть вызваны для выполнения из нескольких точек программы. В языке программирования Паскаль существуют два типа таких подпрограмм – процедуры и функции. Процедуры и функции – это именованные последовательности описаний и операторов (подпрограммы). Основное различие между процедурами и функциями состоит в том, что функция возвращает некоторое значение и может использоваться в выражениях, в то время как процедура вызывается для выполнения какого-либо действия. Пример: x:= sin(A); - здесь sin – это функция. Она возвращает значение. writeln('Это проверка'); - здесь writeln – это процедура. Она выполняет действие (печать на экране), но результата не возвращает. Можно сказать, что функции – это процедуры особого характера, результатом работы которых является некоторое значение. В то же время в некоторых других языках программирования процедуры реализуются в виде функций, которые не возвращают результат. При использовании процедур или функций программа на языке Паскаль должна содержать: а) объявление и описание процедуры или функции; б) вызов процедуры или функции. Если текст процедуры включается непосредственно в текст программы, то его необходимо поместить в разделе описания процедур и функций, до ключевого слова begin, означающего начало исходного кода самой программы (см. §4). Для вызова процедуры или функции в тексте программы указывают имя подпрограммы, а также список фактических параметров (будут рассмотрены позже). Вызов процедуры может быть записан отдельным оператором (например, writeln, readln). Вызов же функции, в отличие от процедур, не может быть отдельным оператором, т.к. она всегда возвращает некоторое значение, которое необходимо куда-то сохранить или вывести (например, sin, sqr). В программе можно использовать не только собственные процедуры и функции, но и уже готовые, хранящиеся в специализированных библиотеках (например, writeln, readln, sin, sqr). Для использования уже готовых процедур и функций нужно предварительно в разделе uses указать имя модуля (библиотеки), в котором они хранятся. Если используются готовые подпрограммы из разных модулей, то их имена перечисляются через запятую. Пример: используем в программе процедуру ClrScr из модуля Crt, очищающую экран. uses сrt; … begin ClrScr; … end.
Дата добавления: 2014-01-06; Просмотров: 380; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |