- •Указания по выполнения практических и лабораторных работ
- •Языки программирования
- •Трансляторы
- •Язык программирования Паскаль
- •Использование среды программирования турбо паскаль
- •Типы вычислительных процессов
- •Блок-схемы алгоритмов
- •Примеры составления блок-схемы алгоритма
- •Основные файлы пакета Турбо Паскаль
- •Запуск интегрированной среды программирования Турбо Паскаль
- •Работа с меню ис
- •Меню File
- •Меню Run
- •Меню Compile
- •Меню Debug
- •Меню Tools
- •Меню Options
- •Меню Window
- •Меню Help
- •Процедуры ввода-вывода
- •Оператор записи WriteLn аналогичен процедуре Write, но после вывода последнего в списке значения для текущей процедуры WriteLn происходит перевод курсора к началу следующей строки.
- •Пример программы с использованием процедур ввода-вывода данных с различными форматами выводимых данных
- •Операторы языка Паскаль
- •Оператор присваивания
- •Оператор безусловного перехода (go to)
- •Оператор выбора case
- •Оператор повтора for
- •Примеры программ с использованием оператора for
- •Оператор повтора Repeat
- •Пример программы с использованием оператора repeat
- •Пример программы с использованием операторов присваивания, повтора и выбора
- •Пример программы с использованием оператора повтора while
- •Примеры описания одномерных и двумерных массивов
- •Действия над массивами
- •Действия над элементами массива
- •Ввод-вывод элементов массива
- •Пример программы ввода-вывода одномерного массива
- •Пример программы ввода-вывода двумерного массива
- •Пример программы нахождения в одномерном массиве максимального элемента
- •Порядок выполнения работы
- •Порядок выполнения работы
- •Основные логические структуры:
- •Встроенные функции и процедуры
- •Арифметические процедуры и функции
- •Скалярные процедуры и функции
- •Функции преобразования типов
- •Процедуры управления программой
- •Специальные процедуры и функции
- •Вызов стандартной процедуры или функции
- •Пример программы с использованием функции, определенной пользователем
- •Пример программы с использованием процедуры, определенной пользователем
- •Механизм передачи параметров
- •Нетрадиционное использование подпрограмм. Косвенная рекурсия
- •Линейный поиск
- •Линейный поиск в упорядоченном массиве данных
- •Бинарный (двоичный) поиск
- •Пример программы с использованием алгоритма бинарного поиска
- •Методы внутренней сортировки
- •Сортировки включением
- •Сортировка выбором
- •Реализация алгоритмов обменных сортировок при написании программы на Паскале
- •Шейкерная сортировка
- •Пирамидальная сортировка
- •Обменная сортировка разделением
- •Естественное слияние
- •Многопутевое слияние
- •Пример разработки собственного модуля
- •Скалярные процедуры и функции
- •Процедуры управления программой
- •Специальные процедуры и функции
- •Вызов стандартной процедуры или функции
- •Формат описания строкового типа
- •Фрагмент описания строковых данных
- •Стандартные строковые процедуры и функции
- •Пример программы работы со стандартными строковыми процедурами и функциями Порядок выполнения работы
- •Примеры программ работы со строковыми переменными
- •Пример программы работы с записями
- •Пример программы работы с записями
- •Операции над множествами
- •Объединение Пересечение Разность
- •Формат описания файлового типа
- •Средства обработки файлов
- •Текстовые файлы
- •Пример программы работы с текстовым файлом
- •Средства работы с типизированными файлами
- •Пример программы работы с типизированным файлом
- •Средства работы с нетипизированными файлами
- •Пример программы для работы с типизированными файлами
- •Распределение памяти при выполнении программы
- •Пример программы распределения памяти и получения доступа к полям psp.
- •Статические и динамические переменные
- •Указатели
- •Типизированные указатели
- •Нетипизированный указатель (pointer)
- •Доступ к переменной по указателю
- •Управление динамической памятью
- •Процедуры динамического распределения
- •Пример программы с использованием динамической памяти
- •Пример программы создания и использования связанного списка
- •Параметр процедурного типа
Вызов стандартной процедуры или функции
Для использования стандартной процедуры или функции к программе подключается тот или иной специализированный библиотечный модуль, в котором записана данная стандартная процедура или функция, для чего имя библиотечного модуля указывается в разделе 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.
Порядок выполнения работы
Изучить теоретические сведения по теме “ Изучение наиболее часто употребляемых универсальных процедур и оформление их в виде личной библиотеки программиста”.
Получить у преподавателя индивидуальное задание. Разработать личную библиотеку, включив в нее процедуры, определенные в задании.
Показать работающую программу преподавателю.
Ответить на контрольные вопросы.
Контрольные вопросы
Стандартные функции и процедуры в Паскале.
Концепция разработки собственного модуля со стандартными процедурами и функциями.
Разработка собственных процедур и функций, включаемых в личную библиотеку программиста.
Пример программы.
Лабораторная работа № 23
Написание программы на языке Паскаль с использованием стандартных строковых процедур и функций
Цель работы: формирование знаний и умений по работе со строками. Приобретение навыков работы со стандартными строковыми процедурами и функциями.
Краткие теоретические сведения
Строка — это последовательность символов кодовой таблицы персонального компьютера. При использовании в выражениях строка заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255. Для определения данных строкового типа используется идентификатор String, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки равна 255 байт.
Переменную строкового типа можно определить через описание типа в разделе определения типов или непосредственно в разделе описания переменных. Строковые данные могут использоваться в программе также в качестве констант.
Недопустимо применение строковых переменных в качестве селектора в операторе Case.
Определение строкового типа устанавливает максимальное количество символов, которое может содержать строка.