- •1. Этапы подготовки задач для решения на пэвм
- •Программное обеспечение эвм
- •2.1.Алгоритмические языки.
- •5. Файлы и каталоги на дисках
- •5.1. Файловая система fat.
- •5.2. Файловая система ntfs
- •6. Интегрированая среда турбо паскаля 7.0
- •6.1. Информационные окна.
- •7. Разработка программ в интегрированной среде
- •8. Система меню ис тurbo рascal
- •8.1. Меню работы с файлами (file).
- •8.2. Меню редактирования (edit).
- •8.3. Меню поиска информации (search).
- •8.4. Меню выполнения программы (run).
- •8.5. Меню компиляции (compile).
- •8.6. Меню отладки (debug).
- •8.7. Меню инструментальных средств (tools).
- •8.8. Меню параметров среды (options).
- •9. Структура программы
- •10. Алфавит языка
- •11. Типы данных
- •Целые типы.
- •11.2.Логический тип boolean.
- •11.3. Символьный тип char.
- •11.4. Перечисляемый тип.
- •Вещественные типы.
- •12. Переменные
- •13. Константы
- •14. Стандартные функции
- •14.1. Арифметические функции.
- •14.2. Функции преобразование типа.
- •14.3. Функции для величин порядкового типа.
- •15. Арифметические операции
- •Логические операции
- •Операции отношения
- •18. Операторы языка
- •18.1. Оператор присваивания.
- •18.2. Оператор безусловного перехода goto.
- •18.3. Пустой оператор.
- •18.4. Составной оператор.
- •18.5. Условный оператор if.
- •18.6. Оператор варианта case.
- •Операторы цикла
- •19.1. Оператор цикла с постусловием repeat.
- •19.2.Оператор цикла с предусловием while.
- •19.3. Оператор цикла с параметром for.
- •19.4. Использование стандартных процедур Break и Continue в операторах циклов.
- •Сложные типы языка паскаль
- •20.1. Массивы.
- •20.2. Символьные массивы.
- •20.3. Строка типа string.
- •20.4. Записи.
- •20.5. Множества.
- •20.6. Файлы.
- •20.6.1. Доступ к файлам.
- •20.6.2. Логические устройства.
- •20.6.3. Процедура открытия файлов.
- •20.6.4. Процедуры и функции для работы с файлами.
- •20.6.5. Типизированные файлы.
- •20.6.6. Процедуры и функции для работы с файлами.
- •20.6.7. Нетипизированные файлы.
- •20.6.8. Текстовые файлы.
- •21. Процедуры и функции
- •21.1. Процедуры.
- •21.2. Функции.
- •21.3. Параметры формальные и фактические.
- •21.4. Параметры-значения.
- •21.5. Параметры-переменные.
- •21.6. Параметры-константы.
- •21.7. Параметры-процедуры и параметры-функции.
- •21.8. Параметры без типа.
- •Модули пользователя
- •22.1. Структура модуля пользователя
- •22.1.1. Заголовок модуля
- •22.1.2. Интерфейс модуля
- •22.1.3. Исполнительная часть модуля
- •22.1.4. Cекция инициализации
- •22.2. Использование модулей
- •23. Оверлей
21.2. Функции.
Функция предназначена для вычисления какого-либо произвольного параметра. Общая структура функции совпадает с процедурой. В отличие от процедуры в теле функции , имя функции должно быть определено, то есть ему должно быть присвоено какое-либо значение.
Конструкция заголовка:
FUNCTION <имя_функции>(список_формальных_параметров): <тип функции>;
Тип функции - это тип возвращаемого параметра. Функция может возвращать параметры любого порядкового, вещественного типа или типа string.
Второе отличие в том, что в теле функции хотя бы раз имени функции далее будет присвоено значение.
Для вызова функции из основной программы или другой подпрограммы необходимо в выражении, которое использует значение функции, указать ее имя со списком фактических параметров, которые должны совпадать по количеству и типам с формальными параметрами.
21.3. Параметры формальные и фактические.
Формальные параметры указывают, с какими параметрами необходимо обращаться к подпрограмме (количество параметров, их последовательность, типы). Они задаются в заголовке подпрограмм в виде списка формальных параметров, который разбит на группы, разделенные точками с запятыми.
Формальные параметры могут быть пяти видов:
-
параметры-значения, которые в основной программе не меняются;
-
параметры-переменные, которые подпрограмма может изменить в основной программе;
-
параметра - константы;
-
параметры – процедуры и параметры - функции;
-
параметры без типа.
Для каждого формального параметра нужно указать имя и, как правило, тип. Для параметра-переменной или параметра константы – его категорию.
Имена параметров могут быть любыми. Имена формальных параметров могут совпадать с именами других объектов программы, но в этом случае параметр основной программы становится недоступным для использования подпрограммой.
Тип формальных параметров может быть любым, однако в заголовке подпрограммы нельзя вводить новый тип.
Например:
Procedure ABC(A : array[1..100] of real); {неправильно}
Чтобы правильно записать заголовок следует в основной программе ввести тип-массив, а затем использовать его в ПП.
Type
Vector = array[1..100] of real;
Procedure ABC(A : Vector);
21.4. Параметры-значения.
Они передаются основной программой в подпрограмму в виде копий, поэтому подпрограммы не могут изменить их в основной программе. Параметр-значение указывается в заголовке подпрограммы своим именем, после которого через двоеточие указывается тип (любой кроме файлового).
Если параметров в значении несколько, и они одного типа, их можно записать в списке, через запятую, а затем указать общий тип.
21.5. Параметры-переменные.
При передаче параметров-переменных в подпрограмму передаются их адреса в порядке, объявленном в заголовке подпрограммы, поэтому подпрограмма может влиять на значения параметров и изменять их.
Параметры-переменные в заголовке подпрограммы записываются так же, как параметры-значения, но перед именем параметра записывается слово VAR.
Если параметров несколько, то действие слова VAR распространяется на переменные после этого слова до ближайшей точки с запятой.
Например: Ввести вектор А. Сформировать на его базе вектор В, каждый элемент которого равен элементу а[i] возведенному в степень i/10 и вывести его на печать.
Program Primer;
Uses Crt, printer;
Const max =100;
Type vector: array [1..max] of real;
Var
a, b:vector;
j,n:integer;
FUNCTION X_V_ST_Y(x,y:real):real;
BEGIN
X_V_ST_Y=exp(y*ln(x));
END;
FUNCTION ASK_YN:boolean;
Var
ch:char;
BEGIN
ASK_YN:=false;
Write(‘ (Y / N) ‘);
REPEAT ch:= read key;
until up case (ch) in [‘Y’, ‘N’];
if ((ch=’Y’) or (ch=’y’) then ASK_YN:= TRUE;
END;
FUNCTION ASK_PRINTER:boolean;
BEGIN
ASK_PRINTER:=False;
Write(‘Хотели бы вы вывести данные на принтер’);
If (ASK_YN=True) then ASK_PRINTER:=True;
END;
РROCEDURE WOD_VECT( Var v:vector; Var n:byte);
Var
i:byte;
BEGIN
CLRSCR;
Writeln (‘Введите значение n<100’);
Readln(n);
for i:=1 to n do
BEGIN
Write (‘Введите’, i:3, ‘-й элемент‘);
Readln(v[i]);
END;
END;
PROCEDURE OUT_VECT( V:vector;Var n:byte);
Var
i:byte;
file_out:txt;
BEGIN
if (ASK_PRINTER) then
Asiggn(file_out, ‘prn’0 else
Asiggn( fl - out, ‘can’);
for i:=1 to n do
BEGIN
if (i mod 10) =0 then
Writeln(fl -out, v[i]:8:5)
else Write (fl-out,v[i]:8:5)
END;
END;
BEGIN
WOD_VECTOR(A,N);
for j:=1 to n do
BEGIN
B[j]:=X_V_ST_Y(a[j]), j /10.0);
OUT_VECT(B,N);
END;
END.