
- •Информатика основы
- •Предисловие
- •Введение
- •Программы
- •1.1. Элементы языка
- •Список основных ключевых слов
- •Типы числовых данных
- •Разделители
- •Основные бинарные операции
- •Математические функции
- •1.2. Структура программы
- •1.3. Выполнение программы
- •Контрольные вопросы
- •2.1. Загрузка и настройка системы программирования
- •2.2. Создание и работа с проектом
- •Условные графические обозначения основных блоков схем алгоритмов
- •Словесно-формульный алгоритм
- •Листинг 2.1. Lin_prog.Cpp
- •Результат выполнения программы
- •3.2. Логический тип данных и базовые логические операции
- •Операции сравнения
- •Логические операции
- •При решении задач с множеством логических условий программа существенно упрощается, если эти условия удается объединить с помощью операций и, или, не в более крупные выражения.
- •Словесно-формульный алгоритм
- •Результат выполнения программы
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Области определения функции z (X,y)
- •Контрольные вопросы
- •4. Организация циклов
- •4.1. Организация программ с циклами
- •For (инициализация; условие; модификация) операторы
- •4.2. Инкремент, декремент и составные операции
- •Составные операции присваивания
- •Результат выполнения программы
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •5.Составление программ с массивами
- •5.1. Организация программ с массивами
- •Тип имя_массива [n];
- •Имя_массива [индекс]
- •Тип имя_массива [размер_1] [размер_2]
- •5.2. Манипуляторы и форматирование ввода-вывода
- •Манипуляторы
- •Результат выполнения программы
- •Результат выполнения программы
- •Контрольные вопросы
- •Дайте определение массива.
- •6. Составление программ с использованием функций
- •6.1. Описание, объявление и вызов функций
- •Механизм возврата из функции реализуется оператором
- •Тип имя_функции (тип размерность, тип имя_массива[ ]) ,
- •6.2. Глобальные и локальные переменные
- •Результат выполнения программы
- •6.3. Перегруженные функции
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •7. Программирование с использованием указателей
- •7.1. Общие сведения об указателях
- •7.2. Динамические массивы
- •Результат выполнения программы
- •Результат выполнения программы
- •7.3. Указатели и функции
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •8. Программирование с использованием структур
- •8.1. Определение структур
- •8.2. Организация программ с использованием структур
- •Имя_структуры . Имя_элемента_структуры
- •Список товаров
- •Результат выполнения программы
- •Упражнения
- •Варианты заданий
- •Контрольные вопросы
- •Библиографический список
- •Основные бинарные операции
- •Операции сравнения
- •Составные операции присваивания
- •Логические операции
- •Типы числовых данных
- •Константы, используемые в математических выражениях
- •Математические функции
- •Типовые сообщения об ошибках
- •Оглавление
Механизм возврата из функции реализуется оператором
return выражение;
Функция может содержать несколько операторов return (это определяется потребностями алгоритма). Для функции типаvoid выражение в оператореreturnне указывается; более того, если возврат из нее происходит в конце тела функции перед закрывающей фигурной скобкой, операторreturn можно опустить. В этом случае компилятор предполагает, что операторreturnнаходится в самом конце тела функции и добавляет его сам при компиляции.
Выражение в операторе returnдолжно иметь тип, указанный перед именем функции в ее определении, либо иметь тип, допускающий автоматическое преобразование к типу возвращаемого функцией значения.
Пример. Составить программу с функцией вычисления максимума из двух чисел.
#include <iostream.h>
float max(int, int); // прототип
void main(void) //void в скобках можно опустить
{ int x,y;
cin>>x>>y; //Ввод фактических параметров
float z=max(x,y); //Вызов функции с возвращением значения
cout<<"z="<<z; //z можно заменить вызовом max(x,y)
return; //Оператор return можно опустить
}
//Описание функции max
float max(int a,int b) //a и b – формальные параметры
{ return (a>=b)? a:b; //Автоматическое преобразование int в float
}
Выше были рассмотрены функции со скалярными аргументами. Использование массива в качестве передаваемых в функцию параметров требует несколько иной формы записи заголовка, а именно:
Тип имя_функции (тип размерность, тип имя_массива[ ]) ,
причем размерностей и массивов может быть несколько, а порядок их перечисления – любым. Такие функции либо не возвращают результат (тип void), либо возвращают скалярное значение, например описание функции с двумя массивами одинаковой размерности:
float summ(int n, float a[], float b[])
Прототип соответственно имеет следующий вид:
float summ(int, float [], float []);
Вызов такой функции осуществляется в обычной форме:
summ(m, x, y),
где m,x,y– соответственно фактические размерность и имена массивов.
С++ имеется возможность задавать начальные значения параметров функции, которые иначе называются аргументами по умолчанию. Данные параметры должны быть последними в списке аргументов. В качестве значений параметров по умолчанию могут использоваться выражения, константы и глобальные переменные. Параметры по умолчанию должны быть указаны при первом упоминании имени функции – обычно в прототипе.
При вызове функции параметр по умолчанию можно не указывать, если фактический параметр с ним совпадает. При этом должны быть опущены и все аргументы, стоящие за ним. Благодаря такой возможности оператор вызова несколько упрощается.
Примеры. Использование параметров по умолчанию:
а) объявления:
int summ (int a, int b=3);
double f (int, int=50, float=0.26);
void err (int=n); //n– глобальная переменная
б) вызовы функций:
summ (7);//опущен аргументb=3
summ (7,5);//второй аргумент изменен:b=5
f (3);//опущены последние параметры 50 и 0.26
err( );//аргумент равенn
В С++ свойство вложенности функций не предусмотрено, то есть нельзя внутри тела одной функции определить другую функцию. Однако можно вызывать одну функцию из другой. Кроме того, функция может вызвать саму себя (рекурсия).
Функции обмениваются информацией тремя способами: с помощью глобальных переменных, через параметры заголовка функции и через возвращаемое функцией значение. Последние два способа были уже рассмотрены.