- •Часть 2
- •Основы алгоритмизации
- •1.1. Этапы решения задач с помощью компьютера
- •1.2.Алгоритм: определение и свойства
- •Свойства алгоритма
- •1.3. Запись алгоритма в виде блок-схем
- •1.4. Основные типы вычислительных алгоритмов
- •2. Основы программирования на Паскале
- •Основные элементы языка
- •Стандартные идентификаторы
- •Зарезервированные слова языка Паскаль
- •Общие правила написания идентификаторов
- •Общая структура программы на Паскале
- •Константы и переменные
- •Комментарии
- •2.2. Типы данных
- •Целочисленные типы
- •Целочисленные типы данных
- •Вещественные типы
- •Вещественные типы данных
- •Булевский тип boolean
- •Массивы
- •2.3. Программирование линейных вычислительных процессов Арифметические выражения
- •Оператор присваивания
- •Организация ввода и вывода
- •2.4. Организация программ разветвляющейся структуры Логические выражения
- •Оператор условия if
- •Оператор выбора case
- •Оператор перехода goto
- •2.5. Организация программ циклической структуры
- •Оператор цикла с параметром for
- •Оператор цикла с предусловием while
- •Оператор цикла с постусловием repeat
- •Вложенные циклы
- •2.6. Подпрограммы
- •Функции
- •Процедуры
- •Область действия параметров
- •3. Задачи для контрольной работы
- •4. Примеры решения задач Вариант 10
- •Программа
- •Пример расчета
- •Задача 4
- •Программа
- •Пример расчета
- •Разность наибольшего и наименьшего элементов
- •Задача 5 Программа
- •Пример расчета
- •Список литературы
- •Содержание
- •1.Основы алгоритмизации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
- •Этапы решения задач с помощью компьютера . . . . . . . . . . . . . . . . . . .3
- •Алгоритм: определение и свойства . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
- •153460, Г. Иваново, пр. Ф. Энгельса, 7.
2.6. Подпрограммы
Если в программе возникает необходимость выполнить несколько раз одну и ту же последовательность операторов (не циклически), то эту последовательность операторов выделяют в самостоятельный блок, к которому можно обращаться, указывая его имя. Такие разработанные программистом самостоятельные программные блоки называются подпрограммами пользователя.
Передача данных из вызывающей программы в подпрограмму и возврат результатов осуществляются с помощью переменных, которые называются параметрами. Различают формальные параметры – параметры, определенные в заголовке программы, и фактические параметры – выражения, задающие конкретные значения при обращении к подпрограмме.
Подпрограмма, чтобы ее можно было вызывать в программе, должна быть объявлена в разделе описаний программы. Объявить подпрограмму – значит указать ее заголовок (с используемыми в ней формальными параметрами), описать локальные (т.е. используемые только в данной подпрограмме) переменные и, наконец, задать ее тело. В разделе описаний подпрограммы могут быть объявлены новые подпрограммы, которые, в свою очередь, также могут включать подпрограммы. Таким образом, возможно множество уровней вложения подпрограмм. В Паскале приняты два вида подпрограмм: функции и процедуры.
Функции
Заголовок функции состоит из: 1) зарезервированного слова function; 2) имени подпрограммы – функции; 3) заключенного в круглые скобки списка формальных параметров; 4) типа возвращаемого функцией значения.
Пример заголовка функции:
function step ( n : integer ; x, y : real ) : real;
имя формальные параметры тип результата
В теле подпрограммы–функции должен находиться, по крайней мере, один оператор, присваивающий имени функции значение, например:
step : = sin (n * x * x) ;
В точку вызова возвращается результат последнего присваивания.
Пример. Функция, которая возвращает максимальное из двух целых чисел:
function max ( a, b: integer): integer;
begin
if a > f then max: = a else max: = b;
end;
Обращение к функции осуществляется по имени с указанием списка фактических параметров. При этом следует соблюдать соответствие между формальными и фактическими параметрами по количеству параметров, их типу и порядку следования.
Например, обращение к функции max может иметь вид:
max ( x + 5, y)
При таком обращении формальные параметры а и b заменяются фактическими параметрами х +5 и у, соответственно.
Процедуры
Заголовок процедуры состоит из: 1) зарезервированного слова procedure; 2) имени; 3) списка формальных параметров.
Процедура, как и функция, вызывается по ее имени с указанием фактических параметров в круглых скобках: имя (фактические параметры);
Основное отличие процедур от функций состоит в том, что имени функции присваивается возвращаемое значение, а имени процедуры – нет.
Пример: программа, использующая процедуру, которая выводит на экран строку, состоящую из звездочек. Длина строки (количество звездочек) является параметром процедуры.
Program primer;
Var
n : integer;
procedure starline ( k : integer); {заголовок процедуры}
var
i : integer; {описание переменной для процедуры}
begin {начало тела подпрограммы}
for i : = 1 to k do
write ( ′ * ′ );
end; {конец тела подпрограммы}
begin {начало основной программы}
write ( ′ n = ′ ); readln (n);
starline (n); {вызов подпрограммы}
end.
В подпрограмму можно передавать целый массив. Для этого в качестве формального параметра указывается массив, тип которого должен быть сначала описан в разделе описания типов type.
Например :
const
n = 5; m = 6 ;
type
mas = array [1..n, 1..m ] of real;
var
m : mas ;
procedure pr ( a : mas );
В этом случае обращение к процедуре в вызывающей программе будет иметь вид : pr(m); При этом формальный параметр – массив а – принимает значение фактического параметра – массива m.
Когда лучше использовать процедуры и когда функции ? Это зависит от конкретного случая. Если подпрограмма вычисляет единственный результат, ее можно реализовать как функцию. Если же от подпрограммы требуется вычислить несколько значений, ее лучше оформить в виде процедуры.