
- •С Кафедра моп эвм истема программирования 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. Создание и использование модулей Основные сведения
- •Пример выполнения
- •Варианты заданий
- •Контрольные вопросы
- •Литература
- •Содержание
Контрольные вопросы
Заголовок процедуры.
Формальные и фактические параметры.
Параметры-значения и параметры-переменные.
Вызов процедуры и возврат из процедуры.
Передача фактических параметров по ссылке и по значению.
Правило установления соответствия формальных и фактических параметров, требования к соответствующим формальным и фактическим параметрам.
Глобальные и локальные данные подпрограмм. Области видимости.
Рекурсивный вызов подпрограмм.
Лабораторная работа 7. Использование функций Основные сведения
Описание функции
function имя_функции(параметр1; параметр2;...): тип; тело_функции;
Описание функции располагается непосредственно перед разделом операторов основной программы или вызывающей подпрограммы.
Параметры и тело функции аналогичны параметрам и телу процедуры, но помимо этого в теле функции перед выходом из нее имени функции должно быть присвоено значение того типа, который указан в заголовке.
Вызов функции
имя_ функции( фактический_параметр1, фактический_параметр2,...)
может осуществляться внутри любого выражения, в котором разрешено использовать данные того типа, который возвращает функция. О соответствии типов параметров см. описание предыдущей работы.
Связь по данным между вызывающей программой и функцией может осуществляться одним из следующих способов:
через возвращаемое функцией значение,
через параметры функции,
через глобальные переменные, описанные в вызывающей программе и доступные внутри функции.
Пример выполнения
По заданным 50-элементным вещественным массивам A, B и C вычислить
здесь запись mini – означает минимум по все элементам массива.
program PRIMER;
const N=50;
type MAS=array[1..N] of real;
var arA, arB, arC, arBC, arBA : MAS;
rT : real;
{***** SUMMATR *****}
procedure SUMMATR( var arREZ:MAS; arM1,arM2:MAS );
{
Действие:
Поэлементное суммирование массивов arREZ=arM1+arM2
Параметры входные:
arM1, arM2 – массивы-слагаемые
Параметры выходные:
arREZ – массив-результат
Замечания: –
}
var I:integer;
begin
for I:=1 to N do
arREZ[I]:=arM1[I]+arM2[I]
end;{ SUMMATR }
{***** VVOD *****}
procedure VVOD(var arM:MAS);
{
Действие:
Ввод массива
Параметры входные: -
Параметры выходные:
arM – массив-результат
Замечания: –
}
var I:integer;
begin
for I:=1 to N do
read(arM[I])
end;{ VVOD }
{***** MIN *****}
function MIN( arM:MAS ): real;
{
Действие:
Нахождение минимального элемента
Параметры входные:
arM – массив
Параметры выходные: -
Возвращает:
значение минимального элемента
Замечания: –
}
var I:integer; R:real;
begin
R:=arM[1];
for I:=2 to N do
if R>arM[I] then R:=arM[I];
MIN:=R
end;{ MIN }
{***** MAX *****}
function MAX(arM:MAS): real;
{
Действие:
Нахождение максимального элемента
Параметры входные:
arM – массив
Параметры выходные: -
Возвращает:
значение максимального элемента
Замечания: –
}
var I:integer; R:real;
begin
R:=arM[1];
for I:=2 to N do
if R<arM[I] then R:=arM[I];
MAX:=R
end;{ MAX }
{***** MAIN *****}
begin
writeln('Введите A');
VVOD(arA);
writeln('Введите B');
VVOD(arB);
writeln('Введите C');
VVOD(arC);
SUMMATR(arBC,arB,arC);
SUMMATR(arBA,arB,arA);
if MIN(arA) < MAX(arB) then
T := MIN(arB)/MAX(arA) + MAX(arC)/MIN(arBC)
else
T := MAX(arBA) + MIN(arC);
writeln('T=',T)
end.