Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы си++.pdf
Скачиваний:
55
Добавлен:
09.04.2015
Размер:
455.01 Кб
Скачать

Определение функции – это совокупность ее заголовка и тела.

Вызов функции

– указание имени функции и в круглых скобках списка факт ических

парамет ров (аргумент ов), которые необходимо ей передать (если они есть):

_getch();

//вызов функции ожидания нажатия клавиши на клавиатуре

strcpy(s, "aaaaa");

//вызов функции копирования строки "aaaaa" в строку s

Если в теле программы встречается имя функции, то происходит ее вызов (обращение к ней), т.е. функции передается управление. После завершения работы функции управление возвращается в точку ее вызова. Функция, которая вызывает какую-либо другую функцию, называется вызывающей функцией, а функция, которую вызывают на выполнение, называется вызываемой функцией.

Вызвать функцию можно после ее объявления или определения. Объявление функции из стандартной библиотеки выполняется подключением соответствующего файла директивой препроцессора #include.

Если функция возвращает значение некоторого типа, то необходимо принять это значение в переменную этого типа, либо вывести на экран, либо использовать в составном выражении. Например, в библиотеке math.h определена функция, извлекающая квадратный корень sqrt(), которая принимает как аргумент значение, из которого следует извлечь корень, и возвращает значение этого корня. Ее можно использовать:

double x=2.0;

double dbl = sqrt(x);

cout << dbl << " " << sqrt(5.0);

С++ не позволяет определять функции внутри других функций. Связь между функциями осуществляется с помощью передаваемых функции фактических параметров (аргументов) и возвращаемых значений или через глобальные (внешние) переменные. Определение «внешние» используется главным образом для того, чтобы подчеркнуть отличие от «внутренних» информационных объектов – аргументов и переменных, определяемых внутри функции.

Примеры простых программ

Вычисление значения функции в заданной точке

0,

x < −2

 

 

2 x <1

y = x,

 

- x +2, x 1

 

Представленные варианты программы используют разные средства ввода-вывода:

//proba_2_1.cpp

 

//proba_2_2.cpp

 

#include <iostream>

#include <stdio.h>

 

#include <conio.h>

#include <conio.h>

 

int main()

 

//нет директивы using namespace std;

int main()

 

 

 

{

 

{

 

 

 

y;

 

double x, y;

 

double x,

 

 

std::cout

<< "vvedite x" << std::endl;

printf ("vvedite x\n");

std::cin >> x;

y=0;

scanf ("%lf", &x);

y=0;

if (x <= -2)

if (x <= -2)

else if (

x < 1) y=x;

else if (x < 1) y=x;

 

else

y= -x+2;

else y= -x+2;

 

std::cout

<< "x= " << x << " y=" << y << std::endl;

printf("x= %lf, y= %lf\n",x, y);

Программирование – лекция 1 (лекции Стрикелевой Л.В.)

8

 

//библиотечный класс string
//увеличение счетчика на 1 //увеличение суммы на x

_getch();

 

_getch();

return 0;

 

return 0;

}

 

}

 

 

 

 

Результат выполнения программ в среде Microsoft Visual C++ 2005

 

в режиме консольных приложений:

//proba_2_1.cpp

 

//proba_2_2.cpp

vvedite x

 

vvedite x

3

 

3

x= 3 y=-1

 

x= 3.000000 y= -1.000000

Вычисление суммы и количества целых чисел, введенных пользователем с клавиатуры

//proba_3.cpp

#include <iostream> #include <conio.h>

using namespace std;

//директива есть!!!, std:: перед cout далее отсутствует

int main()

 

{

//вводимое число

int x;

int summa=0;

//накапливаемая сумма

int counter=0;

//количество просуммированных чисел

cout << "Enter integer x (0 if the end)" << endl;

// ввод и проверка чисел в цикле while (cout << "x" << counter+1 << "=", cin >> x, x!=0) {

counter++;

summa+=x;

}

cout << "counter= " << counter << ", sum=" << summa << endl; // вывод _getch();

return 0;

}

Результаты выполнения программы:

Enter integer x (0 if the end) x1=10<enter>

x2=20<enter>

x3=30<enter>

x4=0<enter> counter=3, sum=60

Демонстрация работы со строками на основе использования класса string

//proba_4.cpp #include <iostream> #include < string > #include <conio.h> using namespace std; int main() {

string response="Enter Your name: "; //определение строки response класса string cout << response;

string name;

//определение объекта-строки name класса string

cin >> name;

//ввод значения объекта-строки name

string greeting ="Hello, "; //определение строки greeting класса string

greeting = greeting + name + "!";

//конкатенация (сцепление) строк

cout << greeting << endl;

 

 

Программирование – лекция 1 (лекции Стрикелевой Л.В.)

9