У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


С++ 2–е издание.: Второе издание. - М.:Бином,1998

Роберт Седжвик. Фундаментальные алгоритмы на С++. – СПб.: ООО «ДиаСофтЮП», 2002. – 688 с.

Томас Кормен. Алгоритмы. Построение и анализ. , 1990. – 892 с.

Джесс Либерти. Освой самостоятельно С++ за 21 день, 4-е издание.: Пер. с англ. — «Вильямс», 2001. – 832 с.

Герберт Шилдт. Справочник программиста по С/С++, 3–е издание.: Пер. с англ. — «Вильямс», 2003. – 432 с.

Страуструп Б. Язык программирования С++.Третье издание, М.:Бином,1999.

Шилдт Г. Теория и практика С++.-СПб.:BHV,1996.

Джефф Элджер. Бибиотека программиста C++

Фейсон Т. Объектно-ориентированное программи-рование на С++. – К.: Диалектика, 1996. – 391 с.

Пол Айра Объектно-ориентированное программиро-вание на С++. 2-е издание – М.: Бином, 1999. – 295 с.

Лафоре Р. Объектно-ориентированное программирова-ние в С++. 4-е издание – М., 2004. – 924 с.

Курсові роботи з дисципліни “Об’єктно-орієнтоване програмування”. Методичні вказівки і завдання для студентів факультету автоматизації і комп’ютерних наук/ Федорак Р.М., - Івано-Франківськ : ІФНТУНГ, 2005.- 43 с.

Шилдт Г. Полный справочник по С++, 4-е изадние.: Пер. с англ. – М.: Издательский дом “Вильямс”, 2006. – 800 с.

Прата Стивен Язык программирования С++. Лекции и уражнения. Platinum Edition: Пер. с англ./ Стивен Прата – М.: ООО “ДиаСофт”, 2005. – 1104 с.

Кейт Грегори Использование Visual C++ 6. Специальное издание.: Пер. с англ. – М.; СПб.; К.: Издательский дом “Вильямс”, 2003. – 864 с.

Олафсен Юджин MFC и Visual C++ 6. Энциклопедия программиста: Пер. с англ./ Юджин Олафсен, - СПб.: ООО “ДиаСофт”, 2004. – 992 с.

Паппас К. Эффективная работа: Visual C++. – СПб.: Питер, 2002. – 816 с.

Овчинников П.П. Вища математика: Підручник. У 2 ч. Ч. 1: Лінійна і векторна алгебра. – К.: Техніка, 2000. – 592 с.

Дубовик В.П. Вища математика: Збірник задач: Навч. посібник. – К.: А.С.К., 2001. – 480 с.

СТП 02070855-03-99. Курсовий і дипломний проект. Вимоги до змісту і оформлення.

Мальцев А. И. Основы линейной алгебры. М.: Наука, 1975.

Гельфанд И. М. Лекции по линейной алгебре М.: Наука, 1971.

Фаддеев Д. К. Лекции по алгебре. М.: Наука, 1984.

Кострикин А. И. Введение в алгебру, М.: Наука, 1977.

В.А. Ильин, Э.Г. Позняк Линейная алгебра, М.: Наука - Физматлит, 1999.

Беклемишев Д.В. Аналитическая геометрия и линейная алгебра.-М.: Высш. шк. 1998, 320с.

Беклемишев Д.В. Дополнительные главы линейной алгебры.-М.:Наука 1983, 336с.

Булдырев В.С., Павлов Б.С. Линейная алгебра и функции многих переменных.-Л.:ЛГУ 1985, 496с.

ДОДАТОК А

Лістинг 1. Файл iface.h — Абстрактний інтерфейс класу

#pragma once

#include <objbase.h>

template <class T>

interface IVector

{

//size - кількість елементів вектора;

virtual size_t size()const = 0;

//front - посилання на перший елемент;

virtual T front() = 0;

//back - посилання на останній елемент;

virtual T back() = 0;

//insert - уставити елемент у надану позицію;

virtual void insert(const T&, size_t position) = 0;

//push_back - додати новий елемент у кінець вектора;

virtual void push_back(const T&) = 0;

//pop_back - вилучити останній елемент;

virtual void pop_back() = 0;

//erase - вилучити елемент у наданій позиції;

virtual void erase() = 0;

//find - знайти елемент у векторі і повернути його позицію;

virtual size_t find(const T& value) = 0;

//accumulate - накопичення суми або добутку;

// 1(true) = сума 0(false) = добуток

virtual T accumulate(bool) = 0;

//for_each - обробка елементів по наданій процедурі;

virtual void for_each() = 0;

//max , min - пошук максимального та мінімального елементів;

virtual T maximum() = 0;

virtual T minimum() = 0;

//sort - упорядкування елементів у порядку зростання або зменшення.

virtual void sort(bool) = 0;

};

Лістинг 2. Файл Vector.h — Інтерфейс класу

#pragma once

#include <iostream>

#include <exception>

#include "iface.h"

#include "strvalues.h"

#include <vector>

using namespace std;

#define DEFAULT_SIZE 10

template<class T>

class Vector: public IVector<T>

{

public:

Vector();

Vector(size_t);

Vector(Vector&);

~Vector();

///

/// IVector

///

//size - кількість елементів вектора;

size_t size()const;

//front - посилання на перший елемент;

T front();

//back - посилання на останній елемент;

T back();

//insert - уставити елемент у надану позицію;

void insert(const T&, size_t position);

//push_back - додати новий елемент у кінець вектора;

void push_back(const T&);

//pop_back - вилучити останній елемент;

void pop_back();

//erase - вилучити елемент у наданій позиції;

void erase();

//find - знайти елемент у векторі і повернути його позицію;

size_t find(const T& value);

//accumulate - накопичення суми або добутку;

// 1(true) = сума 0(false) = добуток

T accumulate(bool);

//for_each - обробка елементів по наданій процедурі;

void for_each();

//max , min - пошук максимального та мінімального елементів;

T maximum();

T minimum();

//sort - упорядкування елементів у порядку зростання або зменшення.

void sort(bool az = true);

//swap - обмін значеннями з іншим вектором;

void swap(Vector& rhs);

//доступу до елемента, символ "[]" ;

T& operator [] (size_t offset);

const T& operator [] (size_t offset)const;

//присвоєння, символ "=" ;

Vector& operator = (const Vector& rhs);

//конкатенації, символ "+" ;

//Vector operator + (Vector& rhs);

//конкатенації і присвоєння, символ "+=" ;

void operator += (const Vector& rhs);

//введення із файлу, символи "<<" ;

friend ostream & operator << <T>(ostream & output, const Vector<T> & list);

//виведення у файл, символи ">>" ;

friend istream & operator >> <T>(istream & input, Vector<T> & list);

//порівняння, символі "==" , "!=" .

bool operator == (const Vector& rhs);

bool operator != (const Vector& rhs);

private:

void Initialize();

void Initialize(size_t size);

void Dispose();

vector<T> m_array;

};

Лістинг 3. Файл Vector.cpp — Реалізація класу

#include "StdAfx.h"

#include "Vector.h"

#include "strvalues.h"

#include <algorithm>

#include <functional>

template<class T>

Vector<T>::Vector(void)

{

}

template<class T>

Vector<T>::Vector(size_t size)

{

m_array.resize(size);

}

template<class T>

Vector<T>::~Vector(void)

{

m_array.clear();

}

///

/// IVector

///

//size - кількість елементів вектора{}

template<class T>

size_t Vector<T>::size()const

{

return m_array.size();

}

//front - посилання на перший елемент{}

template<class T>

T Vector<T>::front()

{

return *m_array.begin();

}

//back - посилання на останній елемент{}

template<class T>

T Vector<T>::back()

{

return *m_array.end();

}

//insert - уставити елемент у надану позицію{}

template<class T>

void Vector<T>::insert(const T& value, size_t position)

{

m_array.insert(m_array.begin() + position, value);

}

//push_back - додати новий елемент у кінець вектора{}

template<class T>

void Vector<T>::push_back(const T& value)

{

m_array.push_back(value);

}

//pop_back - вилучити останній елемент{}

template<class T>

void Vector<T>::pop_back()

{

m_array.pop_back();

}

//erase - вилучити елемент у наданій позиції{}

template<class T>

void Vector<T>::erase()

{

m_array.clear();

}

//find - знайти


Сторінки: 1 2 3 4 5 6 7 8 9 10 11 12