- •1. Информация о дисциплине
- •3. Пререквизиты дисциплины
- •4. Постреквизиты дисциплины
- •5. Календарно-тематический план.
- •7. Критерии оценки
- •8. Требования преподавателя.
- •Приоритеты операций и порядок вычислений
- •Лекция 4 Операторы if
- •Простое присваивание
- •Составное присваивание
- •Побочные эффекты
- •Лекция 5 Простые (одна операция) и составные операторы. Логические операторы И и ИЛИ, НЕ.
- •Сравнение двух значений
- •ЗНАКОМСТВО С ОПЕРАТОРОМ if
- •Лекция 6 Повторение одного или нескольких операторов. Операторы цикла.
- •Лекция 7 Входной поток с именем cin и выходной поток cout. Оператор извлечения (>>) и оператор вставки (<<).
- •Лекция 8 Функции. Выполнение функции.
- •Лекция 13 Объявление переменной массива. Использование индексной переменной.
- •Лекция 14 Указатели. Использование указателя на символьную строку.
- •ПЕРЕЧЕНЬ ЗАДАНИЙ НА СРСП
- •Задание № 1.1. Типы данных в С++.
- •Задание №1.3. События в программном коде.
- •Задание № 1.4. Управляющие элементы выбора
- •Задание № 2.1. Работа со списками
- •Задание № 2.2. Документирование программы.
- •Задание № 2.3.
- •Задание № 3.1. Программные алгоритмы
- •Задание № 3.2 Поиск в массивах
- •Задание № 3.3. Процедуры и функции, их организация
- •Задание № 3.4. Структуры данных
- •ГЛОССАРИЙ
Первый элемент массива хранится как элемент 0 (array[0]), индекс последнего элемента массива на единицу меньше размера массива.
Программы часто используют индексные переменные для обращения к элементам массива.
Если функция воспринимает массив как параметр, она должна указать тип и имя, но не размер массива.
Если программа передает массив в функцию, она, как правило, передает и параметр, который сообщает функции количество элементов содержащихся в массиве.
Так как C++ передает массив в функцию с помощью адреса массива функция может изменять значения, содержащиеся в массиве.
Лекция 14 Указатели. Использование указателя на символьную строку.
Программы на C++ хранят переменные в памяти. Указатель представляет собой адрес памяти, который указывает (или ссылается) на определенный участок. Для изменения параметра внутри функции программа должна передать адрес параметра (указатель) в функцию. Далее функция в свою очередь использует переменную-указатель для обращения к участку памяти. Когда программы работают с символьными строками и массивами, они обычно используют указатели, чтобы оперировать элементами массива. Для простоты (для уменьшения кода) многие программы трактуют символьную строку как указатель и манипулируют содержимым строки, используя операции с указателями.
Когда увеличивается переменный - указатель (переменную, которая хранит адрес), C++ автоматически увеличивает адрес на требуемую величину (на 1 байт для char, на 2 байта для int, на 4 байта для float и т.д.).
Программы могут использовать указатели для работы с массивами целочисленных значений или значений с плавающей точкой.
Использование указателя на символьную строку Когда программа передает массив (например, символьную
строку) в функцию, C++ передает адрес первого элемента массива. В результате совершенно обычно для функции использовать указатель на символьную строку.
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
71
Чтобы объявить указатель на символьную строку, функция просто предваряет имя переменной звездочкой, как показано ниже:
void some_function(char *string);
Звездочка, которая предваряет имя переменной, указывает C++, что переменная будет хранить адрес памяти — указатель. Следующая программа ptr_str.cpp использует указатель на символьную строку внутри функции show_string для вывода содержимого строки по одному символу за один раз:
#include <iostream.h>
void show_string(char *string) { while (*string != '\0')
{
cout << *string; string++;
}}
void main(void)
{
show_string( "Учимся программировать на языке C++!");}
Условие while (*string != '\0') проверяет, не является ли текущий символ, указываемый с помощью указателя string, символом NULL, который определяет последний символ строки. Если символ не NULL, цикл выводит текущий символ с помощью cout. Затем оператор string++; увеличивает указатель siring таким образом, что он указывает на следующий символ строки. Когда указатель string указывает на символ NULL, функция уже вывела строку и цикл завершается.
Рис. 14.1. Сканирование строки с помощью указателя.
Предположим, например, что строка, переданная в функцию, находится в памяти компьютера по адресу 1000.
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
72
Каждый раз, когда функция увеличивает указатель string, он указывает на следующий символ (адрес 1001,1002, 1003 и т. д.), как показано на рис. 14.1.
Используя указатель, функция может сканировать строку символов, пока не будет обнаружен символ NULL. Следующая программа ptr_len.cpp использует указатель на строку в функции string_length для определения количества символов в строке:
#include <iostream.h>
int string_length(char *string)
{
int length = 0;
while (*string != '\0')
{
length++;
string++;
}
return(length);
}
void main(void)
{
char title[] = "Учимся программировать на языке C++";
cout << title << " содержит " << string_length(title) << " символов";
}
Функция string_length сканирует символы строки до тех пор, пока не встретит символ NULL.
Уменьшение количества операторов Чтобы определить конец символьной строки, каждая из
предыдущих программ использовала следующий цикл while: while (*string != '\0')
Символ NULL ('\0') представляет собой значение ASCII 0. Так как C++ использует значение 0, чтобы представить ложь, ваши программы могут записать предыдущий цикл следующим образом:
while (*string)
В данном случае пока символ, определяемый указателем строки, не равен 0 (NULL), условие оценивается как истинное и цикл будет продолжаться. Многие программы на C++ используют постфиксные операции увеличения и уменьшения, чтобы сканировать массивы с помощью указателей. Например, использование постфиксной операции увеличения делает следующие циклы while идентичными:
while (*string) { cout << *string++;}
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
73
while (*string) {cout << *string; string++;}
Оператор cout << *string++, заставляет C++ вывести символ, указываемый указателем string, а затем увеличить текущее значение string, чтобы он указывал на следующий символ. С помощью этих методов следующая программа smartptr.cpp иллюстрирует новую реализацию функций show_string и string_length:
#include <iostream.h>
void show_string(char *string)
{
while (*string) cout << *string++;} int string_length(char •string)
(
int length = 0;
while (*string++) length++; return(length) ;
}
void main(void)
{
char title[] = "Учимся программировать на языке C++"; show_string(title) ;
сout << " содержит " << string_length(title) << " символов";}
Сканирование символьной строки Одно из наиболее широко употребляемых использовании
указателей в программах на C++ заключается в сканировании символьных строк. Для уменьшения количества кода многие программы используют следующие операторы для сканирования строки:
while (*string)
{
//операторы
string++;
//продвинуть к следующему символу
}
Следующая функция string_uppercase использует указатели для преобразования символов строки в символы верхнего регистра:
char *string_uppercase(char* string)
{
char *starting_address = string; // адрес string[0]; while (*string)
{
if ((*string >= 'а') && (*string <= 'я')) *string = *string - 'a' + 'A';
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
74
string++;
}
return(starting_address);}
Эта функция сохраняет и возвращает начальный адрес строки, который позволяет вашим программам использовать функцию следующим образом:
cout << string_uppercase("Привет, мир!") << endl;
Использование указателей с другими типами массивов Указатели можно использовать с массивами других типов.
Например, следующая программа ptrfloat.cpp использует указатель на массив типа float для вывода значений с плавающей точкой:
#include <iostream.h>
void show_float(float *array, int number_of_elements)
{
int i;
for (i = 0; i < number_of_elements; i++) cout << *array++ << endl;
}
void main(void)
{
float values[5] = {1.1, 2.2, 3.3, 4.4, 5.5); show_float(values, 5);
}
Внутри функции show_float цикл for использует значение, указываемое с помощью указателя array, а затем увеличивает этот указатель до следующего значения. В данном случае программа должна передать параметр, который задает количество элементов массива, поскольку в отличие от символьных строк массивы типа float (или int, long и т. д.) не используют символ NULL для определения последнего элемента.
О математике указателя Программы могут использовать указатели на массивы любых
типов. В предыдущей программе функция show_float увеличивала указатель для продвижения по массиву типа float. Указатель указывает на участок памяти, содержащий значение определенного типа, например char, int или float. Когда функция сканирует массив с помощью указателя, функция увеличивает указатель для продвижения от одного значения к следующему. Чтобы указатель указывал на следующий элемент массива, C++ должен знать размер каждого элемента (в байтах), чтобы определить, на сколько необходимо увеличить значение указателя.
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
75
Например, для продвижения указателя к следующему символу в массиве, C++ должен увеличить значение указателя на 1. Однако, чтобы указать следующее значение в массиве типа int C++ должен увеличить указатель на два байта (значение типа int занимает два байта памяти). Для значений типа. float C++ увеличивает указатель на 4 байта. Зная тип значения, на которое указывает указатель, C++ знает, на сколько необходимо увеличить значение этого указателя. В программах просто используется оператор увеличения, например pointer++. Однако за кулисами C++ увеличивает реальное значение (адрес памяти), содержащееся в указателе, на корректную величину.
Лекция 15 Создание и использование функций. Представление о прототипах функций.
•Функции группируют связанные операторы для выполнения определенной задачи.
•Программа вызывает функцию, обращаясь к ее имени, за которым следуют круглые скобки, например bеер ().
•После завершения обработки большинство функций возвращают значение определенного типа, например int или float, которое программа может проверить или присвоить переменной.
•Программы передают параметры (информацию) функциям, например имя, возраст или оклад служащего, заключая параметры в круглые скобки, которые следуют за именем функции.
•C++ использует прототипы функций для определения типа возвращаемого функцией значения, а также количества и типов параметров, передаваемых функции.
По мере увеличения программ использование функций становится их неотъемлемой необходимостью
Создание и использование функций При создании программ следует спроектировать каждую
функцию для выполнения определенной задачи. Если обнаружится, что функция выполняет несколько задач, следует разделить ее на две или более функций. Каждая создаваемая в программах функция должна иметь уникальное имя.
Как в случае с именами переменных, имена функций, которые выбирается те, должны соответствовать операции, выполняемой функцией. Например, представление о назначении каждой функции перечислены в табл. 15.1.
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
76
Таблица 15.1. Примеры смысловых имен функций.
Имя функции
Print_test_scores
Accounts_payable
Get_user_name
Print_document
Calculate_income_tax
Назначение функции
Печатать тестовые очки класса
Обработать счета компании
Запрос имени пользователя
Напечатать указанный документ
Определить подоходный налог пользователя
Функция C++ по структуре подобна программе main. Другими словами, имя функции предваряется ее типом, а за ним следует список параметров, описание которых появляется в скобках. Группировка операторов функций внутри левой и правой фигурных скобок, показано ниже:
тип_возврата имя_функции (список_параметров)
{
объявления_переменных; операторы;
}
Рассмотрите, например, как структура этой функции соответствует следующей программе main:
void main (void) // тип имя (список_параметров)
{
int count; //объявления_переменных;
for (count = 0; count < 10; count++) cout << count << ' '; // Оператор}
Следующие операторы определяют функцию с именем show_message, которая выводит сообщение на экран, используя cout.
void show_message (void)
{
cout << "Привет, учусь программировать на C++" << endl; }
Слово void, предшествующее имени функции, указывает функции не возвращать значение. Подобно этому, слово void, содержащееся внутри круглых скобок, указывает (компилятору C++ и программистам, читающим код), что функция не использует параметры (информацию, которую программа передает функции). Следующая программа show_ msg.cpp использует функцию show_message для вывода сообщения на экран:
#include <iostream.h>
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
77
void show_message (void)
{
cout << "Привет, учусь программировать на C++" << endl;
}
void main (void)
{
cout << "Перед вызовом функции" << endl; show_message ();
cout << "Вернулись из функции" << endl;
}
Выполнение программы всегда начинается внутри main. Внутри main следующий оператор (вызов функции) вызывает функцию show_message:
show_message ();
Круглые скобки после имени функции сообщают компилятору C++, что программа использует функцию. Внутри этих скобок программа может передавать в функции информацию (параметры).
Если программа встречает вызов функции, она начинает выполнять операторы, находящиеся внутри функции. После того как программа выполнит все операторы, которые содержит функция (другими словами, функция завершится); выполнение программы продолжается с оператора, следующего непосредственно за вызовом функции:
#include <iostream.h> void show_message (void)
{
cout << "Привет, учусь программировать на C++" << endl;
}
void main (void)
{
cout << "Перед вызовом функции" << endl; show_message ();
cout << "Вернулись из функции" << endl;
}
В данном случае программа выполняет первый оператор в main, которой выводит сообщение для пользователя, что программа собирается вызвать функцию. Далее программа встречает вызов функции и запускает выполнение операторов в show_messsage. После того как программа выполнит единственный оператор функции, она возвращается обратно в main и продолжает свое выполнение с оператора, непосредственно следующего за вызовом функции. В этом случае программа выводит сообщение, извещая пользователя о том,
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
78
что она возвратилась из функции, и после этого заканчивает свою работу. Следующая программа two__msgs.cpp использует две функции -show_title и show_lesson для вывода информации об этой книге:
#include <iostream.h> void show_title (void)
{
cout << "Книга: Учимся программировать на C++" << endl;
}
void show_lesson (void)
{
cout << "Урок: Знакомство с функциями" << endl;
}
void main (void)
{
show_title (); show_lesson ();
}
Когда программа начинает выполнение, она сначала вызывает функцию show_title, которая выводит сообщение с помощью cout. После завершения show_title программа вызывает функцию show_lesson, также выводящую сообщение. После завершения show_lesson программа завершается, поскольку в main больше нет операторов.
При создании функций обнаруживается, что, поскольку они содержат меньше строк кода, чем одна большая программа, их легче понять и изменить. В дополнение к этому в большинстве случаев функцию, созданную для одной программы, можно использовать без изменений в другой программе. Создавая библиотеку функций, тем самым снижается количество времени, израсходованного на кодирование и тестирование подобных функций в будущем.
Вызов функции Функция представляет собой набор связанных операторов,
которые Выполняют определенную задачу. Создавая функции внутри программы, можно делить большие задачи на небольшие легко управляемые части.
Программы выполняют операторы функций посредством вызова функции. Для вызова функции программы просто обращаются к имени функции, за которым следуют круглые скобки, как показано ниже:
function_name();
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
79
Если программа передает информацию (параметры) в функцию, она размещает эту информацию внутри круглых скобок, разделяя ее запятыми:
testroll(teacher_name, teacher_id, salary);
После того как последний оператор функции завершен, выполнение программы продолжается с первого оператора следующего за вызовом функции.
Программа может передавать информацию в функции
Для увеличения потенциальных возможностей функций C++ позволяет программам передавать информацию (параметры) в функции. Если функция использует параметры, должны сообщится C++ тип каждого параметра, например int, float, char и т.д. Следующая функция show_number использует параметр типа int.
void show_number (int value)
{
cout << "Значение параметра равно " << value << endl;
}
Если программа вызывает функцию show_number, она должна передать ей значение, как показано ниже:
show_number (1001); // Значение, передаваемое в функцию
C++ будет подставлять переданное число вместо каждого имени параметра value внутри функции:
show_number (1001)
void show_number (int value)
{
cout << "Значение параметра равно " << value << endl;
}
void show_number (1001)
{
cout << "Значение параметра равно " << 1001 << endl;
}
Как видно, поскольку C++ замещает значение параметра, функция show_number выводит число 1001, переданное ей главной программой.
Следующая программа useparam.cpp использует функцию show_number несколько раз, каждый раз передавая разные числа:
#include <iostream.h>
void show_number (int value)
{
cout << "Значение параметра равно " << value << endl;
}
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
80
void main (void)
{
show_number (1); show_number (1001); show_number (-532);
}
Как видно, каждый раз, когда программа вызывает функцию, C++ присваивает передаваемое число переменной value.
Каждый параметр функции имеет определенный тип. В случае функции show_number параметр value должен быть типа int. Если вы попытаетесь передать в функцию значение другого типа, например с плавающей точкой, компилятор будет сообщать об ошибке. В большинстве случаев программы будут передавать несколько значений в функцию. Для каждого передаваемого параметра функция должна указать имя и тип. Например, следующая программа bigsmall.cpp использует функцию show_big_and_little для вывода самого большого и самого маленького из трех полученных целочисленных значений:
#include <iostream.h>
void show_big_and_little (int a, int b, int c)
{
int small = a; int big = a;
if (b > big) big = b;
if (b < small) small = b; if (c > big) big = c;
if (c < small) small = c;
cout << "Самое большое значение равно " << big << endl; cout << "Самое маленькое значение равно " << small << endl;
}
void main (void)
{
show_big_and_little (1, 2, 3); show_big_and_little (500, 0, -500); show_big_and_little (1001, 1001, 1001);
}
Наконец, следующая программа show_stud.cpp использует функцию show_student для вывода возраста (тип int) и оклада (тип float) служащего:
#Include <iostream.h>
void show_student (int age, float mark)
{
cout << "Возраст студента " << age << " года (лет)" << endl;
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
81
cout << "Студент получает $" << mark << endl;
}
void main (void)
{
show_student (32, 25000.00);
}
Как видно, функция show_ student определяет параметры типа int
и float
Передача параметров в функцию Если функция использует параметры, она должна указать
уникальное имя и тип для каждого параметра. Когда программа вызывает функцию, C++ присваивает значения параметров именам параметров функции слева направо. Каждый параметр функции имеет определенный тип, например int, float или char. Значения, которые программа передает в функцию, используя параметры, должны соответствовать типу параметров.
Функции могут возвращать результат вызвавшей функции Функция должна выполнять определенную задачу для
программы. В большинстве случаев функции будут выполнять некоторые типы вычислений. Затем функция возвратит свой результат вызвавшей функции. Когда функция возвращает значение, должны сообщить C++ тип значения, например int, float, char т. д. Чтобы информировать C++ о типе возвращаемого функцией значения, просто поставьте перед именем функции соответствующий тип. Например, следующая функция add_values складывает два своих целочисленных параметра и возвращает результат типа int вызвавшей программе:
int add_values (int а, int b)
{
int result; result=а+b; return (result);
}
В данном случае слово int, появляющееся перед именем функции, указывает тип возвращаемого значения функции. Функции используют оператор return для возврата значения вызвавшей функции. Когда программа встречает оператор return, она возвращает заданное значение и завершает выполнение функции, возвращая управление вызвавшей программе. В программе можно использовать возвращаемое значение, как показано ниже:
result=add_values (1, 2);
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
82
В данном случае программа присваивает возвращаемое функцией значение переменной result. Программа может также сразу же напечатать возвращаемое функцией значение с помощью cout, как показано ниже:
cout << "Сумма значений равна " << add_values (500, 501) << endl;
Предыдущая реализация функции add_values использовала три оператора, чтобы было легче понять смысл функции. Однако можно сократить функцию до единственного оператора return, как показано ниже:
int add_values (int a, int b)
{
return (a+ b);
}
Следующая программа addvalue.cpp использует функцию add_values для сложения нескольких значений:
#include <iostream.h>
int add_values (int a, int b)
{
return (a+ b);
}
void main (void)
{
cout << " 100 + 200 = " << add_values(100, 200) << endl; cout << " 500 + 501 = " << add_values(500, 501) << endl; cout << "-1 + 1 = " << add_values(-1, 1) << endl;
}
Не все функции возвращают значение типа int. Следующая функция average_value возвращает среднее двух целочисленных значений, которое может быть дробным, например 3.5:
float average_value(int a, int b)
{
return( (a + b) / 2.0);
}
В этом случае слово float, которое предшествует имени функции, указывает тип возвращаемого функцией значения.
Функции, которые не возвращают значение Если функция не возвращает значение, необходимо предварить
имя функции типом void. В противном случае должны предварять имя функции типом возвращаемого функцией значения, например, int, float, char и т. д. Чтобы возвратить значение вызвавшей функции, функция использует оператор return.
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
83
Когда программа встречает оператор return, выполнение функции завершается и указанное значение возвращается вызвавшей функции. Возможны ситуации, когда встретится оператор return в функции, которая не возвращает значение:
return;
Вэтом случае функция имеет тип void (не возвращает значение) и оператор return просто завершает выполнение функции.
Замечание: Если операторы появляются в функции после оператора return они не будут выполняться. Как уже обсуждалось выше, если программа встречает оператор return в функции, то возвращается соответствующее значение, функция заканчивается и выполнение программы продолжается с первого оператора, следующего за вызовом функции.
Использование возвращаемого функцией значения Когда функция возвращает значение, вызвавшая программа
может присвоить возвращенное значение переменной, используя оператор присваивания, как показано ниже:
markroll_amount = markroll (student, hours, mark);
Вдополнение к этому вызвавшая программа просто может обращаться к функции. Например, следующий оператор выводит возвращаемое функцией значение, используя cout.
cout << "Студент получил" << markroll(student, hours, mark) < < endl;
Вызвавшая функция может также использовать возвращаемое значение в условии, как показано ниже:
if (markroll(student, hours, mark) < 500.00)
cout << "Этот студент нуждается в повышении оценки" << endl;
Как видно, программа может использовать возвращаемое функцией значение различными способами.
Представление о прототипах функций
Прежде чем программа сможет вызвать функцию, C++ должен знать тип возвращаемого значения, а также количество и тип параметров, используемых функцией. Однако в большинстве случаев функции появляются в исходном файле и, как правило, одна функция вызывает другую. Чтобы гарантировать, что C++ знает особенности каждой функции, используемой в программе, можно поместить прототипы функций исходного файла.
Вобщем случае прототип функции обеспечивает информацию о типе возвращаемого функцией значения и ее параметрах.
ФКазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
84
Следующий оператор иллюстрирует прототипы функций для нескольких функций:
void show_message(void); void show_number(int); void show_student(int, float); int add_values(int, int);
float average_value(int, int);
Как видно, прототип функции указывает тип возвращаемого значения, а также количество и тип каждого параметра. Обратите внимание на точку с запятой в конце каждого прототипа.
float average_value (int, int);
Если программа вызывает функцию, для которой компилятор C++ не нашел определения или прототипа, компилятор сообщает о синтаксической ошибке. При исследовании заголовочных файлов C++ или других программ будет постоянно сталкиваться с прототипами функций. Следующая программа proto.cpp иллюстрирует использование прототипа Функции:
#include <iostream.h>
float average_value(int, int); // Прототип функции void main(void)
{
cout << "Среднее значение 2000 и 2 равно " << average_value(2000, 2) << endl;
}
float average_value (int a, int b)
{
return((a + b) / 2.0);
}
В этом случае программа вызывает функцию average_value до того, как функция определена. Таким образом, программа использует прототип функции, который предваряет определение main. Если удалит прототип функции и откомпилировать эту программу, компилятор C++ будет сообщать о синтаксических ошибках.
Использование прототипов функций
Прототип функции сообщает компилятору C++ тип возвращаемого значения, а также количество и тип параметров функции. Когда компилируется программа, компилятор C++ использует прототип каждой функции, чтобы убедиться, что не перепутан тип возвращаемого функцией значения (например, не присваиваете возвращаемое значение типа float переменной типа int)
ичто не передается в качестве параметра значение неверного типа.
ФКазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
85
Функции могут возвращать значение вызвавшей функции. При этом указывается тип возвращаемого функцией значения (int, char и т. д.) до имени функции, в противном случае предваряется имя функции словом void.
Программы передают информацию в функции с помощью параметров. Если функция получает параметры, то указывается уникальное имя и тип каждого параметра. Если функция не получает параметры, должны поместится ключевое слово void внутри круглых скобок, следующих за именем функции.
C++ должен знать тип возвращаемого значения и количество и тип параметров, которые получает функция. Если определение функции следует за использованием функции, то должен помещаться прототип функции в начале исходного файла.
Ф КазНПУ 703-12-11. Учебно-методический комплекс дисциплины для обучающегося. Издание третье.
86
