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

printf (“%d\n”,i);                  //5              return  0;             } intworkover  (inti)                  {                                    //локальная переменная i                 i = (i%i)*((i*i)/(2*i)+4);              return  (i);              }  intreset  (inti)              //локальная переменная i                 {              i = i <=CHANGE? HIGH: LOW;              return  (i);              }

  //5  
        #include <stdio.h>
        int   reset (int i);                 //прототипы функций         int  workover  (int  i);             #define    LOW    0         #define    HIGH   5         #define    CHANGE    2         int   i = LOW;                     //глобальная переменная i             int  main  ()                  {              auto int  i = HIGH;            //локальная переменная i                  reset  (i/2);            //вызов функции с аргументом 2, i свое значение не изменяет                                              //возвращаемое функцией значение пропадает                                 reset  (i=i/2);         //вызов функции с аргументом 2, i изменяет свое значение на 2,                                             //значение, возвращаемое функцией, пропадает                                 i= reset  (i/2);         //вызов функции с аргументом 1, i изменяет свое значение на                                               //значение 5, возвращаемое функцией                              printf (“%d\n”, i);        //5              workover(i);               //вызов функции с аргументом 5
             printf (“%d\n”, i);        //5              return  0;             }            int  workover  (int  i)                  {              i = (i%i)*((i*i)/(2*i)+4);              return  (i);              }             int  reset  (int  i)                  {              i = i <=CHANGE? HIGH: LOW;              return  (i);              }
  //6  

#include <stdio.h>

int reset();                       //прототипы функций

int next(int);

int last(int); int new(int); int i=1;                            //глобальная переменная i     int main() {auto int i, j;                     //локальные переменные   i=reset();   for (j=1; j<=3; j++)                   {next(i); last(i);                   printf (“%d\n”, new(i+j));    }  return 0;

} int reset()              {return(i);                         //глобальная переменнаяi  } int next(int j) {return(j=i++);                  //глобальная переменная i , локальная переменная j  } int last(int j) { static int i=10;              //локальная переменная j, статическая локальная переменная i  return(j=i--); } int new(int i) { auto int j=10;                 //локальные переменные i и  j   return(i=j+=i); }

Стандартные функции

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

Функции библиотеки можно разбить на группы по их назначению: ввод/вывод, обработка строк, математические функции, работа с динамической памятью, поиск и сортировка и т.д.

Ввод/вывод в С++ реализуется либо с помощью функций, унаследованных от библиотеки С (заголовочный файл <stdio.h> или <cstdio>), либо с помощью потоков С++.

Математические функции мы рассматривали в рамках лабораторной работы 1.