- •Содержание
- •Пояснительная записка
- •Раздел 1. Основы программирования
- •Тема 1.1 Понятие алгоритма
- •Понятие алгоритма. Свойства алгоритма
- •Алгоритмический язык
- •Понятие алгоритма. Свойства алгоритма
- •Хорезми
- •2. Алгоритмический язык
- •Тема 1.2 Методы описания алгоритма
- •Виды описания алгоритма
- •Тема 1.3 Типы алгоритмов
- •1.Типы алгоритмов
- •Алгоритм линейной структуры
- •3. Разветвляющийся алгоритм
- •4. Циклический алгоритм
- •5.Виды циклов
- •Цикл с предусловием (цикл пока)
- •2. Цикл с постусловием (цикл до)
- •3. Арифметический цикл (цикл для) – цикл с параметром.
- •Тема 1.4. Алгоритмический ряд.
- •Операторы цикла с условием
- •Операторы ограничения и прерывания цикла
- •Раздел 2. Решение задач на пэвм.
- •Тема 2.1. Основные этапы подготовки задачи к решению на пэвм.
- •Этапы решения задач
- •Тема 2.2 Программа на языке высокого уровня.
- •Тема 2.3. Методика Джексона
- •1. Методика Джексона
- •Шаг объект-действие
- •Раздел 3.Разработка программы на языке Турбо Паскаль
- •Тема 3.1 Основные элементы
- •История и классификация языков программирования
- •Элементы языка Турбо Паскаль
- •Тема 3.2. Типы данных
- •1. Типы данных Типы данных
- •Тема3.3 Программа на языке Турбо Паскаль
- •Структура программы на языке Паскаль
- •4. Вывод данных в тр
- •5. Ввод данных в тр
- •Тема 3.4 Массивы и их обработка
- •Строковый тип данных
- •Процедуры и функции для работы со строками
- •1. Определение массива
- •2 Описание массивов
- •3 Действия над массивами
- •4.Двумерный массив
- •6.Строковый тип данных
- •'Текстовая строка'
- •7. Процедуры и функции для работы со строками
- •Тема 3.5 Встроенные процедуры и функции
- •1. Арифметические процедуры и функции:
- •2. Функции преобразования типов:
- •3. Процедуры и функции для работы со строками:
- •Тема 3.6. Процедуры и функции пользователя
- •Отличия функции от процедур
- •3. Описание процедуры
- •4. Описание функций
- •5. Локальные и глобальные переменные.
- •6. Параметры в процедурах.
- •Тема 3.7. Записи
- •1. Структура записи в тр
- •2. Отличия записи от массива.
- •Тема 3.8 Файлы и их обработка
- •1. Понятие файла
- •2. Чтение и запись информации из файл или в файл
- •3.Доступ к файлам
- •4.Имена файлов
- •5. Связь файла с файловой переменной.
- •6. Открытие и переименование файла.
- •7. Типизированные фалы.
- •8. Нетипизированные файлы.
- •9.Текстовые файлы
- •Раздел 4. Объектно – ориентированная модель программирования
- •Тема 4.1. Основные характеристики ооп. Преимущества.
- •1. Основные характеристики ооп. Преимущества
- •Тема 4.2. Инкапсуляция.
- •Тема 4.3. Наследование.
- •Тема 4.4.Виртуальные методы и полиморфизм.
- •Перечень источников литературы для самостоятельного изучения учебной дисциплины «Основы алгоритмизации и программирования»
Тема 3.6. Процедуры и функции пользователя
Тип лекции: текущая
План:
1. Понятие подпрограммы
2. Отличия процедур от функций
3. Описание процедуры
4. Описание функций
5. Локальные и глобальные переменные.
6. Параметры в подпрограммах
3. вопросы для самостоятельного изучения:
- Арифметические процедуры и функции. Скалярные функции. Функции преобразования типов. Процедуры управления строками на экране. Специальные процедуры и функции. Особенности их использования.
Если в программе возникает необходимость частого обращения к некоторой группе операторов, выполняющих действия или вычисляющих значение какого-либо выражения, то рационально сгруппировать такую группу операторов в самостоятельный блок, к которому можно обращаться, указывая его имя. Такие блоки, разработанные программистом, называются подпрограммами.
Подпрограмма – это блок операторов выполняющих действия или вычисляющих значение какого-либо выражения, наиболее часто используемый в программе.
Подпрограмма являются основой модульного программирования. Разбивая задачу на части и формируя логически обособленные модули подпрограммы (процедуры и функции), программист реализует основные принципы широко пользуемого в практике системного подхода и методов нисходящего программирования.
В Паскале различают две разновидности подпрограмм: процедуры и функции. Каждому такому блоку (будь то процедура или функция) дается свое имя. В том месте программы, где необходимо выполнить всю последовательность действий данного блока, достаточно просто указать имя этого блока. Процедуры и функции можно строить так, что их выполнение будет зависеть от некоторых значений, которые передаются им непосредственно перед вызовом. Эти значения называются параметрами, а про такие процедуры и функции говорят, что они имеют параметры.
Процедура - именованная часть программы, которую можно вызвать по имени для выполнения каких- либо действий.
Функция - именованная часть программы, которую можно вызвать по имени, возвращающая в точку вызова скалярное значение.
Функция — это часть программы, в которой вычисляется и возвращается значение.
Замечание! Функция может входить в выражение как операнд, а процедура НЕТ!
Существуют стандартные процедуры и функции и пользовательские. Все стандартные подпрограммы хранятся в библиотечных модулях, свои собственные подпрограммы пользователь описывает в разделе описания процедур и функций по определенным правилам.
Отличия функции от процедур
Целью работы функции, вообще говоря, является вычисление некоторой величины. Целью работы процедуры является выполнение самой последовательности действий, составляющих процедуру.
Допустим, например, что в нашей программе часто требуется определять площадь треугольника, зная координаты его вершин. Поскольку результатом работы является вычисление единственной величины — площади треугольника — естественно оформить наши действия в виде функции.
Предположим также, что нам часто требуется рисовать треугольник на экране па его вершинам. Поскольку в этом случае результатом работы является сам процесс выполнения, а не вычисление какой-либо величины, то логично создать уже не функцию, а процедуру рисования треугольника на экране.
В заголовке функции определяется ее имя, параметры (если они имеются ) и тип результата.
Для вызова функции необходимо указать ее имя и параметры (если они есть). Имя может использоваться в выражениях. При вычислении выражения имя функции замешается вычисленным значением.
В теле функции хотя бы один оператор должен имени функции присвоить некоторое значение, иначе значение, возвращаемое функцией, останется неопределенным. Если операторов, присваивающих имени функции значение, несколько, то результатом функции является последнее присвоенное значение.
{в этой программе используется функция Func, вычисляющая квадрат синуса заданного числа}
program Functions;
{описание переменных программы}
Var X, Rez:Real;
{описание функции}
function Func: Real;
var R: Real;
begin
R:= Sin(x)*Sin(x);
Func:=R; {этот оператор присваивает функции Func значение R }
end; {описание функции заканчивается "точкой с запятой" }
{сама программа}
begin
WriteLn(‘Введите число');
ReadLn(X);
Rez:=Func;
WriteLn (‘Квадрат синуса этого числа равен ', Rez); end.
Следующая программа вычисляет сумму геометрических средних всевозможных комбинаций двух целых чисел от 1 до 20. При вычислении используется функция, возвращающая геометрическое среднее двух данных чисел ( квадратный корень из их произведения ).
program SKub;
var S: Real;
j,i: integer;
function SR(x,y:integer):Real;
var K: longint;
begin
SR:=Sqrt(.x*y);
end;
begin
s:=0;
for i:=1 to 20 do
for j:=1 to 20 do
S:=S+SR(i,j);
WriteLn(S);
end.
В отличие от имени процедуры, имя функции может использоваться в выражениях.
Более того, функцию можно вызвать, только используя се имя в каком-либо выражении. В последнем примере имя функции SR присутствовало в выражении S:=S+SR(i,j); Значение SR(i,j) автоматически подсчитывалось каждый раз и использовалось при вычислении правой части.
Подпрограмма – это блок операторов выполняющих действия или вычисляющих значение какого-либо выражения, наиболее часто используемый в программе.
Подпрограмма являются основой модульного программирования. Разбивая задачу на части и формируя логически обособленные модули подпрограммы (процедуры и функции), программист реализует основные принципы широко пользуемого в практике системного подхода и методов нисходящего программирования.
Вот как выглядит в общем виде структура процедуры: