Функции. Основные принципы структурной методологии. Принцип формальности. Принцип иерархического упорядочивания, страница 4

// демонстрация функции без параметров и не возвращающей значения

#include <iostream.h>

void starline();                   //прототип функции

int main()

{

starline();                            //вызов функции

cout << "Data type   Range" << endl;

starline();                            //вызов функции

cout << "char        -128 to 127" << endl

<< "short       -32,768 to 32,767" << endl

<< "int         System dependent" << endl

<< "long        -2,147,483,648 to 2,147,483,647" << endl;

starline();                            //вызов функции

return 0;

}

//-------------------------------------------------------------// определение функции

void starline()                           //заголовок функции

{

for(int j=0; j<45; j++)              //тело функции

cout << '*';                            //функция всегда выводит на экран 45 символов «звездочка»

cout << endl;

   }

Результаты работы:

*********************************************

Data type   Range

*********************************************

char        -128 to 127

short       -32,768 to 32,767

int         System dependent

long        -2,147,483,648 to 2,147,483,647

*********************************************

// демонстрация функции с аргументами и не возвращающей значения

#include <iostream.h>

void repchar(char, int);                                      //прототип функции

int main()

   {

repchar('-', 43);                                                //вызов функции

cout << "Data type   Range" << endl;

repchar('=', 23);                                               //вызов функции с другими аргументами

cout << "char        -128 to 127" << endl

<< "short       -32,768 to 32,767" << endl

<< "int         System dependent" << endl

<< "double      -2,147,483,648 to 2,147,483,647" << endl;

   repchar('-', 43);                                               //вызов функции

return 0;

   }

//-------------------------------------------------------------// определение функции

void repchar(char ch, int n)              //заголовок функции

   {

for(int j=0; j<n; j++)                         //тело функции

cout << ch;

cout << endl;

}

Результаты работы:

------------------------------------------Data type   Range

=======================

char        -128 to 127

short       -32,768 to 32,767

int         System dependent

long        -2,147,483,648 to 2,147,483,647

------------------------------------------Функция repchar выводит переданный в первом аргументе символ ch указанное во втором аргументе количество раз (n).

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

// демонстрация функции, определенной перед ее вызовом

#include <iostream.h>

                                            //нет объявления функции (прототипа) !!!                                    

//-------------------------------------------------------------void starline()                 //определение функции перед ее вызовом в функции main

{

for(int j=0; j<45; j++)              

cout << '*';

cout << endl;

}

//--------------------------------------------------------------                                                       

int main()                           //main() follows function

{

starline();                       //вызов функции

cout << "Data type   Range" << endl;