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