АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Технология сборки библиотеки

Читайте также:
  1. AHD технология: качество 720p/1080p по коаксиалу на 500 метров без задержек и потерь
  2. CASE-технология
  3. CASE-технология создания информационных систем
  4. БИБЛИОТЕКИ XVIII ВЕКА
  5. Биотехнология как наука может рассматриваться в двух временных и сущностных измерениях: современном и традиционном, классическом.
  6. Буфер обмена и технология OLE.
  7. Возможности стандартной графической библиотеки.
  8. Вопрос 3. В чем состоит технология образования и анализа наиболее рационального комплекта всех ресурсов?
  9. Выбор и сохранение базовой модели. Изучение библиотеки моделей судов
  10. Глава 10. ТЕХНОЛОГИЯ РАСТИТЕЛЬНОГО МАСЛА
  11. Глава 12. ТЕХНОЛОГИЯ ПИЩЕВЫХ КОНЦЕНТРАТОВ
  12. Глава 2. Технология изготовления интарсии

 

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

Заголовочный файл (иногда головной файл, англ. header file), или подключаемый файл, в языках программирования С и C++ - это файл с расширением .h. Заголовочный файл в общем случае может содержать любые конструкции языка программирования, но на практике в него помещают объявления идентификаторов, которые должны быть объявлены более чем в одном файле вашей программы, объявления структур, прототипы функций, перечисления, макросы препроцессора. Основная цель использования заголовочных файлов — вынесение описания нестандартных типов и функций за пределы основного файла с кодом. Заголовочный файл используется путём включения его текста в использующий его файл директивой препроцессора #include. Чтобы избежать повторного включения одного и того же кода, используются директивы #ifndef, #define, #endif.

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

Пусть создаваемая нами библиотека состоит из заголовочного файла mylib.h и файла mylib.cpp.

В заголовочном файле mylib.h содержатся прототипы функций, которые описаны в данном параграфе.

Перечислим все эти функции:

· maximum(). Находит и возвращает наибольшее из двух чисел.

· Form_matrix(). Заполняет матрицу, адрес которой передается ей в качестве параметра, случайными числами.

· ST(). Возводит любое число в степень n.

· Z(). Меняет значение переданного ей параметра на случайное число.

· Sum(). Вычисляет среднее арифметическое вектора, адрес и размер которого передаются в качестве параметров.

· Product(). Вычисляет произведение двух матриц, адреса и размеры которых передаются в качестве параметров. Возвращает матрицу соответствующего размера.

· SM().Безтиповая функция вычисляет симметричную матрицу из исходной матрицы.

· PK(). Безтиповая функция переводит декартовые координаты точки в полярные.



· CP().Типизированная функция для подсчета количества положительных элементов в любой матрице.

· Mod_Otk(). Типизированная функция находит максимальный компонент и среднее значение в любом массиве.

· fact().Рекурсивная функция вычисляет факториал числа n.

 

Текст файла mylib.h:

#ifndef MYLIB_H // если MYLIB_H еще не определили, то определяем

#define MYLIB_H

const nmax = 50; // максимальная размерность матрицы

int maximum(int a, int b);//прототип функции maximum

void Form_matrix(int A[][M], int m, int n);/*прототип функции Form_matrix */

float ST(float x, int n);//прототип функции ST

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

void Z (int *у);//прототип функции Z

int Sum ( int A[], int N ); //прототип функции Sum

void product(int А[][nmax], int В[][nmax],int С[][nmax], int m, int n, int k);//прототип функции product

void SM(float Y[4][4], int n, float X[4][4]);/*прототип функции SM */

void PK(float a, float b, float *ro, float *fi);/*прототип функции PK */

int CP(float D[7][7], int m, int n);//прототип функции CP

float Mod_Otk(float *a, int n);//прототип функции Mod_Otk

float fact(int N);//прототип функции fact

#endif /* MYLIB_H */

 

Файл mylib.cpp является созданной нами библиотекой, в которой содержатся реализации всех перечисленных выше функций.

В целях экономии текст файла mylib.cppприведем не полностью.

Текст файла mylib.cpp:

#include "stdafx.h"

#include "stdlib.h"

{

int Sum ( int A[], int N )//заголовок функции Sum

{

int i, sum;//локальные переменные

sum = 0;

for ( i = 0; i < N; i ++ )

sum += A[i];

return sum/N;//возвращаемое значение

}

void product(int А[][nmax], int В[][nmax],int С[][nmax], int m, int n, int k)//заголовок функции product

{
/* m - число строк в матрице А;
n - число строк в матрице В и число столбцов в матрице А;
k - число столбцов в матрице В. */

for (int i=0; i< m; i++)
for (int j=0; j< k; j++)

‡агрузка...

{
С[i][j]=0;
for (int l=0; l< n; l++)

С[i][j] + = А[i][l]*В[l][j];
}
}

float fact(int N)//рекурсивная функция вычисления факториала числа N

{

if (N==0)

return 1;

Else

return (fact(N-1)*N);

}


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |


При использовании материала, поставите ссылку на Студалл.Орг (0.021 сек.)