Текущая страница - Подпрограммы в языке Паскаль - Форум



Как Вы нашли сайт?

Всего ответов - 145

Rambler's Top100

Баннер нашего сайта

Форум программистов

Создание игр
на Adobe Flash

Создание игр на Adobe Flash

Блог Виталия Серова
Виталий Серов - БЛОГ

http://delphi-guru.pp.ua
Уроки Delphi



Добро пожаловать на сайт по игростроению
Пожалуйста pарегистрируйтесь, для того чтобы отписываться в темах

[ Последние сообщения · Форумчане · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: Dmitrijan, Чебурашка  
Форум » Теория программирования » Pascal » Подпрограммы в языке Паскаль (отрывок из книги В. Б. Попова "TURBO PASCAL для школьников")
Подпрограммы в языке Паскаль
Flier Дата: Суббота, 04.09.2010, 13:06 | Сообщение # 1
VIP
Группа: Администраторы
Сообщений: 296
Репутация: 7
Статус: Offline

ПОДПРОГРАММЫ В ЯЗЫКЕ ПАСКАЛЬ

За наличие подпрограмм как средства структурирования программ язык программирования Турбо Паскаль называется процедурно-ориентированным.
Подпрограммы в Турбо Паскале реализованы посредством процедур и функций. Имея один и тот же смысл и аналогичную структуру, процедуры и функции различаются назначением и способом их использования.

Процедура — это независимая именованная часть программы, которую можно вызвать по имени для выполнения определенных действий. Структура процедуры повторяет структуру программы. Процедура не может выступать как операнд в выражении. Упоминание имени процедуры в тексте программы приводит к активизации процедуры и называется ее вызовом. Например, Read(F) читает с клавиатуры некоторое значение и присваивает его переменной F, Delay(5) вызывает задержку выполнения программы на 5 мс.

Функция аналогична процедуре, но имеются два отличия: функция передает в точку вызова скалярное значение; имя функции может входить в выражение как операнд. Например, функция Chr(65) возвратит в точку вызова символ А (код ASCII — 65), Sqr(X) — возведет в квадрат значения целого или вещественного X и возвратит в точку вызова вычисленное значение квадрата числа X.

Итак, отличие подпрограмм-процедур от подпрограмм-функций состоит в том, что процедуры служат для задания совокупности действий, направленных на изменение внешней по отношению к ним программной обстановки, а функции, являясь частным случаем процедур, отличаются от них тем, что они обязательно возвращают в точку вызова основной программы единственный результат как значение имени этой функции.

Все процедуры и функции языка Турбо Паскаль делятся на две группы: встроенные (стандартные) и определенные пользователем. Первые входят в состав языка и вызываются для выполнения по строго фиксированному имени. Вторые разрабатываются и именуются самим пользователем. Все стандартные средства расположены в специализированных библиотечных модулях, которые имеют системные имена.

Прикрепления: 1362815.jpg (15.0 Kb)
Flier Дата: Суббота, 04.09.2010, 13:07 | Сообщение # 2
VIP
Группа: Администраторы
Сообщений: 296
Репутация: 7
Статус: Offline
Стандартные библиотечные модули

В систему Турбо Паскаль версии 6.0 и старше включены восемь модулей: System, Crt, Dos, Graph, Graph3, Overlay, Printer, Турбо3 и специализированная библиотека Турбо Vision. Модуль System подключается по умолчанию, все остальные должен подключать программист с помощью зарезервированного слова uses. Например: uses Crt, Dos, Printer;
Рассмотрим кратко назначение каждого из модулей.
System — сердце Турбо Паскаля; содержащиеся в нем подпрограммы обеспечивают работу всех остальных модулей системы.
Crt — содержит средства управления дисплеем и клавиатурой компьютера.
Dos — включает средства, позволяющие реализовывать различные функции Dos.
Graph3 — поддерживает использование стандартных графических подпрограмм версии Турбо Паскаль 3.0.
Overlay — содержит средства организации оверлейных программ.
Printer — обеспечивает быстрый доступ к печатающему устройству.
Turbo3 — обеспечивает максимально возможную совместимость с версией Турбо Паскаль 3.0.
Graph — содержит пакет графических средств, обеспечивающих эффективную работу с адаптерами CGA, EGA, VGA, HERC, IBM 3270, MCGA и ATT6300.

Турбо Vision — библиотека объектно-ориентированных подпрограмм для раз¬работки пользовательских интерфейсов.

Flier Дата: Суббота, 04.09.2010, 13:12 | Сообщение # 3
VIP
Группа: Администраторы
Сообщений: 296
Репутация: 7
Статус: Offline
Встроенные функции и процедуры

Модуль System подключается к программе автоматически, поэтому его имя не указывается в разделе uses. По этой причине программе становятся доступны его встроенные процедуры и функции.

Арифметические процедуры и функции.
Abc(X:real/integer) :real/integer — вычисление абсолютной величины X. Тип результата совпадает с типом параметра.
ArcTan(X:real) — вычисление угла, тангенс которого равен X радиан.
Cos(Х:real) : real — вычисление косинуса X; параметр задает значение угла в радианах.
Exp(Х:real) : real — вычисление экспоненты X, т. е. значение Е в степени X. Е является основанием натурального логарифма и равно 2.718282.
Frac(Х:real):real — вычисление дробной части X.
Int(Х:real):real — вычисление целой части X.
Ln(Х:real):real — вычисление натурального логарифма X, т. е. логарифма по основанию е (е = 2.718282).
Pi:real — возвращает значение числа Пи (3.141592653897932385).
Sin(Х:real):real — вычисление синуса X. Параметр задает значение угла в радианах.
Sqr(Х) — возведение в квадрат значения целого или вещественного значения X. Тип результата совпадает с типом параметра.
Sqrt(Х:real):real — вычисление квадратного корня из X.
Random:геа1 — генерирует значение случайного числа из диапазона 0..0.99.
Random(I:word):word — генерирует значение случайного числа из диапазона 0..I.
Randomize — изменение базы генератора случайных чисел.

Скалярные процедуры и функции.

Dec(X{,n}) — процедура уменьшает значение целочисленной переменной X на величину n. При отсутствии необязательного параметра n значение X уменьшается на единицу.
Inc(Х{,n}) — процедура увеличивает значение целочисленной переменной X на n. При отсутствии необязательного параметра n значение X увеличивается на единицу.
Pred(s) — функция возвращает элемент, предшествующий S в списке значений типа. Тип результата совпадает с типом параметра. Если предшествующего S эле¬мента не существует, возникает программное прерывание.
Succ(S) — функция возвращает значение, следующее за S в списке значений типа. Тип результата совпадает с типом параметра. Если следующее за S значение отсутствует, возникает программное прерывание.
Odd(I:integer):boolean — возвращает True, если I нечетное, и False, если I четное.

Функции преобразования типов.
Chr(I:byte):char — возвращает символ стандартного кода обмена информацией с номером, равным значению I. Если значение параметра больше 255, возникает программное прерывание.
Ord(S):longint — возвращает порядковый номер значения S в множестве, опре¬деленном типом S.
Round(Х:real):longint — возвращает значение X, округленное до ближайшего целого числа.
Trunc(Х:real):longint — возвращает ближайшее целое число, меньшее или равное X, если X >= 0, и большее или равное X, если Х< 0.

Процедуры управления программой.
Delay(I:word) — задержка выполнения программы на I мс.
Exit — выход из выполняемого блока в окружающую среду. Если текущий блок является процедурой или функцией, выход производится во внешний блок. Если Exit указана в операторной части основной программы, программа прекращает работу, и управление передается системе программирования.
Halt(N:word) — прекращение выполнения программы и передача управления системе программирования (если выполнялся .РАS-файл) или DОS (если выполнялся .ЕХЕ-файл). N — код завершения программы, передаваемый в операцион¬ную систему.
RunError(ErrCode:word) — прекращение выполнения программы и генерация ошибки времени выполнения. ErrCode — параметр типа byte, содержащий номер ошибки.

Специальные процедуры и функции.
FillChar(Р,D1,Z) — заполняет побайтно область основной памяти заданным значением (заполнителем). Является одной из самых быстродействующих процедур. Область начинается с первого байта указанной переменной Р и имеет размер, заданный параметром D1. Р — переменная любого типа; D1 — целочисленное выражение, указывающее длину; Z — заполнитель, выражение литерного или байтового типа.
Move(Р1,Р2,D1) — пересылает содержимое основной памяти, начиная с первого байта переменной Р1, в область, которая начинается с первого байта переменной Р2. Длина областей определяется параметром D1. Р1 и Р2 — переменные любого типа; D1 — целочисленное выражение.
Hi(I:integer):byte — выделяет старший байт значения I и помещает его в младший байт результата. Старший байт результата равен 0.
Lo(I:integer):byte — выделяет младший байт значения I и помещает его в младший байт результата. Старший байт результата равен 0.
ParamCount:string — возвращает число параметров, переданных программе в командной строке.
ParamStr (N:WORD) : string — возвращает указанный параметр командной строки.
SizeOf(IТ):word — вычисляет объем основной памяти в байтах, которую занимает указанная переменная или тип. IT —- идентификатор переменной или типа данных.
Swap(I:integer):integer — обменивает содержимое младшего и старшего байтов целочисленного выражения, заданного параметром I типа integer.

Вызов стандартной процедуры или функции.
Ранее мы уже рассматривали примеры программ, в которых использовались некоторые стандартные процедуры и функции. Для использования стандартной процедуры или функции к программе подключается тот или иной специализированный библиотечный модуль, в котором записана данная стандартная процедура или функция (исключение составляет модуль System, так как он подключается к программе автоматически), для чего имя специализированного библиотечного модуля указывается в разделе uses. Затем в программе записывается вызов процедуры или функции, для чего записывается ее имя и указываются фактические параметры, например: Pi, Sin(X), Chr(125), Inc(X,5). Так как после выполнения функции ее значение присваивается имени, то имя функции используется в выражении.

Чебурашка Дата: Суббота, 04.09.2010, 17:57 | Сообщение # 4
Специалист
Группа: Администраторы
Сообщений: 221
Репутация: 6
Статус: Offline
Просто "замечательная" цитата из книжки)
Flier Дата: Суббота, 04.09.2010, 20:26 | Сообщение # 5
VIP
Группа: Администраторы
Сообщений: 296
Репутация: 7
Статус: Offline
ага, цитаточка прям)
askutov123 Дата: Пятница, 30.09.2016, 23:33 | Сообщение # 6
Новичок
Группа: Форумчанин
Сообщений: 1
Репутация: 0
Статус: Offline
Раскрути свой сайт, здесь бесплатные посетители и показы: http://livesurf.ru/promo/242281
Форум » Теория программирования » Pascal » Подпрограммы в языке Паскаль (отрывок из книги В. Б. Попова "TURBO PASCAL для школьников")
  • Страница 1 из 1
  • 1
Поиск:
Game Builder © 2010
Сайт управляется системой uCoz