Описание пользовательских функций

Модульное программирование. Пользовательские функции.

Все современные языки программирования реализуют (Aлгол, Basic, Фортран, PL/1, Pascal, C, С++, Delphi, и др.) принцип модульного программирования, согласно которому проект (задача, программа) разбивается на логически завершённые части, которые оформляются по определённым правилам. Их чаще всего называют подпрограммами. Во многих языках используются два вида подпрограмм: процедуры и функции (Pascal), которые отличались правилами их оформления и вызова.

В языке С/С++ нет деления подпрограмм на функции и процедуры ( как это сделано в Pascal), здесь можно составлять и использовать только функции. Они могут быть как самостоятельными, не включёнными в класс, так и членами класса (в этом случае их называют методами). Но по аналогии с другими языками, функции можно разделить на два вида: функции не возвращающие значение (типа void) и возвращающие значение.

Функция типа void аналогична процедуре Pascal (procedure), а функция с возвращаемым с помощью return единственным значением похожа на функцию Pascal (function).

Замечание. В языке С/С++ функции не могут быть вложенными, т.е. невозможно определить (описать) одну функцию внутри другой.

Описать пользовательские функции можно несколькими способами.

1 способ.

1) Перед функцией void main() записываем прототип (заголовок) функции.

Формат прототипа функции:

[static или extern] <тип_результата> <имя-функции> (<описание формальных параметров>);

где [static или extern]- необязательный параметр указывающий область видимости функции;

<тип_результата> - для функций не возвращающих значение всегда равен void, для функций возвращающих значение указывается соответствующий тип (int, char, short, long, float, double, long double и т.д.);

<имя-функции> - в соответствии с правиламизаписи идентификаторов.

<описание формальных параметров> - описание всех аргументов функции с указанием их типа. Пользовательская функция может не иметь параметров, в этом случае в функцию ничего не передается, а круглые скобки остаются пустыми.

Например,

int print_num(i,j);

void LINE1();

void LINE2(int Len, int y, char ch);

Замечание. При описании прототипа функции всегда в конце указывается символ «;».

2) После функции void main() (в конце программы)приводится описание объявленной функции по следующему формату:

<тип_результата> <имя-функции> (<описание формальных параметров>)

{

<тело функции>;

//return <значение>;

}

где return <значение>; указывается лишь для функций, которые возвращают значение, если функция ничего не возвращает, то return <значение>; не указывается.

3) В теле функции осуществляется вызов описанной функции.

Например. Дважды вывести строку из 40 звездочек, затем вывести на экран запрашиваемый символ в заданной строке.

#include <iostream.h>

#include <conio.h>

void LINE1(); // Прототип (заголовок) функции

void LINE2(int Len, int y, char ch);

void main()

{

cout<<"Тестирование функции: \n Первая строка ";

LINE1(); // Вызов функции.

cout<<"Вторая строка";

LINE1();

LINE2 (20, 5, '*');//20 звездочек в 5 строке

int LEN, Y;

char Ch;

cout<<"Введите количество символов и номер строки ";

cin>>LEN>>Y;

cout<<"Введите символ ";

cin>>Ch;

LINE2(LEN, Y, C);//LEN символов Ch в строке Y

getch()

} // Конец функции main()

// Повторяем заголовок функции без символа “;” в конце

void LINE1()

{

int i;

cout<<”\n”;

for (i=1; i<=40; i++) cout<<'*';

cout<<”\n”;

}

//описание второй функции

void LINE2(int Len, int y, char ch)

{ gotoxy(1,y);

for (int i=1; i<=Len; i++)

cout<<ch;

cout<<”\n”;

}

2 способ.

1) Перед функцией void main () описываем пользовательскую функцию.

Формат описания функции:

[static или extern] <тип_результата> <имя-функции> (<описание формальных параметров>)

{

<тело функции>;

//return <значение>;

}

2) В теле функции осуществляется вызов описанной функции (см. лабораторные работы).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: