Методические указания и задания к лабораторным работам для учащихся ссуз специальности Т1002 «Программное обеспечение информационных технологий»
Вид материала | Методические указания |
- Методические указания по дипломному проектированию для учащихся специальности 2-40, 316.16kb.
- Методические указания к лабораторным работам для студентов специальности 210100 "Автоматика, 536.56kb.
- Методические указания и контрольные задания по дисциплине системное программное обеспечение, 196.97kb.
- Методические рекомендации по прохождению преддипломной практики для учащихся специальности, 898.69kb.
- Методические указания к лабораторным работам №1-5 для студентов специальности 210100, 363.6kb.
- Методические указания по лабораторным работам Факультет: электроэнергетический, 554.73kb.
- Методические указания к лабораторным работам по курсу, 438.32kb.
- Методические указания к лабораторным работам по физике по практикуму «Вычислительная, 138.12kb.
- Методические указания к лабораторным работам Самара 2007, 863.04kb.
- Название дисциплины, 52.28kb.
Порядок выполнения работы
- Изучить теоретические сведения по теме “ Модули в Паскале”.
- Получить у преподавателя индивидуальное задание. Разработать личную библиотеку, включив в нее процедуры, определенные в задании.
- Показать работающую программу преподавателю.
- Ответить на контрольные вопросы.
Контрольные вопросы
- Стандартные модули в Паскале.
- Структура модуля.
- Ключевые слова Unit, Interface, Implementation. Описание каждого раздела.
- Концепция разработки собственного модуля. Пример программы.
Лабораторная работа № 22
Изучение наиболее часто употребляемых универсальных процедур и оформление их в виде личной библиотеки программиста
Цель работы: формирование знаний и умений по работе с модулями. Приобретение навыков создания личных библиотек.
Краткие теоретические сведения
Встроенные функции и процедуры
Модуль System подключается к программе автоматически, поэтому его имя не указывается в разделе Uses. По этой причине программе становятся доступны все его встроенные процедуры и функции.
Арифметические процедуры и функции
Abs(X:real/integer):real/integer | Вычисление абсолютной величины Х. Тип результата совпадает с типом параметра. |
ArcTan(X:real):real | Вычисление угла, тангенс которого равен Х радиан. |
Cos(X:real):real | Вычисление косинуса Х. Параметр задает значение угла в радианах. |
Exp(X:real):real | Вычисление экспоненты Х, т.е. значение Е в степени Х. Е является основанием натурального логарифма и равно=2,718282. |
Int(X:real):real | Вычисление целой части Х. |
Frac (X:real):real | Вычисление дробной части Х. |
Pi:real | Возвращает значение числа Пи (3,14….) |
Sin(X:real):real | Вычисление синуса Х. Параметр задает значение угла в радианах. |
Sqr(X) | Возведение в квадрат значения целого или вещественного числа Х. Тип результата совпадает с типом параметра. |
Sqrt(X:real):real | Вычисление квадратного корня из Х. |
Random:real | Генерирует значение случайного числа из диапазона 0..0,99. |
Random(I:word):word | Генерирует значение случайного числа из диапазона от 0..I. |
Randomize | Изменение базы генератора случайных чисел. |
Скалярные процедуры и функции
Dec(X,{n}) | Процедура уменьшает значение целочисленной переменной Х на величину n. При отсутствии необязательного параметра n значение Х уменьшается на 1. |
Inc(X,{n}) | Процедура увеличивает значение целочисленной переменной Х на величину n. При отсутствии необязательного параметра n значение Х увеличивается на 1. |
Pred(S) | Функция возвращает элемент, предшествующий S в списке значений типа. Тип результата совпадает с типом параметра. Если предшествующего S элемента не существует, возникает программное прерывание. |
Succ(S) | Функция возвращает значение, следующее за S в списке значений типа. Тип результата совпадает с типом параметра. Если следующее за S значение элемента не существует, возникает программное прерывание. |
Odd(I:integer): Boolean | Возвращает True, если I нечетное, и False, если I-четное. |
Функции преобразования типов
Chr(I:byte):char | Возвращает символ стандартного кода обмена информацией с номером, равным значению I. Если значение параметра больше 255, возникает программное прерывание. |
Ord(S):LohgInt | Возвращает порядковый номер значения S в множестве, определенном типом S. |
Round(X:real): longInt | Возвращает значение Х, округленное до ближайшего целого числа. |
Trunc(X:real): longInt | Возвращает ближайшее целое число, меньшее или равное Х, если Х>=0, и большее или равное Х, если Х<0. |
Процедуры управления программой
Delay(I:word) | Задержка выполнения программы на I мс. |
Exit | Выход из выполняемого блока. Если текущий блок является процедурой или функцией, то выход производится в основную программу. Если указана в операторной части программы, программа прекращает работу, и управление передается системе программирования. |
Halt(N:word) | Прекращение выполнения программы и передача управления системе программирования.N-код завершения программы, передаваемый в операционную систему. |
RunError(ErrCode:word) | Прекращение выполнения программы и генерация ошибки времени выполнения. ErrCode-параметр типа Byte, содержащий номер ошибки. |
Специальные процедуры и функции
Hi(I:integer):byte | Выделяет старший байт значения I и помещает его в младший байт результата. Старший байт результата равен 0. |
Lo(I:integer):byte | Выделяет младший байт значения I и помещает его в младший байт результата. Старший байт результата равен 0. |
SizeOf(IT):word | Вычисляет объем основной памяти в байтах, которую занимает указанная переменная или тип. IT-идентификатор переменной или типа данных. |
Swap(I:integer): integer | Обменивает содержимое младшего и старшего байтов целочисленного выражения, заданного параметром I типа integer. |
Вызов стандартной процедуры или функции
Для использования стандартной процедуры или функции к программе подключается тот или иной специализированный библиотечный модуль, в котором записана данная стандартная процедура или функция, для чего имя библиотечного модуля указывается в разделе uses. Затем в основной программе записывается вызов процедуры или функции, для чего записывается ее имя и указываются фактические параметры. Так как после выполнения функции ее значение присваивается имени, то имя функции может использоваться в выражении.
Также в своем разработанном модуле можно описать и реализовать собственные процедуры и функции, служащие облегчением работы программиста. Данные процедуры и функции могут быть собраны в отдельный собственно разработанный модуль и могут использоваться как личная библиотека программиста.
Пример разработки собственной библиотеки
Итак, сначала разрабатывается модуль с любым называнием. В него в интерфейсной части записываются названия процедур и функций, реализация
которых будет представлена в части implementation. Например, создадим функцию max, вычисляющую максимальное значение между двумя целыми числами. Для этого в разделе interface сделаем следующее объявление:
function max(a1,b1:integer):integer;
После этого в разделе implementation должна находится реализация данной функции max.
Текст программы модуля может выглядеть так:
unit my_modul;
interface
function max(a1,b1:integer):integer;
implementation
function max(a1,b1:integer):integer;
begin
max:=a1;
if a1>b1 then max:=a1
else max:=b1;
end;
begin
end.
Данный модуль сохраняется на диске как файл с тем же названием (my_modul). При компиляции он автоматически получает расширение tpu.
Затем, в основной программе в разделе подключения модулей запишем:
uses crt,my_modul;
После этого можно воспользоваться функцией max, определенной и реализованной в модуле my_modul.
Текст основной программы может выглядеть так:
program kk;
uses crt,my_modul;
var
a1,b1,y:integer;
begin
writeln('Введите 2 числа');
readln(a1,b1);
y:=max(a1,b1);
writeln('max=',y);
end.