
- •С Кафедра моп эвм истема программирования Borland Pascal Методическая разработка к лабораторным работам фавт
- •Интерфейс системы
- •Меню и команды
- •Пункт File
- •Пункт Edit
- •Пункт Search
- •Пункт Run
- •Пункт Compile
- •Пункт Debug
- •Пункт Options
- •Пункт Window
- •Пункт Help
- •Страница Compiler Options окна свойств проекта
- •??? Страница Directories окна свойств проекта
- •??? Страница Preferences окна свойств проекта
- •Файлы проекта
- •Основные приемы работы в системе Паскаль Создание новой программы
- •Работа с уже созданной программой
- •Использование средств отладки
- •Пошаговое выполнение программы
- •Просмотр значений переменных
- •Использование точек останова
- •Порядок выполнения работы
- •If f then writeln('существует');
- •Var описание_переменных;
- •If условие then оператор1 else оператор2
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Оператор цикла с убывающим параметром
- •Контрольные вопросы
- •Var список_имен_массивов: array [тип_индекса1,тип_индекса2...] of базовый_тип;
- •Варианты заданий
- •Контрольные вопросы
- •Var список_имен_переменных:string[максимальная_длина_строки];
- •Var список_имен_переменных:string;
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 6. Использование процедур Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 7. Использование функций Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 8. Работа с текстовыми файлами Основные сведения
- •Var имя_файловой_переменной : text;
- •Пример выполнения
- •I : integer; {счетчик символов текущей строки выходного файла}
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 9. Работа с типизированными файлами и записями Основные сведения
- •Var имя_файловой_переменной : file of тип_записи_файла;
- •Var имя_переменной_записи:имя_типа_записи;
- •Пример выполнения
- •ICurs: integer {курс }
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 10. Использование данных ссылочного типа Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 11. Создание и использование модулей Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Литература
- •Содержание
Лабораторная работа 11. Создание и использование модулей Основные сведения
Структура модуля:
unit имя_модуля; {Заголовок модуля}
interface {Раздел интерфейса модуля}
uses имя_модуля1, имя_модуля2, …; {модули, используемые в разделе интерфейса}
const
{описание внешних констант}
type
{описание внешних типов}
var
{описание внешних переменных}
{заголовки внешних процедур и функций}
implementation {Раздел реализации модуля}
uses имя_модуля1, имя_модуля2, …; {модули, используемые в разделе реализации}
const
{описание внутренних констант модуля}
type
{описание внутренних типов модуля}
var
{описание внутренних переменных модуля}
{тексты внешних процедур и функций}
label
{метки, используемые в разделе инициализации модуля}
begin
{Раздел инициализации модуля}
end.
Имя файла, в котором находится модуль, должно совпадать с именем модуля. При компиляции модуля создается файл имя_модуля.TPU, который располагается в каталоге, заданном в пункте меню Options+Directories+EXE&TPU.
Для использования констант, типов, переменных и подпрограмм модуля необходимо в основной программе непосредственно за заголовком программы включить строку:
uses имя_модуля1,имя_модуля2,...;,
Указанные в этой директиве модули Паскаль будет искать в каталогах, заданных в пункте меню Options+Directories+Unit (можно задавать несколько каталогов, разделяя их точкой с запятой).
Необходимо помнить, что описанные в разделе интерфейса константы, типы и переменные привносятся в основную программу при подключении к ней модуля. Поэтому сугубо внутренние для модуля константы, переменные и типы следует описывать в разделе реализации.
Пример выполнения
Оформить в виде модуля вычисление следующих математических функций:
Написать программу, которая тестирует эти функции на значениях, вводимых с клавиатуры.
{ Файл модуля MODUL.PAS }
unit MODUL;
interface
function F1(X,Y:real): real;
function F2(X,Y:real): real;
function F3(X:real): real;
function F4(X:real): real;
implementation
function F1(X,Y:real): real;
begin
F1:=sin(X)*cos(Y)+sin(Y)*cos(X)
end;
function F2(X,Y:real):real;
begin
if X<+Y then F2:=sqr(X)+Y
else F2:=X-sqr(Y)
end;
function F3(X:real):real;
begin
F3:=(sin(X)/cos(X))/(sqr(X)+1)
end;
function F4(X:real):real;
begin
F4:=(sqr(X)-3*x+4)/(abs(X)+2)
end;
end.
{ Файл основной программы }
program PRIMER;
uses MODUL;
var
X,Y: real;
C: char;
begin
repeat
writeln('Введите x и y');
readln(X,Y);
writeln('F1(',X,',',Y,')=',F1(X,Y));
writeln('F2(',X,',',Y,')=',F2(X,Y));
writeln('F3(',X,')=',F3(X));
writeln('F4(',X,')=',F4(X));
writeln('Продолжить?(N-нет)');
readln(C)
until (C='N') or (C='n')
end.
Варианты заданий
Для всех вариантов задание состоит в следующем:
оформить в виде модуля подпрограммы, получающие в качестве параметров некоторые данный и производящие с ними определенные действия – действия и данные определяются вариантом задания;
написать программу, которая использует подпрограммы этого модуля и тестирует их на данных, введенных с клавиатуры.
1. Параметры – строки. Действия:
обменять между строками самое длинное слово первой строки на самое короткое слово второй строки,
вернуть конкатенацию слова первой строки, состоящего из наибольшего количества различных букв, и слова второй строки, состоящего из наименьшего количества различных букв,
вставить в конец первой строки количество слов с четной длиной, а в конец второй - количество слов с нечетной длиной,
удалить из первой строки слова, содержащиеся во второй.
2. Параметры – строки. Действия:
урезание более длинной строки до длины более короткой,
добавление пробелов в более короткую строку до длины более длинной,
конкатенацию первых слов обеих строк,
конкатенацию последних слов обеих строк.
3. Параметры – строки. Действия:
удаление из строки всех гласных,
удаление из строки всех согласных,
подсчет количества слогов в строке,
подсчет количество слов в строке.
4. Параметр – массив из N целых чисел (N – константа модуля). Действия:
нахождение минимального элемента,
нахождение максимального элемента,
нахождение суммы элементов массива,
перестановка элементов массива в обратном порядке.
5. Параметр – массив из N целых чисел (N – константа модуля). Действия:
упорядочение по возрастанию,
упорядочение по убыванию,
подсчет количества отрицательных элементов,
подсчет количества положительных элементов.
6. Параметр – двумерный массив NxM (N и M – константы модуля). Действия:
транспонирование относительно главной диагонали,
транспонирование относительно побочной диагонали,
нахождение минимального элемента,
нахождение максимального элемента.
7. Параметр – двумерный массив NxM (N и M – константы модуля). Действия:
сортировка строк по убыванию суммы элементов строк,
сортировка строк по возрастанию суммы элементов строк,
сортировка столбцов по убыванию суммы элементов столбцов,
сортировка столбцов по возрастанию суммы элементов столбцов.
8. Параметр – двумерный массив NxM (N и M – константы модуля). Действия:
обмен между массивами элементами, находящимися выше главной диагонали,
обмен между массивами элементами четных строк,
обмен между массивами элементами нечетных столбцов,
обмен между массивами отрицательными элементами, стоящими на одном и том же месте в обоих массивах.
9. Параметры – строки. Действия:
обмен между строками первыми словами,
обмен между строками последними словами,
обнуление более длинной строки,
обнуление более короткой строки.
10. Параметр – двумерный массив NxM (N и M – константы модуля). Действия:
нахождение разности сумм элементов массивов,
обмен элементами первой строки первого и последней строки второго массивов,
обмен элементами первого столбца второго массива и последнего столбца первого массива,
нахождение суммы элементов главных диагоналей двух массивов.
11. Параметр – двумерный массив NxM (N и M – константы модуля). Действия:
обмен элементами между массивами,
обмен отрицательными элементами, стоящими на одинаковых местах в двух массивах,
обмен положительными элементами, стоящими на одинаковых местах в двух массивах,
обмен максимальными элементами.