- •Ф.Ф. Павлов языки программирования
- •Санкт-Петербург
- •230201 - Информационные системы и технологии
- •Тема 2 посвящена изучению жизненного цикла программы и основным этапам решения задач на эвм.
- •Тема 4 изучает типы пользовательских интерфейсов, классификацию диалогов и основные компоненты графических пользовательских интерфейсов.
- •Тема 8 посвящена структурам данных фиксированного размера (массивы), а также типам данных, определяемых пользователем (структуры, объединения, перечисления).
- •Тема 10 изучает динамические структуры данных: виды и способы реализации списков, динамическое выделение памяти.
- •Тема 12 затрагивает вопросы обработки файлов данных: понятия записи, файла данных и способы доступа, операции и средства обработки файлов, контроль операций обработки файлов.
- •Тема 14 вводит в технологию объектно-ориентированного программирования.
- •Раздел I Принципы программирования на языках высокого уровня
- •Тема 1. Эволюция языков программирования
- •1.1. Неструктурированное, «стихийное» программирование
- •1.2. Процедурное (модульное) программирование
- •1.3. Объектно-ориентированное программирование
- •1.4. Компонентные технологии программирования
- •Тема 2. Жизненный цикл программы и основные
- •2.1. Дружественность, жизненный цикл программы
- •2.2. Постановка задачи и спецификация программы
- •2.3. Проектирование и реализация программы
- •2.4. Способы записи алгоритма
- •2.5. Критерии качества программы
- •3.1. Классификация программных продуктов
- •3.3. Модели программирования в ms-dos и Windows
- •Тема 4. Диалоговые программы
- •4.1. Типы пользовательских интерфейсов
- •4.2. Классификация диалогов и их реализация
- •4.3. Основные компоненты графических
- •Тема 5. Программа на языке высокого уровня
- •5.1. Структура программы и функции
- •5.2. Стандартные типы данных и операции над ними
- •5.3. Адресные типы данных: указатели и ссылки
- •5.4. Стандартные библиотеки языка
- •5.5. Классы памяти
- •Раздел 2 Управляющие структуры и структуры данных
- •Тема 6. Представление управляющих структур
- •6.1. Структура следования
- •6.2. Структуры ветвления
- •6.3. Структуры повторения
- •Int kol, //счетчик введенных оценок
- •Int god; //число лет
- •Тема 7. Адресные типы данных
- •7.1. Указатели
- •7.2. Ссылки
- •Тема 8. Структуры данных фиксированного размера
- •8.1. Массивы
- •8.2. Типы данных, определяемые пользователем
- •Тема 9. Функции (процедуры)
- •9.1. Определение, прототип и вызов функции
- •9.2. Передача параметров
- •9.3. Программирование рекурсивных алгоритмов
- •Тема 10. Динамические структуры данных
- •10.1. Списки: основные виды и способы реализации
- •10.2. Динамическое выделение памяти
- •Раздел 3 Процедурное программирование
- •Тема 11. Ввод/вывод данных
- •11.1. Видеофункции библиотеки conio.H
- •11.2. Функции библиотеки потокового ввода/вывода
- •Тема 12. Обработка файлов данных
- •12.1. Записи и файлы данных
- •12.2. Операции и средства обработки файлов
- •12.3. Контроль операций обработки файлов
- •Тема 13 Технология процедурного программирования
- •13.1. Способы конструирования программ
- •13.2. Проектирование программы: методы декомпозиции и и модульного программирования
- •13.3. Реализация программы: методы структурного
- •Тема 14. Введение в технологию объектно-
- •14.1. Основные понятия объектно-ориентированного
- •14.2. Проектирование программы
- •14.3. Реализация программы
- •Утверждаю
- •Рабочая программа
- •Технология программирования
- •Санкт-Петербург
- •Тема 1. Технология программирования и этапы ее
- •Тема 2. Жизненный цикл программы и основные этапы
Тема 9. Функции (процедуры)
9.1. Определение, прототип и вызов функции
Функция – это поименованный блок программы, состоящий из последовательности операторов. Функция состоит из заголовка и тела (текста) функции. Составными частями тела функции являются объявления локальных переменных, определения типов, операторы. Перед вызовом функции в соответствующем файле кодов должно быть либо объявление функции (прототип функции), либо определение функции (текст функции). Компилятор осуществляет контроль типов данных оператора вызова функции и параметров функции.
Прототип функции – это заголовок функции без тела функции. Прототип функции обычно помещают в заголовочный файл, который подключают к соответствующему файлу кодов с помощью директивы компилятора #include.
Примеры прототипов:
int poisk_ind(char tabn[10], int nomer); //принимает 2 значения
//типа массив и int, возвращает значение типа int
int poisk_ind(char*, int); //можно без имен переменных
void init(); //не принимает и не возвращает значений
float sr_oc(int n); //принимает значение типа int,возвр. тип float
Прототип функции сообщает компилятору тип возвращаемых данных, количество параметров и их тип, порядок их следования. Компилятор использует прототип функции для проверки правильности вызовов функции
Определение функции – это заголовок и тело функции. Пример из программы п.2.1:
//файл кодов lab1_f2.cpp, см. программу
#include "lab1_f.hpp" //подключение файла заголовков
float sr_oc(int n) //заголовок функции; float - тип y
{
...
return(y); //возврат значения (y) в функцию main
}
В заголовке определения функции, в круглых скобках, имеется список формальных параметров: имена переменных с типами данных.
Основными составными частями тела функций являются операторы и локальные переменные. В теле функции действуют переменные списка формальных параметров, локальные переменные, объявленные в теле функции, и , если есть, глобальные переменные, объявленные в файле кодов.
Операторы бывают простыми и составными. К простым операторам относятся оператор присваивания, оператор вызова функции, оператор return, прерывающий выполнение функции и возвращающий значение выражения. Составной оператор – это оператор, состоящий из последовательности простых операторов. Согласно синтаксису можно различить следующие составные операторы: условные операторы и операторы циклов. В теле составных операторов используется простой оператор break, прерывающий их выполнение. В теле операторов цикла используется оператор continue, передающий управление на конец цикла.
9.2. Передача параметров
Оператор вызова функции служит для вызова вызываемой функции в теле вызывающей функции. Он может быть представлен двумя способами:
как простой оператор без возврата значений через return;
как операнд в выражении при возврате значений через return.
Пример :
//файл кодов lab1_f1.cpp
#include "lab1_f.hpp" //подключение файла заголовков
main()
{//...
sr=sr_oc(kol); //оператор вызова функции sr_oc
cout<<"Ваша средняя оценка:"<<sr;
getch();
}
В операторе вызова функции, в круглых скобках, имеется список фактических параметров вызывающей функции: выражения или имена переменных без типов данных. Значения фактических входных параметров перед вызовом функции должны быть определены. Оператор вызова функции передает управление вызываемой функции, и копии фактических параметров через стек присваиваются формальным параметрам вызываемой функции. Аналогично копии результатов вызываемой функции пересылаются и присваиваются фактическим параметрам вызывающей функции. Управление передается обратно в вызывающую функцию.