- •Введение
- •Глава 1. Структурное программирование
- •1.1 Основные определения
- •1.2 Три основных действия
- •1.2.1 Последовательность
- •1.2.2 Выбор
- •1.2.3 Цикл
- •1.3. Структурный подход к решению задач
- •1.4. Организация хранения и обработки данных
- •1.4.1 Записи и списки
- •Задание
- •Задание
- •1.4.2 Очередь
- •Задание
- •1.4.3 Стек
- •Задание
- •1.5 Структурное программирование.
- •2. Программирование на языке паскаль
- •2.1. Краткая история эвм и языки программирования
- •Задание
- •2.2. Интегрированная среда borland pascal
- •2.2.1. Краткая характеристика. Запуск программы
- •2.1.2. Основы работы в редакторе Открытие нового окна
- •Завершение работы со средой
- •Задание
- •«Горячие» клавиши интегрированной среды
- •2.3. Структура программы
- •2.3.1.Основные положения
- •2.3.2. Понятие идентификатора
- •2.3.3. Первая программа
- •2.3.4. Описание подпрограммы (процедуры).
- •2.3.4. Строковый тип данных
- •2.3.5. Процедуры ввода и вывода данных
- •Задание
- •2.4. Программа калькулятор.
- •2.4.1. Тип целые и вещественный.
- •2.4.2. Переменные вещественного типа
- •Задание
- •2.5. Улучшенный калькулятор
- •2.5.1. Операторы выбора
- •Булевские (логические) операции
- •Операции отношения
- •Оператор if … then
- •Оператор case
- •2.5.2. Основные отличия применения операторов выбора. Перечисляемый тип. Интервальный тип.
- •Задание
- •2.6. Улучшенный каЛьКулятор (продолжение)
- •2.6.1. Оператор цикла с постусловием (проверка на ноль)
- •2.6.2. Оператор цикла с предусловием
- •2.6.3. Оператор цикла со счетчиком (параметром)
- •Задание
- •2.7. Переменные типа массив
- •2.7.1. Виды массивов
- •2.7.2.Описание массива
- •2.7.3.Нахождение максимального элемента в массиве
- •Задание
- •2.7.4. Строковая переменная (продолжение)
- •Задание
- •2.7.5. Строковая переменная как массив
- •Мама мыла раму
- •Задание
- •2.7.6. Описание функции
- •Задание
Задание
1. Используя свойство строковой переменной как массива символов, напишите программу, которая считывает текст исходной строки с клавиатуры и выводит ее на экран в обратном порядке. Программу сохраните в файле "Primer13.pas".
2. Используя свойство строковой переменной как массива символов, напишите программу, которая находит количество вхождений подстроки Sub в строку Stroka. Исходная строка и подстрока вводится с клавиатуры. Программу сохраните в файле "Primer14.pas".
2.7.6. Описание функции
Как мы уже говорили - любая задача может быть, и, как правило, должна быть сведена к решению более простых задач. Используя этот подход, мы определили понятие процедуры как некоторой подпрограммы, которая описывает действия для выполнения (решения) подзадачи основной задачи (программы). При рассмотрении операций со строковыми переменными Вы познакомились со стандартными процедурами и функциями. Функции, также как и процедуры, служат для декомпозиции (разделения) задачи на подзадачи. Ниже приведена структура функции на языке Pascal:
Function Имя (список формальных параметров): Тип результата;
{блок описания локальных меток,
констант,
типов,
переменных,
процедур,
функций}
begin
{тело функции, в теле функции обязательно должен присутствовать хотя бы один оператор, который присваивает переменной с именем функции значение результата}
end;
Обратите внимание на то, что структура функции и процедуры очень похожи между собой. Описание функции начинается с зарезервированного слова Function, после которого, через пробел указывается идентификатор (имя) функции, с в формальными параметрами которые заключены в круглые скобки. Заголовок функции завершается указанием типа возвращаемого значения и точкой с запятой в конце. Указание типа возвращаемого значения у функции связано с тем, что функция возвращает, как правило, конкретное значение. Вспомните применение функций length (s:String) , значением этой функции является длина строковой переменной.
Затем идет блок описания локальных меток, констант, типов, переменных, процедур, функций. Все о чем говорилось для аналогичного блока при описании подпрограммы, относится и к этому блоку, данные, описанные в этом блоке, являются локальными, то есть их действие ограничено рамками данной функции.
Далее после зарезервированного слова begin помещается текст операторов функции. Текст операторов функции заканчивается словом end, после которого стоит точка с запятой. Обращение к функции из тела программы осуществляется указанием идентификатора (имени) данной функции с передачей ей фактических параметров. Отличием функции от процедуры заключается и в том, что в теле функции обязательно идентификатору функции присваивается то значение, для вычисления которого и предназначена данная функция. Функция, в отличие от процедуры, может быть операндом математического и логического выражения. Приведем пример написания и использования функции написанной пользователем. Напишем программу с использованием функции определения длины строковой переменной, которая аналогична стандартной функции length (), и дадим ей имя length1 (). Для контроля правильности результата определим длину строки с использованием стандартной функции length ():
program Primer_15;
var
Stroka : string;
k,k1 :byte;
function length1(s:string):byte;
begin
length1:= Ord(Stroka[0]));
end;
procedure init;
begin
readln(Stroka);
end;
procedure work;
begin
k:=length(Stroka);
k1:=length1(Stroka);
end;
procedure exit;
begin
writeln(k, ' ',k1);
end;
begin
init;
work;
exit;
end.
Посмотрим еще один пример использования функции написанной пользователем. Программа представленная ниже предназначена для нахождения суммы ряда натуральных чисел от 1 до некоторого числа N, которое вводится с клавиатуры.
program Primer_16;
var n, rezultat :integer;
function sumn (n:integer):integer;
var
i,s:integer;
begin
s:=0;
for i:=1 to n do
s:=s+i;
sumn:=s;
end;
procedure init;
begin
readln (n);
end;
procedure work;
begin
rezultat:=sumn(n);
end;
procedure exi;
begin
writeln (rezultat);
end;
begin
init;
work;
exi;
end.
Глобальными переменными являются переменные с именами n и rezultat. В качестве фактического параметра функции sumn (функция нахождения суммы первых n натуральных чисел) передается значение переменной n. В самой функции, для вычисления значения функции, используются локальные переменные i и s.
