- •Содержание
- •Пояснительная записка
- •Раздел 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. Описание процедуры
Описание процедуры включает заголовок (имя) и тело процедуры. Заголовок состоит из зарезервированного слова procedure, идентификатора (имени) процедуры и, необязательного, заключенного в круглые скобки, списка формальных параметров с указанием типа каждого параметра. Тело процедуры представляет собой отдельный блок, по структуре аналогичный программе:
procedure <имя> (параметры); const…; type …; var …; begin <операторы> end; |
В заголовке процедуры определяется имя процедуры и ее параметры (если они есть). Для вызова процедуры также необходимо указать ее имя и параметры (если они есть). В теле процедуры задаются операторы, выполняющиеся при вызове процедуры. Функции имеют почти такой же формат, что и процедуры, за исключением того, что они начинаются с заголовка function и того, что заголовок оканчивается типом возвращаемого значения функции <(типом функции ):
4. Описание функций
function <имя> (параметры):<тип результата>; const ...; type var ...; begin <операторы> end;
В разделе операторов должен находиться, по крайней мере, один оператор, присваивающий имени функции какое-либо значение. В точку вызова возвращается результат последнего присваивания.
Как видите, процедуры и функции могут иметь свои собственные константы, типы данных, переменные и даже собственные процедуры и функции. Но все эти элементы могут использоваться только в тех процедурах и функциях, в которых они определены.
Задание:
- Определить является ли написанное процедурой или функцией (в чем их главное различие)?
-С какими параметрами работает?
-Какого типа результат возвращает?
ArcTan(R:real):Real;
Odd(X): Boolean;
Abs(R:real):Real;
Delete (var S: String; Index, Count: Integer);
Exit
Clrscr;
KeyPressed: Boolean;
Обратить внимание, что у некоторых процедур и функции не указаны параметры. Почему? Разберем данный вопрос.
5. Локальные и глобальные переменные.
Все переменные, постоянные, типы и т.д., описанные внутри подпрограммы называются локальными и действительны только в пределах описанного блока, и блоках содержащихся внутри него. Все они создаются при входе в процедуру и уничтожаются при выходе из нее.
Переменные, постоянные и типы, описанные в основной программе, называются глобальными.
Глобальные и локальные переменные могут иметь одинаковые имена, так как им соответствуют разные объекты, но это не рекомендуется из-за возможной путаницы.
Пример программы с использованием глобальной переменной
Верно |
неверно |
Program _; Var i:byte; Procedure vivod; Begin Write(i); End; Begin I:=4; Vivod; End. |
Program _; Var i:byte; Procedure vivod; Var i: byte; Begin Write(i); End; Begin I:=4; Vivod; End. |
Необходимо отметить следующие моменты:
1.Неременные, описанные в разделе описания переменных всей программы, "видны" всем процедурам программы, т.е. являются "глобальными". Например, процедура Vivod использует переменную I, причем I описана в разделе описания переменных программы.
2. Если при описании переменных процедуры мы вводим переменную с тем же именем, что и некоторая глобальная переменная, то внутри процедуры переменная процедуры перекрывает глобальную переменную (таким образом, глобальная переменная становится "невидимой" ). Если не иметь в виду последнее замечание, то трудно понять, почему вторая программа выводит на экран какие-то хаотические записи.
Пример программы с использованием локальной переменной
{в этой программе используется процедура Stars, выводящая на экран сто звездочек}
program Stars_200;
{описание процедуры Stars}
procedure Stars;
var i: Integer;
begin
for i:=1 to 100 do
WriteLn ('*');
end;
{описание процедуры заканчивается "точкой с запятой" }
{сама программа}
begin
Stars; { первый раз вызвали процедуру Stars }
WriteLn (‘100 stars');
Stars; {второй раз вызвали процедуру Stars }
WriteLn (‘ 200 stars!');